Byzantine Faults
Summary: A type of failure where a node “lies” or acts maliciously, rather than just crashing.
Sources: chapter8
Last updated: 2026-04-17
In most of this book, we assume that nodes are “unreliable but honest”: they might be slow or crash, but if they respond, they are telling the “truth” as they know it (source: chapter8, p. 304).
A byzantine-faults occurs when a node is malfunctioning and not obeying the protocol, or if a malicious attacker is interfering with the network. This might include:
- Sending conflicting messages to different nodes.
- Claiming to have received a message when it didn’t.
- Purposely delaying or dropping messages.
(source: chapter8, p. 304)
Byzantine Fault Tolerance (BFT)
A system is Byzantine fault-tolerant if it continues to operate correctly even if some nodes are Byzantine. This is much more expensive and complex than handling simple crash faults, typically requiring a supermajority (more than two-thirds) of nodes to be honest (source: chapter8, p. 305).
BFT is rarely used in internal datacenters (where all nodes are under the same organization) but is critical in peer-to-peer systems like Bitcoin and other blockchains where no single authority is trusted (source: chapter8, p. 305).