Your First 90 DaysAcademy
Writing With a Machine · Solidity, and the Tool That Writes It · Week 13 · Checkpoint 28

Making It Itself Prove

Two test files for one token, both green. One of them would still be green if every transfer moved the wrong number, and the whole distance between them is four assertions written in numbers rather than in words.

15 steps~27 min3 nodes for your map
01 · Green, and empty

This board is not deployed code and belongs to no repository. It was written for this lesson as the answer a coding assistant commonly gives to three words: add some tests. Four test functions came back, they compile, and they all pass.

Read it the way you read the last twenty seven files. What it sets up, what it calls, what it asserts. Nothing in it is wrong. By board ten you will be able to say exactly what it establishes, which is very close to nothing.

02 · Two claims, and neither is evidence

It compiles. The tests pass. Both of those are claims about a run, and a claim turns into evidence only when you can say what the run would have looked like if the thing were wrong. Ask that question of these four lines.

Line 21 asserts the call returned `true`. Lines 25 and 26 assert two numbers are above zero, which they already were before anything moved. Line 37 asserts the receiver holds something, which one token satisfies as well as a thousand.

03 · What a returned true carries

Take the first test on its own. Line 19 makes the next call come from `alice`, line 20 calls `transfer` and keeps what came back, and line 21 asserts that value is `true`. Two lines of preparation and one assertion.

The token you read in week twelve ends `transfer` with `return true;` and refuses by reverting, which ends a test where it stands. Before you scroll, say what would have to happen for line 21 to report a failure.

Line 20 keeps what `transfer` returned and line 21 asserts it is `true`. What would have to be true of the token for that assertion to report a failure?
your balance2,400
BANK_DBowner: the bank
you2,400
what the app is actually showing you
BANK_DBowner: the bank
you2,400their pen
you hold a claim. they hold the pen.
your digital life
BANK · you2,400the bank ✍
INSTAGRAM · you2.1M followersMeta ✍
STEAM · you134 gamesValve ✍
AIRLINE · you58,200 milesthe airline ✍
four tables. zero pens that are yours.
BANK_DBowner: the bank
you2,400
DENIED
try both pens
PLATFORM_DBowner: the platform
her · 8 years2,000,000 followers
one automated decision away
BANK_DB · you · 2,400intentcompetencecontinuity
your row stands on all three
FTX_DBowner: FTX
you5 BTC
the backing vault●●●●●
the row stayed. the backing did not.
CARD_DBowner: your bank ✍
TV you never bought−1,100
fraud reversal+1,100
someone holds the pen, so someone can fix it
?_DBowner: nobody
youstill yours?
?
can a table exist that nobody owns?
?
?_DBowner: ̶n̶o̶b̶o̶d̶y̶
you100
no owner, no pen, no trust?
keeper 1
you100
keeper 2
you100
keeper 3
you100
keeper 4
you100
keeper 5
you100
no THE copy, only copies.
keeper 2
you100
keeper 3
you100
keeper 4
you100
keeper 5
you100
your copy
you100
five copies. one of them is yours.
one attacker
one attacker, ten thousand faces.
real machinesburned wattsnext page, sealed
writing costs watts. faking voters buys nothing.
cost paid OUTSIDE: hardware and power
proof of work, burn energy to vote.
page 1you · 100page 2you · 100page 3you · 100page 4you · 100
rewrite one line, break every lock after it.
office lunchtrusted keeperconsensusfive keepers, real cost
the price buys trustlessness. the office already has trust.
?
ownerless ledger
you?
a key, not a login?
nobody owns the table. so who owns your row?
claims and evidencereading a testthe test that could fail

Three new nodes on your map

claims and evidence · reading a test · the test that could fail · +10 Lynx