OdpornoÅÄ na bÅÄdy bizantyjskie w systemach peer-to-peer - Instytut ...
OdpornoÅÄ na bÅÄdy bizantyjskie w systemach peer-to-peer - Instytut ...
OdpornoÅÄ na bÅÄdy bizantyjskie w systemach peer-to-peer - Instytut ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
40 Rozdział 3. Bezpieczne <strong>bizantyjskie</strong> uzgadnianie<br />
Dowód. Załóżmy, że wystarczy f odpowiedzi by ustalić v. Wiedząc, że uszkodzonych<br />
replik jest dokładnie f, <strong>to</strong> odebranie f takich samych odpowiedzi jeszcze<br />
nie gwarantuje, że posiadamy prawdziwy wynik wywołania usługi, gdyż<br />
wszystkie f odpowiedzi może być wysłane od niepoprawnie działających replik.<br />
Gdy takich samych odpowiedzi jest f +1<strong>to</strong> wszystkie one są poprawne, gdyż<br />
f +1>f, czyli muszą pochodzić ze zbioru replik działających poprawnie.<br />
<br />
Twierdzenie 4 Jeżeli pośród n replik f jest działających w sposób bizantyjski<br />
oraz f ≤ ⌊ ⌋<br />
n−1 4<br />
, <strong>to</strong> klient c może ustalić poprawną war<strong>to</strong>ść zwracaną v dla<br />
3<br />
wywołania usługi u z parametrem i c .<br />
Dowód. Jeżeli f replik jest niepoprawnie działających, <strong>to</strong> poprawnie działających<br />
replik zostaje n − f. Po<strong>na</strong>d<strong>to</strong> f z replik poprawnie działających, może<br />
zostać uszkodzonych i nie odpowiedzieć <strong>na</strong> żądanie. Korzystając jednocześnie<br />
z twierdzenia 3 mamy n − 2f ≥ f +1, przepisując n−1 ≥ f, <strong>na</strong>stępnie przekształcamy<br />
nierówność jednocześnie gwarantując, że prawa stro<strong>na</strong> zawsze jest<br />
3<br />
całkowita i otrzymujemy ostatecznie f ≤ ⌊ ⌋<br />
n−1<br />
3 .<br />
<br />
3.3 Algorytm BFT<br />
Właściwości wskazane w poprzednim paragrafie posiada algorytm <strong>to</strong>lerancji<br />
uszkodzeń bizantyjskich (ang. byzantine faoult <strong>to</strong>lerance) BFT, opracowany<br />
przez B. Liskov oraz M. Castro z Programming Methodology Group, MIT w<br />
USA 5 [CL99c, CL99a, CL99b, CL00].<br />
Algorytm BFT zapewnia dwie podstawowe właściwości:<br />
(1) Bezpieczeństwo wyko<strong>na</strong>nia (ang. safety). Wszystkie repliki uzgodnią poprawną<br />
sekwencję wyko<strong>na</strong>nia zleceń pomimo błędów.<br />
(2) Żywotność (ang. liveness). Klient ma gwarancję otrzymania odpowiedzi<br />
<strong>na</strong> swoje żądanie w skończonym czasie t