ビットコインの論文を徹底解説~サトシ・ナカモトの目指していたものとは~後編

前編では、ビットコインが生まれた背景や解決しようとしていた本来の課題、具体的にどのような仕組みなのかを解説しました。

後編では、前編で紹介した方法の根拠や、実現するにあたっての周辺事情の整理などに触れています。

論文段階のビットコインと現在のビットコインとの違いや、現在出回っている情報の正確性などが実感できるかと思います。

※注意事項
・この記事は論文の日本語訳版ではありません。
・技術者ではない人に向けた、著者独自の解釈、言い回しを含んでいます。
・原文「Bitcoin: A Peer-to-Peer Electronic Cash System」と合わせて読んでいただくことを推奨します。

7.ブロック内ディスクスペースの節約

第7章では、ブロック内のデータ構造の説明をしています。
少し技術的な内容になりますが、P2P方式におけるデータ共有の仕組みの理解が進むことでしょう。

ブロック内に取引データが一定数取り込まれたら、ブロック内のスペースを節約するために、古い取引データを削除することが可能です。

ブロック内の取引データは、ハッシュ木(マークル木ともいう)というデータ構造を用いているため、古いデータを削除しても、最終的にブロックを暗号化した値を取り出す際に全く影響を与えません。

(左)ハッシュ木に格納されている取引データ
(右)古い取引データを削除した後のハッシュ木に格納されている取引データ

上図の通り、最終的に出力されるブロックのハッシュ値は、ブロックヘッダ内に格納されているデータから生成されるため、ブロックヘッダの外にあるデータは、上位のハッシュ値が生成された時点で不要になるということです。

このブロックヘッダの容量は約80バイトであり、仮に10分ごとにブロックが形成される場合、1年間に約4.2メガバイトが必要になります。(=80×6×24×365/1,000,000(1メガバイト=100000バイト))

2008年時点で、標準的なコンピュータは2ギガバイトのRAM(記録装置)を搭載しており、ムーアの法則によるとこれが1年間に1.2ギガバイトのペースで向上しています。(1ギガバイト=1000メガバイト)

そのため、ブロックヘッダのデータは全てコンピュータに保存しておくことができることになります。

8.簡易的な支払い検証

第8章では、取引を簡易的に検証するためには、最長のチェーンにおける各ブロックのブロックヘッダのデータだけを保持しておけばいいことを説明しています。

なぜかというと、ブロックヘッダ以外のデータは、P2Pネットワークの他のノードに要求することでいつでも手に入れることができるためです。

他のノードから入手したデータは、そのブロック内のハッシュ木のデータを調べることで検証できます。

しかし、この方法はネットワークが善意のあるノードによって運営されている、という前提の元に成り立ちます。

自分自身で全て検証できるノードは問題ありませんが、この簡易的な方法によって検証するノードは、ブロック内に不正な取引があった場合にそれを見破ることができません。

これに対しては、不正な取引を含むブロックが見つかった場合に、善意のあるノードがそのことを全てのノードに共有することで解決できますが、最善の方法は他のノードに頼らずに自分自身で検証することです。

9.価値の結合と分割

第9章では、コインの結合と分割について説明しています。

電子的である以上、コインをばらばらに扱うことが可能になりますが、少額の取引をそのまま全て分けて処理していては非常に不便で効率が悪いです。

この問題を解決するために、一度に複数の取引をまとめて処理することでコインの分割と結合を可能にしています。

通常、取引内の入力と出力の関係は、入力の方が大きくなるようになると考えられます。(入ってきた額以上を出すことはできないため)

こうすることで、一つの取引が複数の取引と依存関係になりますが、過去の特定の取引履歴を独立した状態で取り出す必要性がないため、問題ないといえるでしょう。

10.プライバシー

第7章から第9章まで少し技術的な内容が続きましたが、第10章では、この仕組みにおけるプライバシーについて説明しています。

従来のオンライン支払いにおけるプライバシー

金融機関などを介在させたこれまでのオンライン支払いの仕組みでは、取引情報へのアクセスを当事者と信頼できる第三者に制限することで、プライバシーを保護しています。

P2P方式の支払いにおけるプライバシー

P2P方式による支払いでは全ての取引情報を公開するため、公開鍵を匿名にすることで情報の流通を制限し、プライバシーを保護します。

要するに、P2P方式において取引情報は公開されますが、その取引情報は現実の個人とは結びついていないということです。

プライバシーとは個人情報であるといえるため、個人が特定されない取引情報がどれだけ広範囲に共有されようが、プライバシーは保護されているという考え方をしています。

少し話がそれますが、先日のNEMの不正送金事件で、不正送金されたNEMがどこにあるかはわかっても、それを誰が保持しているかはわからない、ということと似ています。

さらなるセキュリティ対策として、取引の度に新たなキーペア(秘密鍵と公開鍵)を作成することで、取引情報が同一の場所に集まっていることが露呈しないようにもできます。(この方法は、現在使用されているウォレットサービスでは標準的に採用されています。)

懸念としては、複数取引をまとめて行う場合にその分だけ露呈しまうことと、特定のキーの所有者が明らかになった場合に、その所有者に紐づくその他の取引も明らかになってしまう点があります。

11.数学的な根拠

いよいよあと2章となりました。
第11章では、第4章で登場したプルーフオブワークに関して、悪意のあるノードがデータを改ざんするためにはどれだけの計算能力が必要になるのかを、数学的根拠と共に実証しています。

非常に数学的な内容になっており、かつソースコードも登場しますが、ここではわかりやすくするために一部の数式や計算結果を省略いたします。
この章は特に原文と照らし合わせながら読んでいただくことを推奨します。

第6章(経済的インセンティブ)で説明しましたが、悪意のあるノードが善意のあるノードの数を上回った場合、悪意のあるノードが行う行動は以下の2つになると考えられます。

  • 過去の履歴を改ざんしてこれまでに支払った額を奪い戻す
  • これから新しく発行するコインを独占する

なぜかというと、善意のあるノードは不正な取引やブロックを受け付けないからです。

正しいチェーンと不正なチェーンの競争

この仕組みにおいては、最も長いチェーンを正しいチェーンとみなすため、2つのチェーン(善意のあるノードが運営するチェーンと悪意のあるノードが運営するチェーン)の争いは、ランダムウォーク(発生するイベントが無作為に決まること)のようであると考えられます。

正しいチェーンが1ブロック伸びたときは善意のあるノードが1歩リードし、逆に悪意のあるノードは1歩後退する、反対の場合も同様であるということです。

不正なチェーンが正しいチェーンに追いつく確率は、ギャンブラー破産問題(ギャンブルで同額を賭け続けると破産する確率が高くなるという理論。資金が少ないギャンブラーは膨大な資金力を有する胴元には勝てないということを証明している)に似ています。

ここで証明したいことは、不正なチェーンが一度でも正しいチェーンに追いつくことができる確率は、追いつくべきチェーンのブロック数が増えるほど指数関数的に小さくなる、ということです。

論文では、以下の数式によって証明しています。

p=善意のあるノードが次のブロックを形成する確率
q=悪意のあるノードが次のブロックを形成する確率
qz=zブロック分遅れている不正なチェーンが正しいチェーンに追いつく確率

p>qと仮定すると、qzは、追いつくべき正しいチェーンのブロック数に応じて指数関数的に小さくなります。

そのため、早い段階で正しいチェーンとの差を詰めることができなければ、追いつく可能性は限りなく小さくなっていきます。

取引が正しいことの証明にかかる時間

それでは、取引が事実上改ざんできないことを確認するためには、どれだけの時間が必要なのでしょうか。

ここでは、取引の送信側が悪意のあるノード受信側が善意のあるノードであるとします。
送信側はしばらくの間、支払いは済んでいると受信側に思い込ませ、一定期間後、支払った額を自分に戻すよう不正していると仮定します。

受信側は、いずれその取引が不正であることに気付きますが、送信側は、受信側がそのことに気付いた時には既に遅しの状態であることを期待します。

送信側は、取引を送信したのと同時に、異なる内容の不正な取引を正しいチェーンとは別のブロックに取り込み、不正なチェーンとして生成し始めます。

受信側は、自分の正しい取引がブロックに取り込まれ、そのブロックを含む正しいチェーンがzブロック分伸びたことを確認しますが、その間に悪意のある送信側が、密かに不正なチェーンをどれほど伸ばしていたかを知ることはできません。

しかし、正しいブロックが設計どおりの平均的な時間で形成されると仮定した場合、悪意のあるノードが伸ばせるブロックの長さは、ポアソン分布(特定の期間中に平均λ回起こる事象が、特定の回数起こる確率の分布)に従うと考えられます。

不正なチェーンが正しいチェーンに追いつく可能性は、チェーンを生成し始める時に、悪意のあるノードがkブロック分を形成し終えている確率にz-kの差(正しいチェーンに連結されているブロックの数−不正なチェーンに連結されているブロックの数)から追いつく確率を掛け、それを全てのkに足すことで求められます。

論文では、実際にいくつかの数字を当てはめて試してみた結果が記載されており、不正なチェーンが追いつく確率は、zが増えるほど指数関数的に小さくなっていることがわかります。

q=0.1の場合:
z=0 P=1.0000000
z=1 P=0.2045873
z=2 P=0.0509779
z=3 P=0.0131722
z=4 P=0.0034552
z=5 P=0.0009137
z=6 P=0.0002428
z=7 P=0.0000647
z=8 P=0.0000173
z=9 P=0.0000046
z=10 P=0.0000012

q=0.3の場合:
z=0 P=1.0000000
z=5 P=0.1773523
z=10 P=0.0416605
z=15 P=0.0101008
z=20 P=0.0024804
z=25 P=0.0006132
z=30 P=0.0001522
z=35 P=0.0000379
z=40 P=0.0000095
z=45 P=0.0000024
z=50 P=0.0000006

また、不正なチェーンが追いつく確率が0.1%未満であれば十分に確率は低いだろうと仮定した場合、以下に示す個数のブロックを必要とします。

P < 0.001の場合:
q=0.10 z=5
q=0.15 z=8
q=0.20 z=11
q=0.25 z=15
q=0.30 z=24
q=0.35 z=41
q=0.40 z=89
q=0.45 z=340

つまり、正しい方のチェーンにブロックが5つ以上連なっていれば、不正なチェーンが追いつく確率を0.1%未満に抑えることができるということです。

12.結び

最後の章となる第12章では、ここまでで説明してきた一通りの仕組みを改めて整理しています。

この論文では、信用を必要としない電子的な取引の仕組みを紹介しています。

まず、電子署名を活用したコインを考えましたが、多重支払いを防止できないことが判明したため、Proof of WorkによるP2P方式のネットワークを考案し、取引履歴を公開することにしました。

こうすることで、善意のあるノードが大部分を占めるネットワークにおいては、悪意のあるノードがデータを改ざんしようとすることは実質不可能である状態を実現できます。

このネットワークは強固な作りになっており、ノードは自由にネットワークに接続または解除することができますが、解除していた間に発生した取引は他のノードから受け取ることができます。

各ノードはCPUパワーを用いることで、チェーンに正しいブロックを連結させていき、不正なブロックは拒否していきます。

この合意形成メカニズムによって、定められたルールやインセンティブの仕組みが実現されます。

この記事のまとめ

前編・後編に渡ってビットコイン論文の解説を行ってきましたが、ここで少し意外な事実を整理してみました

  • タイトル部分での登場を最後にBitcoinという単語が登場することはなかった
  • Blockchain(ブロックチェーン)という単語は論文には一度も登場していない
  • Mining(マイニング)という言葉も登場していない

その他、ビットコインのブロックサイズを約2MBにしたことや、取引の承認に約10分かかるといったことも、論文では触れられていません。
これはおそらく、実際にビットコインを開発する際に開発者たちの間で決められていった仕様なのでしょう。


また、最近のスケーラビリティ問題での文脈で、ビットコインは少額決済が実現できないといった議論が活発になっていますが、そもそも論文段階では、ビットコインは明確に少額決済を目指したシステムではありませんでした。


物作りには当たり前のことですが、今となってはどんなに優れた物でも、構想段階で既に完璧だったということはありません。


ビットコインも同じように、論文で発表されてから時間をかけて改良を重ね、現在の仕様になっているのです。当然、今後も改良が重ねられるため、一層優れた仕組みになることが期待できます。


この機会にぜひ、ビットコイン以外の仮想通貨の概要書(ホワイトペーパー)にも目を通してもらえたらと思います。

関連記事

【仮想通貨】アービトラージの方法とは?その仕組みや稼ぎ方について

PoS(プルーフオブステーク)とは?定義・仕組み・PoWとの違い

【2018年版】ビットコインの今後について徹底考察

仮想通貨の半減期とは | 価格への影響について徹底解説

ブロックチェーンとは?改めて基礎からわかりやすく解説

仮想通貨を始めるなら安心・安全な取引所で

日本最大手の取引所「bitFlyer」

  • ※現在新規登録停止中です
  • 日本最大の仮想通貨取引所
  • 金融庁公認なので安心

公式サイトはこちら

仮想通貨FXなら安心のGMO

GMOコイン

  • GMOなのでセキュリティ万全
  • 2wayプライスなので取引が簡単
  • 現物取引にも対応

公式サイトはこちら