コードレビューについて
サトシは証明チェーンのコードを検査のために俺に送ってきた。堅牢だと判断した。
俺がビットコインに興味を持ったのは四つの理由からだ。長年考えてきた課題に取り組むデジタルキャッシュプロトコルであること、中央証明チェーン(現在のブロックチェーン)を使用していること、サトシが最終的に詐欺師ではないと俺を納得させたこと、そして決定的だったのは、それが非常に非常に面白かったってことだ。信頼を要する役割が一切ないという、まったく新しいパラダイムだった。誰もこれまで考えつかなかったものだよ。
浮動小数点の発見について
通貨の処理に浮動小数点型が使われてるぞ。金額計算と浮動小数点は、長い悲惨な歴史があるんだよ。発見した時は、俺はパニックに陥った。
サトシの説明はこうだ。JavaScriptとの互換性を考慮して設計していた。JavaScriptには他の数値型がない。すべての実装が同一の答えを出すように、丸め誤差のバグを事前に潰しておきたかった。異なるクライアントが異なる答えを出せば、チェーンがフォークする。それはまずいだろ。
俺の好みはこうだ。JavaScriptなんか知るか、丸め誤差を不可能にしたい、整数を使え、ってことだ。
ハル・フィニーの視点について
ハル・フィニーは、PGPの暗号処理で浮動小数点フォーマットの正確な計算を扱った経験があり、俺ほど心配していなかった。俺たちはビットコインの分割可能性について議論した。丸め誤差に対する余裕を持たせるためにsatoshiを大きくするか、精度限界近くに保ってエラーが即座に、検出可能な形で、致命的に発生するようにするか、だ。
丸め誤差がなかったことについて
俺は会計コードを丸め誤差がないかしらみつぶしに調べた。そして一つも見つからなかった。数値計算の誤差はあまりに普遍的で誰も気づかないほどなのだから、これは驚くべきことだったよ。
最小の会計単位(satoshi)は、倍精度浮動小数点フォーマットで丸めなしに扱えるビット精度のすぐ上に設定されており、すべての演算はsatoshiサイズの単位に影響するビットの丸めを許容しないように実装されていた。
ビットコインでsatoshiの丸めを引き起こすには、2100万ビットコインを超える加減算をしなければならないんだ。
デフレとホーディングについて
固定供給の経済では、コインを保持することは市場平均金利で上昇することが保証された無リスクの投資となるから、合理的な投資家は生産的なビジネスに投資するよりもホーディングするだろ。
これは古代ローマに起きたことだよ。彼らは金属(金、銀、銅)を通貨として使い、人々が経済を回すのに十分なお金を持っていたにもかかわらず、経済が崩壊した! 皆が繁栄するビジネスから後で利益を得ることを期待してコインを隠し、ビジネスは資本不足で繁栄しなかった。
1500年後の今でも、俺たちはローマのコインの埋蔵物を発見し続けているんだぜ!
ASICとマイニングの集中化について
サトシは、人為的に低い補助金付き電力料金のある場所のマイナーが他のすべてのマイナーを凌駕し、ハッシュパワーの大部分をたった一つの国に集中させ、たった一つの政府の命令と気まぐれに従わせることになるとは考えていなかったと俺はほぼ確信しているよ。