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).