読み方 : ビザンチンしょうぐんもんだい
ビザンチン将軍問題【Byzantine generals problem】
ビザンチン将軍問題とは?
複数の参加者が通信によって合意を形成しようとする際、一部に不正や故障があっても正しい判断に到達できるかを問う問題。1982年にアメリカのコンピュータ科学者、レスリー・ランポート(Leslie B. Lamport)氏らによって定式化され、分散コンピューティングの古典的な難問として知られている。

この問題の名称は、ビザンチン帝国の将軍たちが敵城を包囲する思考実験に由来する。各将軍は離れた場所に駐屯しており、使者を介してのみ連絡を取り合う。全員が攻撃か撤退かを一致して選ばなければ作戦は失敗するが、将軍の中に裏切り者が混じっており、他の将軍に正反対のメッセージを送ることがある。誰が裏切り者かを事前に知る手段がない中で、忠実な将軍だけで正しい判断を下せるかという問題設定である。
この問題が難しいのは、受け取ったメッセージが正しいかどうかを確かめる手段が限られているためである。数学的な分析により、不正な参加者の数が全体の3分の1未満に収まっていれば合意形成が可能であることが示されている。言い換えると、少なくとも3分の1+1人の誠実な参加者が必要であり、これを下回ると誠実な参加者だけでは矛盾を排除できなくなる。
この考え方は、現実の分散システム設計に応用されている。複数のサーバが協調して動作する環境では、一部が故障したり誤作動しても、全体として一貫した動作を保証しなければならない。こうした耐性を「ビザンチン障害耐性」(BFT:Byzantine Fault Tolerance)と呼び、金融システムや航空制御など高い信頼性が求められる場面で活用されている。
現代では、ブロックチェーンを利用した暗号資産の取引などにもこの考え方が応用されている。中央の管理者を置かずに不特定多数の参加者が取引の正当性を検証するには、参加者の中に不正な者が存在する前提で合意を形成する仕組みが必要である。ビットコインの取引記録を検証可能にする「PoW」(Proof of Work)方式は、膨大な計算コストを課すことで不正を経済的に割に合わなくさせ、この問題への実践的な回答の一つとなっている。