Formal Verification of Blockchain Nonforking in DAG-Based BFT Consensus with Dynamic Stake
By: Alessandro Coglio, Eric McCarthy
Potential Business Impact:
Keeps blockchain from splitting into fake copies.
Blockchain consensus protocols enable participants to agree on consistent views of the blockchain that may be ahead or behind relative to each other but do not fork into different chains. A number of recently popular Byzantine-fault-tolerant (BFT) protocols first construct a directed acyclic graph (DAG) that partially orders transactions, then linearize the DAG into a blockchain that totally orders transactions. The definitions and correctness proofs of these DAG-based protocols typically assume that the set of participants is fixed, which is impractical in long-lived blockchains. Additionally, only a few of those proofs have been machine-checked, uncovering errors in some published proofs. We developed a formal model of a DAG-based BFT protocol with dynamic stake, where participants can join and leave at every block, with stake used to weigh decisions in the protocol. We formally proved that blockchains never fork in the model, also clarifying how BFT bounds on faulty participants generalize to these highly dynamic sets of participants. Our model and proofs are formalized in the ACL2 theorem prover, apply to arbitrarily long executions and arbitrarily large system states, and are verified in 1 minute by ACL2.
Similar Papers
On Quorum Sizes in DAG-Based BFT Protocols
Distributed, Parallel, and Cluster Computing
Makes blockchain faster with fewer computers.
DAG-based Consensus with Asymmetric Trust [Extended Version]
Distributed, Parallel, and Cluster Computing
Lets computers agree even with untrusted parts.
Two-Fold Byzantine Fault Tolerance Algorithm: Byzantine Consensus in Blockchain
Distributed, Parallel, and Cluster Computing
Finds bad guys in computer networks.