「ビザンチン将軍問題とビットコインの関係性は?」
「ビザンチン将軍問題もう解決されたの?」
このような疑問や悩みを抱えていませんか?
ビザンチン将軍問題を簡単に説明するとみんなで意見を合わせたい時に、誰かひとりが悪さをすることで意見を合わせることができない問題です。
よくビットコインをはじめとする仮想通貨の中で出てくるワードですので、あなたも一度は耳にしたことはあるのではないでしょうか?
ビザンチン将軍問題を理解すれば、より仮想通貨の仕組みについて知ることができます。
そこで、本記事では初心者の方向けにビザンチン将軍問題の概要やビットコインとの関係性などを解説していきます。
仮想通貨のビザンチン将軍問題とは
ビザンチン将軍問題とは複数人がある特定の選択に対して、全員の合意形成を求めた際に、一部の者が不正を働くことで複数人の間で正しい合意形成ができない問題のことを指します。
ビザンチン将軍問題の例に、ビザンチン帝国の話がよく使われています。
代表例:ビザンチン帝国の戦い
はるか昔、ビザンチン帝国の将軍9人が王国Aを攻め落とすために城の周辺を包囲していました。
王国Aに勝利するためには、各方面に待機している将軍全員の一斉攻撃が条件で、どれかひとつでも将軍が率いる部隊が欠けた状態では勝利することはできません。
また、撤退をする際も一部の部隊だけが攻撃することがないように全員で撤退しなくてはなりません。
そのため、ビザンチン帝国の将軍は王国Aに「全員攻撃」するか「全員撤退」するかの判断をするために各方面の将軍に伝令を送り全軍で多数決を取ることにしました。
しかし、ビザンチン帝国の将軍の中には作戦を失敗させたい裏切り者Xが潜んでいます。裏切り者Xを除けば残りの将軍は8人ですので、多数決で「攻撃に4票」「撤退に4票」になれば、裏切り者Xの1票が残ります。
裏切り者Xは「攻撃」に票を入れた将軍には「撤退」、「撤退」に票を入れた将軍には「攻撃」と書いた紙を伝令に渡したのです。
その結果、「攻撃」に票を入れた軍は多数決で「全員撤退」と判断し、「撤退」に票を入れた将軍は多数決で「全軍攻撃」と判断してしまいます。
このように、ビザンチン将軍問題が原因で発生する障害のことを「ビザンチン障害」と言います。
コンピュータのビザンチン将軍問題
コンピュータのネットワークでもビザンチン将軍問題を引き起こす可能性があります。
実際に、2008年には大手オンラインストレージサービスでビザンチン障害が発生し、サービスのサーバーダウンを引き起こしています。
従来のネットワークは中央に管理機関が存在しており、ビザンチン将軍問題が起こることはありませんでした。
しかし、その後は中央に管理機関のあるネットワークから、複数のコンピュータが繋がり合う分散型のコンピュータが主流になり、ビザンチン将軍問題が問題視されるようになりました。
ビットコインのビザンチン将軍問題
実はビットコインのネットワークも中央に管理機関が存在しない分散型ネットワークが採用されています。
分散型ネットワークではネットワークに繋がったコンピュータ(ノード)は、各方面に散らばった将軍達と同じ状況にあり、他のコンピュータとの通信はできるものの中央で通信をまとめる管理機関は存在しません。
ビットコインは決済システムですので正しく取引データを処理しなくてはなりません。そのため、取引データが正しく処理されなければ決済システムとしての実用化は難しいといえます。
例えば、コンピュータAがコンピュータBには「Aさんに10BTC送金した」と通知し、コンピュータCには「Bさんに10BTC送金した」と通知した場合、10BTC送金したという取引データが重複して記録され、ビットコインの残高に不整合が生まれます。
ビットコインのPoW(プルーフオブワーク)
ビットコインのビザンチン将軍問題を解決する仕組みは、ビットコインで採用されているコンセンサスアルゴリズム(承認方式)のPoW(Proof of Work)です。
PoWを利用すれば悪意のあるノードからのデータの改ざんを防ぐことができ、取引記録を正しく処理することが可能です。
ビットコインの取引が行われると取引情報はブロックと呼ばれる取引情報の集合体に集約され、マイニングを通してブロックチェーンに繋がれていきます。
PoWの特徴でもあるマイニングでは膨大な計算作業を通して、取引記録が正当であるかどうかが検証されます。また、非常に厳しい検証作業が行われるため不正を行うことは不可能に近いとされています。
こうして、ビットコインは分散型ネットワークでありながらPoWを採用することでセキュリティ対策を施しています。
PoWの51%攻撃のリスク
ビットコインの承認方式PoWでは、取引情報の正当性を確認するために複数のノードに合意を取ります。しかし、ビットコインには全体の51%以上の承認を得た場合、その取引は承認されるという決まりがあります。
そのため、もし不正が行われ、間違った計算結果であったとしても正当なデータとしてみなされ、ブロックチェーンに記録される可能性があります。この問題を「51%攻撃」と言います。
ビザンチン将軍問題は完全に解決されたわけではない
ビットコインのビザンチン将軍問題は100%解決されたわけではありません。正確には「ビザンチン将軍問題が発生する可能性を限りなく0%近づけた」と解釈することが適切です。
まとめ
・ビットコインは従来の分散型ネットワークの脆弱性をPoWで解決した。
・ビットコインのビザンチン将軍問題は100%解決されたわけではない。
・PoWではマイニングと呼ばれる計算作業を通して取引の承認作業を行う。
ビザンチン将軍問題はビットコインをはじめとする仮想通貨の記事で度々話題に出てきます。
そのため、ビザンチン将軍問題が何であるかを理解できていればより深く情報を読み解くことができるでしょう。