2100万枚が崩れかけた日|2010年のBTCバグとフルノードの証明
2100万枚という上限を、あなたはどこで確認していますか。
「常識として知っている」「どこかで読んだ」という人は多い。しかし2010年8月、その上限が崩壊しかけた瞬間があったことを知っている人は少ない。
ブロック#74638で起きたこと
2010年8月15日、ビットコインのブロック#74638に異常な取引が含まれた。
出力値の合計は約1840億BTC。当時のルールが定める2100万枚という上限を、軽く7000倍以上も超えた数字だった。
原因は整数オーバーフローのバグだ。ビットコインのコードは取引の出力値を64ビット符号付き整数で扱っていたが、このとき入力値の合計が演算の最大値を超え、内部的に負の数として処理された。結果として検証ロジックが「合計は正常」と誤判断し、あり得ない量のBTCが生成された状態でブロックが承認されてしまった。ビットコインが誕生してから、まだ2年も経っていない頃の話だ。
数時間での修正と、ネットワークの選択
問題に最初に気づいたのは技術者たちだった。報告から数時間以内に、サトシ・ナカモトを含む開発者がパッチを作成し、修正版クライアントを配布した。
しかしパッチを配布しただけでは終わらない。ビットコインは中央集権的なシステムではないため、誰かが「これが正しいバージョンです」と一方的に宣言することはできない。修正を有効にするには、ネットワークに参加しているノードの過半数が新しいルールに従う必要があった。
実際、ネットワークは修正後のチェーンに移行し、問題のあるブロックを含む古いチェーンは放棄された。技術的には「チェーンの巻き戻し」と呼ばれる処理だ。1840億BTCが生成されたブロックは、まるで存在しなかったかのようにネットワークから排除された。
当時のビットコインのユーザー数や市場規模は今とは比べ物にならないほど小さく、開発者と参加者の迅速な合意がなければ、ビットコインの歴史はここで終わっていた可能性もある。
取引所保管者には、何も見えない
ここで一つの問いを立てたい。
あなたのBTCが取引所に預けてある場合、あの日のような問題が起きたとき、自分で何かを確認できますか。
答えは「ほぼ何もできない」だ。
取引所はユーザーに代わってBTCを保管し、秘密鍵を管理している。取引所が使用しているノードがどのチェーンに乗っているか、どのバージョンのルールを適用しているか、ユーザーが直接確認する手段は存在しない。取引所の画面に表示された「残高」はあくまで取引所のシステムが提示する数字であり、ビットコインのネットワークとユーザーが直接接続しているわけではない。
2010年の事件で言えば、もしある取引所がパッチを適用せず古いチェーンに残り続けたとしても、そのユーザーには判断材料がなかった。どちらのチェーンに従うかを決めるのは取引所であり、ユーザーではない。これは法的な所有権の問題ではなく、「自分でルールを検証できるか」というアクセス権の問題だ。
フルノードが毎秒行っている検証
一方、フルノードを自分で動かしている場合はどうか。
フルノードはビットコインのすべての取引履歴を自分でダウンロードし、ルールに照らして一件ずつ検証している。2100万枚の上限もその検証ルールの一部であり、ルールに違反するブロックは自動的に拒否される。
2010年のバグが入ったブロックも、フルノードが動いていれば原理的に検出できる。実際、問題に最初に気づいたのもネットワークに接続して動作を観察していた技術者たちだった。
今日のビットコインには世界中に2万台を超えるフルノードが稼働しており、互いに独立してルールを検証している。どこか一箇所が間違えても、他のノードがそれを拒否する。この分散した検証の仕組みが、2100万枚という数字を実際に支えているものだ。「上限は2100万枚」という事実は、誰かの言葉ではなく、フルノードが今この瞬間も演算し続けている結果に過ぎない。
16年前のバグが問い続けること
2010年のバリューオーバーフロー事件は、ビットコインが「完成された技術」として登場したわけではないことを示している。バグはあった。しかし開発者とノード参加者の合意によって修正された。それ自体がビットコインという仕組みの証明でもある。
同時に、この事件は一つのことを明確にした。ビットコインのルールが守られているかどうかを自分で確認できるのは、フルノードを運用しているセルフカストディ保有者だけだ、という事実だ。
取引所に預けているBTCについて、ルールが正しく適用されているかを検証する権限は、あなたではなく取引所が持っている。その構造は16年前から何も変わっていない。
ハードウォレットとフルノード。始めるのに遅すぎることはない。
※本記事は一般的な情報提供を目的としており、投資助言ではありません。
この記事が参考になったら、セルフカストディの具体的な始め方もチェックしてみてください。
LINE登録でセルフカストディの始め方を学ぶ 正しい手順を無料でお届けします