分散コンピューティングにおける最も有名な問題の一つである「ビザンチン将軍問題」に出会います。
想像してみてください。ビザンチン軍の将軍数名が都市を包囲しています。勝利のためには、連携を取りながら同時に攻撃を仕掛けなければなりません。しかし、彼らは伝言でしか連絡を取ることができず、中には計画を妨害しようとする裏切り者もいるかもしれません。もしかしたら、誰かが寝坊したり、もっとひどいことに攻撃のタイミングについて嘘をついたりしているかもしれません。たった一人でも失敗したり、悪意を持った行動を取れば、戦略全体が崩壊しかねません。
コンピュータも同じ課題に直面しています。分散システムでは、一部のマシンがクラッシュしたり、速度が低下したり、ハッキングされたりする可能性があります。ネットワークの残りの部分では、すべてのマシンを信頼できない場合、どのように対処すべきか合意できるのでしょうか?
ここで、PBFT(実用的ビザンチンフォールトトレランス)のようなコンセンサスアルゴリズムが登場します。PBFTは、このような障害に対処するために設計されています。PBFTは、1つのノードが「事前準備」メッセージをブロードキャストしてアクションを提案することで機能します。他のノードは確認応答で応答します。一定数のノード(通常は3分の2以上)が同意すると、コンセンサスが成立します。最後に、最初のノードが「コミット」メッセージを送信し、すべてのノードにアクションを実行するよう指示します。最大3分の1のノードに障害や悪意のあるノードがあっても、システムは正常に機能します。
コメントを残す