Value overflow incident — 184 billion BTC created in Block 74638

On August 15, 2010, at approximately 18:08 UTC, Bitcoin developer Jeff Garzik noticed an anomaly in Block 74638 and posted on the BitcoinTalk forum:

“Strange block 74638 — 92233720368.54277039 BTC? Is that UINT64_MAX, I wonder?”

A single transaction in Block 74638 had created 184,467,440,737.09551616 BTC — two outputs of 92,233,720,368.54277039 BTC each — approximately 9,000 times Bitcoin’s total intended supply of 21 million BTC.

The bug: The transaction validation code checked that individual outputs were non-negative, but did not check for integer overflow when summing outputs. Two outputs near the maximum value of a 64-bit signed integer (INT64_MAX ≈ 9.2 × 10¹⁸) would overflow to a negative value when added together, passing the validation check: 0.5 BTC input ≥ -0.01 BTC output (after overflow).

The response: Within approximately five hours of discovery, Satoshi published Bitcoin version 0.3.10 containing a soft fork that added two new checks to CheckTransaction():

  1. Each individual output must not exceed MAX_MONEY (21,000,000 BTC)
  2. The sum of all outputs must not exceed MAX_MONEY

Satoshi posted on IRC: “URGENT: Critical overflow bug fixed. Everyone please upgrade immediately to 0.3.10.”

The resolution: The corrected chain overtook the invalid chain at Block 74691, approximately 15 hours after the incident. The 184 billion BTC were effectively erased from the blockchain’s accepted history.

The incident exposed a fundamental paradox: a decentralized system had been saved by centralized decision-making. The community followed Satoshi’s instructions without question — “Satoshi says so, it must be right.” This contradiction would weigh heavily on Satoshi in the months that followed.