Od založení bitcoinu v roce 2008 jako peer-to-peer elektronického hotovostního systému bylo vytvořeno mnoho dalších kryptoměn, z nichž každá má zvláštní mechanismus. Ale jedna věc, kterou mají téměř všechny kryptoměny společnou, je blockchain jako základní prvek jejich architektury.
Až na několik výjimek jsou blockchainy záměrně navrženy tak, aby byly decentralizované, fungují jako digitální účetní kniha, která je udržována distribuovanou sítí počítačových uzlů. Z tohoto důvodu umožnila technologie blockchain vytvoření nedůvěryhodných ekonomických systémů, kde bylo možné provádět transparentní a spolehlivé finanční transakce bez potřeby zprostředkovatelů. Kryptoměny jsou přijímány jako životaschopná alternativa k tradičním bankovním a platebním systémům, které jsou silně závislé na důvěře.
Stejně jako většina distribuovaných výpočetních systémů se účastníci kryptoměnové sítě potřebují pravidelně shodovat na aktuálním stavu blockchainu, a tomu říkáme dosažení konsenzu. Dosažení konsensu o distribuovaných sítích bezpečným a efektivním způsobem však zdaleka není snadný úkol.
Jak se tedy může distribuovaná síť počítačových uzlů dohodnout na rozhodnutí, pokud některé z uzlů pravděpodobně selžou nebo budou jednat nečestně? To je základní otázka problému takzvaných byzantských generálů, který dal vzniknout konceptu byzantské tolerance chyb.
Jaký je problém byzantských generálů?
Stručně řečeno, problém byzantských generálů byl pojat v roce 1982 jako logické dilema, které ilustruje, jak může mít skupina byzantských generálů problémy s komunikací, když se snaží dohodnout na dalším postupu.
Dilema předpokládá, že každý generál má svou vlastní armádu a že každá skupina se nachází na různých místech v okolí města, na které hodlají zaútočit. Generálové se musí dohodnout buď na útoku, nebo na ústupu. Nezáleží na tom, zda zaútočí nebo ustoupí, pokud všichni generálové dosáhnou konsensu, tj. dohodnou se na společném rozhodnutí, aby je provedli koordinovaně.
Proto můžeme zvážit následující požadavky:
Každý generál se musí rozhodnout: útok nebo ústup (ano nebo ne);
Po přijetí rozhodnutí jej nelze změnit;
Všichni generálové se musí dohodnout na stejném rozhodnutí a provést je synchronizovaným způsobem.
Výše uvedené komunikační problémy souvisí s tím, že jeden generál je schopen komunikovat s druhým pouze prostřednictvím zpráv, které jsou přeposílány kurýrem. V důsledku toho je ústředním problémem problému byzantských generálů to, že zprávy mohou být nějakým způsobem zpožděny, zničeny nebo ztraceny.
Navíc, i když je zpráva úspěšně doručena, jeden nebo více generálů se může rozhodnout (z jakéhokoli důvodu) jednat zlomyslně a poslat podvodnou zprávu, aby zmátl ostatní generály, což vede k úplnému selhání.
Pokud aplikujeme dilema na kontext blockchainů, každý generál představuje síťový uzel a uzly potřebují dosáhnout konsensu o aktuálním stavu systému. Jinak řečeno, většina účastníků v distribuované síti musí souhlasit a provést stejnou akci, aby se zabránilo úplnému selhání.
Jediným způsobem, jak dosáhnout konsensu v těchto typech distribuovaných systémů, je mít alespoň ⅔ nebo více spolehlivých a poctivých síťových uzlů. To znamená, že pokud se většina sítě rozhodne jednat zlomyslně, systém je náchylný k selháním a útokům (jako je 51% útok).
Byzantská odolnost proti chybám (BFT)
Stručně řečeno, byzantská odolnost proti chybám (BFT) je vlastnost systému, který je schopen odolat třídě selhání odvozených z problému byzantských generálů. To znamená, že systém BFT je schopen pokračovat v provozu, i když některé z uzlů selžou nebo jednají zlomyslně.
Existuje více než jedno možné řešení problému byzantských generálů, a proto existuje několik způsobů, jak vybudovat systém BFT. Stejně tak existují různé přístupy pro blockchain k dosažení byzantské odolnosti proti chybám, a to nás vede k takzvaným konsensuálním algoritmům.
Blockchainové konsensuální algoritmy
Algoritmus konsensu můžeme definovat jako mechanismus, jehož prostřednictvím blockchainová síť dosáhne konsensu. Nejběžnější implementace jsou Proof of Work (PoW) a Proof of Stake (PoS). Ale vezměme si příklad bitcoinu.
Zatímco bitcoinový protokol předepisuje primární pravidla systému, algoritmus konsenzu PoW definuje, jak budou tato pravidla dodržována, aby bylo dosaženo konsensu (například během ověřování a ověřování transakcí).
Přestože koncept Proof of Work je starší než kryptoměny, Satoshi Nakamoto vyvinul jeho upravenou verzi jako algoritmus, který umožnil vytvoření bitcoinu jako systému BFT.
Všimněte si, že algoritmus PoW není 100% tolerantní k byzantským chybám, ale vzhledem k nákladnému procesu těžby a základním kryptografickým technikám se PoW ukázalo jako jedna z nejbezpečnějších a nejspolehlivějších implementací pro blockchainové sítě. V tomto smyslu je konsenzuální algoritmus Proof of Work, navržený Satoshi Nakamotem, mnohými považován za jedno z nejgeniálnějších řešení byzantských chyb.
Závěrečné myšlenky
Problém byzantských generálů je zajímavé dilema, které nakonec dalo vzniknout systémům BFT, které jsou široce používány v různých scénářích. Kromě blockchainového průmyslu mezi několik případů použití systémů BFT patří letectví, vesmír a jaderná energetika.
V kontextu kryptoměn je efektivní síťová komunikace spolu s dobrým mechanismem konsenzu životně důležitá pro jakýkoli blockchainový ekosystém. Zabezpečení těchto systémů je neustálým úsilím a stávající konsensuální algoritmy ještě musí překonat několik omezení (jako je škálovatelnost). Nicméně PoW a PoS jsou velmi zajímavé přístupy jako BFT systémy a potenciální aplikace jistě inspirují rozsáhlé inovace.

