CBTF · Module 1 of 5 · 13 min
Byzantine faults and the 3f + 1 rule
A Byzantine replica can do anything: crash, lie, send different messages to different peers. To tolerate f such replicas, a system needs N = 3f + 1 replicas and a quorum of 2f + 1 matching votes.
With N = 4, f = 1 and Q = 3: any two quorums of 3 overlap in at least 2 replicas, at least one of which is honest, so two conflicting decisions cannot both gather a quorum.
PBFT (Castro & Liskov, 1999) made this practical with three phases: pre-prepare, prepare and commit.
Key points
- N = 3f + 1; quorum 2f + 1.
- Quorums overlap in an honest replica.
- PBFT: pre-prepare, prepare, commit.
In the CAIN-42 codebase
scripts/cain42_bft/— CAIN's PBFT cluster tooling and verifiers
Practice check
Practice 1 · choose one
How many replicas tolerate 2 Byzantine faults?
Practice 2 · true or false