CAIN-42 CAIN Studio
CAIN-42 Academy

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

“With N = 4, a quorum is 3 votes.”