Od vzniku bitcoinu v roku 2008 ako elektronického hotovostného systému peer-to-peer bolo vytvorených mnoho ďalších kryptomien. Každá z nich používa špecifický mechanizmus. Jednou vecou, ktorú však majú takmer všetky kryptomeny spoločné, je blockchain ako základný prvok ich architektúry.
Až na niekoľko výnimiek sú blockchainy zámerne navrhnuté tak, aby boli decentralizované. Zároveň fungujú ako digitálny ledger, ktorý je udržiavaný distribuovanou sieťou počítačových uzlov. Z tohto dôvodu technológia blockchain umožnila vytvorenie ekonomických systémov bez potreby tretích strán, ktoré umožňujú uskutočňovanie transparentných a spoľahlivých finančných transakcií bez potreby sprostredkovateľov. Kryptomeny sa začínajú uznávať ako životaschopná alternatíva k tradičným bankovým a platobným systémom. Vo veľmi veľkej miere závisia na dôvere.
Rovnako ako väčšina distribuovaných výpočtových systémov, aj účastníci kryptomenovej siete sa musia pravidelne zhodnúť na aktuálnom stave blockchainu. Toto sa nazýva dosiahnutie konsenzu. Dosiahnutie konsenzu na distribuovaných sieťach bezpečným a efektívnym spôsobom však ani zďaleka nie je ľahké.
Ako sa môže distribuovaná sieť počítačových uzlov dohodnúť na rozhodnutí, ak je pravdepodobné, že niektoré z uzlov zlyhajú alebo budú konať nečestne? Toto je základná otázka takzvaného problému byzantských generálov, z ktorého sa zrodil koncept byzantskej odolnosti voči chybám.
Čo je problém byzantských generálov?
Stručne povedané, problém byzantských generálov bol formulovaný v roku 1982 ako logická dilema, ktorá znázorňuje, aké problémy môže mať skupina byzantských generálov s komunikáciou, keď sa snažia dohodnúť na ďalšom postupe.
Dilema predpokladá, že každý generál má svoju vlastnú armádu a že každá skupina sa nachádza na rôznych miestach okolo mesta, na ktoré chce zaútočiť. Generáli sa potrebujú dohodnúť, či zaútočia alebo ustúpia. Nezáleží na tom, či zaútočia alebo ustúpia, pokiaľ sa všetci generáli dohodnú na spoločnom konsenze, t. j. spoločnom rozhodnutí týkajúcom sa koordinovanej činnosti.
Preto môžeme zvážiť nasledujúce požiadavky:
Každý generál sa musí rozhodnúť: útok alebo ústup (áno alebo nie);
Po prijatí rozhodnutia už nie je možné rozhodnutie zmeniť;
Všetci generáli musia súhlasiť s rovnakým rozhodnutím a vykonať ho synchronizovaným spôsobom.
Uvedené komunikačné problémy súvisia s tým, že jeden generál je schopný komunikovať s druhým len prostredníctvom správ, ktoré doručuje posol. V dôsledku toho je hlavnou výzvou problému byzantských generálov to, že môže dôjsť k oneskoreniu, zničeniu alebo strate správ.
Navyše, aj v prípade správneho doručenia správy sa jeden alebo viacerí generáli môžu rozhodnúť (z akéhokoľvek dôvodu) konať zlomyseľne a poslať podvodnú správu, aby zmiatli ostatných generálov, čo vedie k úplnému zlyhaniu.
Ak aplikujeme túto dilemu na kontext blockchainov, každý generál predstavuje uzol siete a uzly musia dosiahnuť konsenzus týkajúci sa aktuálneho stavu systému. Inak povedané, aby sa predišlo úplnému zlyhaniu, väčšina účastníkov v rámci distribuovanej siete musí súhlasiť a rovnakou činnosťou a vykonať ju.
Preto jediný spôsob, ako dosiahnuť konsenzus v týchto typoch distribuovaných systémov, je mať aspoň ⅔ alebo viac spoľahlivých a poctivých sieťových uzlov. To znamená, že ak sa väčšina siete rozhodne konať zlomyseľne, systém je náchylný na zlyhania a útoky (napríklad útok 51 %).
Byzantská odolnosť voči chybám (BFT)
V krátkosti, byzantská odolnosť voči chybám (BFT) je vlastnosťou systému, ktorý je schopný odolať skupine zlyhaní odvodených od problému byzantských generálov. To znamená, že systém byzantskej odolnosti voči chybám je schopný fungovať aj v prípade, že niektoré uzly zlyhajú alebo sa správajú škodlivo.
Na vyriešenie problému byzantských generálov existuje viacero spôsobov, a preto existuje viacero spôsobov budovania systému byzantskej odolnosti voči chybám. Podobne existujú rôzne prístupy pre blockchain na dosiahnutie byzantskej odolnosti voči chybám, čo nás privádza k takzvaným konsenzuálnym algoritmom.
Konsenzuálne algoritmy blockchainov
Konsenzuálny algoritmus môžeme definovať ako mechanizmus, prostredníctvom ktorého blockchainová sieť dosiahne konsenzus. Najbežnejšie používanými sú Proof of Work (PoW) a Proof of Stake (PoS). Zoberme si ako príklad Bitcoin.
Zatiaľ čo protokol Bitcoinu predpisuje primárne pravidlá systému, konsenzuálny algoritmus PoW definuje, ako sa budú tieto pravidlá dodržiavať, aby sa dosiahol konsenzus (napríklad počas overovania a validácie transakcií).
Aj keď koncept Proof of Work je starší ako kryptomeny, Satoshi Nakamoto vyvinul jeho upravenú verziu ako algoritmus, ktorý umožnil vytvorenie Bitcoinu ako systému byzantskej tolerancie chýb.
Všimnite si, že algoritmus PoW nie je úplne odolný voči byzantským chybám, ale kvôli nákladnému procesu ťažby a základným kryptografickým technikám sa ukázalo že PoW je jeden z najbezpečnejších a najspoľahlivejších nástrojov pre blockchainové siete. V tomto zmysle je konsenzuálny algoritmus Proof of Work, ktorý navrhol Satoshi Nakamoto, mnohými považovaný za jedno z najgeniálnejších riešení byzantských chýb.
Záverečné myšlienky
Problém byzantských generálov je zaujímavou dilemou, ktorá nakoniec viedla k vzniku systémov byzantskej tolerancie chýb, ktoré sa vo veľkej miere používajú v rôznych scenároch. Okrem odvetvia blockchainov nájdeme niekoľko prípadov použitia systémov byzantskej tolerancie chýb v leteckom a vesmírnom priemysle a jadrovej energetike.
V odvetví kryptomien je efektívna sieťová komunikácia, spolu s dobrým mechanizmom konsenzu, pre akýkoľvek blockchainový ekosystém životne dôležitá. Zabezpečenie týchto systémov je trvalým úsilím. Existujúce konsenzuálne algoritmy však ešte stále čelia niekoľkým obmedzeniam, ktoré musia prekonať (napríklad škálovateľnosť). Napriek tomu sú algoritmy PoW a PoS veľmi zaujímavé prístupy, keďže systémy byzantskej tolerancie chýb a potenciálne aplikácie určite slúžia ako inšpirácia pre rozsiahle inovácie.