NEW
Also known as: BFT
A property of distributed systems to reach correct consensus despite arbitrary, including malicious, node failures.
DESCRIPTION
Byzantine Fault Tolerance (BFT) addresses the most adversarial failure model where nodes may lie, collude, or behave arbitrarily. Protocols such as PBFT, Tendermint, and HotStuff tolerate up to one-third faulty replicas under partial synchrony assumptions. BFT underpins many permissioned blockchains and critical replicated services requiring strong consistency in hostile environments. Trade-offs include message complexity, latency, and scalability compared to crash fault tolerance. Quorum sizes, leader election, and view changes are key design aspects.
ALTERNATIVE DEFINITIONS
Wikipedia
Byzantine fault tolerance (BFT) is the property of a system that can resist the class of failures known as Byzantine faults, which are arbitrary or malicious failures.
Connects BFT directly to the Byzantine failure model and adversarial behavior.
NIST Computer Security Resource Center
An arbitrary fault that can appear in many different ways, including malicious behavior.
Defines the failure model that BFT must tolerate.
RELATED TERMS
Byzantine Generals Problem Consensus PBFT Paxos Raft Durability (ACID) CAP Theorem Blockchain Proof of Stake Replication
COMPETING TERMS
Crash Fault Tolerance
RELATIONS
- Broader: Consensus
KNOWLEDGE AREAS
Infrastructure Software Engineering Real-time & Streaming Data Data Engineering
TARGET AUDIENCE
Software Architect Solution Architect Cloud Architect Software Developer Data Engineer AI Engineer
EXTERNAL SOURCES
- Wikipedia - Byzantine fault tolerance
- MIT (Castro & Liskov, PBFT) - Seminal PBFT paper detailing practical BFT
- Tendermint - BFT consensus for blockchain
- Ethereum - Overview of PBFT-style consensus
TOP QUESTIONS
Why is Byzantine Fault Tolerance needed?
It ensures safety and liveness even when nodes behave arbitrarily or maliciously, critical for adversarial or untrusted environments.
Category: Relevancy
How many faults can BFT tolerate?
Classical protocols tolerate up to ⌊(n−1)/3⌋ Byzantine faults in a system of n replicas.
Category: Example
What’s the difference between BFT and Crash Fault Tolerance?
CFT assumes nodes fail by stopping; BFT assumes arbitrary failures, including lies and collusion, requiring stronger consensus.
Category: Misunderstanding
Is BFT scalable to hundreds of nodes?
Traditional BFT has high communication overhead; newer designs improve scalability but still face efficiency trade-offs.
Category: Opinion
Where is BFT used in practice?
Permissioned blockchains, critical control systems, and replicated services requiring strong guarantees under adversarial conditions.
Category: Example
What assumptions do BFT protocols rely on?
Typically partial synchrony, authenticated channels, and bounded Byzantine fraction for safety and liveness.
Category: Requirements
How does leader rotation help BFT?
View changes replace faulty leaders to maintain progress and reduce the impact of malicious behavior.
Category: Explanation
What is PBFT’s main contribution?
It showed practical performance for state machine replication with Byzantine faults in real networks.
Category: Example
Do public blockchains use classical BFT?
Some use BFT variants (e.g., Tendermint, HotStuff) or hybrid approaches combined with proof-of-stake.
Category: Example