目次

    全ての目次を見る
  1. ビットコインとビザンチン将軍問題
  2. ビザンチン将軍問題とは合意形成問題
  3. ビザンツ帝国での合意形成問題
  4. ビットコインが提示したビザンチン将軍問題の現実解
  5. ビットコインとビザンチン将軍問題のまとめ
Large        01

雑誌やニュースで取り上げられている、ビットコインですが、最近(2017/12/04)では1BTCの価値が100万円を超え、更なる注目が集まっています。

そもそも、ビットコインが注目されるきっかけとなったのは、なぜかご存知でしょうか。

ビットコインが注目されるきっかけは、ビザンチン将軍問題に対する、現実解を提示したからです。

この記事では、『ビザンチン将軍問題とは何か』を明らかにし、ビットコイン提示した、現実解について解説していきます。

現実解とは、『完全ではないが、考えられる最上の解決策』という意味で使用しています。

(ビザンチン将軍問題について確認する前に、ビットコインについて改めて確認したいという方は以下の「ビットコインとは?」の記事をご覧ください)

ビザンチン将軍問題(ビザンチン障害)とは、レスリー・ランポート博士によって提唱された、分散型ネットワーク(図解)での合意形成(意思決定)問題(後述)のことをいいます。

分散型ネットワークとは、中央管理者の存在しないネットワークのことで、データはネットワーク参加者で分散して管理されています。

下図は、中央集権型ネットワーク(クライアントサーバー型)と、分散型ネットワーク(P2Pネットワーク)の比較図です。

  • ビットコインでは、P2Pネットワークが使用されており、取引データを管理するブロックチェーンという台帳を、P2Pネットワークの参加者で分散して管理しています。ブロックチェーンとは、取引データをまとめたブロックがチェーン状に繋がったものです。

そして、合意形成問題とは、『 悪意ある参加者がネットワークに参加している、あるいは、送られてくる情報に信ぴょう性がない場合、ネットワーク全体で1つの意思決定ができない』という問題です。

分散型ネットワークの合意形成問題が、なぜ『ビザンチン将軍問題』なのかというと、次の段落で解説する『ビザンツ帝国の将軍達の合意形成問題』に起因します。

どういうものか見ていきましょう。

前提 ビザンツ帝国の9人の将軍がA国を滅ぼすため、A国を包囲しています。

9人の将軍の中の1人は、A国側の人間(裏切者)X

Xは、ビザンツ帝国を敗北に導こうとしています。

A国に勝つ条件
9人の将軍による同時攻撃

意思決定方法
9人の将軍による多数決

『撤退』or『攻撃』に一人一票。
選択したら、文で自分の意志を、他の将軍に伝える。

※自分の意見を8人の将軍に文で伝えるため、直接話し合うことはできません

現在、『X』を除いた8人の投票(表明)がおこなわれ、意見は、『撤退:4, 攻撃:4』と意見が真っ二つに別れています。

『X』の投票の番がきました。

さて『X』はどのようにして、ビザンツ帝国を敗北させるのでしょうか

下図をご覧ください。

ビザンチン将軍問題

ビザンチン将軍問題

上図で、Xは『撤退』を表明している将軍には『撤退』、『攻撃』表明をしている将軍には『攻撃』の文を送ります。

『撤退』を表明していた将軍は、多数決の結果『撤退』に決まったと判断し、撤退します。

一方、『攻撃』を表明していた将軍は、多数決の結果『攻撃』に決まったと判断し、攻撃を仕掛け、敗北してしまいます。

すなわち、ビザンチン将軍問題とは、離れた将軍同士では、悪意ある将軍によって、攻撃or撤退の決定(全体の1つの意思決定)ができなくなる可能性があるという問題のことです。

ビットコインは分散型ネットワーク(中央管理者のいないネットワーク)を使用しているため、同様の問題が懸念されます。

しかし、ビットコインでは、Proof of Workというコンセンサスアルゴリズムを採用することで、ビザンチン将軍問題に現実解を示したのです。

コンセンサスアルゴリズムとは、ブロックチェーンに、誰の(どの)ブロックを追加するかというルールを定めたアルゴリズムのことです。

ビットコインでは、このProof of Workが採用されているため、全体での意志決定(誰のブロックをブロックチェーンに追加するのか)が、中央管理者なしに実現できています。

次の段落では、Proof of Workに基づいた、ビットコインの意思決定方法について解説しています。

Proof of Workでは、参加者に計算問題を解かせ、一番早く正解を求めた参加者が生成したブロックを、ブロックチェーンに追加することを定めています。

ビットコインでは、取引データをブロックチェーンに追加するために、不特定多数の参加者がブロックを生成しています。

ビットコインのProof of Workでは、以下の手順で『誰のブロックを追加するのか』決めています。

  • ①取引データをまとめたブロックを生成

  • ②ブロックチェーンへの追加権利をかけて、計算問題を解く

  • ③一番早く計算をした人は、答えを他の参加者に報告

  • ④ほかの参加者が、正否を判断

  • ⑤正解なら、正解者の生成したブロックをブロックチェーンに追加する

ビットコインのProof of Workでは、膨大な計算を課すことで、参加者の改ざんも困難になっています。

Proof of Workで、なぜ改ざんが困難なのかは、ブロックチェーンのデータ構造と深く関わっています。

気になる方は、『革命を起こすブロックチェーンの仕組みとは?』の記事をご覧ください。

この記事の内容をまとめると以下の通りです。

  • ビザンチン将軍問題とは、全体で適切な合意形成ができない問題のこと

  • ビットコインでは、膨大な計算を課すことで、ビザンチン将軍問題を解決

ここで解説したのは、ビザンチン将軍問題に対する解として、初期に考案されたProof of Workです。

現在では、Proof of Workをきっかけに、ビザンチン将軍問題に対する、さまざまな解が示されています。

仮想通貨NEMやリップル(XRP)ではPoWの欠点を補った、PoI(Proof of Importance) とPoC(Proof of Consensus)がそれぞれ使用されています。

気になる方は、『ブロックチェーンのコンセンサスアルゴリズムまとめ』の記事をご覧ください。