見出し画像

ビットコインの隠れ事件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?
私は採掘者でも商人でもありません。どうすればよいですか?
何もない。ビットコイン ソフトウェアは、実行しているバージョンに関係なく、正しいチェーンに自動的に切り替わります。
私のビットコインは安全ですか?

bitcoin.org

何が起こったのか

 いくつかの報告から、ブロックチェーンの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 チェーン分岐事件(本件)
ビットコインに関連した事件
仮想通貨は法定通貨より便利

ここから先は

0字
ビットコイン関係記事を発行時期によらないで、10本以上の記事を順番にすべてを読むことができます。

ビットコイン誕生前夜からナカモトサトシが姿を現さなくなるまでの出来事をいくつかの記事で紹介しています。

この記事が参加している募集

よろしければサポートお願いします! いただいたサポートは全て『「思い出の場所」の記事とGoogle地図を関連付けるWeb地図アプリ』のLancersでのプログラミングの外注に使わせていただきます。 よろしくお願いします。