Byzantine Fault, czyli problem bizantyjskich generałów, jest szeroko dyskutowanym tematem w różnych dziedzinach, takich jak informatyka czy systemy rozproszone. W krypto, a konkretnie w technologii blockchain, niezwykle ważną rolę odgrywa Byzantine Fault Tolerance (BFT). Dowiedzmy się więcej o BFT w tym artykule!
Co to jest bizantyjska tolerancja błędów (BFT)?
Byzantine Fault Tolerance to zdolność do działania rozproszonego systemu lub sieci i osiągnięcia konsensusu (umowy neutralnej), biorąc pod uwagę, że niektórzy uczestnicy mogą nie działać lub robić to w złośliwy sposób. Jego nazwa wywodzi się od paradoksu zwanego bizantyjskim problemem generałów, podczas gdy bizantyjska tolerancja na błędy jest rozwiązaniem problemu.
Aby sieć działała poprawnie, nawet jeśli niektórzy jej uczestnicy napotykają problemy (celowo lub nieumyślnie), muszą istnieć pewne wspólne zasady i warunki, aby funkcjonalni uczestnicy mogli zagwarantować konsensus sieci.
Jaki jest problem bizantyjskich generałów?
Problem bizantyjskich generałów został po raz pierwszy przedstawiony w 1982 r. przez grupę ludzi z Microsoft Research. Problem został jasno opisany w następujący sposób:
„Wyobraźcie sobie, że kilka dywizji armii bizantyjskiej obozuje poza wrogim miastem, każda dywizja jest dowodzona przez własnego generała. Generałowie mogą komunikować się ze sobą tylko przez posłańca. Po obserwowaniu wroga muszą ustalić wspólny plan działania.
Jednak niektórzy generałowie mogą być zdrajcami, próbując przeszkodzić lojalnym generałom w osiągnięciu porozumienia. Generałowie muszą zadecydować, kiedy zaatakować miasto, ale potrzebują zdecydowanej większości swojej armii, aby zaatakować w tym samym czasie. 
Generałowie muszą mieć algorytm gwarantujący, że (a) wszyscy lojalni generałowie decydują się na ten sam plan działania i (b) niewielka liczba zdrajców nie może spowodować, że lojalni generałowie przyjmą zły plan. Lojalni generałowie zrobią to, co według algorytmu powinni, ale zdrajcy mogą robić wszystko, co chcą. Algorytm musi gwarantować warunek (a) niezależnie od tego, co zrobią zdrajcy. Lojalni generałowie powinni nie tylko dojść do porozumienia, ale także uzgodnić rozsądny plan”.
Problem bizantyjskich generałów, choć podobny do problemu dwóch generałów (paradoksu dwóch generałów), jest wersją bardziej ogólną. W bardziej skomplikowany sposób problem bizantyjskich generałów może narzucać więcej wariacji. Na przykład posłańcy mogą nie dostarczyć po drodze wiadomości lub nawet celowo zmienić oryginalną treść.
Co to jest BFT w Crypto?
W krypto, a konkretnie w technologii blockchain , niezwykle ważną rolę odgrywa Byzantine Fault Tolerance. Kiedy zastosujemy problem bizantyjskich generałów do krypto, generałowie są węzłami . Wszystkie węzły w sieci blockchain muszą komunikować się ze sobą i znaleźć sposób na osiągnięcie konsensusu, co prowadzi do metod, które nazywamy algorytmami konsensusu .
Istnieje wiele sposobów na osiągnięcie Bizantine Fault Tolerance. W związku z tym istnieją również różne algorytmy konsensusu w przestrzeni blockchain, każdy z własnymi rozwiązaniami problemu optymalnej wydajności.
Bitcoin , ze swoim algorytmem konsensusu Proof of Work, jest jednym z pierwszych, którzy osiągnęli bizantyjską tolerancję błędów w krypto. Od momentu wprowadzenia w 2008 roku, Proof of Work okazał się jednym z najbezpieczniejszych i najbardziej niezawodnych rozwiązań tego problemu, wraz z sukcesem Bitcoina.

Jak dowód pracy osiąga bizantyjską tolerancję błędów
Jak działa Praktyczna Bizantyjska Tolerancja Błędów?
Praktyczna bizantyjska tolerancja błędów (pBFT) to algorytm konsensusu wprowadzony pod koniec lat 90. przez Barbarę Liskov i Miguela Castro w celu rozwiązania istniejących problemów dostępnych już rozwiązań Bizantine Fault Tolerance.
Ogólnie rzecz biorąc, pBFT działa, początkowo przypisując 1 węzeł jako węzeł główny (lider), a inne jako węzeł drugorzędny (zapasowy). Każdy węzeł może stać się głównym, jeśli obecny nie działa.
Dodatkowo system pBFT może działać wtedy i tylko wtedy, gdy maksymalna liczba złośliwych węzłów nie może być większa lub równa jednej trzeciej wszystkich węzłów w systemie.
Istnieją 4 fazy rund konsensusu pBFT:
	- Żądanie: Klient wysyła żądanie do węzła podstawowego (lidera).
- Przygotowanie wstępne: Węzeł główny (liderski) rozgłasza żądanie do wszystkich węzłów drugorzędnych (zapasowych).
- Przygotuj: węzły (podstawowy i pomocniczy) wykonują żądaną usługę.
- Commit: odpowiedź jest wysyłana do klienta, jeśli jest ważna.

Jak działa praktyczna bizantyjska tolerancja błędów (pBFT)
Centralizacja i decentralizacja
Jak widać, aby osiągnąć Bizantine Fault Tolerance, każdy węzeł (lub uczestnik) w sieci musi komunikować się i współpracować z drugim. Nie ma wiarygodnego źródła informacji, na którym można by polegać. Dlatego tylko zdecentralizowane sieci muszą uwzględniać bizantyjską tolerancję błędów.
Z drugiej strony w przypadku sieci scentralizowanych zawsze istnieje jedna lub więcej stron trzecich, które działają jako pośrednicy między każdym uczestnikiem, co znacznie ułatwia komunikację i konsensus. Każdy uczestnik nie musi już ufać drugiemu; mogą po prostu dostarczyć wszystkie informacje pośrednikowi.

Bizantyjska tolerancja błędów w centralizacji i decentralizacji
Często zadawane pytania dotyczące BFT w Crypto
Czy bizantyjska tolerancja na błędy jest dowodem stawki?
Jak wspomniano powyżej, technologia blockchain wymaga algorytmów konsensusu, aby osiągnąć bizantyjską tolerancję błędów. Będąc jednym z nich, Proof of Stake może spełniać wymagania Bizantine Fault Tolerance, podobnie jak Proof of Work.
Dowiedz się więcej:  Co to jest PoS? Dlaczego jest to bizantyjska tolerancja na błędy?
Czy Tendermint BFT?
Tendermint, wprowadzony po raz pierwszy w 2014 roku, jest pierwszą adaptacją konsensusu Proof-of-Stake wywodzącego się z algorytmu Practical Byzantine Fault Tolerant (PBFT). Dlatego jest uważany za algorytm konsensusu BFT Proof-of-Stake.
Czy Ethereum bizantyjska tolerancja na błędy?
Ethereum używa obecnie algorytmu konsensusu Proof-of-Work, podobnego do tego, którego używa Bitcoin. W przyszłości Ethereum zmieni swoją sieć na Proof-of-Stake.
Tak czy inaczej, Ethereum wciąż jest w stanie sprostać Bizantine Fault Tolerance.
Wniosek
Byzantine Fault Tolerance to zdolność do działania rozproszonego systemu lub sieci i osiągnięcia konsensusu (umowy neutralnej), biorąc pod uwagę, że niektórzy uczestnicy mogą nie działać lub robić to w złośliwy sposób.
Jego nazwa wywodzi się od paradoksu zwanego bizantyjskim problemem generałów, podczas gdy bizantyjska tolerancja na błędy jest rozwiązaniem problemu.
Krótko mówiąc, bizantyński problem generałów odnosi się do problemu, w którym kilku generałów chce zaatakować fortecę i jako grupa musi zdecydować, czy zaatakować, czy wycofać się. Musimy dowiedzieć się, jak ci generałowie mogą osiągnąć konsensus niezależnie od złośliwych działań lub nieudanych prób komunikacji. 
Kiedy zastosujemy problem bizantyjskich generałów do krypto, generałowie są węzłami. Wszystkie węzły w sieci blockchain muszą komunikować się ze sobą i znaleźć sposób na osiągnięcie konsensusu, co prowadzi do metod, które nazywamy algorytmami konsensusu.
Istnieje wiele sposobów na osiągnięcie Bizantine Fault Tolerance. W związku z tym istnieją również różne algorytmy konsensusu w przestrzeni blockchain, każdy z własnymi rozwiązaniami problemu optymalnej wydajności.