Next: Implementation of Byzantine agreement
Up: A Polynomial Solution for
Previous: A Polynomial Solution for
Consistent broadcast has two operations associated with it:
and
which we want to implement by means
of the communication primitives send and receive.
Recall that the underlying communication mechanism provides point-to-point
connections which are secure and authenticated.
That is, each process can send a message directly to any other process
and the receiver can be sure of the identity of the sender and that the content
of the message has not been altered.
Messages sent with the consistent broadcast facility
consist of three parts: m=(c,p,r), where c is the message
contents, p the sending process, and r the round in which the
message is sent. Consistent broadcast has the following three properties:
- correctness
- If m=(c,p,r) is
by
at round r
then all
m at round r+2. Here, L, as
before, denotes the set of correct processes.
- unforgeability
- If m=(c,p,r) is not
by
, then
no
ever accepts it.
- relay
- If
accepts m at round r, then every
accepts it no later than round r+1.
The protocol that is used to achieve the above is described next. As
before, there are at most f<n/3 faulty processes (implying that
there are at least 2f+1 correct, or loyal). A sent message is
received by the receiver in the next round, and messages are
authenticated, i.e., they cannot be forged by traitors. Sending a
message to ``all'' includes sending it to oneself. The
following describes the implementation of
and
in terms of the primitive send and receive operations. Here a process
p wants to
at round r.
- round r
- The process p sends
to
all processes.
- round r+1
- If q receives
from
process p,
it sends
to all processes.
- round
- If process q receives
from at least f+1 distinct processes, and it has not yet
sent an echo, then it sends
. - round
- If process q receives
from at least 2f+1 processes it performs
.
The protocol has the correctness property since when
sends a
message at round r, it is echoed by 2f+1 different
at
round r+1, and thus accepted by every
at round r+2.
The unforgeability property follows because to accept a message at least 2f+1
echoes are required. An
is triggered by two events only.
The first way to trigger an echo is for a process to receive the
message
.Since the underlying mechanism is point-to-point, secure and authenticated,
if an INIT message is not sent it cannot be forged.
The second possibility is for a process to receive f+1 echoes. But this cannot happen either
because there are at most f traitors.
The relay property follows since if
accepts at round r, it
has received 2f+1 echoes, of which at least f+1 must be from
correct processes. Thus, all correct processes receive f+1 echoes
at round r and will therefore echo themselves, causing every
to accept at round r+1.
Next: Implementation of Byzantine agreement
Up: A Polynomial Solution for
Previous: A Polynomial Solution for
Viggo Kann
Sat Dec 20 23:41:16 MET 1997