CS PAPERS DEEP-READ · PAPER 38
Lamport, Shostak, Pease · SRI International · ACM TOPLAS 1982
In 1982, Leslie Lamport and two colleagues posed and solved a question: if a group of people who can only coordinate by passing messages has some liars and saboteurs mixed in, can the honest ones still agree? Their answer was striking — yes, as long as the traitors are fewer than one-third of everyone; once they reach one-third, no. This idea is the bedrock of every "resist-the-cheaters" system today: Bitcoin, blockchains, fault-tolerant bank ledgers all trace back here.
Several divisions of the Byzantine army surround an enemy city, each led by a general, and the generals can only send word by messenger. They must all attack together or all retreat together — the worst outcome is "half attack, half retreat," which loses for sure. The trouble: some generals are traitors who deliberately tell one person "attack" and another "retreat," sowing chaos to keep the loyal generals from lining up. The question: can the loyal generals guarantee they all act as one?
Take the smallest case: three people, one traitor. The paper proves it's impossible. Picture yourself, an honest general, receiving two contradictory messages: the commander says "attack," but another general relays "the commander told me to retreat." You simply cannot tell: is the commander honest and the relayer lying? Or is the commander a traitor who told different people different things? Those two situations look identical to you. You have no way to decide, and any choice can be wrong. With too few people, a traitor's lies are enough to muddy the water past the point of telling truth from falsehood.
Two things. First, enough people — the honest ones must be more than two-thirds (traitors under one-third), so lies can't outnumber truth. Second, everyone relays and then takes a majority vote: each person not only hears the commander but also tells everyone else "here's what the commander told me." Now each honest person accumulates a whole pile of "accounts of the commander's order," of which the traitors can pollute only a few. Take the majority and the truth surfaces — and every honest person computes the same majority, so they all act alike.
All that relaying is laborious. The paper offers a second route: stamp every order with an unforgeable "wax seal" (a digital signature). The seal can't be faked, and any tampering with the contents shows. Now a traitor can no longer secretly alter the commander's words to deceive — the moment he changes anything, checking the seal exposes it. With signatures, the honest ones can agree no matter how many traitors there are, and the one-third barrier falls away. The cost: you first need a reliable signature scheme nobody can forge — itself hard to build in the real world.
Among people who coordinate by relaying messages and include liars, as long as the traitors are under one-third, "everyone relays plus majority vote" lets the honest ones act as one; at one-third there's no cure — unless every message carries an unforgeable signature, in which case any number of traitors can be tolerated. This is the starting point of every "resist-the-cheaters" distributed system.
Want the three-general impossibility proof, the recursive algorithm, and message costs? → switch to the Deep version
This paper casts the problem of "reaching agreement in a distributed system when some nodes may behave arbitrarily and maliciously (lie, send conflicting messages, fake failures)" as an allegory of besieging generals, and proves two foundational results: with oral messages (a relayed message can be altered), tolerating m traitors requires at least 3m+1 generals (traitors must be fewer than one-third), achieved by a recursive algorithm OM(m); but once unforgeable digital signatures are introduced, any number of traitors can be tolerated. It defined the "Byzantine fault" — the strongest fault model — and is the intellectual origin of Byzantine fault tolerance (BFT) and every later blockchain consensus.
m / node count n: m is the maximum number of faulty nodes the system must tolerate, n the total; the paper's core result is precisely the numerical relationship between them.The authors Leslie Lamport, Robert Shostak, and Marshall Pease were at SRI International; the paper appeared in ACM TOPLAS in 1982. It is the allegorical retelling of the same group's more formal 1980 paper, Reaching Agreement in the Presence of Faults — it was this "Byzantine generals" framing that made the problem famous. It follows Lamport's 1978 Time, Clocks reflections on ordering events in distributed systems, and opens the whole field of Byzantine fault tolerance (BFT): PBFT (1999) first made it run; Bitcoin (2008) gave it a probabilistic answer in an open network.
Reliable systems often tolerate faults by "running redundant copies and voting for the majority." But that hides an overlooked assumption: a broken component only "stops working," it doesn't "actively misbehave." Reality disagrees — a faulty sensor may report different readings to different queriers, a bad memory cell may intermittently flip and flip back, a compromised node will deliberately send carefully crafted false messages. Such "arbitrary, even maliciously coordinated" failures the authors call Byzantine faults.
The difficulty: an honest node cannot, from its own received messages alone, distinguish "the other party is faulty / lying" from "the message source itself is bad." Worse, a traitor can tell different people different things, making "the world you see" and "the world I see" disagree, so honest parties reach different decisions. The problem is distilled into two requirements (the authors call it interactive consistency):
Swap "general" for "computer / replica" and "the commander issues an order" for "some node broadcasts a value," and this is the hardest consistency problem in distributed systems.
One of the paper's biggest contributions is the metaphor itself. Recasting abstract "arbitrary node misbehavior" as "some of the besieging generals are traitors" instantly gave the field a shared language. To focus, the authors reduce "everyone deliberating as equals" to a more basic sub-problem: one commander sends an order to several lieutenants, where the commander or some lieutenants may be traitors. Solve this "one-way command" version, then let each general take a turn as commander, and you can stitch together agreement among all.
Consider the oral message model — a message is delivered correctly, the receiver knows who sent it, and a missing message is detectable, but a traitor may freely misreport what he "heard" (altering the content when relaying, with no accountability). In this model the authors prove a sharp lower bound: to tolerate m traitors, the total number of generals must be n ≥ 3m+1 — that is, traitors must be fewer than one-third.
Why? Look at the smallest counterexample: three generals, one traitor — no solution. The honest lieutenant L1 holds only two pieces of information: the order the commander gave directly, and the order lieutenant L2 relays as "what the commander told me." When these conflict, L1 faces two worlds that are, to him, completely indistinguishable:
In Case A, IC2 requires L1 to obey the commander's true order "attack"; but in Case B L1 sees exactly the same thing, so if he still "attacks" while, symmetrically, the loyal L2 received "retreat" and obeys it, the two loyal lieutenants act oppositely — violating IC1. Whatever rule L1 adopts, some case makes him wrong. A "grouping" reduction then generalizes it: if 3m generals could tolerate m traitors, partition them into three groups each simulated by one "super-general," and you'd derive a solution for "three generals, one traitor" — which was just shown impossible. Contradiction. Hence n ≥ 3m+1 is a hard lower bound.
Beyond the bound, the authors give an algorithm OM(m) (Oral Message) that attains it, by recursively relaying and taking majorities layer by layer:
OM(0) (when no traitors need tolerating): the commander sends the order to each lieutenant, who accepts it as-is.OM(m): the commander sends the order to n−1 lieutenants; then each lieutenant takes "the order he received" as a new order, acts as commander, and runs OM(m−1) to the other lieutenants; finally each lieutenant takes the majority of the n−1 values (one straight from the commander, one relayed via each other lieutenant) as his decision.The intuition: after an order is relayed over enough independent paths, the traitors can pollute only a minority, so a majority vote filters out the true value; and every loyal lieutenant computes the same majority for each "source," so they agree. The figure shows the smallest solvable case — four generals, one traitor:
The cost is steep: OM(m) needs m+1 rounds of communication, and the message count grows exponentially in the number of traitors (each recursion level fans out n−1 ways). This is why it long stayed theoretical and hard to engineer directly.
The oral model's fatal flaw is that "relaying can freely alter." The authors' second key is unforgeable digital signatures: attach the sender's signature to each order, and stipulate that a loyal general's signature cannot be forged, any alteration of the content is detectable, and anyone can verify it. Now a traitor can no longer tamper with others' words to deceive — he must either forward faithfully (carrying the original signature) or lie only about his own order, and the latter is exposed the moment the signature is checked.
Under the signed model, algorithm SM(m) has each lieutenant maintain a set of "orders seen": on receiving a new order bearing a sufficient signature chain, add it, append one's own signature, and forward to those who haven't seen it. Because misreporting is blocked by signatures, all loyal lieutenants end up with exactly the same set of orders, and applying the same "choice function" to that set (e.g. the unique value, else default to retreat) makes them agree. The conclusion is extremely strong: with signatures, the loyal ones can agree no matter how many traitors there are, and the 3m+1 shackle breaks. The price is needing a trustworthy, unforgeable signature infrastructure up front — precisely the homework that public-key cryptography and blockchains would do a decade or more later.
This is a theory paper; its "results" are theorems, not benchmarks:
m traitors exists if and only if n ≥ 3m+1; n = 3, m = 1 is already unsolvable.OM(m) satisfies IC1 and IC2 when n ≥ 3m+1, attaining the bound with m+1 rounds and exponentially many messages.SM(m) is solvable for any m, bypassing 3m+1 entirely.It equipped the whole field with three things. First, a vocabulary: "Byzantine fault / Byzantine fault tolerance" became the universal name for the worst-case, malice-included fault model, opposite "crash fault" — today any talk of fault tolerance begins by asking "which kind are you defending against?" Second, a quantitative red line: 3m+1 (needing a two-thirds honest majority under malice) became a design constant for countless protocols, from PBFT to consortium chains to Tendermint / HotStuff, all writing the tolerance threshold as "fewer than one-third malicious." Third, an engineering trajectory: Castro & Liskov's PBFT (1999) made it practical (polynomial messages, running real services), and Bitcoin (2008) gave probabilistic Byzantine fault tolerance in a new open, anonymous setting — Satoshi's "trustless double-spend" is essentially an open-network Byzantine Generals Problem. Every "resist-the-cheaters" distributed ledger today has this paper in the first cell of its family tree.
3m+1 means tolerating m bad nodes needs three-times-plus the machines, far costlier than the 2m+1 for crash-only faults (as in Paxos / Raft). Many systems therefore prefer to assume only crash faults.① In one sentence: casts "how to agree when nodes may behave arbitrarily maliciously" as besieging generals with traitors, and gives the fault-tolerance bound and algorithms.
② Pain point: classic fault tolerance assumes "broken = stops working," but real faults may lie, send conflicting messages, collude maliciously (Byzantine faults); honest nodes can't tell "who is faulty / who is deceiving."
③ Goal: IC1 all loyal generals obey the same order; IC2 when the commander is loyal, they obey his true order.
④ Oral lower bound: tolerating m traitors needs n ≥ 3m+1 (traitors under one-third); three generals with one traitor is unsolvable — loyal parties receive identical messages in two cases and can't distinguish them.
⑤ Algorithm OM(m): recursive relaying plus majority vote, attaining the bound in m+1 rounds, but exponential message count makes it impractical.
⑥ Signed version SM(m): unforgeable signatures expose lies, any number of traitors solvable, bypassing 3m+1 — at the cost of needing reliable signature infrastructure.
⑦ Impact: defined the "Byzantine fault tolerance" vocabulary and the 3m+1 red line; opened PBFT, Tendermint/HotStuff, and Bitcoin and every anti-cheating consensus.
⑧ Limitations: strong synchrony assumption (cf. FLP asynchronous impossibility), membership must be fixed and known, high redundancy cost, and the signed version outsources the hard part to cryptography.