CoinYQ
約 3分Bitcoin (BTC)

1,844億ビットコインが生成された日 — サトシ・ナカモトを震撼させた2010年のバリュー・オーバーフロー危機

2010年8月、ビットコインのブロック74,638で突如1,844億枚のBTCが出現。発行上限2,100万枚の根本原理を破壊しかけた致命的バグと、サトシ・ナカモトが主導した伝説の5時間緊急フォーク劇。

1,844億ビットコインが生成された日 — サトシ・ナカモトを震撼させた2010年のバリュー・オーバーフロー危機

3点クイック要約

  • 発端 / 逆説2010年8月15日、ビットコインのブロック74,638において、整数オーバーフロー(Integer Overflow)の脆弱性を突かれ、1回の取引で1,844億6,744万BTCが不正生成。
  • 決定的瞬間2,100万枚というビットコインの絶対的な希少性モデルが崩壊の危機に瀕する中、サトシ・ナカモトと初期開発者ジェフ・ガルジックが即座に対応。
  • 歴史的結末わずか5時間でバグ修正パッチ(v0.3.10)をリリースし、コミュニティと協力して不正なブロックを孤立化させるソフトフォークを成功させ、ビットコインの信頼性を救った。

出来事のタイムライン

2010年8月15日 17:05 UTC異常ブロック74,638の生成

未検証の整数オーバーフローにより、2つのアドレスにそれぞれ922億BTC(計1,844億BTC)が送金される異常トランザクションが発生。

2010年8月15日 18:30 UTCフォーラムでのバグ特定

BitcointalkフォーラムでユーザーJeff Garzikが異常を報告。サトシ・ナカモトがコード解析を行い脆弱性を確認。

2010年8月15日 22:00 UTC修正バージョン0.3.10公開

発生からわずか5時間で、オーバーフローチェックを追加した緊急修正クライアントをリリース。

2010年8月16日チェーンの再編成と正常化

修正版チェーンのマイニングパワーが異常チェーンを追い抜き、不正ブロック53個分が完全に無効化される。

1. ブロック高74,638の異変:無から生まれた1,844億BTC

2010年8月15日の日曜日の夕方、ビットコインのブロックチェーン上で、これまでの常識を根底から覆す怪奇現象が発生した。マイニングされたブロック高74,638の中に、不可解なトランザクションが含まれていたのだ。

そのトランザクションでは、わずか0.5BTCの手数料を支払うだけで、2つの異なるアドレスに対してそれぞれ92,233,720,368.54 BTC(約922億BTC)、合計で「184,467,440,737.09 BTC(約1,844億BTC)」という天文学的なコインが新たに発行されていた。

ビットコインの総発行上限は「2,100万枚」と定められていたはずだった。だが突如として、地球上に存在し得る全ビットコインの8,784倍ものコインが一瞬にして無から生み出されたのである。

2. コードの盲点:64ビット整数の落とし穴

直ちにBitcointalkフォーラムにスレッドが立ち上がり、開発者のジェフ・ガルジック(Jeff Garzik)が異変を投稿した。事態の深刻さを把握したサトシ・ナカモトは即座にコードの調査を開始した。

原因は、ビットコインのC++ソースコードにおける初歩的だが致命的な「整数オーバーフロー(Integer Overflow)」の脆弱性だった。当時のビットコインクライアントは、トランザクションの出力(送金額)の合計が入力(保有額)を超えていないかを検証していた。しかし、出力の合計値を合算する際、64ビット整数の最大値を超えた場合の境界チェックが存在しなかった。

攻撃者は、合計すると64ビット符号付き整数の限界値($2^{63}-1$)をオーバーフローして「負の数」になるような極端に巨大な2つの送金額を設定した。システムは『出力合計がマイナスだから、入力金額以下である』と誤判定し、不正な送金を正当なものとして承認してしまったのだ。

3. サトシの電撃作戦:5時間での緊急パッチとソフトフォーク

ビットコインの存在意義である「希少性」と「信頼性」が完全に崩壊しかねない絶体絶命の危機だった。もしこの不正トランザクションが放置されれば、ビットコインは無価値なガラクタとして歴史の闇に消え去る運命にあった。

サトシ・ナカモトの対応は驚異的に迅速だった。彼は問題を特定してからわずか数時間で、出力金額のオーバーフローを厳格にチェックする修正コードを書き上げ、バージョン0.3.10クライアントをリリースした。

「修正バージョン0.3.10を今すぐダウンロードしてください。ブロック74,638以降の不正なトランザクションを含むブロックはすべて拒絶されます。マイナーは直ちに新バージョンへ移行してください」
サトシ・ナカモト(Bitcointalkフォーラム)

サトシは主要なマイナーたちに直接連絡を取り、修正版クライアントへの切り替えを呼びかけた。

4. ハッシュレートの競演と53ブロックの巻き戻し

ここから、不正なチェーンと修正された正規チェーンによる緊迫したハッシュレートの競争が始まった。ビットコインのルールでは「最も累積作業量の多い(最長の)チェーンが正当な歴史」として認められる。

当初は古いクライアントを使用するマイナーが不正チェーンを伸ばしていたが、サトシの呼びかけに応じたマイナーたちが次々と新バージョンを導入。修正から約19時間後、ブロック高74,691に達した時点で、修正版チェーンの長さが不正チェーンを追い抜いた。

その結果、不正な1,844億BTCを含んでいた53ブロック分の歴史は「オーファンブロック(孤立ブロック)」として完全に消滅し、ビットコインの歴史から綺麗に抹消された。発行上限2,100万枚の秩序は見事に回復したのである。

5. 危機が鍛え上げた分散型プロトコルの強靭さ

2010年のバリュー・オーバーフロー事件は、ビットコインの歴史上最初にして最大のセキュリティ危機だった。もしビットコインがすでに数百億ドルの時価総額を持ち、数千の取引所や機関投資家が接続されていたら、チェーンの巻き戻しはこれほどスムーズにはいかなかっただろう。

黎明期の小規模なコミュニティだったからこそ、サトシと初期マイナーたちの緊密なソーシャル・コンセンサスによって迅速な修復が可能だった。

この事件を契機に、ビットコインのコードベースには極めて厳格なピアレビューとテスト体制が導入された。「コードは間違えることがあるが、コンセンサスがそれを正す」。バリュー・オーバーフローの試練を乗り越えたからこそ、ビットコインは今日の世界的な決済基盤へと成長することができたのである。

この事件から学ぶ重要教訓(Key Takeaways)

技術 & アーキテクチャ

C++の整数オーバーフローと厳格な境界チェック

送金出力の合計値が64ビット符号付き整数の上限値($2^{63}-1$)を超えると負の数にラップアラウンドし、入力検証をすり抜ける脆弱性でした。スマートコントラクトや暗号資産コードにおける厳密な算術検証の重要性を示しています。

思想 & ガバナンス

ソーシャル・コンセンサスによる緊急事態の克服

コードは完璧ではありませんが、開発者、マイナー、コミュニティが迅速に協調することで、致命的なバグからチェーンを正常復旧できるというガバナンスの原型が証明されました。

市場 & 投資インサイト

暗号資産の黎明期リスクと耐障害性

ビットコインの価値がほぼゼロだった初期にこの脆弱性が発覚・修正されたことは、将来的な数百兆円規模の金融インフラへと成長するための幸運な試練でした。

出典・参考文献

  1. 出典 1: Bitcoin Wiki: Value Overflow IncidentBitcoin Wiki · 2010-08-15
  2. 出典 2: Bitcointalk: Major Vulnerability by Satoshi NakamotoBitcointalk Archives · 2010-08-15