Formalizing Nakamoto-Style Proof of Stake
This work addresses the need for indisputable security in distributed systems like blockchains, offering a foundational verification for consensus algorithms, though it is incremental in applying formal methods to a specific protocol setting.
The authors tackled the problem of verifying the security of a Nakamoto-style Proof of Stake blockchain protocol by providing the first machine-checked proof using Coq, which guarantees both safety and liveness properties under synchronous network conditions with static corruption.
Fault-tolerant distributed systems move the trust in a single party to a majority of parties participating in the protocol. This makes blockchain based crypto-currencies possible: they allow parties to agree on a total order of transactions without a trusted third party. To trust a distributed system, the security of the protocol and the correctness of the implementation must be indisputable. We present the first machine checked proof that guarantees both safety and liveness for a consensus algorithm. We verify a Proof of Stake (PoS) Nakamoto-style blockchain (NSB) protocol, using the foundational proof assistant Coq. In particular, we consider a PoS NSB in a synchronous network with a static set of corrupted parties. We define execution semantics for this setting and prove chain growth, chain quality, and common prefix which together imply both safety and liveness.