Byzantine Fault Tolerance
Byzantine fault tolerance (BFT) is the property of a distributed system that allows it to continue operating correctly even when some of its nodes fail in arbitrary or malicious ways, including sending conflicting or false information to…
Definition
Byzantine fault tolerance (BFT) is the property of a distributed system that allows it to continue operating correctly even when some of its nodes fail in arbitrary or malicious ways, including sending conflicting or false information to different parts of the system.
Overview
Most classical Consensus Algorithms, such as Raft Consensus and the traditional Paxos Algorithm, assume a 'crash-fault' model, where a failed node simply stops responding. Byzantine fault tolerance addresses a harder and more adversarial scenario: nodes that don't just fail silently but actively behave incorrectly, whether due to bugs, hardware corruption, or malicious intent, potentially sending different, contradictory messages to different peers. The term originates from the 'Byzantine Generals Problem,' a thought experiment formalized by Leslie Lamport, Robert Shostak, and Marshall Pease in the early 1980s, describing generals surrounding a city who must coordinate an attack via messengers, some of whom might be traitors sending conflicting orders. A system is considered Byzantine fault tolerant if it can still reach correct, consistent agreement despite some fraction of participants behaving this way — classical results show that tolerating f Byzantine faults generally requires at least 3f+1 total participants. BFT protocols are computationally and communicationally more expensive than crash-fault-tolerant ones, since nodes must cross-verify messages more extensively to detect inconsistencies. This overhead is why BFT is typically reserved for environments where adversarial behavior is a real concern rather than an edge case — most notably public Blockchain networks, where anonymous, potentially malicious participants must still reach agreement on a shared ledger without trusting any single party. Understanding Byzantine fault tolerance is essential for anyone working on blockchain protocols, security-critical distributed systems, or any environment where some participants cannot be inherently trusted.
Key Concepts
- Tolerates nodes that behave arbitrarily or maliciously, not just crash
- Rooted in the classical Byzantine Generals Problem thought experiment
- Typically requires at least 3f+1 nodes to tolerate f Byzantine faults
- More computationally expensive than crash-fault-tolerant protocols
- Essential for trustless environments like public blockchains
- Contrasts with the simpler crash-fault model used by Raft and Paxos
- Requires extensive cross-verification of messages between nodes
Use Cases
Frequently Asked Questions
From the Blog
Network Topology Explained: Star, Bus, Ring, and Mesh
Network topology is the physical or logical arrangement of devices and connections in a network, and it determines a network's speed, cost, and fault tolerance. This guide compares star, bus, ring, mesh, and hybrid topologies with real trade-offs.
Read More AI & TechnologyBest Side Hustles: How to Choose One That Actually Fits
The best side hustle is the one that matches your available time, existing skills, and risk tolerance, not whichever trend is loudest online. This guide breaks down common side hustle categories and how to evaluate which one fits your situation.
Read More AI & TechnologyFlaky Evals: Handling Nondeterminism in Model Tests
Stabilise a flaky evaluation suite by running each case several times, aggregating the scores, and gating on a tolerance band rather than an exact number. This article separates the sources of variance you can remove from the ones you must measure, and shows how to size the repeats.
Read More