10.03.2015 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!