DiemBFT is a Byzantine fault-tolerant consensus protocol for a permissioned network of known validators. It keeps the blockchain safe from forks and live with continued progress while at most f of 3f + 1 validators are malicious. section 12.4 section 12.4.3
A round proceeds through these steps:
- A deterministic leader collects transactions, proposes a signed block, and extends the blockchain. section 12.4.2
- Validators vote by signing the proposal and sending their votes to the next round’s leader. section 12.4.2
- The next leader combines enough votes into a quorum certificate (QC) and proposes a block extending the certified block. section 12.4.2
- Validators time out when a leader produces no proposal; the next round extends the highest certified block they have seen. section 12.4.2
- Validators never vote in an earlier round and vote only for blocks whose parents meet their preferred-round rule. section 12.4.4
Why three contiguous certificates matter
A QC requires 2f + 1 signatures among 3f + 1 validators. A chain of three certified blocks at contiguous rounds triggers the commit rule: the first block and the blocks it extends become committed. Earlier, noncontiguous certificates can still leave room for a competing branch. section 12.4.6 section 12.5
Figure 12.9 Each round of DiemBFT starts with the designated leader proposing a block that extends the last one they’ve seen. Other validators can then vote on this block by sending their vote to the next round’s leader. If the next round’s leader gathers enough votes to form a quorum certificate (QC), they can propose a new block containing the QC, effectively extending the previously seen block.
Follow the round-by-round flow from designated leader to validator votes, quorum certificate, and the next block. section 12.4.2
