Chapter 3 · What If We Do Not Trust the Bookkeeper?
How can people who do not trust one another maintain the same state?
- Capabilities practiced
- Mental ModelProtocol Literacy
- Hands on
- Have three people simulate bookkeeping with pen and paper. One secretly alters the ledger; see how the others discover it.
- AI Lab
- Have AI design a system that needs no trusted bookkeeper. Attack it with double-spending, Sybil attacks, and collusion.
A Real-World Problem
A badminton group of about twenty people meets weekly. Members take turns paying for courts and shuttlecocks, and everyone reimburses them afterward.
Wang initially volunteers to keep the accounts in the group announcement. Everyone is happy. Three months later, the first disagreement appears: Wang says you owe 180, but after checking your transfers, you think you owe 120.
Nobody is lying. Wang may have missed an entry, or you may have confused it with another transfer. The group argues for two days, then compromises at 150.
The incident is minor. But scale it up by changing three variables, and its nature changes:
Twenty people become two hundred. Nobody can reconcile from memory now; everyone must trust the announcement's numbers.
Hundreds in payments become hundreds of thousands. Omitting a payment now brings enough benefit to tempt someone.
You and Wang become strangers. You no longer even have the judgment that he probably would not cheat you.
The question emerges: without a bookkeeper everyone accepts, how can a group maintain one shared record?
Notice the shape of the question. Finding a more honest person or buying better software does not answer it. Chapter 2 explained how real-world ledgers gain credibility through licenses, audits, regulation, and courts. This chapter asks whether another method exists when those constraints are absent.
Thought Experiment
Move the village into a room.
Ten people each hold a notebook. There is no bookkeeper or village chief. One rule applies: to transfer money, stand up and shout—for example, “I send five shells to number 3.” Everyone who hears it records the transfer in their own notebook.
In theory, all ten notebooks should stay identical. In practice, problems appear one after another.
First problem: someone does not hear clearly. Number 4 sneezes and misses a transfer. Half an hour later, people discover a mismatch but cannot say whose book is wrong.
This is manageable: stop periodically, reconcile, and correct minority versions to match the majority.
Second problem: impersonation. Number 7 lowers their voice and shouts, “I am number 3; I send fifty shells to number 7.” Everyone records it. Number 3 returns to discover fifty missing.
This too can be handled: each person posts a secret mark on the wall that only they can reproduce and must show it when announcing transfers. Everyone hears the announcement, but everyone can immediately verify whether it really came from the claimed person.
Third problem: conflicting announcements at opposite ends of the room.
Number 3 has only five shells. They go left and tell A, B, and C, “I send five to A.” Simultaneously, an accomplice on the right tells D, E, and F, “I send five to F.”
Both announcements carry number 3's genuine mark, and each is completely valid in isolation. The three notebooks on the left assign the five to A; the three on the right assign them to F.
Reconciliation now reveals two plausible versions, not a recording error. Majority rule also fails because each side has the same number of people.
Fourth problem: head counts can be forged.
Someone suggests majority voting. Number 9 immediately realizes they can wear different hats and impersonate twenty people. Nobody can verify whether a new arrival is an independent person; they only see another hat.
Majority voting assumes one person, one vote, but this room cannot establish that each person has only one identity.
So far, only the first two problems are solved. Stop and think: what would you do about the third and fourth?
Your Decision
Three different notebooks now exist. The group must choose a rule for which version counts.
What Happens
The four rules appear to debate different things but address the same problems. Maintaining a shared record among mutually distrustful people has four layers:
| Layer | Question it answers | What failure means |
|---|---|---|
| Identity | Who made this announcement? | Anyone can impersonate anyone |
| Validity | Does it obey the rules? | Someone can create balances from nothing |
| Ordering | In what order do announcements take effect? | The same money can be spent twice |
| Finality | When can the record no longer change? | Received money can disappear at any time |
The first two layers are verification: each person can complete them independently without asking anyone's opinion. Checking marks and sufficient balances in your own notebook yields the same conclusion as everyone else's.
The last two are different. Ordering and finality have no objective answer, only shared agreement. Neither of number 3's announcements is physically more “first”; the room must choose one.
Pause here, because this is among the course's most misunderstood points:
The hard part of maintaining a shared record among people who distrust one another is ordering, not storing data.
An ordinary database can handle tens of thousands of writes per second, faster and more reliably. Its efficiency rests on an assumption: there is one writer, and that writer does not lie. Ordering is straightforward because one party determines it.
Remove that assumption, and throughput is no longer the main issue. A database processing a million writes per second still cannot choose between number 3's conflicting statements. This is a question of agreement, not performance.
So a system with an administrator everyone accepts needs none of this chapter's mechanisms. Use a database; it is faster and cheaper. Remember this when judging why a project needs a blockchain.
Build a Model
Turn the four layers into a chain. Every transaction moves from left to right:
- Identity: who said it?
- Validity: does it follow the rules?
- Ordering: what comes first?
- Finality: this is settled
The second model is a measuring scale. Use it on any supposedly decentralized system: whom are you still trusting?
| Level | What you trust | How it can fail |
|---|---|---|
| One person | The bookkeeper's character and competence | Tampering, disappearance, or error |
| One institution | Licensing, auditing, regulation, and courts | Bankruptcy, regulatory failure, or unavailable cross-border recourse |
| A group | They will not collude or all be compromised | Collusion, collective coercion, or a manipulated roster |
| Rules plus verification | Rules fixed in code that you can inspect yourself | Flawed rules, or never actually verifying them |
Two marks on this scale are easily overlooked.
First, the final level does not mean no trust. It replaces trust in someone's goodwill with trust in rules you can inspect. Trust changes form rather than disappearing. This is why the course repeatedly asks you to verify personally instead of memorizing conclusions.
Second, moving right is not always better. It reduces efficiency, raises costs, and removes remedies after mistakes. The badminton group does not need the final level. A bookkeeper everyone trusts is the best solution for that setting.
The last model concerns how many malicious participants a system tolerates. There is a major distinction:
- If participants only disconnect or crash, without lying, fault tolerance requirements are more relaxed.
- If participants can lie deliberately and send different messages to different people, the threshold becomes much stricter. Such designs typically require malicious participants to control less than one-third or one-half, depending on the design, for all honest parties eventually to see the same record.
This chapter concerns the second category. A system that handles crashes does not necessarily handle betrayal. The engineering difficulty differs by an order of magnitude.
What It Is Called
Now name the phenomena.
The complete shared record at a particular moment: who has how much, and who owns what.
All ten notebooks should contain the same state. A transaction moves it from one version to the next.
Independently checking whether something holds without relying on anyone's claims.
Checking a mark or a balance is verification. Its result does not depend on whom you trust, which fundamentally distinguishes it from hearsay.
Much of a chain's value comes from anyone being able to run the checks themselves without asking an authority.
Believing a person or institution will behave as expected where you cannot verify independently.
Notice the definition's key point: what you verify does not require trust; what you have not verified does. Many people believe they use a trustless system but merely transfer trust to a webpage, dashboard, or tweet.
The mechanism that lets mutually distrustful participants agree on ordering and finality.
It does not discover truth: there is no intrinsic truth distinguishing number 3's two announcements. It makes all honest participants eventually choose the same one.
A participant deliberately lies, potentially sending different messages to different people, rather than merely failing or disconnecting.
The third problem is the standard example. Systems tolerating it are Byzantine fault tolerant; public chains belong to this category.
The name comes from a 1982 paper's metaphor: armies surrounding a city communicate through messengers, but traitors may issue contradictory orders. How can loyal generals coordinate?
One person fabricates many identities to manipulate rules based on head counts or votes.
The fourth problem is an example. This is a fundamental problem for every open network: if anyone can join freely, anyone can join repeatedly.
The solution requires each identity to correspond to something that cannot be copied from nothing. Chapter 4 uses computation; later chapters use staked assets.
The point at which a transaction will no longer be overturned.
In some designs, it is a strengthening probability: later is safer, but never absolutely risk-free. In others, it is a definite moment: a round explicitly locks the record.
This distinction is central to understanding different chains. Chapter 6 unpacks it fully.
Bring it together:
Consensus is a set of rules for ordering and finality without an administrator, not merely a database technology.
Begin evaluating any chain by asking whether the task could still be done without it. If so, it does not need a chain.
Hands-on
No computer is needed. Find two friends and spend twenty minutes turning “I understand” into firsthand experience.
Prepare. Everyone copies the same starting state:
A:10
B:10
C:10Agree that a transfer must be spoken aloud, and the other two people update their sheets independently. Speak only; do not inspect anyone else's paper.
Run five ordinary rounds. Transfer arbitrary amounts, such as “A sends three to B” or “C sends five to A.” Then stop and compare all sheets.
They will probably match. If not, determine who made an error and in which round. Notice how you established that; the process itself is part of the answer.
Introduce a cheater. Designate C, without telling the others the method. After a round, C secretly increases their balance by five.
Run five more rounds and compare again.
Answer: how do A and B know C's sheet is wrong? By comparing totals, or reconstructing history? If you compare only final numbers, can you establish that C changed theirs rather than A and B both making a mistake?
Run the crucial experiment: B tells A and C different things.
B has four shells. First B tells A, “I send four to A,” then tells C, “I send four to C.” Both statements come from B and neither exceeds the balance.
Now A's and C's sheets disagree, though neither made a recording mistake.
Discuss for five minutes: how do you decide which statement counts? Every proposal must first answer who has the authority to announce the order.
Record the solution you settle on and its weaknesses.
Keep the sheet. Chapter 4 presents the answer offered in 2008, letting you compare where your solution differs.
AI Lab
Use two steps. The second is the important one.
First, ask for a design:
Design an accounting system where participants can freely join and leave,
do not trust one another, and may lie or send different messages to different people.
No role may require everyone's trust.
Explain four things:
1. How to establish that a transfer came from its claimed sender
2. How to determine whether a transfer is valid
3. Which rule chooses between conflicting transfers
4. When a transfer can no longer be overturned
Do not use the words “blockchain” or “consensus algorithm.” Describe the mechanisms themselves.Second, attack it one scenario at a time. Paste the design back unchanged and ask about one scenario per turn:
Scenario 1 (double spending): Someone with five units simultaneously sends a five-unit transfer
to each half of the network. Both have valid signatures.
Which takes effect in your design? Who decides, and within what time?
Scenario 2 (Sybil): Someone creates ten thousand identities and joins the network.
Which part of your design fails? What does creating one identity cost?
Scenario 3 (collusion): Some participants secretly coordinate and lie consistently to others.
What maximum proportion can your design tolerate? What happens above it?
How is that proportion calculated?Most models produce a complete-looking design first, then fail scenario one or two. The most common flaw is a quietly introduced central role: a node that orders transactions, a timestamp service, or a trusted bootstrap node.
Find that role and you find where the design's real trust lies.
Record all three attacks and responses. This becomes one of the strongest pages in your stage artifact: evidence that you understand what consensus must prevent, not merely its definition.
Verify these points yourself after using AI
- For double spending, check whether it actually chooses between two valid statements rather than merely saying the network rejects invalid transactions
- For Sybil attacks, check whether majority nodes or votes depend on identities with no specified cost; costless identity counts provide no security
- For collusion, check whether tolerance thresholds such as one-third or one-half are derived or copied, and which fault model they assume
- Look for a secretly introduced central role: coordinator, sequencer, timestamp service, or trusted bootstrap node
- Check whether finality is a strengthening probability or a definite locking round, and whether the design states which
- Ask for the basis of every numeric threshold; mark unsupported ones unverified
Real-World Case
Armies surround a city and communicate only through messengers. They must act together—attack together or retreat together. Some generals may be traitors sending opposite orders to different people.
The paper's contribution was turning deliberately dishonest participants into a rigorously discussable mathematical problem and specifying proportion conditions under which honest participants can agree.
Before it, distributed systems mainly considered broken machines. After it, a machine deceiving you became a distinct assumption. Every public chain's security argument rests on this assumption today.
Several digital cash attempts appeared that decade. Some were technically sophisticated and had solved anonymous payments and anti-counterfeiting.
They shared a structure: a central institution had to issue and clear the money, preventing the same money from being spent twice.
When the company stopped operating, the system disappeared and users' balances became worthless. The failure followed from the structure: these systems solved verification but delegated ordering to a company.
This history is necessary for understanding the next chapter: Bitcoin addresses precisely the layer those designs avoided.
An Ethereum contract holding substantial funds was exploited to withdraw assets. After intense debate, the community changed client software to restore pre-attack state and recover the funds.
Some participants rejected the change and continued running the original rules. The chain split into two, both continuing today.
The model locates the lesson clearly: immutability is not a physical law; it rests on enough people continuing to run the same rules. Enough people can decide to change them, while dissenters can continue with the old ones.
This is both a decentralized system's vulnerability and its essence. Chapter 24 returns to another side of the incident.
Change One Variable
The threshold becomes much lower. Now you handle missed messages and absent listeners rather than conflicting lies.
These systems are more mature and faster. Most internet companies' database clusters use this model.
This explains why a bare claim that blockchains are slower than databases misses the point. One assumes participants only fail; the other assumes participants may deceive you.
Sybil attacks nearly disappear: an extra person is immediately noticed. Majority voting works again and can be much faster.
The cost is that collusion or shared external pressure on those four can defeat the system. Also, deciding who may enter the room becomes a power someone must hold.
This is a consortium chain's structure. It suits many business settings, but its trade-off must be stated honestly: knowing one another buys efficiency, using the assumption public chains deliberately avoid.
This looks clumsy but directly targets Sybil attacks: candles are actually consumed, and twenty hats cannot create twenty candles.
Three side effects follow. Ordinary users must burn candles too, shifting costs to everyone. Those with more candles gain more influence: wealth and influence become linked. Candles can also be rented: attackers need temporary access, not ownership of the resource.
All three effects appear unchanged in the next chapter, with electricity replacing candles.
This is the most counterintuitive and important of the four variables.
Earlier designs sought immediate decisions. Allowing a wait simplifies things: conflicting versions temporarily coexist, and as later records accumulate, the abandoned version becomes less likely to return.
Time buys certainty. You need not give a perfectly correct answer at second zero; you need the wrong answer to become increasingly expensive to sustain.
The cost is that settlement changes from a yes-or-no question into a curve. Chapter 6 explains the curve and when waiting only partway is acceptable.
Takeaway Questions
Choose three of the Eighteen Questions for this chapter.
This chapter directly answers the question, and the answer cuts both ways.
Use one criterion: is there an administrator every participant is willing to accept? If yes, a database is faster and cheaper. Consensus becomes relevant only when none exists, because parties are cross-border, competitors, or strangers.
Apply this test to every project. Most “blockchain + industry” proposals fail it, because their setting already has an accepted central party.
Consensus is not free. Burned candles, node electricity and bandwidth, and the time spent waiting are real costs.
Ask who pays: user fees, protocol issuance, or early-investor subsidies? These produce three very different sustainability profiles. Chapter 7 calculates them.
This question has a concrete meaning here.
Many designs reward consensus maintainers with tokens and price security costs in tokens. A sharp token-price decline lowers attack costs, while attack proceeds may not decline with it.
For a public chain, surviving a token going to zero is therefore a security question, not merely a financial one. Real attacks on small chains often trace back here; chapter 4 provides examples.
Chapter Check
The performance assumptions differ. Ordinary databases are fast because one writer determines ordering and is assumed not to lie.
Blockchains face mutually distrustful, potentially dishonest participants agreeing on order. No objective answer exists to query; agreement must be established. A faster database does not answer this.
An important consequence: if your setting already has an administrator everyone accepts, do not use a chain.
An independently checkable conclusion is verification; accepting someone else's claim is trust.
You can check signatures, balances, and compliance with rules yourself, regardless of whom you trust.
But being able to verify is not having verified. A webpage, dashboard, or tweet still involves trust. Each hands-on exercise moves the boundary a little toward actual verification.
Establishing an independent person requires an authority that issues identities and judges authenticity. Introducing it returns you to chapter 2: everyone must trust that authority, which also decides who may participate.
An open network instead must tie each identity to something that cannot be copied from nothing: expended computation, staked assets, or consumed resources.
Forging ten thousand identities is easy. Forging ten thousand real costs is not.
One is probabilistic: more subsequent records make reversal less likely, but never strictly impossible.
The other is deterministic: a completed round explicitly locks records, which cannot revert unless security assumptions fail.
The practical consequence is that “confirmed” means different things on different chains, requiring different waits. Chapter 6 covers when less waiting is acceptable; chapter 8 explains chains' different choices.
There is no answer key, but check three things.
First, is there a bookkeeper everyone accepts? If so, a solution already exists.
Second, if not, is the issue distrust or inconvenient reconciliation? Inconvenient reconciliation needs a shared spreadsheet, not consensus.
Third, what are the amounts and head counts? Consensus has real costs. Introducing a complex system for a few hundred in court fees is overengineering.
Knowing when a chain is unnecessary matters as much as knowing when it is necessary. Chapter 25 turns this judgment into a thirty-minute process.
Key idea
The problem blockchains solve is maintaining state without an administrator, not database speed.