(Rust, Python, JavaScript, TLA+, AWS, Cryptography, Distributed Systems)

I have designed and developed a decentralized network consensus protocol for use in cryptographic certification and revocation of documents by higher-education institutions. Each institution maintains its own hashchain and its own peer relationships with other institutions. As each institution certifies and revokes documents, such as diplomas and transcripts, its peers double-check the institution's actions before giving their sign-offs. Institutions maintain replicas of their peers' hashchains as well.

CertChain demonstrates that expensive, centralized signature services such as Adobe's AATL aren't needed in a network of institutions with preexisting peer relationships. I have written an implementation of CertChain, consisting of a Python/Django web application and a Rust network daemon, the source code for which is located here. One cool part about the implementation is that, thanks to emscripten's ability to compile C++ to JS, cryptographic signatures can be verified directly in the user's browser rather than on the server. I have also formalized the protocol in a TLA+ specification located here. Professor Dan Boneh provided insightful advice and feedback on the development of this system. I have written an (unpublished) paper about CertChain, which you can read here. The screenshots above were taken with a demo network comprised of four institutions.