Mechanising Blockchain Consensus
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 modelled 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.
Mon 8 JanDisplayed time zone: Tijuana, Baja California change
13:30 - 15:30 | |||
13:30 30mTalk | Mechanising and Verifying the WebAssembly Specification CPP Conrad Watt University of Cambridge, UK DOI | ||
14:00 30mTalk | Towards Verifying Ethereum Smart Contract Bytecode in Isabelle/HOL CPP Sidney Amani UNSW, Australia, Myriam Bégel ENS Paris-Saclay, France, Maksym Bortin , Mark Staples CSIRO, Australia DOI | ||
14:30 30mTalk | Mechanising Blockchain Consensus CPP DOI Pre-print | ||
15:00 30mTalk | Formal Microeconomic Foundations and the First Welfare Theorem CPP |