2026-09-06
Paxos and Raft assume nodes fail by crashing or going silent — fail-stop failures. Byzantine Fault Tolerance (BFT) drops that assumption. Nodes might send different messages to different peers, forge signatures, delay selectively, or outright lie about what they've seen. The name comes from Lamport's 1982 paper about generals coordinating an attack when some might be traitors.
Why you'd care: BFT matters when you can't trust the nodes themselves — not just the network. Blockchains are the obvious case: anyone can run a node, so some will be adversarial. But it also shows up in aerospace (SpaceX's Dragon flight computers use BFT because cosmic rays can flip bits and produce arbitrary output), financial settlement networks, and any multi-organization consortium where no single party controls the whole cluster.
The core math: To tolerate f Byzantine nodes, you need at least 3f + 1 total nodes. That's the rule of thumb. Why 3f+1 and not 2f+1 like Raft? Because a Byzantine node might vote "yes" to one peer and "no" to another. You need enough honest nodes that any two quorums of size 2f+1 must overlap in at least f+1 honest nodes — guaranteeing one honest node appears in both and can't be outvoted by liars.
How PBFT (Practical BFT) works: Three phases per request — pre-prepare (leader broadcasts request), prepare (replicas broadcast to each other that they saw it), commit (replicas broadcast that 2f+1 others also saw it). A replica executes only after collecting 2f+1 commit messages. The double-broadcast is the price of catching a lying leader.
Concrete example: Hyperledger Fabric's ordering service can use BFT-SMaRt to tolerate malicious orderers across competing banks in a consortium chain. Four orderers tolerate one traitor. If Bank A's node tries to reorder transactions to front-run Bank B, the other three refuse to reach quorum on the bad ordering.
The costs are brutal:
When to skip BFT: If you run all the nodes in your own datacenter, you don't need it. Raft is dramatically simpler and faster. Reach for BFT only when the trust boundary crosses organizations or when hardware faults can produce arbitrary output, not just silence.
