Each process will have a huge tree as its data structure.
Let t denote, as usual, the number of traitors. The tree will have
t+2 levels, numbered from (the root) to t+1.
The nodes in the tree will be labeled
, where the pis denote
different generals (processes), i.e.
for all
. The basic idea of the protocol
is to transmit one own's value, echo the values so received,
echo the echoes, and so on. The relation
| (1) |
![]() |
We now describe the protocol. The protocol is in two phases. During the first phase, processes shuffle messages around and fill in the tree. The second phase is used to evaluate a function of the information stored in the tree. No messages are sent during this second phase.
The first phase takes t+1 communication rounds and is as follows.
In round , every process will send its input value to everybody.
Each process fills its first level according to the messages it
receives. In round i>0 every process sends its ith level to
everybody else. If pj receives a message from pi saying ``The
content of node
in my tree is x'' it puts x into node
.
The second phase starts at the end of round t+1. Each
process pi starts an evaluation procedure
on its tree Ti. We denote the content of node
in Ti
by
and define the function
as follows:
![]() |
(2) |
Definition 11952
We say that
is trustworthy if
, where p is loyal.
Lemma 11958
Let
be trustworthy and let
.Then, for all
,
| |
(3) |
| |
(4) |
Proof. By definition of trustworthy,
.By the algorithm, p will send x to everybody, including
. Since q is also loyal,
.Then, q will send the content of its node
to all. If
then
.A similar argument proves the other claim.![]()
The above lemma says that if
is trustworthy then all children
of
corresponding to a loyal process will store the same value.
Since the degree of every node is at least 2t+1, this ensures
a majority among the values stored at the children of a trustworthy node.
Definition 11975
We say that
is nice if
| (5) |
Lemma 11979
Let
be trustworthy. Then
Proof. We will use induction. If
is a leaf, then by Equation 3.2
| (6) |
| (7) |
For the inductive step, let
and let i be
any process in L.
By the algorithm,
.We first show that
.By Equation 3.4,
![]()
![]()
![]()
We now show that
for all loyal i and j.
By Equation 3.3, for all loyal q
![]()
![]()
The above lemma already implies non-triviality, since the root of the tree has at least n-t>t trustworthy children. Limited bureaucracy, of course, follows from the protocol definition. We now establish agreement by showing that the root too is nice.
Definition 12007
We say that
has a nice frontier if, along every path
from
to a leaf, there is a nice vertex.
Notice that the root has a nice frontier, since every path from a leaf to the root has length t+1 and one of the nodes along it must be trustworthy.
Lemma 12011
If
has a nice frontier, then
is nice.
Proof. Again by induction. If
is a leaf the proof is trivial. Now
suppose that
is not a leaf. If
is nice we are
done. Otherwise all children of
are nice, by the induction
hypothesis. This, however, implies that
is nice.![]()
By this last lemma we also have agreement, which concludes the proof.