Home

Awesome

Algorand Verification

Docker CI

The Algorand consensus protocol is the foundation of a decentralized digital currency and transactions platform. This project provides a model of the protocol in Coq, expressed as a transition system over global states in a message-passing distributed system. Included is a formal proof of safety for the transition system.

Meta

Building

We recommend installing the dependencies of the project via opam, for example:

opam repo add coq-released https://coq.inria.fr/opam/released
opam install coq.8.16.0 coq-mathcomp-ssreflect.1.15.0 \
 coq-mathcomp-algebra coq-mathcomp-finmap.1.5.2 \
 coq-mathcomp-analysis.0.5.4 coq-mathcomp-zify coq-record-update

Then, run make in the project root directory. This will check all the definitions and proofs.

Contents

The project includes:

For more details on the formalization, see the report:

<img src="resources/pdf-icon.png" alt="PDF" width="2%" /> Modeling and Verification of the Algorand Consensus Protocol

Statements of some liveness properties for the transition system are also provided, but these are work-in-progress and their proofs are currently incomplete.

All Coq source files can be found under the theories directory, and their content is as follows:

Help and Feedback

Feel free to report GitHub issues or to contact us at: contact@runtimeverification.com