Byzantine Generals
Liars, loyalists, and the 3f + 1 safety net.
See why you need three times as many honest generals as traitors to agree on a single plan, and how messages can split the room.
Byzantine faults 3f + 1 rule Message splitting Majority vote
Quick guide
- Pick generals (n) and traitors (f); the sim enforces f ≤ (n−1)/3.
- Initialize, then Step or Auto-run to watch rounds of messages.
- Badge shows agreement: attack, retreat, or impossible if n < 3f+1.
Controls
Pick crew & order
Need n ≥ 3f + 1 to outvote traitors; otherwise agreement is impossible.
Message rounds
Round: 0 Agreement: — Decision: —
Commander sits at the top; lieutenants form the ring. Circles = generals (green honest, red traitor), badge = current vote (A/R). Lines = messages this round. Stops when honest agree, after f+1 rounds, or if n < 3f+1 is impossible. Inbox chips below show each node’s A/R totals per round.
Orders, liars, and the 3f + 1 cushion
- Set n and f; traitors are capped so n ≥ 3f+1 stays possible.
- Initialize: commander (always honest) shares the initial order; lieutenants get the same starting vote.
- Step sends one round of messages; Auto-run animates rounds until a decision or stop.
- Agreement shows majority among honest; Decision shows if we reached a stable outcome.