You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
Then, run make in the project root directory. This will check all the definitions and proofs.
Contents
The project includes:
an abstract and timed specification in Coq of the Algorand consensus protocol as a transition system, including node-level behavior, asynchronous messaging and a model of the adversary,
a complete formal proof of asynchronous safety for the transition system.
For more details on the formalization, see the report:
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:
fmap_ext.v: auxiliary definitions and results on finite maps
algorand_model.v: definition of the Algorand local state, global state, and transition system, along with helper functions and facts
safety_helpers.v: helper functions and lemmas used when proving safety of the transition system
quorums.v: definitions and hypotheses about quorums of nodes
safety.v: statement and complete formal proof of safety for the transition system
liveness.v: an initial attempt at specifying liveness properties for the transition system. This part is work-in-progress and thus the file contains incomplete (admitted) proofs.