E S E R C I Z I
Chi ravvisasse errori è pregato di segnalarli al docente
proposal := input-bit; round := 1;
repeat
send (proposal, round) to all
let A be the multiset of the first n-f messages with timestamp
equal to round
if all A values are the same bit b then
decide(b) and set proposal := b
else if a value b appears n-2f times in A then
set proposal := b
else set proposal at random to 0 or 1 with equal probability
round := round +1
forever
COMMUTATIVITY LEMMA. Sia A una configurazione e siano s,r due sequenze di eventi relativi rispettivamente a due insiemi di processi S ed R. Siano inoltre S ed R disgiunti. Allora, rs(A) = sr(B).
TEOREMA. Per nessun t>0 esiste un protocollo per il Consenso che
sia t-resistente rispetto a guasti bizantini.
DIMOSTRAZIONE. Supponiamo per assurdo che esista un protocollo per t=1
e supponiamo per fissare le idee che sia n=15. Sia P il protocollo
per t=1 ed n=15. Facciamo vedere come l'esistenza di P implica l'esistenza di un protocollo P' per t=1 ed n=3, che come sappiamo è un assurdo.
Consideriamo un sistema di 3 processori A,B,C in cui A simula uno dei 15 processori,
mentre B e C ne simulano 7 ciascuno. P' simula P via software, come nella
dimostrazione vista in classe. Se guastiamo A sappiamo che il resto del sistema
deve continuare a funzionare, perchè P &grave 1-resistente. Pertanto B e C
giungeranno ad un accordo, ma questo è assurdo. QED
protocollo per p
V[q] := NIL, for all q <> p
V[p] := input-bit
for round := 1 to f+1 do
send V to all
Collect all vectors sent by other proceses
update V's coordinates
end-for
decision := majority value of V (breaking ties arbitrarily)
TEOREMA. Il consenso per n processi e t guasti bizantini è risolubile se e solo se: (a) t < n/3 e (b) la topologia sottostante è un grafo 2t+1 connesso.
Si dimostri che la condizione sulla connessione è necessaria per il caso particolare t=1 ed n=4. Per la sufficenza dare invece un argomentazioe intuitiva.
Per la definizione dell'attacco coordinato si fa riferimento alle dispense.
Come sempre si suppone che l'avversario sia fair ed il sistema sincrono.
In particolare ad un processo è consentito di continuare a spedire messaggi dopo aver deciso. Un tale protocollo si dice dormiente (quiescent). Come sempre si suppone che l'avversario sia fair ed il sistema sincrono.