ビザンチン将軍問題とは?分散型ネットワークに潜む問題を徹底解説!

▼おすすめの取引所ランキング

仮想通貨に関心のある方は「ビザンチン将軍問題」を一度は耳にしたことがあると思います。

オスマン帝国のコンスタンティノープル攻略において起きたこの問題と分散型ネットワークに潜む問題には関係性があります。

本記事ではビットコインが解決した「ビザンチン将軍問題」について紹介していきます。

ビザンチン将軍問題とは?

「ビザンチン将軍問題」はかつてオスマン帝国がコンスタンティノープルを攻略する時に起きました。

以下は問題の大まかな流れです。

オスマン帝国の将軍9名に率いられた軍勢は首都コンスタンティノープルを包囲し、ビザンチン帝国を追い詰めました。

コンスタンティノープルの城は鉄壁で容易に攻略することはできません。

・9つの部隊が力を合わせて総攻撃すれば攻略可能

・一部の部隊が攻撃しても敗北は明白

つまり、9つ全部隊が全員一致で総攻撃か撤退かの判断をしなければなりません。

各部隊は離れた位置にいるため、直接的な話し合いはできず、伝令(メッセンジャー)を派遣して合意を目指します。

ここで、この合意決定を複雑にさせるものが現れました。

一部の将軍が反逆者(ここではT将軍とする)であったのです。

9人の将軍が「攻撃」か「撤退」の二択で投票を行いました。

最後のT将軍に回ってくるまで「攻撃」4票、「撤退」4票でした。

さて、T将軍はどうやって自国を負かすのでしょうか?

答え

「攻撃」に投票した将軍には「攻撃」、「撤退」に投票した将軍には「撤退」という文書を送る。

したがって、「攻撃」に賛成していた将軍たちは手薄な軍勢で攻撃して敗退を招きます。

一方で「撤退」に賛成していた4部隊は攻撃することなく撤退してしまいます。

つまり、「ビザンチン将軍問題」とは、全体で適切な合意形成ができないことを指します。

これは分散型のP2Pネットワークにおいて、悪意ある参加者がいたり、信憑性のない情報が混じっていたりすることで発生する合意形成問題によく当てはまります。

分散型ネットワークにおける「ビザンチン将軍問題」

インターネットでは主にクライアントサーバ型モデルが採用されています。

【クライアントサーバ型】

クライアントサーバ型はクライアントサーバを分離するコンピュータネットワークのソフトウェアモデルです。左図のように、全員が共有しておきたいデータがおいてある「サーバ」があり、そこに一般のユーザーが使う「クライアント」が複数接続されている状態です。

【p2p(peer to peer)ネットワーク】

P2Pは各ピア(peer)がデータを保持し、 他のピアに対して対等にデータを共有することができる自律分散型のネットワークモデルです。サーバまたはクライアントのそれぞれの立場に固定されることがありません。

「peer」とは対等の立場で通信を行うノード、または通信相手のこと

p2pネットワークにおいて「ビザンチン将軍問題」は起こります。

P2Pネットワーク上では、各ノードは他の全ノードに関するデータベースを持っていません。さらに、各ノードは相互にメッセージを送りつける通信を行うことしかできません。

これは、ビザンチン将軍問題で考えると、各将軍が全員の将軍の意思決定が知ることができない中で、相互にメッセージを送ることしかできない状況と類似しています。

また、分散型ネットワークにおける予測不能な不具合のことを「ビザンチン故障」と呼びます。

〈ビザンチン故障〉

ビザンチン故障とは、分散コンピューティングにおいて、アルゴリズムを実行中に発生する故障・障害である。不作為障害 (omission failures) と作為障害 (commission failures) が含まれる。不作為障害とは、クラッシュ、要求を受信しそこなうこと、応答を返しそこなうことなどを指す。一方、作為障害とは、要求を不正に処理すること、局所状態が壊れること、要求に対して不正または一貫しない応答を返すことなどを指す。ビザンチン故障が発生すると、ビザンチン・フォールトトレラント性を備えていないシステムは、予期しない動作をすることがある。               (引用:https://ja.wikipedia.org

ビザンチン・フォールトトレラント性とは、ビザンチン将軍問題が発生しても、全体として正しく動作する性質のことを指します。

ブロックチェーンと「ビザンチン将軍問題」

分散型ネットワークに蔓延っていた「ビザンチン将軍問題」を、ブロックチェーンを使って解決する例がたくさん出てきています。

ブロックチェーンには、「コンセンサス・アルゴリズム」と呼ばれる、新しい情報(ブロック)を追加するためのルールがフレームワークごとに定められており、これが「ビザンチン将軍問題」の解決に導いたのです。

ビットコインの「Proof of Work」というコンセンサス・アルゴリズムを皮切りに、それを改善していくという流れで様々なコンセンサス・アルゴリズムが開発されてきました。

まずは、最も基本的なビットコインの「proof of Work」の仕組みをしっかり押さえてください。

①ビットコイン / Proof of Work(PoW)

前述したように、「ビザンチン将軍問題」を解決した代表的な例として、ビットコインがあります。

ビットコインは分散型ネットワークを使用しているため、「ビザンチン将軍問題」の発生が懸念されます。

これに対して、ビットコインは「Proof of Work」というコンセンサス・アルゴリズムを導入して解決しています。

「Proof of Work」とは?

Proof of Workは直訳すると「仕事の証明」となります。

文字通り仕事量(CPUの計算量)に応じて、ブロックチェーンに取引を記録する「誰か」を決めるという仕組みです。

簡単な取引記録までのフローはこのようになります。

  1. 取引のデータがまとめられたブロックが作られる。
  2. そのブロックをブロックチェーンに追加するために、計算問題を解く
  3. 一番早く答え(ナンス)を発見した人が、他のマイナーたちにそれを発表する
  4. 答えの正誤判断が行われ、正解であればブロックチェーンに新しく追加される

この流れを通じて、取引がブロックチェーン上に記録されるのです。

もし仮に、情報を改ざんして不正を行う場合は、改ざん時点からブロックの計算を全てやり直す必要があります。

よって、不正をするくらいならば、正しく計算を行って報酬を得た方が良いという仕組みなのです。計算によって報酬を得る行為を採掘(マイニング)と呼びます。

「Proof of Work」についてもっと知りたい方は以下の記事を参照してみてください。

▼Proof of Work(プルーフオブワーク)とは?

ビットコインなどの仮想通貨を調べていて、よく出てくるProof of Work(プルーフオブワーク)という言葉。 「聞いたことはあるけど、詳しくはわからな

②リップル / Proof of Consensus(PoC)

ビットコインの「Proof of Work」に対して、リップルで採用されているコンセンサス・アルゴリズムは「Proof of Consensus」と呼ばれます。

「Proof of Consensus」とは、直訳すると「合意による証明」という意味です。ビットコインのブロックチェーンを改良する形で開発・運用が進められている技術です。

全取引記録のことをLedger(レジャー) と言い、承認者をValidator(バリデーター)と言います。取引において信頼性のある【人 / 機関】がValidatorになることができます

基本的には各金融機関がValidatorの役割を担い、「Proof of Consensus」の信頼性を保つような仕組みになっています。

信頼ある者が取引記録において重要な役割を担うことで、不正を防ぐ働きがあります。

ビットコインのような採掘(マイニング)は行われません。

台帳には、80%以上の承認者が有効と判定した取引のみを記録します。この仕組みはビットコインの「Proof of Work」に比べて軽量であり、数秒以内という非常に速い時間、少ない電力消費で、取引の承認が可能となります。

▼基礎概念から理解しよう!高騰予測が絶えない仮想通貨リップル(XRP)とは?

今回は、仮想通貨の代表の一角を占めるリップル(Ripple/XRP)について理解するための基礎的な概念をお伝えします! リップ

③イーサリアム / Proof of Stake(PoS)

イーサリアムで今後採用予定のコンセンサス・アルゴリズムは「Proof of Stake」と呼ばれます。

「Proof of Stake」は「Proof of Work」の問題点を解消したコンセンサス・アルゴリズムになります。

「Proof of Stake」はコインを持っている量に応じてブロック承認の成功率が上がる仕組みです。また、このコインを持っている量の決め方に2種類方法があります

1.CoinAge

コインの保有量を「コインの保有期間」×「コインの量」で決めるという仕組みです。

このCoinAgeが大きいほどマイニングが成功しやすい様になっています。

2.Randomized Proof of Stake

これはランダムでPoSが行われます。

ランダムに選ばれる確率がコインの保有量によって決まるという仕組みになります。

つまり報酬を得る確率が単純にコインの保有量に比例します。

これはマイニングと対比され、フォージング(鋳造)と言われています。

フォージングでは、お金持ちが取引を承認しやすく報酬をもらいやすいので、同じ人がフォージングに成功しやすい仕組みになっています。

こちら2種類の決定方法に共通して言えることは、もしビザンチン将軍問題のような不正を試みる者がいても、この場合不正をする前にコインの多額保有が条件となってきます。

そのため現実的には起こりにくくなり問題解決に有効な手段であると言えます。

▼Proof of Stake (プルーフオブステーク)とは?PoSをわかりやすく解説

ビットコインなどの仮想通貨を調べていて、よく出てくるProof of Work(プルーフオブワーク)という言葉、聞いたことはあるけど、詳しくはわからない。そんな

④ネム(NEM)/ Proof of Inportance(PoI)

Proof of Importance」は、参加者の重要度に応じて、発言権が付与される仕組みです。

参加者の重要度は、そのコインの「保有量」と「取引の頻度」によって決定されます。

取引の評価としては、いかに様々な人と取引してくれたのか(=コインの流動性を高めてくれたのか)です。

またこれは単に保有量と取引の頻度だけで決められるのではなく、

  • 多くのノードとコインをやりとりすると評価される
  • 評価の高いノードのやりとりは高く評価される

といった仕組みも導入しており、Googleの検索エンジンの評価アルゴリズムと似た方式であると言われています。

そしてこの重要度によって決まったノードは、ハーベスティング(ビットコインで言うマイニング)を行うことが出来ます。

こちらのPoIに関しても、不正をするにはコインの多額保有・積極的な取引など条件が厳しく、不正・情報改ざんの利益に見合わないため現実的には不可能とされます。

▼Proof of Importance(プルーフオブインポータンス)とは?ネム採用のPoIを解説

ビットコインなどの仮想通貨を調べていて、よく出てくるProof of Work(プルーフオブワーク)という言葉、聞いたことはあるけど、詳しくはわからない。そんな

まとめ

今回は「ビザンチン将軍問題」について紹介しました。

「ビザンチン将軍問題」ブロックチェーンの関係性を理解していただけたと思います。

この問題に対する現実解としてビットコインのブロクチェーンを皮切りに、それを改善するという形で現在も様々な開発が行われています。

今後も仮想通貨において、分散型システムをどのように運営していくべきか考え続ける必要があるでしょう。


ブロックチェーン 仮想通貨 用語解説