Software

  • Algorand is an implementation of a node in the Algorand cryptocurrency.

    My main contribution here as part of my employment is the implementation of the Byzantine Fault Tolerance protocol. I’ve also made significant contributions to the bookkeeping required to execute transactions and store account data.

    • Algorand implements the Verifiable Random Function cryptographic primitive according to an IETF specification draft using a fork of the libsodium library. I helped audit the specification and the implementation of this primitive.

    • Aardvark is a prototype extension on top of Algorand which implements a so-called ``stateless cryptocurrency’’. Note that the prototype is built for benchmarking and measurement, not for production use.

  • Stadium is a prototype of a scalable metadata-private messaging system, described by the paper here. Metadata privacy requires the participants in a conversation to be hidden and is not given by end-to-end encryption, which hides only the content of a conversation.

    My main contribution here was replacing its use of RSA with elliptic-curve cryptography (specifically, djb’s ed25519). I was able to improve its verifiable shuffle by more than an order of magnitude.

  • Clockwork is a small Android service that helps you synchronize the clocks on an Android phone and an Android Gear watch.

    When I wrote this software in 2015, clock skew between a phone and a watch was quite significant, which makes it difficult to merge time-series data. Sending data in a ping-pong between the phone and the watch allowed me to bound clock skew within ~20ms of uncertainty.