Other meanings of Byzantine fault tolerance
Distributed Computing
Byzantine fault tolerance (BFT) is the ability of a distributed system to continue operating correctly even when some of its components fail arbitrarily or maliciously, including by sending conflicting or false information to different parts of the system. It is the strongest form of fault tolerance, addressing failures that are not merely crashes but also deliberate attacks or software bugs that cause inconsistent behavior. The concept was introduced in a 1982 paper by Leslie Lamport, Robert Shostak, and Marshall Pease, who framed the problem as the Byzantine Generals Problem, in which loyal generals must agree on a plan despite traitors who may send contradictory messages.
The Byzantine Generals Problem, introduced by Lamport, Shostak, and Pease in 1982, illustrates the challenge: several divisions of the Byzantine army camp outside an enemy city, each commanded by a general who communicates by messenger. The generals must agree on a common battle plan, but some generals may be traitors who send conflicting orders to different generals. The problem is to find a protocol that ensures loyal generals reach agreement even in the presence of traitors.1
The key insight is that a system can tolerate up to f Byzantine faults only if it has at least 3f+1 nodes. This bound holds for synchronous systems where message delivery has a known maximum delay. In asynchronous systems, where messages can be arbitrarily delayed, no deterministic algorithm can achieve consensus even with a single faulty node, a result known as the FLP impossibility.2
For decades, Byzantine fault tolerance remained theoretical because early algorithms required exponential message complexity. In 1999, Miguel Castro and Barbara Liskov introduced Practical Byzantine Fault Tolerance (PBFT), which reduced complexity to polynomial time, making BFT feasible for real-world systems. PBFT uses a primary-backup approach with three phases (pre-prepare, prepare, commit) and requires 3f+1 replicas to tolerate f faults.
Modern blockchain systems have revived interest in BFT. Algorithms such as Tendermint, HotStuff, and Algorand's consensus protocol adapt BFT to the permissionless setting, often combining it with cryptographic techniques like digital signatures and verifiable random functions. These systems are used in permissioned blockchains (e.g., Hyperledger Fabric) and in consensus layers of proof-of-stake networks.3
A lesser-known variant is the Byzantine agreement problem, which requires all non-faulty processes to agree on a single value, but not necessarily the value proposed by a designated leader. This distinction matters in systems like state machine replication, where total order is required.
Another subtlety is the difference between authenticated and unauthenticated Byzantine faults. In the authenticated model, messages can be signed, allowing tolerance of up to f faults with only 2f+1 nodes, but this requires a public-key infrastructure. The original Byzantine Generals paper considered both models, but the unauthenticated case is more commonly cited.
BFT has also been applied to areas beyond computing, such as fault-tolerant clock synchronization and distributed sensor networks. In aerospace, NASA has studied BFT for fault-tolerant flight control systems, where a single malicious or erroneous component could be catastrophic.4
Despite its theoretical elegance, BFT faces practical challenges. Performance overhead is significant: PBFT requires O(n²) messages per consensus round, which limits scalability. Recent research focuses on sharding, where the network is divided into smaller groups, and on randomized protocols that can tolerate asynchrony with high probability.
Another challenge is the adaptive adversary model, where an attacker can corrupt nodes over time based on the protocol's state. This has led to the development of proactive recovery and secret-sharing techniques. Additionally, BFT is increasingly combined with machine learning for fault detection, but the core algorithms remain the foundation of secure distributed systems.5
Byzantine fault tolerance is a cornerstone of secure distributed systems, enabling resilience against both accidental and malicious failures.
Help improve the encyclopedia. Reports go straight to the site manager.