Skip to content

Byzantine Generals & Sybil Attacks

We’ve established the goal: get untrusting, anonymous computers to agree on one ledger with no boss. Two famous obstacles stood in the way. Bitcoin’s genius is that one mechanism (Proof of Work) defeats both at once — but first you have to understand why they’re so hard.

Obstacle 1 — The Byzantine Generals Problem

Section titled “Obstacle 1 — The Byzantine Generals Problem”

This is the formal model of consensus among parties when some are malicious. It was described by Lamport, Shostak, and Pease in 1982.

Several generals surround a city, each with an army. They can only communicate by sending messengers through enemy territory. They must reach a unanimous decision — all attack or all retreat. If some attack while others retreat, they lose.

Now add the hard parts:

  • Some generals may be traitors who send different messages to different people (“attack” to one, “retreat” to another) specifically to sabotage agreement.
  • Messengers can be delayed, lost, or even forged.

Can the loyal generals still reach reliable agreement despite traitors and unreliable messaging? That is the Byzantine Generals Problem, and “Byzantine fault tolerance” (BFT) is the name for any system that can.

Bitcoin’s network is exactly this scenario: thousands of computers, scattered worldwide, communicating over an unreliable internet, some of them honest and some actively trying to cheat (e.g., to double-spend). They must agree on one transaction history. Solving Byzantine agreement in an open network was widely considered the core unsolved barrier to decentralized digital cash.

Suppose you try the democratic fix: let the computers vote on the correct ledger; majority wins. In a closed system with known participants, voting can work. In an open, permissionless network like Bitcoin’s, it collapses — because of the Sybil attack.

The problem with voting when identities are free

Section titled “The problem with voting when identities are free”

Anyone can join Bitcoin’s network. Creating a “node” is free — just run some software. So an attacker can spin up a million fake nodes and instantly command a fake majority.

If influence is “one identity, one vote,” and identities cost nothing, then votes cost nothing, and any attacker can manufacture as many as they like.

This is named after the book Sybil, about a person with many personalities — one real actor wearing many masks.

Decentralized digital money needs a mechanism that simultaneously:

  1. Reaches Byzantine agreement — one consistent history even when some participants lie, and
  2. Resists Sybil attacks — so an attacker can’t just fake a majority of participants.

For decades, nobody had one mechanism that did both in an open, permissionless setting. That’s the gap Satoshi closed.

  1. Restate the Byzantine Generals Problem in your own words. What are the two “hard parts”?
  2. Why is Bitcoin’s network a real-world instance of this problem?
  3. Why does “one node, one vote” fail in an open network?
  4. Complete the sentence: to make voting meaningful, influence must be made ______ and ______.