Od začátku bitcoinu v roce 2008 jako peer-to-peer elektronického finančního systému bylo vytvořeno mnoho digitálních měn, z nichž každá funguje se speciálním mechanismem. Ale jedna věc, kterou mají všechny digitální měny společné, je blockchain jako základní prvek v jejich struktuře.

Všechny blockchainy jsou záměrně navrženy tak, aby byly decentralizované a až na výjimky fungují jako digitální účetní kniha spravovaná distribuovanou sítí počítačových uzlů. Z tohoto důvodu technologie blockchain umožnila vytvoření důvěryhodných ekonomických systémů, kde lze finanční transakce provádět transparentním a spolehlivým způsobem bez potřeby zprostředkovatelů.

Používání digitálních měn je v současnosti přijímáno jako životaschopná alternativa k tradičním bankovním systémům a platebním metodám, které do značné míry spoléhají na důvěru.

Jak je tomu ve většině distribuovaných počítačových systémů, účastníci kryptoměnové sítě se musí pravidelně shodovat na aktuálním stavu, ve kterém blockchain funguje. Tomu říkáme dosažení konsenzu. Dosažení konsensu o distribuovaných sítích bezpečným a bezpečným způsobem je však velmi obtížný úkol.

Jak se tedy může distribuovaná síť počítačových uzlů dohodnout na tom, zda některé uzly pravděpodobně selžou nebo jednají nezákonně? To je základní otázka takzvaného problému byzantských generálů, ze kterého vzešel koncept byzantské odolnosti proti chybám.


Jaký je problém byzantských generálů?

Stručně řečeno, problém byzantských generálů z roku 1982 byl pojat jako logické dilema ilustrující, jak může mít skupina byzantských generálů problémy se vzájemnou komunikací, když se snaží dohodnout na dalším kroku svého plánu.

Dilema předpokládá, že každý generál má svou vlastní armádu, že každá skupina se nachází na různých místech v okolí města, na které hodlá zaútočit, a že každý generál musí souhlasit buď s útokem, nebo ústupem. Nezáleží na tom, zda útočí nebo ustupují, pokud všichni generálové dosáhnou konsensu, tj. dohodnou se na společném rozhodnutí, aby je provedli koordinovaně.

Můžeme tedy zvážit následující cíle:

  • Každý generál se musí rozhodnout: útok nebo ústup (ano nebo ne).

  • Jakmile padne rozhodnutí, nelze ho změnit.

  • Všichni generálové se musí dohodnout na stejném rozhodnutí a synchronizovaně je implementovat.

Výše uvedené komunikační problémy souvisí se skutečností, že každý jednotlivý generál je schopen komunikovat s jiným generálem pouze prostřednictvím zpráv, které jsou zasílány přepravcem/kurýrem. Hlavním problémem tohoto problému pro byzantské generály tedy bylo, že zprávy mohou být zpožděny, poškozeny nebo ztraceny.

Navíc, i když je zpráva úspěšně doručena, jeden nebo více generálů se může (z jakéhokoli důvodu) rozhodnout jednat zlomyslně a poslat podvrženou zprávu, aby zmátl ostatní generály, což vede k úplnému selhání mise.

Pokud toto dilema aplikujeme v kontextu blockchainu, každý gen představuje síťový uzel a uzly musí 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ý způsob, jak dosáhnout konsensu v těchto typech distribuovaných systémů, je mít ⅔ (dvě třetiny) nebo více poctivých uzlů. To znamená, že pokud se většina sítě rozhodne jednat zlomyslně, systém bude zranitelný vůči selháním a útokům (např. 51% útok).


Byzantská odolnost proti chybám - BFT

Stručně řečeno, byzantská odolnost proti chybám (BFT) je vlastnost systému schopného odolat typu selhání odvozeného z problému byzantských generálů. To znamená, že systém BFT je schopen pokračovat v provozu, i když některé uzly selžou nebo se chovají zlomyslně.

Existuje více než jedno možné řešení problému byzantských generálů, a to znamená, že existuje více způsobů, jak vybudovat systém BFT. Podobně existuje mnoho různých přístupů pro blockchainy k dosažení byzantské odolnosti proti chybám, což 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íť dosahuje konsensu. Nejběžnější aplikace jsou Proof of Work (PoW) a Proof of Stake (PoS). Ale vezměme si jako příklad případ Bitcoinu.

Zatímco bitcoinový protokol stanoví základní pravidla systému, je to konsensuální algoritmus známý jako Proof of Work (PoW), který definuje, jak jsou tato pravidla dodržována za účelem dosažení konsensu (například při 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 Proof of Work (PoW) není 100% odolný proti byzantským chybám, ale díky nákladnému procesu těžby a kryptografickým technikám se PoW ukázalo jako jedna z nejbezpečnějších a nejdůvěryhodnějších implementací blockchainových sítí.

Proto je algoritmus Proof of Work navržený Satoshi Nakamotem mnohými používán jako jedno z nejdůmyslnějších řešení byzantských chyb.


Závěr

Problém byzantských generálů je zajímavým dilematem, které nakonec dalo vzniknout systémům BFT, které jsou široce používány v různých scénářích. I mimo blockchainový průmysl několik případů použití BFT zahrnuje letectví, vesmír a jadernou energetiku.

V kontextu digitálních měn je pro jakýkoli blockchain systém životně důležitá efektivní komunikační síť spolu s mechanismem konsensu. Zabezpečení těchto systémů je neustálým úsilím a existující konsensuální algoritmy stále pracují na překonání některých omezení (jako je škálovatelnost). Proof of Work (PoW) a Proof of Stake (PoS) jsou však dva velmi zajímavé přístupy k systémům BFT a potenciální aplikace jsou jistě zdrojem široké inspirace.