Categories
History Technology

ビザンチン将軍問題

ビザンツ将軍問題は、古くからあるゲーム理論の問題である。ビザンツ軍の複数の将軍が、敵の都市を四方から攻撃する準備をしていると想像してみよう。彼らは都市を包囲しているが、いつ攻撃するかを集団で決めなければならないので、各連隊を担当する将軍は、敵の防御に打ち勝つために、同時に攻撃するように協力しなければならない。すべての武将が同じタイミングで攻撃すれば高確率での勝利が可能だが、攻撃するタイミングがバラバラだったり、一人の不良武将が戦わないことを選択したりすると敗北となる。各連隊には通信役として使者がいるが、使者が裏切り者なのか、メッセージそのものが敵に傍受されているのかは知る由もない。

勝利への唯一の道は、メッセンジャーを含むすべての将軍が正直であること、そしてメッセージが敵によって改ざんされていないことを知る方法が存在することである。この問題を解決する唯一の方法は、全ての将軍に攻撃や撤退のメッセージや命令を正しく送ることである。各将軍はそれぞれの側からの使者から伝令を集める。しかし、伝令は途中で敵に改ざんされているかもしれないので、信用することはできない。だから、各将兵は通常、異なる将兵からの伝令の大多数に従い、それを指揮官に送り返して実行するのが賢明だろう。誠実で協調的な攻撃は勝利につながるが、すべての将軍とその指揮官が誠実であることを保証することは誰にもできないのがこのビザンチン将軍問題である。

これと同じ問題はコンピュータサイエンスの世界でも続いており、分散化されたコンピューターもしくはノードは、信頼できる中央のシステムに頼らずにコンセンサスを得ることの難しさに直面している。分散システムにおける参加者間の合意形成の問題は、1970年代にコンピュータ科学者によって初めて指摘された。分散システムでは、1つまたは複数のコンピューターやノードが故障しても、信頼できるとみなされることがある。これは、分散型システムにおけるビザンチン・フォルト・トレランス性Byzantine Fault Tolerance)という概念につながる。これは、システムがある程度の障害に耐え、なおかつ他のノードと協調してシステム全体を機能させる能力を示す指標である。

ビザンチン・フォルト・トレランス性

1990年代後半に、Barbara LiskozvMiguel Castroは、Practical Byzantine Falut Toleranceと呼ばれる分散型ネットワークのコンセンサスアルゴリズムを開発した。しかし、ネットワーク上のノードや参加するコンピューターの数が増えると、コンセンサスに達するまでの時間は指数関数的に増加した。ビザンチン・フォルト・トレランス性とは、ビザンチン将軍問題から導かれる故障に耐えるシステムの特性である。このBFTシステムは、一部のノードが通信に失敗したり、悪意のある行動をとったりしても、コンセンサスによって動作を継続することができる。

このビザンチン将軍問題に対処する突破口は、2008年サトシ・ナカモトがビットコインのホワイトペーパーを発表し、プルーフ・オブ・ワークのアゴリズムを導入したときに生まれた。ビットコインで使用されているコンセンサス・アルゴリズムはプルーフ・オブ・ワークと呼ばれ、コンセンサス・アルゴリズムの最も一般的な実装の一つである。ビットコインのプロトコルはルールを定義しているが、コンセンサス・アルゴリズムはこれらのルールがどのように守られるかをトランザクションの検証時などに決定付けている。

プルーフ・オブ・ワークというアルゴリズムの概念はビットコインよりも古いなのだ。しかし、サトシ・ナカモトは、ビザンチン・フォールト・トレランス性のあるシステムとしてのビットコインを作ることが可能とする修正版を開発した。プルーフ・オブ・ワークは100%のフォールトトレランス性は持ってないが、ブロックチェーン・ネットワークのための最も安全な実装の1つであることが証明されており、ビザンチン障害に対する最も天才的なソリューションの1つとして多くの学者が考えている。このようなシステムのセキュリティ確保は現在進行中の取り組みであり、既存のコンセンサス・アルゴリズムはまだいくつかの限界を克服できていない。しかし、その潜在的なアプリケーションは、ビットコイン・ブロックチェーンを超えて、広くイノベーションを刺激していることは確かだ。ビザンチンフォールトトレランス性のあるシステムのユースケースには、航空宇宙原子力産業などが挙げられる。

5000年前のこのビザンチン将軍問題をビットコインはどう解決したのか?

ビットコインは、コンピュータの分散ネットワークによって管理される分散型デジタル台帳として機能する。ビットコインは信頼の必要性がない経済システムを可能にし、金融取引は仲介者を必要とせずに実行される世界を実現した。ビットコインは、取引の分散型台帳を維持するために協力するマイナーの分散型ネットワークに依存している。なのでマイナーはとても重要な存在である。各マイナーは、台帳に追加された取引が真実であることを信頼できなければならない。マイナーは、ビザンチン将軍問題における将軍に相当する。そして台帳とトランザクションは、マイナーたちが共有するメッセージである。プルーフ・オブ・ワークのアルゴリズムは、ブロックチェーンの台帳に追加する前に、マイナーに取引が有効であることに同意させなければいけない。そしてマイナーは台帳上の履歴情報を使って取引を検証し、必要な口座残高があることを確認する。そのうちの1つでも改ざんされたデータを見つければ、その特定の取引を拒否する権限を持つ。そして、もしすべての正直なノードやマイナーが独自にそれを行った場合、欠陥のある取引は受け入れられなくなる。

誠実な取引が検証されると、それらは永久にビットコイン台帳に記録され、ネットワーク全体に公開される。このようにして、正直な取引はその履歴データを信頼することができる。すべてのマイナーが同じデータのコピーを持てば、それが真実で正直なものであると検証できる。サトシ・ナカモトはゲーム理論を用いて、ネットワーク全体にとって有益な行動をとるようマイナーにインセンティブを与えたられるようなシステムを作ってしまったのである。もうこの魔神は瓶に戻せないのである。

ビットコインネットワークはビザンチン将軍問題に対処しており、51%の攻撃が発生したことは今まで一度もない。つまり、マイナーの51%が欠陥のあるトランザクションを受け入れたことはないということだ。これはビットコインへの攻撃が不可能であることを意味するものではない。理論上は可能だが、ゲーム理論によれば、攻撃者にとっては、悪意を持って行動して時間、エネルギー、資金を失うよりも、正直に行動した方が経済的に超高収益となる。マイナーはマイニングに参加するために多額のエネルギーと資金を投資しなければならず、その努力の報酬としてBTCを受け取るのである。偽のマイナーは、偽のメッセージを広めるために必要な作業を無駄にすることになる。このため、「ビザンチン将軍」(この場合はビットコインノード)が嘘をつくにはコストがかかりすぎる。各ノードが独立してすべての情報を検証できるため、ビットコインは信頼の必要ない確実なシステムとなる。これがビットコインがビザンチン将軍の問題を解決した方法である。サトシ・ナカモトがやったこの一度限りの発見は、再発明はできないのだ。

最後までお読みいただきありがとうございます。それではまた次回。

Leave a Reply

Your email address will not be published. Required fields are marked *