論文翻訳: Authenticated Algorithms for Byzantine Agreement
[English]
Abstract
故障したプロセッサの存在する環境で合意に達することは信頼性の高いコンピュータシステムに対する分散システムの中心的な課題である。認証プロトコルを用いることで、隠れた故障プロセッサの振る舞いを、意図したターゲット全てへのメッセージ中継の失敗という単純な問題に限定することができる。この論文では、故障した振る舞いをこのように限定できるにもかかわらず、また、どのようなメッセージタイプやプロトコルが許可されているとしても、(ビザンチン) 合意に達するには少なくとも
Key words. authentication, reliable distributed systems, Byzantine agreement, consistency, unanimity
Table of Contents
- Abstract
- 1. 導入
- 2. 履歴
- 3. 下限の結果
- 4. 認証を用いた多項式アルゴリズム
- 5 考察
- Acknowledgements
- References
- Transcription Note
1. 導入
この論文では複数のプロセッサ間で合意を達成するためのアルゴリズムについて考察する。この合意は、信頼性の低いプロセッサのネットワークで、いくつかの同期した情報交換のフェーズを経て、ある情報の集合に全員が合意しなければならない、という文脈で行われる。ここでは簡単のために、この情報の集合はある値の集合
我々の研究する合意は、ビザンチン合意 (LSP)、全会一致 (unanimity) (Db)、対話型整合性 (PSL) と呼ばれる。これは隠れた故障プロセッサが存在するときにすべての正しい (非故障) プロセッサがある値に合意するか、またはその値の生成者が故障していることで合意するかのどちらかで結論付ける。
- すべての正しいプロセッサが同じ値に合意する、かつ
- 送信者が正しい場合、すべての正しいプロセッサはその値に合意する。
I と II はすべてのプロセッサが同時に合意に達するという意味で暗に合意は同期的であるという考えを示している。言い換えると、各プロセッサが各々のアルゴリズム実行を完了する実時間が存在する必要があり、合意に達するためには事前にすべてのプロセッサがこの時間を認識し同意している必要がある。
我々の問題分析は故障プロセッサが予測不能で悪意を持つ可能性があるという最悪のケースを想定している。アルゴリズムは、正しいプロセッサが合意に達することを妨げるための共謀であっても、故障プロセッサによる任意の奇妙な動作に持ちこたえる必要がある。正しいプロセッサが故障プロセッサを識別できない場合でもビザンチン合意に達しなければならない。アルゴリズムは故障プロセッサに期待される動作に一切依存してはならない。
我々は情報交換に必要なフェーズ数の正確な下限を確立する。この下限
検討したアルゴリズムは、単一のプロセッサが他のすべてのプロセッサに単一の値を送信するための方法を提供する。多くのプロセッサが互いに値を送信するケースへの一般化は明らかであろう。
我々は、任意の正しいプロセッサが他の正しいプロセッサにメッセージを送ることのできる何らかの信頼性の高い通信手段を想定する。例えば、この信頼性はネットワーク上の多数の経路でメッセージを何重にも送信することで達成できるかもしれない。いずれにせよ、この論文では特に明記しない限り完全に接続された完全に信頼できる通信ネットワークを想定し、送信されたメッセージの総数をカウントするときには通信媒体に特有の重複や繰り返しを無視する。また正しいプロセッサによって送信されたメッセージのみをカウントすることに注意。
認証を用いるアルゴリズムでは、任意のプロセッサが情報交換に新しい値やメッセージを挿入したり、他者から受信したと主張することを防ぐプロトコルを仮定する (DH) (RSA)。典型的な認証プロトコル (PSL) では送信者は送信するメッセージに署名を追加する。この署名にはメッセージが本物であり送信者によって送信されたものであることを受信者が確認できるようにエンコードされたメッセージのサンプル部分が含まれており、どのプロセッサも他者の署名を偽造することはできない。したがってどのプロセッサもメッセージの内容を秘密裏に変更することはできない。
ビザンチン合意を達成するこれまでのアルゴリズムはすべてメッセージ数が指数関数的である (
Lynch と Fischer は
我々は
2. 履歴
正しさを証明し、特に下限を確立するために、情報交換段階においてプロセッサ集合が行うメッセージ関連動作を、有向グラフのフェーズという一つのオブジェクトとして記述することにする。履歴の概念は、任意数の認証プロトコルや任意のメッセージタイプの交換を含む、同期的な情報交換動作を捉えることを目的としている。フェーズという概念を適切に一般化することによってセクション 3 の下限の結果を非同期アルゴリズムに拡張することができる。
フェーズ (phase) は、プロセッサに対応するノードと、ラベル付きのエッジを持つ有向グラフである。ラベルは特定のフェーズであるプロセッサから別のプロセッサに送信される情報を表している。メッセージが送信されないときはエッジが存在しないと仮定する。
履歴
履歴のクラス
実際には正しさの規則とは各プロセッサごとに 1 つずつあるかもしれない異なる正しさの規則の和集合である。同様に、決定関数は個々の決定関数の和集合である。
単純な正しさルールの例として、各プロセッサが前のフェーズの各受信メッセージを単純に署名し、他のすべてのプロセッサに (認証プロトコルに従って) 中継するというルールがある。
と が の に対して正しいとき 、かつ
の最初のフェーズで送信者が正しく、かつ が の に対して正しいとき 。ここで は送信者の値である。
我々は
3. 下限の結果
定理 1 (LSP).
と仮定すると、認証を伴うビザンチン合意は最大で 個の故障を含む 個のプロセッサに対して フェーズで達成することができる。
証明. 正しさの規則のために、各ノードがフェーズ
認証のセマンティクスと一致する、
次の下限の結果はこのセクションの主要な結果である。これは定理 1 の結果がタイトであることを示すものである。
定理 2.
であれば、 以下のフェーズで最大 個の故障を含む 個のプロセッサではビザンチン合意を達成することはできない。
定理 2 の証明は Lynch と Fischer が認証のない限定的な場合について与えた証明 (FL) に触発されているが、それを自明でない形で一般化したものである。Lynch と Fischer は (PSL) の
定理 2 の証明.
Let
Define an equivalence relation on histories in
We say that a processor is hidden at phase
- there is a history
in , equivalent to , identical to through phase except for outedges of , with correct and all processors correct after phase ; and - if all other nodes at phase
are correct, then there is a history in , equivalent to , identical to through phase except for outedges of , with hidden and all other processors correct after phase .
Note that if a processor labels a hidden node, then changing the information on its inedge cannot affect the subhistory according to any other processor. In Fig. 2 the sender is hidden at phase 1.
In short we will show by induction that we can corect a node at any phase or hide a node if all other nodes at its phase are correct, and that the resulting history will be in
Case 1. Let
.
Let
be an incorrect node at phase of history in . If we correct the outedges of one at a time, then for each individual change there is a processor correct for that sees the same subhistory after the change as before. Thus each individual change preserves equivalence with . Since we cannot make any correct node incorrect, each individual change preserves membership in . Changes are only made to the outedges of . The final result has correct and all processors trivially correct after . Let
be a node at phase in history and and let all other nodes at phase be correct. Proceeding as in (a), we remove the outedges of , one at a time. Here we may change from correct to incorrect but since there were no other incorrect nodes at phase we could replace the th entry in the critical sequence by the label of , preserving membership in . The rest of the argument is the same as that for (a).
Case 2. Assume the induction hypotheses (a) and (b) for all phases after
.
Let
be an incorrect node at phase of a history in . The following steps will reserve membership in and equivalence to and change only outedges of and edges at later phases. - Correct all nodes after phase
(induction hypothesis (a)). - While incorrect outedges of
remain, - replace position
in the critical sequence by , a target of an incorrect outedge from ; - hide
at phase (induction hypothesis (b)); - correct
(some correct processor will see the same subhistories both before and after the change); - correct all nodes at phase
(induction hypothesis (a)).
- replace position
The final result
will have and all processors after phase correct. - Correct all nodes after phase
Assume all processos correct at phase
and let be a node at phase . The following steps will preserve membership in and equivalence to and change only outedges of and edges at later phases. - Correct all nodes at phase
(induction hypothesis (a)). - Replace the
th position in the critical sequence by the label of . - While outedges of
remain, - replace position
in the critical sequence by , a target of an outedge from ; - hide
at phase (induction hypothesis (b)); - remove
(some correct processor will see the same subhistories both before and after the change); - correct all processors after phase
(induction hypothesis (a)).
- replace position
- Hide the processor labelling
at phase (induction hypothesis (b)). The final result will have hidden at phase and all other processors after phase correct.
- Correct all nodes at phase
This completes the proof of Theorem 2. ∎
備考. これが定義されている場合は常に
4. 認証を用いた多項式アルゴリズム
導入で述べたように、故障しているプロセッサがメッセージの内容を検出できない方法で変更することを防ぐ何らかの認証技術が存在することを前提としている。
メッセージをカウントするために、フェーズと呼ばれる有向グラフのエッジのラベルに次の特定の構文を提供する。
値の集合
はアトミックメッセージ (atomic message) の集合に含まれる。 ラベルはアトミックメッセージ (認証) またはラベル列である。
認証 (authentication) は
形式のラベルである。ここで はプロセッサ名であり はラベルである ラベル列 (sequence of labels) は
形式のラベルである。ここで と はラベルである。
ラベル
-
; - ラベル
と、 が の一部であり、 であるようなプロセッサまたは が存在する; -
であり、 と が または の一部であるようなラベル と が存在する。
メッセージはコンマのないラベルである。
したがって、前のフェーズで受信した認証付きメッセージを変更して前のフェーズで受信した認証付きメッセージとして次のフェーズで転送したり、受信していない認証付きメッセージを受信したことにしてそれを認証付きメッセージとして転送できないことを除いて、どのプロセッサも任意のフェーズで任意のメッセージを他のプロセッサに送信することができる。この論文の残りの部分では認証のセマンティクスと一致する履歴に注目する。特に
次の 2 つのアルゴリズムの背後にある基本的な考え方は、プロセッサがメッセージを中継しなければならないケースを制限することにより各エッジ上のメッセージ数を最小に抑えることである。定理 1 の証明では完全なグラフを想定しているため正しく認証された値が正しいプロセッサに公開されると次のフェーズですべての正しいプロセッサがその値を取得する。定理 3 ではプロセッサが情報を中継しなければならない値の数を制限する。定理 4 と定理 5 では正しいプロセッサが正しい認証付きの値を受信すると、他の正しいプロセッサもある一定のフェーズ数内でそれを受信するようにメッセージが移動する経路を制限している。最後に定理 6 では情報を中継するために必要なプロセッサの数を制限する。この場合、正しい中継プロセッサが正しい認証付きの値を受信すると他のプロセッサは 1 フェーズ後にそれを受信するが、中継プロセッサではない正しいプロセッサは他のプロセッサに知らされるよりずっと前にその値を受信する可能性がある。
我々のアルゴリズムがエッジに沿って何らかのメッセージを必要とするとき、正確に 2 つのプロセッサ間にエッジを持つ有向グラフのエッジ数を
定理 3. ビザンチン合意は、最大
個の故障がある 個のプロセッサにおいて フェーズ内で最大 メッセージを用いて達成することができる。
Proof. Our correctness rule will be a restriction of that of the proof of Theorem 1 so that no processor relays more than two messages to any other, regardless of the number of messages received or the number of distinct paths incoming messages may have travelled. At the beginning of phase
Each correct processor sends at most two messages over each edge. Thus, the total number of messages sent by correct processors is bounded by twice the number of edges,
If the sender correctly sends
送信可能なエッジを制限して有効なエッジ数を
定理 4. ビザンチン合意は、最大
個の故障がある 個のプロセッサにおいて フェーズ内で最大 メッセージを用いて達成することができる。
Proof. We further restrict the correctness rule of the proof of Theorem 3 by arbitrarily choosing
定理 4 の証明で使用される制限付きネットワークでは
グラフの直径 (diameter) は頂点のペアを結ぶ最短経路の長さの最小上限であり、長さはエッジ数を意味する。グラフが
定理 5.
を、最大 個の故障がある 個のプロセッサの -接続ネットワークの -径とすると、ビザンチン合意は最大 メッセージを用いて フェーズ以内に達成することができる。
Proof. We use the correctness rule and the decision function of Theorem 3, restricted of course so that only available edges of the graph are used for messages. If a processor extracts a new value at phase
ここで完全なネットワークの過程に戻り、認証を使用したビザンチン合意の最適なアルゴリズムを示す。
定理 6. ビザンチン合意は、完全なネットワーク上で
フェーズ、 メッセージで達成することができる。
Proof. If
Passive processors modify the decision function so that it also counts the number of active processors that have sent more than one message, producing 0 if this number is at least
If the correct active processors never extract a value, then the correct passive processors will never extract one because there are at most
If every correct active processor has extracted more than one value by phase
The only difficult case is that in which each active processor extracts more than one value by phase
In this case, no correct active processor can extract more than one value by phase
This leaves the case this
5 考察
認証を伴う
一つの可能性として、ビザンチン合意を達成する可能性のあるアルゴリズムに注目することが考えられる。確率論的な文脈では、可能な故障の数に現実的な上限
我々のアルゴリズムは必要なフェーズの最小数を減らすことはできないが、ビザンチン合意に必要なメッセージの総数を、プロセッサの数または正しいプロセッサによるビット交換数を指数関数から多項式に減らすことができる。可能な限り少数のフェーズで停止するアルゴリズムを見つけることは有用であろう。
最悪ケースで必要なメッセージ数の厳密な下限は確立していない。(DR) ではビザンチン合意を得るために交換しなければならないメッセージ数と署名数の下限が得られる。(DR) のアルゴリズムは我々のアルゴリズムより少ないメッセージ数で済むがより多くのフェーズを使用する。
Acknowledgements
The authors thank Nancy Lynch for helpful suggestions about this manuscript. The proof of Theorem 6 uses suggestion of Lynch made in private correspondence with respect to a different problem. Subsequent to the completion of the proof of Theorem 2 in its present form, the authors received a private communication from Michael Merritt containing a somewhat similar proof of this result.
References
- (DH) W. Diffie and M.Mellman, New direction in cryptography, IEEE Trans. Inform. Theory, IT-22 (1972), pp.644-654.
- (Da) D.Dolev, The Byzantine generals strike again, J. Algorithms, 3 (1982), pp.14-30.
- (Db) ─, Unanimity in an Unknown and unreliable environment, Proc. IEEE 22nd Symposium on Foundations of Computer Science, 1981, PP.159-168.
- (DR) D. Dolev and R. Reischuk, Bounds on information exchange for Byzantine agreement, Prof., ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing, Ottawa, Aug. 1982. See also IMB Research Report RJ3587 (1982).
- (FL) M. Fischer and N. Lynch, A lower bound for the time to assure interactive consistency, Inform. Proc. Letters, 14 (1982), pp. 183-186.
- (L) L. Lamport, using time instead of timeout for fault-tolerant distributed systems, Tech. Rep., Computer Science Laboratory, SRI International, June 1981.
- (LSP) L. Lamport, R. Shostak and M. Pease, The Byzantine generals problem, ACM Trans. Programming Languages and Systems, to appear.
- (PSL) M. Pease, R. Shostak and L. Lamport, Reaching agreement in the presence of faults, J. Assoc. Comput. Mach., 27 (1980), pp.228-234.
- (RSA) R. L. Rivest, A.Shamir and L. Adleman, A method for obtaining digital signatures and public-key cryptosystems, Comm. ACM, 21 (1978), pp.120-126.
Transcription Note
非同期ビザンチンアトミックブロードキャストに関する 1983 年の論文。
- DOLEV, D. STRONG H. R. Authenticated algorithms for Byzantine agreement. SIAM Journal on Computing, 1983, 12.4: 656-666.

