Úvod
Algoritmus konsenzu je mechanismus, který umožňuje koordinaci uživatelů nebo počítačů v distribuovaném prostředí. Musí zajistit, aby se všichni účastníci v systému dokázali shodnout na jediném zdroji pravdy, i když někteří účastníci selžou. Jinými slovy systém musí být odolný proti chybám (viz také: Vysvětlení byzantské odolnosti proti chybám).
V centralizovaném prostředí má nad celým systémem moc jediný subjekt. Ve většině případů může provádět změny, jak se mu zlíbí – neexistuje žádný komplexní systém řízení, který by mezi mnoha správci zajišťoval konsenzus.
V decentralizovaném prostředí je to ale úplně jinak. Řekněme, že pracujeme s distribuovanou databází – jak se dohodneme na tom, které položky budou přidány?
Vyřešení tohoto problému v prostředí, kde si cizí lidé navzájem nedůvěřují, bylo zřejmě tím nejzásadnějším krokem, který otevřel cestu blockchainům. V tomto článku se podíváme na to, proč jsou algoritmy konsensu pro fungování kryptoměn a distribuovaných účetních knih tak důležité.
Algoritmy konsenzu a kryptoměny
Kryptoměny zaznamenávají zůstatky uživatelů do databáze – na blockchain. Je nezbytné, aby každý (přesněji řečeno každý uzel) udržoval identickou kopii této databáze. V opačném případě byste brzy skončili s protichůdnými informacemi, což by podrylo celý účel kryptoměnové sítě.
Kryptografie s veřejným klíčem zajišťuje, že uživatelé nemohou utrácet kryptoměny ostatních uživatelů. Pořád ale musí existovat jediný zdroj pravdy, na který se mohou účastníci sítě spolehnout, aby zjistili, jestli už byly prostředky utraceny.
Satoshi Nakamoto, tvůrce Bitcoinu, navrhl za účelem koordinace účastníků sítě systém Proof of Work (PoW). O tom, jak PoW funguje, si povíme za chvíli – teď se zaměříme na některé společné rysy mnoha existujících algoritmů konsenzu.
Nejdřív je nutné, aby uživatelé, kteří chtějí přidávat bloky (budeme jim říkat validátoři), poskytli stake (zainteresovanost). Stake představuje určitou hodnotu, kterou musí validátor předložit a která ho odrazuje od nečestného jednání. Kdyby provedl nějaký podvod, o svůj stake přijde. Stakem může být výpočetní síla, kryptoměna nebo dokonce pověst.
Proč by někdo riskoval svoje vlastní zdroje? Protože za to může získat odměnu. Tou obvykle bývá nativní kryptoměna daného protokolu a tvoří ji poplatky placené ostatními uživateli, čerstvě vygenerované jednotky kryptoměny nebo obojí.
Poslední, co nám chybí, je transparentnost. Musíme být schopni odhalit, když někdo podvádí. V ideálním případě by pro ně měla být tvorba bloků nákladná, ale jejich ověření už by mělo být pro kohokoli jiného levné. Díky tomu můžou běžní uživatelé kontrolovat validátory.
Typy algoritmů konsenzu
Proof of Work (PoW)
Proof of Work (PoW) je kmotrem blockchainových algoritmů konsenzu. Jeho první implementací byl Bitcoin, ale samotný koncept byl znám už delší dobu. V systému Proof of Work hashují validátoři (označovaní jako těžaři) data, která chtějí přidat, dokud nevytvoří konkrétní řešení.
Hash je zdánlivě náhodný řetězec písmen a čísel, který vznikne, když data proženete hashovací funkcí. Když stejná data proženete hashovací funkcí znovu, dostanete vždy stejný výstup. Stačí ale změnit jediný detail a váš hash bude úplně jiný.
Při pohledu na výstup nelze zjistit, jaké informace byly do funkce vloženy. Jsou tedy užitečné k prokázání, že jste určitá data znali už dřív. Můžete někomu předat hash, a když později data odhalíte, daná osoba je může prohnat hashovací funkcí, aby se ujistila, že je výstup stejný.
Protokol Proof of Work má stanoveny podmínky určující platnost bloku. Jednou z podmínek může být například: blok je platný pouze v případě, že jeho hash začíná na 00. Jediný způsob, jak může těžař vytvořit stejný hash, je použít na vstupy metodu brute-force (hrubá síla). Ve svých datech může nějaký parametr upravit tak, aby při každém hádání vyšel jiný výsledek, dokud nezíská správný hash.
U velkých blockchainů je tato laťka nastavena neuvěřitelně vysoko. Abyste mohli konkurovat ostatním těžařům a měli šanci vytvořit platný blok, potřebovali byste sklad plný speciálního hashovacího hardwaru (ASIC).
Při těžbě představují váš stake (vklad) náklady na tyto stroje a elektřina potřebná k jejich provozu. Těžební soupravy ASIC jsou konstruovány pro jediný účel, takže mimo těžbu kryptoměn nemají žádné jiné využití. Jediným způsobem, jak získat svou počáteční investici zpět, je těžba, která přináší značnou odměnu, pokud se vám podaří na blockchain přidat nový blok.
Pro síť je velmi snadné ověřit, jestli jste skutečně vytvořili správný blok. I kdybyste museli vyzkoušet biliony kombinací, abyste získali správný hash, ostatním stačí, aby vaše data zkontrolovali pomocí funkce jen jednou. Pokud vaše data vytvoří platný hash, budou přijata a vy získáte odměnu. V opačném případě je síť odmítne a vy vyplýtváte čas a elektřinu naprosto zbytečně.
Proof of Stake (PoS)
Systém Proof of Stake (PoS) byl navržen v počátcích Bitcoinu jako alternativa k systému Proof of Work. Systém PoS nemá těžaře a nevyžaduje specializovaný hardware ani obrovské množství elektrické energie. Stačí vám obyčejný počítač.
I když ani to není všechno. Musíte jít také s kůží na trh. V systému PoS nedáváte v sázku externí zdroj (jako elektřinu nebo hardware), ale interní zdroj – nativní kryptoměnu. Každý protokol má jiná pravidla, ale obecně platí, že ke stakování potřebujete určitou minimální částku.
Pak svoje prostředky uzamknete do peněženky (dokud stakujete, nemůžete je přesouvat). S ostatním validátory se obvykle domluvíte, jaké transakce půjdou do dalšího bloku. V jistém smyslu sázíte na to, jaký blok bude vybrán, a protokol pak nějaký vybere.
Pokud vybere váš blok, v závislosti na velikosti vašeho staku dostanete určitou část poplatků za transakce. Čím víc prostředků uzamknete, tím větší odměnu můžete získat. Pokud se ale pokusíte podvádět a budete navrhovat neplatné transakce, přijdete o část vkladu nebo rovnou o celý vklad. Funguje to tedy na podobném principu jako PoW – čestné jednání je výhodnější než nečestné jednání.
Obecně platí, že součástí odměn pro validátory nejsou čerstvě vytvořené coiny. Nativní měna blockchainu tak musí být emitována jiným způsobem. Toho lze dosáhnout buď prostřednictvím počáteční distribuce (tj. ICO nebo IEO), nebo spuštěním protokolu se systémem PoW a pozdějším přechodem na PoS.
Blockchainy čistě se systémem Proof of Stake doposud existují pouze v rámci menších kryptoměn. Proto není jasné, jestli jde o udržitelnou alternativu k PoW. Ačkoli se to zdá být teoreticky možné, praxe může být úplně jiná.
Jakmile bude systém PoS nasazen na síti s velkou hodnotou, stane se hřištěm pro teorii her a finanční pobídky. Každý, kdo ví, jak „hacknout“ systém PoS, by to pravděpodobně udělal pouze v případě, že by na tom mohl vydělat – proto jediný způsob, jak zjistit, jestli je to možné, je na živé síti.
Brzy se dočkáme otestování systému PoS na velké síti – Casper bude implementován jako jeden z řady upgradů sítě Ethereum (souhrnně označovaných jako Ethereum 2.0).
Další konsensuální algoritmy
Nejdiskutovanějšími algoritmy konsenzu jsou Proof of Work a Proof of Stake. Existuje však celá řada dalších, které mají své výhody a nevýhody. Projděte si následující články:
Závěrem
Mechanismy k dosažení konsensu jsou pro fungování distribuovaných systémů zásadní. Mnozí se domnívají, že největší inovací u Bitcoinu bylo použití metody Proof of Work, která umožnila uživatelům dohodnout se na sdíleném souboru faktů.
O algoritmy konsenzu se dnes opírají nejen systémy digitálních peněz, ale i blockchainy, které vývojářům umožňují spouštět kód v distribuované síti. Jsou dnes základním kamenem blockchainové technologie a mají zásadní význam pro dlouhodobou životnost různých existujících sítí.
Ze všech algoritmů konsenzu je Proof of Work pořád tím nejdominantnějším. Spolehlivější a bezpečnější alternativa zatím nebyla navržena. Nicméně do výzkumu a vývoje náhrad za PoW směřuje obrovské množství úsilí a v příštích letech jich pravděpodobně bude představeno ještě mnoho.