Hall
004 Solved Consensus

A transaction created 184 billion bitcoin. The cap is 21 million. Where did they go?

On 15 August 2010 block 74,638 contained two outputs of 92.2 billion BTC each. Five hours later the chain decided they had never existed.

Block
74,638
Date
15 Aug 2010
Inputs / outputs
1 / 3
Miner
Unknown
Transferred
184,467,440,737.10 BTC
Fee
0 BTC
Then
$12.91B / fee $0.0000
Now
$14,388,460.38B / fee $0.0000
Txid Identified by block 74,638 Explorer
Inputs0.5 BTC
Paid out184,467,440,737.10 BTC

The appearance

Bitcoin’s money supply is 21 million. Block 74,638, as first mined, paid 92,233,720,368.54277039 BTC to each of two addresses and a 0.01 BTC crumb to the miner — 184,467,440,737.09551616 BTC that had not existed a block earlier. The input was 0.5 BTC from a faucet. The check that 'outputs cannot exceed inputs' returned true.

Case file sealed

Investigation notes, the reconstruction, and sources sit behind this seal. Open it when you have sat with the raw transaction.

Open the case file

The investigation

  1. 01 A 64-bit wrap-around

    Output values were C++ int64. Two numbers near 2^63, added together, wrapped past the integer ceiling and became a small number. The overflowed sum was less than the 0.5 BTC input, so the overflow check passed. Jeff Garzik spotted it on Bitcoin Talk the same day.

  2. 02 A five-hour fork

    Satoshi shipped Bitcoin 0.3.10 within five hours. The patch rejected overflowing outputs and any output over 21 million BTC — a soft fork. Unpatched nodes kept building on the bad block. The patched chain overtook it at height 74,691. From that height on, every honest node treats 74,638 as a different, ordinary block.

  3. 03 What remains

    The overflow transaction is not in the canonical chain. The 184 billion coins do not exist. The 0.5 BTC the bad transaction consumed came from a faucet; after the reorg that output is unspent again, and as of the last public notes it has never moved. It is a fossil of a bug that almost broke the cap.

Reconstruction

A missing overflow check in the output-sum test let two enormous outputs wrap a 64-bit integer and masquerade as a tiny total. The coins existed for about five hours on one branch of the chain. A soft fork and a reorganisation erased them. This is why Bitcoin’s 21 million cap is not a slogan — it is a patch history.

Sources