10分で論文略読: The Byzantine Generals Problem (1982)
The Byzantine Generals Problem
- LAMPORT, Leslie; SHOSTAK, Robert; PEASE, Marshall. The Byzantine Generals Problem. In: ACM Transactions on Programming Languages and Systems, Vol.4, No.3. 1982.
1. Introduction
システムを構成するコンポーネントの故障は敵陣を包囲するビザンツ軍に例えることができる。この要件は:
- A. 忠実な将軍たちはすべて同じ作戦行動をとる。
- B. 少数の裏切り者たちは忠実な将軍たちに不正な作戦を採用させることができない。
A が成立するためには:
- 任意の 2 人の忠実な将軍は同じ値
を使用する。v(i) - もし将軍
が忠実であれば、彼が送った値はすべての忠実な将軍によってi として使用されなければならない。v(i)
対話的整合性:
- IC1. すべての忠実な副官は同じ命令に従う。
- IC2. 司令官である将軍が忠実であれば、すべての忠実な副官は彼の送る命令に従う。
司令官が忠実であれば IC2 から IC1 を導くことができる。論文中の説明の多くは自明な IC2 から開始して司令官が裏切り者である場合の IC1 を証明する方法で説明している。
2. Impossibility Results
メッセージに署名を付けない構成では
例えば下限の
メッセージに署名を付けない構成では、裏切り者が
A Solution with Oral Messages
署名を付けないメッセージ (口伝メッセージ) での要件:
- A1. 送信されたメッセージは正しく配信される。
- A2. メッセージの受信者は誰がメッセージを送信したかを知っている。
- A3. メッセージの欠落を検出することができる。
{\rm OM}(m)
アルゴリズム
{\rm OM}(0) のケース
- 司令官は副官に命令を送信する。
- 副官は司令官から受信した値を使用する。受信しなかった場合は RETREAT (退却) とする。
{\rm OM}(m), m \gt 0 のケース
- 司令官は副官に命令を送信する。
- 各副官
が司令官から受信した値をi とし、受信しなかったら RETREAT とする。副官v_i はi の司令官として動作し、値{\rm OM}(m-1) を他のv_i 人の副官すべてに送信する。n-2 -
となる各副官i \ne j が副官i から受信した値をj とし、受け取らなければ RETREAT とする。副官v_i はi を使用する。{\rm majority}(v_1,\ldots,v_{n-1})
定理 1. 任意の
に対して、 m より多い将軍と 3m 人の裏切り者が存在する場合、アルゴリズム m は IC1 と IC2 を満足する。 {\rm OM}(m)
A Solution with Signed Messages
署名付きメッセージ構成での追加の要件。
- A4. (a) 忠実な将軍の署名は偽造できず、署名さえたメッセージはいかなる変更も検出できる。(b) 誰でも将軍の署名の真偽を検証できる。
{\rm SM}(m)
アルゴリズム - 司令官は自信の値に署名してすべての副官に送る。
- 副官
それぞれに対して:i -
が司令官からi を受信し、v:0 がv に含まれていなければ:V_i -
で更新。V_i := \{v\} -
を他のすべての副官に送信。v:0:i
-
-
がi からj_k 形式のメッセージを受信し、v:0:j_1:\cdots:j_k がv に含まれていなければ:V_i -
で更新。V_i := V_i \cup \{v\} -
であれば副官はメッセージk \lt m を、v:0:j_1:\cdots:j_k:i を除くすべての副官に送信。j_1,\cdots,j_k
-
-
- 各副官
がそれ以上メッセージを受信しなくなるとi の値に従う。{\rm choice}(V_i)
- 集合
が単一の要素V のみで構成される場合v {\rm choice}(V)=v {\rm choice}(\emptyset) = {\rm RETREAT}
要素が順序集合に由来する場合は
定理 2. 任意の
に対して、裏切り者が最大 m 人であれば m はビザンチン将軍問題を解く。 {\rm SM}(m)
署名なしのアルゴリズム
Missing Communication Paths
すべてのノードが互いに接続している完全グラフであるという仮定を外す。
定義 1
- (a) ノード
に隣接するノード集合i に含まれる各ノードI=\{i_1,\ldots,i_p\} がj \in I である任意のノードk \ne i へのk を経由しない経路i を持っており、それらの経路\gamma_{j,k} がいずれも\gamma_{j,k} 以外に共通するノードを経由しないとき、k は隣接の正規集合である。I - (b) すべてのノードの次数が
であり隣接の正規集合を持つとき、グラフはp -正則である。p
署名なしのアルゴリズム
{\rm OM}(m,p)
アルゴリズム - 司令官に隣接する
人の副官の正則集合をp とする。司令官はN の副司令官それぞれに自身の値N を送る。v -
の各副官N について、i が司令官から受信した値をi とし、受信しなかった場合は RETREAT とする。副官v_i はi を他のすべての副官v_i に送信する。k -
のとき、定義 1 の (a) により存在が保証されている経路m=1 に沿って値を送信する。\gamma_{i,k} -
のとき、将軍のグラフm \gt 1 から元の司令官を除去して得られる部分グラフでG の司令官として動作する。{\rm OM}(m-1,p-1)
-
-
のN となる各副官i \ne k と各i に対して、ステップ 2 で副官k が副官k から受信した値をi とし、値を受信しなかった場合は RETREAT とする。副官v_i は値k を使用する。{\rm majority}(v_{i_1},\ldots,v_{i_p})
定理 3. 任意の
と m \gt 0 に対して、裏切り者が最大でも p \ge 3m 人であればアルゴリズム m はビザンチン将軍問題を解く。 {\rm OM}(m,p)
署名なしケースの証明は
署名付きのケースでは、中継する裏切り者はメッセージを変更したり偽造することができないため、メッセージを中継しない動作しか行えない。つまり、忠実な将軍たちによってのみ形成される部分グラフが連結グラフであれば良い。
完全グラフ版のアルゴリズム
定理 4. 任意の
と m に対して、裏切り者が最大でも d 人であり、忠実な将軍の部分グラフの直径が m であるとき、 d はビザンチン将軍問題を解く。 {\rm SM}(m+d-1)
つまり、忠実な将軍の部分グラフが連結グラフであれば、
- 忠実な将軍のみを経由する最大
の長さの経路で結ばれた 2 つの忠実な将軍は同じ命令に従う。d - 司令官が忠実であれば、忠実な将軍のみを経由する最大
の長さの経路で司令官と接続している忠実な副官は司令官の命令に従う。m+d
Reliable Systems
多数決による高信頼システムを構築するためには:
- 故障していないプロセッサはすべて同じ入力を使用しなければならない (従って同じ出力をする)。
- 入力ユニットが故障していない場合、すべてのプロセッサはそれが提供する値を入力として使用する (従ってそれらは正しい値を生成する)。
これらは IC1, IC2 と同じである。要件 A1~A4 をメッセージパッシングシステムのケースに置き換えた説明が続く。
Conclusion
完全グラフでは
高コストだが恣意的な不正動作に対して信頼性を達成することは本質的に困難であるため仕方がない。故障の条件を緩和すればコストは削減できるが、スペースシャトルやミサイル防衛システムのような極めて高い信頼性が要求される場合はやはりコストがかかるだろう。
Discussion