A consensus protocol is at the core of any blockchain technology. It dictates how a distributed set of trustless nodes comes to a coherent view of the world.
The consensus solution used in CasperLabs blockchain is a latest achievement of a research path that can be traced back to the 1980’s. Important milestones on this path are:
- 1980: The problem of byzantine consensus defined (Lamport, Shostak)
- 1985: Impossibility of distributed consensus with one faulty process theorem (Fischer, Lynch, Paterson)
- 1997: Proof-of-Work invented (Hashcash system)
- 1999: “Practical Byzantine Fault Tolerance” (PBFT) algorithm (Castro, Liskov)
- 2008: Bitcoin invented (Satoshi Nakamoto)
- 2012: First proof-of-stake cryptocurrency system created (Peercoin system)
- 2013: Ethereum invented - cryptocurrency idea generalized to a decentralized general-purpose computing platform (Vitalik Buterin)
- 2013: “Greedy Heaviest Observed Subtree” (GHOST) algorithm introduced (Sompolinsky, Zohar)
- 2015: Blockchain idea extended to “block DAG” - “Inclusive Block Chain Protocols” (Lewenberg, Sompolinsky, Zohar)
- 2017: First draft version of Casper protocol spec published (Ethereum research group, Vlad Zamfir)
- Jul 2018: First implementation of proof-of-stake blockchain built on Casper-GHOST-Blockdag combination attempted
- Dec 2018: CBC Casper protocol 1.0 specification (Ethereum research group, Vlad Zamfir)
- Sep 2019: Leader-based CBC Casper (Daniel Kane, Vlad Zamfir, Andreas Fackler)
The solution we present here is significantly complex. Therefore, we introduce it step-by-step, starting from the simplest possible model first, and then enriching the model gradually.