Cyber Risks · Trail of Bits Blog

Formal Analysis of the CBC Casper Consensus Algorithm with TLA+

Summary: A Trail of Bits summer intern specified Ethereum's CBC Casper consensus protocol in TLA+ and PlusCal and model-checked it with TLC, finding that finality could not be determined unless the Byzantine fault threshold stayed below one-third of total validator weight. That result matches Lamport et al.'s Byzantine Generals Problem, and the intern found no liveness faults but tested only binary consensus with a very small number of validators.

What's compelling: CBC Casper's safety proof does not address liveness, and failure to achieve finality would mean the blockchain stops producing new blocks because no transaction is guaranteed against reversal - a gap the author says needs further work before a switch to proof of stake.

Read the original at Trail of Bits Blog ↗