Na czym polega problem bizantyjskich generałów?

Wyjaśnienie problemu bizantyjskich generałów
Problem bizantyjskich generałów to teoretyczny problem opisujący wyzwania, przed którymi stoją zdecentralizowane systemy, takie jak blockchainy, gdy próbują osiągnąć konsensus bez centralnego organu. Problem bizantyjskich generałów został przedstawiony w 1982 roku przez Roberta Shostaka, Lesliego Lamporta i Marshalla Pease’a. Został opisany jako teoretyczny problem z zakresu informatyki.
Pytanie brzmi: jak sieć, w której żaden uczestnik nie może zweryfikować tożsamości i integralności innego uczestnika, może zagwarantować osiągnięcie konsensusu poprzez zgodę co do jednej wersji?
To bardzo istotne pytanie, ponieważ zdecentralizowane sieci, takie jak Bitcoin i Ethereum, opierają zaufanie na wielu uczestnikach, a nie na centralnym podmiocie.
Najważniejsze informacje
-
Problem bizantyjskich generałów to teoretyczny problem opisujący, jak zdecentralizowane systemy, takie jak blockchainy, mogą osiągnąć konsensus bez centralnego organu.
-
Problem pokazuje, że w sieciach bez centralnej strony osiągnięcie porozumienia jest trudne. Każdy węzeł musi podejmować decyzje bez gwarancji, że pozostali są uczciwi.
-
Tolerancja błędów bizantyjskich (BFT) zapewnia, że system może nadal działać nawet wtedy, gdy część uczestników działa złośliwie. Dopóki większość jest wiarygodna, system pozostaje stabilny.
Skąd pochodzi nazwa „problem bizantyjskich generałów”?
Za pochodzeniem tej nazwy stoi ciekawa historia. Po upadku Cesarstwa Zachodniorzymskiego powstało Cesarstwo Bizantyjskie, czyli wschodnia część dawnego Cesarstwa Rzymskiego. Jego stolicą było bardzo bogate i wpływowe miasto, pierwotnie nazywane Bizancjum. W 330 roku n.e. miasto to przemianowano na Konstantynopol, a dziś jest znane jako Stambuł.
Problem bizantyjskich generałów dotyczy scenariusza, w którym miasto jest oblegane, a generałowie broniący miasta muszą podjąć tę samą decyzję, czyli wycofać się albo zaatakować. Jeśli jeden z generałów wybierze inaczej niż pozostali, osłabia to linię obrony i może prowadzić do porażki.
Jeśli któryś z generałów podejmie błędną decyzję, nazywa się to „błędem bizantyjskim”, znanym w świecie krypto jako Byzantine Fault. Jak generałowie sobie z tym radzą? Pomocnicy generałów (posłańcy) przekazują decyzje pozostałym generałom. Jeśli większość wybierze jedną strategię, wszyscy generałowie muszą się do niej zastosować. W ten sposób linia obrony pozostaje nienaruszona. Jeśli generałowie nadal działają wbrew większości, uznaje się ich za zdradzieckich generałów. Ponieważ to większość podejmuje decyzję, system zasadniczo zawsze działa.
Zastosowanie problemu bizantyjskich generałów w systemach zdecentralizowanych
Ta historia ilustruje problemy, z jakimi mierzą się zdecentralizowane systemy, takie jak blockchainy. Jeśli żadna pojedyncza osoba (ani żaden węzeł w świecie krypto) nie podejmuje decyzji samodzielnie, jak ma to zwykle miejsce w przypadku podmiotów scentralizowanych, kluczowe jest istnienie bardzo jasnej metody podejmowania decyzji bez niejednoznaczności.
Problem ten pokazuje wyzwanie, przed którym stoją zdecentralizowane systemy, próbując osiągnąć konsensus, ponieważ nie zakłada się, że pojedynczy uczestnik może być zaufanym źródłem dokładnych informacji.
Podmioty scentralizowane nie mierzą się z problemem bizantyjskich generałów, ponieważ decyzje podejmuje tylko jedna strona, podobnie jak przy przekazywaniu poufnych i dokładnych informacji. Jeśli spojrzymy na sektor finansowy, banki są doskonałym przykładem. Obdarza się je zaufaniem i oczekuje się od nich, że będą rzetelnie zarządzać środkami oraz bezpiecznie przechowywać dane transakcyjne. Jeśli bank dopuści się oszustwa, odpowiednie instytucje państwowe mogą przeprowadzić audyt i nałożyć na bank sankcje.
Zaufanie jest więc bardziej skupione wokół centralnego organu. Zapewnia to większą efektywność, ale wprowadza też inne ryzyka. Jeśli system przestanie działać z powodu awarii lub ataku na dużą skalę, cały system zostaje wyłączony. W systemach zdecentralizowanych można zaatakować pojedynczy węzeł albo węzeł może działać złośliwie, ale nadal istnieje wystarczająco wiele innych węzłów, aby wywierać wpływ.
Czym jest tolerancja błędów bizantyjskich?
Rozwiązaniem tego problemu jest tolerancja błędów bizantyjskich (BFT). To system, na którym opiera się projektowanie systemów zdecentralizowanych. Zapewnia on, że zdecentralizowane systemy, takie jak technologia blockchain, nadal działają nawet wtedy, gdy uczestniczą w nich złośliwi użytkownicy.
Dzięki tolerancji błędów bizantyjskich do osiągnięcia konsensusu wystarcza większość.
Tolerancja błędów bizantyjskich w technologii blockchain
Bitcoin jest doskonałym przykładem zastosowania tolerancji błędów bizantyjskich (BFT). Bitcoin wykorzystuje mechanizm konsensusu Proof-of-Work, aby weryfikować transakcje i dodawać nowe bloki do blockchaina. W tym celu wykorzystywani są górnicy (węzły). Górnik może dodać blok zawierający transakcje. Następnie blok ten jest sprawdzany przez innych górników. Jeśli ponad 51% górników zatwierdzi blok i w ten sposób zostanie osiągnięty konsensus, blok zostaje dodany do blockchaina. Dzięki temu złośliwi górnicy mogą zostać wykryci i ukarani.
W teorii złośliwy górnik musiałby kontrolować 51% mocy obliczeniowej wykorzystywanej podczas procesu wydobycia. Jest to również znane jako atak 51%. W praktyce jednak jest to niemal niemożliwe, ponieważ tysiące górników na całym świecie pracują 24/7 nad wydobywaniem nowych bitcoinów.
Podsumowanie
Problem bizantyjskich generałów podkreśla wyzwanie związane z osiąganiem konsensusu w zdecentralizowanej sieci, w której uczestnicy nie mogą sobie nawzajem ufać. Dzięki tolerancji błędów bizantyjskich blockchainy takie jak Bitcoin mogą nadal działać i pozostawać bezpieczne, dopóki większość uczestników działa uczciwie. To sprawia, że systemy zdecentralizowane są bardziej odporne na awarie i ataki niż wiele scentralizowanych alternatyw.