
ビットコインの隠れ事件2 チェーン分岐事件
第2の事件の発生
東日本大震災の2年後の2013.3.11、ビットコインのチャットに問い合わせがありました。
ブロックチェーンの長さが環境によって異なるらしいのです。
この時はもう、サトシはもういなくなっていました。
この事件の顛末は文書BIP0050にまとめられており、BIP0050事件と呼ばれています。
I'm not a miner or a merchant, what should I do?
Nothing. Your bitcoin software will switch to the correct chain automatically, no matter which version you are running.
Are my bitcoins safe?
私は採掘者でも商人でもありません。どうすればよいですか?
何もない。ビットコイン ソフトウェアは、実行しているバージョンに関係なく、正しいチェーンに自動的に切り替わります。
私のビットコインは安全ですか?
何が起こったのか
いくつかの報告から、ブロックチェーンの225430番目のブロックから枝分かれしていることがわかりました。この枝分かれをフォークと呼びます。
枝の一方はビットコイン・バージョン0.7.2が作成し、もう一方はビットコイン・バージョン0.8.0が作成したのです。
枝分かれの意味
ビットコインの方針は「一旦決めた契約は誰も途中で変更が許されない」ということだと、オーバーフロー事件で述べました。
この現象は、ビットコインの方針に反し、旧バージョン0.7.2が新バージョン0.8.0にバージョンアップされる際、ブロックを作成するルールが変更されたことを意味します。
枝分かれの原因
旧バージョン0.7.2で採用していたデータベースはBerkeley DBでした。新バージョン0.8.0では性能向上を目的にLevelDBに変更したのです。
旧バージョン0.7.2での、1ブロックに格納する取引の最大数はBerkeley DBの設定値で決まっていました。ビットコイン開発チームはこれがビットコインのルールであるとの認識がなかったらしく、彼らが作成していた文書にも記載がありません。即ち、「1ブロックに格納する取引の最大数は」はビットコインの隠れルールだったのです。
行われた対策
対策案1:新バージョン0.8.0に全員がアップグレードする。
対策案2:旧バージョン0.7.2にダウングレードする。
新バージョン0.8.0に全員がアップグレードしてくれればよいのですが、事件発生時点で残り40%がアップグレードしてくれていません。新バージョンに切り替わった時、多くの取引データが無効になってしまいます。このままでは、いつ新バージョンのチェーンに切り替わるのか見通しが立たず、影響の予測ができません。
以上を考慮し、これらの対策案のうち、旧バージョン0.7. 2へダウングレードを実施するという方針が素早く決定されました。チェーンの分岐の発覚の1時間後です。

事件の教訓
ビットコインのルールが変わるとブロックチェーンが分岐するという事がわかりました。
今回の事件は意図したものではありませんが、意図して分岐させることも可能だということになります。
【マガジン】BITCOIN
ビットコイン誕生前夜 Winny
ビットコイン誕生前夜 Napster
ビットコイン論文の先頭1ページを読むと見えてくること
ビットコイン実現のために解決すべき 二重使用問題
Peer to Peerネットワーク ブロックチェーンの基礎技術 その1
大福帳 ブロックチェーンの基礎技術 その2
ビットコイン マイニングとは
ブロックチェーン ブロックを覗いてみる、コードを書いてみる
ビットコインで隠れ事件発生 オーバーフロー事件
ビットコインの隠れ事件2 チェーン分岐事件(本件)
ビットコインに関連した事件
仮想通貨は法定通貨より便利