Visible to the public Mechanising Blockchain Consensus

TitleMechanising Blockchain Consensus
Publication TypeConference Paper
Year of Publication2018
AuthorsPîrlea, George, Sergey, Ilya
Conference NameProceedings of the 7th ACM SIGPLAN International Conference on Certified Programs and Proofs
PublisherACM
Conference LocationNew York, NY, USA
ISBN Number978-1-4503-5586-5
Keywordsblockchain, Collaboration, composability, compositionality, consensus, Coq, policy-based governance, privacy, protocol verification, pubcrawl
Abstract

We present the first formalisation of a blockchain-based distributed consensus protocol with a proof of its consistency mechanised in an interactive proof assistant. Our development includes a reference mechanisation of the block forest data structure, necessary for implementing provably correct per-node protocol logic. We also define a model of a network, implementing the protocol in the form of a replicated state-transition system. The protocol's executions are modeled via a small-step operational semantics for asynchronous message passing, in which packages can be rearranged or duplicated. In this work, we focus on the notion of global system safety, proving a form of eventual consistency. To do so, we provide a library of theorems about a pure functional implementation of block forests, define an inductive system invariant, and show that, in a quiescent system state, it implies a global agreement on the state of per-node transaction ledgers. Our development is parametric with respect to implementations of several security primitives, such as hash-functions, a notion of a proof object, a Validator Acceptance Function, and a Fork Choice Rule. We precisely characterise the assumptions, made about these components for proving the global system consensus, and discuss their adequacy. All results described in this paper are formalised in Coq.

URLhttps://dl.acm.org/citation.cfm?doid=3176245.3167086
DOI10.1145/3167086
Citation Keypirlea_mechanising_2018