Consensus
The basic purpose of consensus in blockchains is to agree on a consistent order and ensure the availability of transactions.
On Sui, consensus has a simple API: validators submit different user transactions to consensus concurrently, and the consensus outputs a consistent stream of transactions across all well-behaving validators.
Byzantine-fault tolerant (BFT) consensus protocols are a rich area of research. The next-generation consensus engine set to roll out in Sui is based on the Mysticeti protocol. The protocol optimizes for both low latency and high throughput because:
- It allows multiple validators to propose blocks in parallel, utilizing the full bandwidth of the network and providing censorship resistance. These are features of the DAG-based consensus protocols.
- It takes only three rounds of messages to commit blocks from the DAGs, same as pBFT and matches the theoretical minimum.
- The commit rule allows voting and certifying leaders on blocks in parallel, further reducing the median and tail latencies.
- The commit rule also tolerates unavailable leaders without significantly increasing the commit latencies.
For more details including correctness proofs, the Mysticeti paper is the best source.