今回は、仮想通貨「ビザンチンフォールトトレランス」について解説します。
別名でビザンチン将軍問題やビザンチンフォールトトレラント性とも呼ばれますが、仮想通貨の業界でよく目にするワードです。
ビザンチンフォールトトレランスとは
ビザンチンフォールトトレランスとは、ビザンチン将軍問題が生じても全体としての合意を形成できるということです。
英語で「Byzantine Fault Tolerance」(BFT)と言います。
ではそのビザンチン将軍問題とはなんでしょうか、ということを説明します。
ビザンチン将軍問題とは
ビザンチン将軍問題は、マーシャル・ピーズ氏・ロバート・ショスタク氏・レスリー・ランポート氏による合意問題の定式化した論文です。
ビザンチン将軍問題とは、相互に通信し合うなんらかのオブジェクト群において、通信および個々のオブジェクトが故障または故意によって偽の情報を伝達する可能性がある場合に、全体として正しい合意を形成できるかどうかという問題です。
フォールトトレランとシステムでの多数決の妥当性や分散コンピューティングの処理の妥当性に関する問題で、2人の将軍問題を理論化したものです。
ビザンチン将軍問題の分かりやすい例
分かりやすく将軍に例えて説明します。
ビザンチン将軍問題は、将軍たちがそれぞれ軍団を率いて1つの都市を包囲している状況で発生します。
将軍たちは都市攻撃に合意したいと考えています。
つまり将軍たちは攻撃するか撤退するかだけを合意決定します。
その合意決定を、メッセンジャーを介することで相互に伝達できます。
後に攻撃か撤退かの意見が分かれるかもしれませんが、最終的に1つの結論で合意しなければなりません。
ここでの問題は下記です。
・意見が半数に分かれた場合には、攻撃する将軍も半数のため成功しない(勝てない)
・物理的に離れた場所にいるため、票を届けることに失敗することがある
・偽の票に改ざんされるリスクがある
つまり全員一致の意見の場合はビザンチン・フォールトトレラント性は達成できます。
ビザンチン故障
ビザンチン問題に付随して、「ビザンチン故障」というワードも多用されるため、覚えておきましょう。
ビザンチン故障とは、分散コンピューティングにおいてアルゴリズムを実行中に発生する故障・障害のことです。
不作為障害と作為障害が含まれます。
不作為障害とは、クラッシュ・要求を受信し損なうこと・応答を返し損なうことです。
作為障害とは、要求を不正に処理すること・局所状態が壊れること・要求に対して不正または一貫しない応答を返すことです。
ビザンチン故障が発生すると、ビザンチンフォールとトレラント性を備えていないシステムは予期しない動作をすることがあります。
ビザンチンフォールトレトラント性のあるアルゴリズムでは、そのアルゴリズムの実行経路を表す論理的抽象概念としてのプロセスがビザンチン故障の対処をします。
BTFの例
BFTの応用例としてビットコインが挙げられます。
ピアツーピア(【 ピアツーピア(P2P)とは 】分かりやすく解説)の電子マネーシステムであり、一連のHashcash風のPoWを並列的に生成しているからです。
※Hashcashとは→【 Hashcashとは 】分かりやすく解説
また、BFTはTheta Network(詳細→仮想通貨【 Theta Networkとは 】創設者・特徴・それぞれのトークン・投資における将来性についても解説)にも実装されています。
最近のコメント