Tolerancja na Bizantyjskie Wady
Strona G艂贸wna
Artyku艂y
Tolerancja na Bizantyjskie Wady

Tolerancja na Bizantyjskie Wady

Zaawansowany
Opublikowane Dec 6, 2018Zaktualizowane Aug 17, 2023
5m
Od czasu powstania Bitcoina w 2008 roku jako elektronicznego systemu przekazu pieni臋dzy w ramach sieci peer-to-peer, powsta艂o ju偶 wiele innych kryptowalut, z kt贸rych ka偶da ma sw贸j w艂asny mechanizm dzia艂ania. Aspektem, kt贸ry 艂膮czy prawie wszystkie kryptowaluty jest 艂a艅cuch blok贸w (ang. blockchain), kt贸ry funkcjonuje jako g艂贸wny element ich architektury.

Poza kilkoma wyj膮tkami sieci blockchain s膮 celowo zaprojektowane w taki spos贸b, aby charakteryzowa膰 si臋 wysokim stopniem decentralizacji. Blockchain dzia艂a jako cyfrowa ksi臋ga, kt贸ra jest utrzymywana i zarz膮dzana przez rozproszon膮 sie膰 w臋z艂贸w komputerowych. To w艂a艣nie decentralizacja sprawia艂a, 偶e technologia blockchain przyczyni艂a si臋 do stworzenia system贸w ekonomicznych nie potrzebuj膮cych wzajemnego zaufania ich uczestnik贸w do siebie, w kt贸rych przejrzyste i wiarygodne transakcje finansowe mog膮 by膰 realizowane bez potrzeby u偶ycia i istnienia po艣rednik贸w. Kryptowaluty s膮 obecnie traktowane jako realna alternatywa dla tradycyjnych system贸w bankowych i p艂atniczych, kt贸re w du偶ym stopniu uzale偶nione s膮 w艂a艣nie od wzajemnego zaufania ich uczestnik贸w.

Podobnie jak w wi臋kszo艣ci rozproszonych system贸w komputerowych, uczestnicy sieci blockchain musz膮 regularnie uzgadnia膰 i akceptowa膰 pomi臋dzy sob膮 bie偶膮cy stan 艂a艅cucha blok贸w, co w 艣wiecie kryptowalut nazywane jest osi膮gni臋ciem konsensusu. Jednak osi膮gni臋cie konsensusu w sieciach rozproszonych w bezpieczny i godny zaufania spos贸b wcale nie jest tak 艂atwym zadaniem, jak by to mog艂o si臋 wydawa膰.

Jak zatem rozproszona sie膰 w臋z艂贸w komputerowych mo偶e zgodzi膰 si臋 w jakiej艣 sprawie, je艣li z g贸ry wiadomym jest, 偶e niekt贸re w臋z艂y mog膮 zawie艣膰 lub nie posiadaj膮 czystych intencji? Ta kwestia jest podstawowym za艂o偶eniem, kt贸re umo偶liwi艂o sformu艂owanie tzw. Problemu Bizantyjskich Genera艂贸w (ang. Byzantine Generals Problem), kt贸ry z kolei zrodzi艂 tzw. Bizantyjsk膮 Tolerancj臋 na B艂臋dy (ang. Byzantine Fault Tolerance.).


Na czym polega Problem Bizantyjskich Genera艂贸w?

W kilku s艂owach koncepcja BGP zosta艂a stworzona w 1982 roku w formie logicznego dylematu, kt贸ry ilustruje problemy grupy Bizantyjskich genera艂贸w borykaj膮cych si臋 z komunikacj膮, pr贸buj膮c zgodzi膰 si臋 na wsp贸lny i skoordynowany ruch trzech r贸偶nych armii.

Dylemat zak艂ada, 偶e ka偶dy genera艂 ma swoj膮 w艂asn膮 armi臋 oraz, 偶e ka偶da grupa wojskowych znajduje si臋 w r贸偶nych miejscach obranego przez nich na cel miasta. Genera艂owie musz膮 doj艣膰 do porozumienia w kwestii podj臋cia wsp贸lnego atak lub wycofywanie si臋 ze swoich pozycji. To czy zaatakuj膮 lub wycofaj膮 si臋 nie ma tak naprawd臋 znaczenia. Wa偶ne jest to, aby osi膮gn臋li wsp贸lny konsensus w danej sprawie, tj. uzgodnili wsp贸ln膮 decyzj臋, aby wykona膰 j膮 w skoordynowany spos贸b, gdy偶 w innym przypadku brak koordynacji mo偶e przynie艣膰 fatalne skutki.

W celu osi膮gni臋cia konsensusu decyzyjnego, genera艂owie musz膮 spe艂ni膰 nast臋puj膮ce warunki:

  • Ka偶dy z genera艂贸w musi zdecydowa膰 czy podj膮膰 si臋 ataku czy si臋 wycofa膰 (innymi s艂owy, odpowiadaj膮c na pytanie czy ma zaatakowa膰: tak czy nie);
  • Po podj臋ciu decyzji nie mo偶e ona ju偶 ulec zmianie, jest ostateczna;
  • Wszyscy genera艂owie musz膮 dokona膰 takiej samej decyzji i wykona膰 j膮 w zsynchronizowany spos贸b.

Wymienione wcze艣niej problemy komunikacyjne s膮 zwi膮zane z faktem, 偶e jeden genera艂 mo偶e komunikowa膰 si臋 z innym jedynie za pomoc膮 wiadomo艣ci, kt贸re s膮 przesy艂ane przez tzw. kuriera (lub go艅ca). W zwi膮zku z tym g艂贸wnym wyzwaniem z kt贸rym musz膮 si臋 zmierzy膰 Bizantyjscy Genera艂owie jest to, 偶e wiadomo艣ci z decyzj膮 mog膮 zosta膰 op贸藕nione w czasie, zniszczone lub ca艂kowicie utracone.

Ponadto, nawet je艣li wiadomo艣膰 od jednego genera艂a zostanie pomy艣lnie dostarczona do drugiego, to jeden z genera艂贸w mo偶e zdecydowa膰 si臋 na z艂o艣liwe dzia艂anie, b臋d膮ce niezgodne z prawd膮 - z dowolnego powodu - i wys艂a膰 nieprawdziw膮 wiadomo艣膰 o swoich zamiarach, aby zmyli膰 innych genera艂贸w, a tym samym prowadz膮c do ca艂kowitej pora偶ki.

Przek艂adaj膮c problem Bizantyjskich Genera艂贸w na sieci blockchain, to ka偶dy w臋ze艂 w sieci odpowiada jednemu genera艂owi, a poprawne dzia艂anie sieci wymaga aby w臋z艂y stale doprowadza艂y konsensusu mi臋dzy sob膮 na temat bie偶膮cego stanu systemu. Inaczej m贸wi膮c, wi臋kszo艣膰 uczestnik贸w rozproszonej sieci musi si臋 zgodzi膰 i wykona膰 to samo dzia艂anie, aby unikn膮膰 jej przestoj贸w lub awarii.

Bior膮c powy偶sze pod uwag臋, jedynym sposobem osi膮gni臋cia konsensusu w rozproszonych systemach (czyt. sieciach) jest posiadanie co najmniej 鈪 lub wi臋cej, rzetelnych, niezawodnych i uczciwych w臋z艂贸w w sieci. Oznacza to, 偶e je艣li wi臋kszo艣膰 sieci zdecyduje aby dzia艂a膰 z艂o艣liwie, system jest podatny na r贸偶nego rodzaju awarie i ataki (takie jak np. atak 51%).


Tolerancja na Bizantyjskie Wady (ang. Byzantine Fault Tolerance - BFT)

BFT w kilku s艂owach okre艣la zdolno艣膰 danego systemu do przetrwania i przezwyci臋偶enia problem贸w znanych z dylematu Bizantyjskich Genera艂贸w. Oznacza to, 偶e system odporny na BFT mo偶e nadal dzia艂a膰, nawet je艣li niekt贸re z w臋z艂贸w nie dzia艂aj膮 lub dzia艂aj膮 z艂o艣liwie (czyt. na szkod臋 systemu).

Istnieje wi臋cej ni偶 jedno mo偶liwe rozwi膮zanie problemu Bizanty艅skich Genera艂贸w, a co za tym idzie wiele sposob贸w budowania systemu odpornego na BFT (ang. BFT resistant). Podobnie istnieje wiele r贸偶nych podej艣膰 prowadz膮cych do osi膮gni臋cia przez sie膰 blockchain stanu odporno艣ci na BFT. Te podej艣cia zwane s膮 algorytmami konsensusu.


Alogorytmy konensusu w sieciach blockchain

Algorytm konsensusu, to inaczej mechanizm dzi臋ki kt贸remu sie膰 blockchain osi膮ga konsensus - czyli zgod臋 co do okre艣lonych kwestii. Najcz臋艣ciej spotykanymi implementacjami s膮 algorytmy Proof of Work (PoW) oraz Proof of Stake (PoS). W celu lepszego zrozumienia ich dzia艂ania we藕miemy pod lup臋 blockchain kryptowaluty Bitcoin.
Podczas gdy protok贸艂 Bitcoin okre艣la podstawowe zasady dzia艂ania swojej sieci blockchain, algorytm konsensusu PoW okre艣la w jaki spos贸b regu艂y te b臋d膮 stosowane w celu osi膮gni臋cia konsensusu (na przyk艂ad podczas weryfikacji i walidacji transakcji).
Chocia偶 koncepcja Dowodu Pracy (ang. PoW) jest starsza ni偶 same kryptowaluty, Satoshi Nakamoto - tw贸rca lub tw贸rcy Bitcoina - opracowa艂 zmodyfikowan膮 wersj臋 tego algorytmu, kt贸ry umo偶liwi艂 mu stworzenie Bitcoina, czyli systemu odpornego na BFT.
Nale偶y jednak zauwa偶y膰, 偶e algorytm PoW nie jest w 100% odporny na BFT, ale ze wzgl臋du na kosztowny proces kopania (ang. mining) i le偶膮ce u jego podstaw techniki kryptograficzne, PoW okaza艂 si臋 jedn膮 z najbezpieczniejszych i najbardziej niezawodnych implementacji algorytm贸w konsensusu dla sieci typu blockchain. Bior膮c powy偶sze pod uwag臋 Proof of Work zaprojektowany przez Satoshiego Nakamoto przez wielu uwa偶any jest za jedno z najbardziej genialnych rozwi膮za艅 problemu Bizantyjskich Genera艂贸w.


Wnioski

BGT jest przyk艂adem intryguj膮cego dylematu, kt贸ry ostatecznie doprowadzi艂 do powstania system贸w odpornych na BFT. Poza sam膮 bran偶膮 blockchain istnieje kilka innych ga艂臋zi, kt贸re wykorzystuj膮 systemy odporne na BFT. S膮 to np. przemys艂 lotniczy, kosmiczny i energetyki j膮drowej.

W kontek艣cie kryptowalut posiadanie efektywnej komunikacji sieciowej oraz dobrego mechanizmu konsensusu jest kluczowe dla poprawnego dzia艂ania sieci blockchain. Zabezpieczanie tych system贸w oznacza konieczno艣膰 podejmowania coraz to nowych pr贸b i testowania r贸偶nych podej艣膰. Istniej膮ce algorytmy konsensusu ca艂y czas borykaj膮 si臋 i pr贸buj膮 przeciwstawi膰 r贸偶nym ograniczeniom (takim jak np. skalowalno艣膰). Niemniej jednak PoW i PoS s膮 bardzo interesuj膮cymi rozwi膮zaniami, kt贸re s膮 odporne na BGT, a ich potencja艂 z pewno艣ci膮 nap臋dzi szeroko rozumiane innowacje.