過去に見つかったビットコインの重大な欠陥
ビットコインを発明し、未だその正体が分かっていないサトシ・ナカモト。そんなサトシが残した約2年間の文章を、小宮自由氏の解説と共に紹介する連載「サトシ・ナカモトが残した言葉〜ビットコインの歴史をたどる旅」の第48回。
まずサトシのメールの前に、本連載の元になっている書籍『ビットコイン バイブル:サトシナカモトとは何者か?』の著者フィル・シャンパーニュ氏の解説も掲載する。
フィル・シャンパーニュ氏の解説
ビットコインのソフトウェア/プロトコルに、送金者が無効な取引を送ってしまう重大な欠陥が見つかった。これは、送金者が新規ビットコインを産出してしまうというもので、修正されるまでに数百万の無効なビットコインが産出された。この分は後にブロックチェーンから削除された。
サトシ・ナカモトの投稿
それではサトシの投稿をみていこう。
========================
***警告***バージョン 0.3.6へのアップグレード
投稿:サトシ 2010年07月29日 午後07時13分06秒
(注:斜体部分は、サトシ以外の者の質問を指す)
速やかにバージョン0.3.6へのアップグレードをお願いします! 虚偽の取引が「承認済み(accepted)」と表示される実装バグを修正しました。バージョン0.3.6へのアップグレードが済むまで、ビットコイン取引を支払として承認しないで下さい!
直ちに0.3.6にアップグレードできないときは、それまでの間、ビットコイン・ノードをシャットダウンするのが最善策です。
0.3.6でもハッシュ処理速度がアップしています。
・midstateキャッシュの最適化。tcatmに感謝。
・Crypto++ ASM SHA-256*1。BlackEyeに感謝。
全体で生成スピードが2.4倍のアップ。
ダウンロード:http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.6/
ウィンドウズとLinuxの利用者へ。0.3.5を取得しても、0.3.6へのアップグレードが必要です。
========================
【訳注】
*1 Crypto++ は暗号化、復号化、メッセージ認証コード生成、ハッシュ関数などのセキュリティ機能を提供するC++のクラスライブラリ。ASMはアセンブリ言語(Assembly language)のこと。したがって、この文は、BlackEyeがCrypto++ライブラリのために、SHA-256ハッシュ関数をアセンブリ言語で最適化したことに対する感謝を表している。
解説
ビットコインはイーサリアムと違いロールバックをしたことがない、というのは誤解で、このときのバグについてはロールバックを行っています。コイン生成バグはあまりにも致命的なバグであり、過去の取引を取り消さなければブロックチェーン全体の整合性が失われるからです。
近年においては、ビットコインは非常に安定して開発されており、大きなバグも出ていないので、ロールバックが起こる可能性は非常に低いでしょう。
小宮自由