ビットコイン・インスティテュート

レイ・ディリンジャーの​インタビュー — ビットコインの​初期コードレビューを​語る

紺色を基調にしたインフォグラフィックで、虫眼鏡が台帳のような文字列を覗き込み、罫線で囲まれた小数値と整数値のボックスが並び、割れた壺からこぼれた硬貨の隣に硬貨の列が続き、様式化された地図の上では小さな機材アイコンの集まりが一箇所だけ明るく光っている。

ビットコインホワイトペーパー10周年企画として、Great Wall of Numbersのティム・スワンソンがレイ・ディリンジャーに2008年11月のコードレビューについて取材した。インタビュー全文はこちら。ディリンジャーによれば、サトシは証明チェーンのコードを直接送ってきて、本人いわく「堅牢」だったという。信頼を要する役割が一切無いシステムは「誰もこれまで考えつかなかったもの」だったと語るほど、興味を引かれたそうだ。

ディリンジャーが見つけた最も重大な点は、本来なら機能しないはずの設計判断だった。ビットコインの会計処理には整数ではなく浮動小数点数が使われており、それは「金額計算と浮動小数点は長い悲惨な歴史がある」組み合わせで、最初に気づいた時はパニックに陥ったという。サトシの説明は、他の数値型を持たないJavaScriptとの互換性を考慮したことと、異なるクライアントが異なる答えを出してチェーンがフォークしないよう、丸め誤差のバグを事前に潰しておきたかったことだった、とディリンジャーは振り返る。彼自身の本音は逆で「JavaScriptなんか知るか、丸め誤差を不可能にしたい」というものだったが、その後会計コードを丸め誤差がないか調べ尽くしても、一つも見つからなかった。

その理由をディリンジャーはこう説明する。satoshiという単位は、倍精度浮動小数点数で丸めなしに扱えるビット精度のすぐ上に設定されており、2100万ビットコインを超える加減算でもしない限り、satoshi単位に影響する丸めはそもそも起こらない設計だったのだ。PGPの暗号処理で浮動小数点の正確な計算を扱った経験があるハル・フィニーは、ディリンジャーほどこの設計を懸念していなかった。二人は、丸め誤差への余裕を持たせるためsatoshiを大きくするか、精度限界近くに保ってエラーが即座に検出可能な形で致命的に発生するようにするか、を議論したという。

レイ・ディリンジャーのウェブ文書(2018年10月1日)

固定供給の経済では、コインを保持することは市場平均金利で上昇することが保証された無リスクの投資となるから、合理的な投資家は生産的なビジネスに投資するよりもホーディングするだろ。

ディリンジャーは古代ローマを引き合いに出す。金属を通貨とした経済は、人々が経済を回すのに十分なお金を持っていたにもかかわらず崩壊した。誰もが将来の利益を期待してコインを貯め込み、資本を得られなかったビジネスは繁栄しなかった、というのだ。「1500年後の今でも、俺たちはローマのコインの埋蔵物を発見し続けている」。同じホーディングの力学は、ビットコイン自身の歴史でも起きている。価値を生む希少性そのものが、現金としての利用を衰退させた。

マイニングについて、ディリンジャーは、電力補助金が安い場所にASICが集中し、ハッシュパワーの大部分がたった一つの政府の意向次第という立場に置かれることを、サトシは想定していなかったはずだと見ている。その懸念は本インタビューの1年前にすでに現実になっていた。2017年の中国によるICO・取引所禁止では、当時ハッシュレートの大きな割合を占めていた中国のマイナーが、たった一つの政府の意向次第という立場に置かれ、その後マイナーは国外へ移転していった。

本インタビューは、レイ・ディリンジャー伝記が要約する公開前監査の技術的な中身を補うものである。また一人称の回顧「今わかっていることを当時知っていたら」とも対をなし、そちらは本インタビューが技術的に記録する2008年11月の同じレビューについて、誰が・いつ・なぜ関わったかを語っている。