Intermediate Topic 31 of 51 Distributed Systems & Cloud
Byzantine Fault Tolerance
Agreement even when some nodes behave maliciously.
How it works
Byzantine fault tolerance is the ability of a system to reach agreement even when some nodes behave arbitrarily or maliciously, such as sending conflicting messages to different peers, rather than merely crashing. The Byzantine generals problem shows that with oral messages, agreement requires more than three times as many nodes as faulty ones: n of at least 3f plus 1. Protocols such as PBFT, Tendermint and HotStuff use multiple voting rounds and signatures, while proof-of-work and proof-of-stake blockchains achieve probabilistic Byzantine resilience in open networks.
Where it is used
Blockchains, safety-critical aerospace controllers, financial settlement systems and permissioned consortium networks use BFT.
Common pitfall
It costs much more communication and latency than crash-fault-tolerant consensus, with quadratic messages in classic protocols, limiting scale. It needs authentication and assumes bounded collusion; if more than a third of nodes are faulty, safety fails. Most data-center systems assume crash faults only, since trusted infrastructure makes full BFT unnecessary overhead.
Where it fits in the course
Byzantine Fault Tolerance is topic 31 of 51 in Distributed Systems & Cloud, rated Intermediate. It follows Failure Detectors. The next topic is Distributed File Systems.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Distributed Systems & Cloud quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Distributed Systems & Cloud quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Byzantine Fault Tolerance?
Where do people use Byzantine Fault Tolerance?
What is the most common mistake with Byzantine Fault Tolerance?
What should I learn before this topic?
How can I practice it?
Is Byzantine Fault Tolerance hard to learn?
How long does it take to learn Byzantine Fault Tolerance?
Which topics are related to Byzantine Fault Tolerance?
What should I study after Byzantine Fault Tolerance?
Related topics
- Failure Detectors (Distributed Systems & Cloud)
- Distributed File Systems (Distributed Systems & Cloud)
- Gossip Protocols (Distributed Systems & Cloud)
- MapReduce (Distributed Systems & Cloud)