Byzantine Fault Tolerance
Lamport, Shostak, Pease 1982 · Castro & Liskov 1999 · Wikipedia
The Byzantine generals problem: nodes can send contradictory messages. To tolerate f Byzantine faults, you need at least 3f + 1 nodes. With fewer, a traitor can make honest nodes disagree. PBFT (Practical Byzantine Fault Tolerance) makes this work in practice with three rounds of communication.
Byzantine generals problem
Generals surround a city. They must agree to attack or retreat. Some generals are traitors who send conflicting messages. The loyal generals must all reach the same decision, and if they all start with the same preference, that preference must win. With fewer than 3f + 1 generals, f traitors can prevent agreement.
PBFT overview
Practical BFT (Castro and Liskov, 1999) works in three phases: pre-prepare (leader assigns sequence number), prepare (2f+1 nodes agree on order), commit (2f+1 nodes confirm). Total messages per request: O(n^2). Expensive, but it works with Byzantine faults and has been deployed in production systems.
Neighbors
Cross-references
- 🔐 Cryptography Ch.8 — digital signatures authenticate messages, enabling BFT