Úvod
Algoritmus konsenzu je mechanismus, který umožňuje uživatelům nebo strojům koordinovat se v distribuovaném prostředí. Musí zajistit, aby se všichni agenti v systému mohli shodnout na jediném zdroji pravdy, i když někteří agenti 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 nastavení má nad systémem moc jediná entita. Ve většině případů mohou provádět změny, jak se jim zlíbí – neexistuje žádný složitý systém řízení pro dosažení konsenzu mezi mnoha administrátory.
Ale v decentralizovaném nastavení je to úplně jiný příběh. Řekněme, že pracujeme s distribuovanou databází – jak dosáhneme dohody o tom, jaké položky budou přidány?
Překonání této výzvy v prostředí, kde si cizinci navzájem nedůvěřují, bylo možná tím nejzásadnějším vývojem, který připravil cestu blockchainům. V tomto článku se podíváme na to, jak jsou konsenzuální algoritmy životně důležité pro fungování kryptoměn a distribuovaných účetních knih.
Konsensuální algoritmy a kryptoměna
U kryptoměn se zůstatky uživatelů zaznamenávají v databázi – blockchainu. Je nezbytné, aby každý (nebo přesněji každý uzel) udržoval identickou kopii databáze. Jinak byste brzy skončili s protichůdnými informacemi, což by podkopalo celý účel sítě kryptoměn.
Kryptografie s veřejným klíčem zajišťuje, že uživatelé nemohou vzájemně utrácet své coiny. Stále však musí existovat jediný zdroj pravdy, na který se účastníci sítě spoléhají, aby mohli určit, zda již byly prostředky vynaloženy.
Satoshi Nakamoto, tvůrce bitcoinu, navrhl systém Proof of Work pro koordinaci účastníků. Brzy se dostaneme k tomu, jak PoW funguje – prozatím identifikujeme některé společné rysy mnoha existujících konsenzuálních algoritmů.
Za prvé vyžadujeme, aby uživatelé, kteří chtějí přidávat bloky (nazýváme je validátoři), poskytli vklad. Sázka je určitý druh hodnoty, kterou musí validátor předložit, což je odrazuje od nečestného jednání. Pokud budou podvádět, ztratí svůj podíl. Příkladem může být výpočetní výkon, kryptoměna nebo dokonce pověst.
Proč by se obtěžovali riskovat vlastní zdroje? No, k dispozici je také odměna. To se obvykle skládá z nativní kryptoměny protokolu a je tvořeno poplatky placenými jinými uživateli, čerstvě vygenerovanými jednotkami kryptoměny nebo obojím.
Poslední věc, kterou potřebujeme, 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 výroba bloků nákladná, ale pro kohokoli by měla být levná na jejich ověřování. To zajišťuje, že validátory budou běžnými uživateli pod kontrolou.
Typy konsensuálních algoritmů
Proof of Work (PoW)
Proof of Work (PoW) je kmotrem blockchainových konsenzuálních algoritmů. Poprvé byl implementován v bitcoinu, ale skutečný koncept existuje již nějakou dobu. V Proof of Work validátoři (označovaní jako těžaři) hašují 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ý se vytvoří, když spustíte data pomocí hashovací funkce. Pokud však znovu spustíte stejná data, vždy skončíte se stejným výstupem. Změňte však i jeden detail a váš hash bude úplně jiný.
Při pohledu na výstup nemůžete určit, jaké informace byly do funkce vloženy. Jsou proto užitečné k prokázání, že jste znali určitý údaj před určitou dobou. Můžete někomu dát svůj hash, a když později odhalíte data, může je tato osoba spustit pomocí funkce, aby se ujistil, že výstup je stejný.
V Proof of Work protokol stanoví podmínky pro to, co činí blok platným. Může například říci, že platný bude pouze blok, jehož hash začíná 00. Jediný způsob, jak může těžař vytvořit takový, který odpovídá této kombinaci, je vstupy hrubou silou. Mohou upravit parametr ve svých datech tak, aby pro každý odhad vytvořili jiný výsledek, dokud nedostanou správný hash.
U hlavních blockchainů je laťka nastavena neuvěřitelně vysoko. Abyste mohli konkurovat ostatním těžařům, potřebovali byste sklad plný speciálního hašovacího hardwaru (ASIC), abyste byli v šancí produkovat platný blok.
Vaší sázkou při těžbě jsou náklady na tyto stroje a elektřina potřebná k jejich provozu. ASIC jsou stavěny pro jeden účel, takže nemají využití v aplikacích mimo těžbu kryptoměn. Jediným způsobem, jak získat zpět svou počáteční investici, je těžba, která přináší významnou odměnu, pokud do blockchainu úspěšně přidáte nový blok.
Pro síť je triviální ověřit, že jste skutečně vytvořili správný blok. I když jste vyzkoušeli biliony kombinací, abyste získali správný hash, stačí, aby vaše data jednou prošli funkcí. Pokud vaše data vytvoří platný hash, budou přijata a získáte odměnu. V opačném případě jej síť odmítne a vy budete zbytečně plýtvat časem a elektřinou.
Proof of Stake (PoS)
Proof of Stake (PoS) byl navržen v počátcích bitcoinu jako alternativa k Proof of Work. V systému PoS neexistuje žádný koncept těžařů, specializovaného hardwaru nebo masivní spotřeby energie. Vše, co potřebujete, je běžný počítač.
No, ne všechny. Stále musíte do hry vložit nějaký skin. V PoS nepředkládáte externí zdroj (jako je elektřina nebo hardware), ale interní zdroj – kryptoměnu. Pravidla se u každého protokolu liší, ale obecně existuje minimální množství finančních prostředků, které musíte držet, abyste měli nárok na sázky.
Odtud zamknete své prostředky v peněžence (během sázky je nelze přesunout). Obvykle se s ostatními validátory dohodnete na tom, jaké transakce půjdou do dalšího bloku. V jistém smyslu sázíte na blok, který bude vybrán, a protokol vybere jeden.
Pokud je váš blok vybrán, obdržíte poměrnou část transakčních poplatků v závislosti na vašem vkladu. Čím více prostředků máte zablokovaných, tím více můžete získat. Pokud se však pokusíte podvádět tím, že navrhnete neplatné transakce, ztratíte část (nebo celý) svého vkladu. Proto máme podobný mechanismus jako PoW – jednat čestně je ziskovější než jednat nečestně.
Obecně platí, že jako součást odměny pro validátory nejsou čerstvě vytvořené mince. Nativní měna blockchainu tak musí být vydána nějakým jiným způsobem. To lze provést buď prostřednictvím počáteční distribuce (tj. ICO nebo IEO), nebo spuštěním protokolu s PoW před pozdějším přechodem na PoS.
Doposud byl čistý Proof of Stake skutečně nasazen pouze v menších kryptoměnách. Proto není jasné, zda může sloužit jako životaschopná alternativa k PoW. I když se to zdá teoreticky správné, v praxi to bude velmi odlišné.
Jakmile je PoS zaveden do sítě s velkým množstvím hodnoty, systém se stává herním polem teorie her a finančních pobídek. Každý, kdo má know-how k „hacknutí“ systému PoS, by to pravděpodobně udělal pouze tehdy, pokud by z toho mohl získat – a proto jediný způsob, jak zjistit, zda je to možné, je v živé síti.
Brzy uvidíme, že PoS bude testován ve velkém měřítku – Casper bude implementován jako součást řady upgradů sítě Ethereum (souhrnně známé jako Ethereum 2.0).
Další konsensuální algoritmy
Proof of Work a Proof of Stake jsou nejvíce diskutované konsensuální algoritmy. Ale existuje celá řada dalších, všechny mají své výhody a nevýhody. Podívejte se na následující články:
Vysvětlení opožděného potvrzení o práci
Vysvětlení konsensu o pronajatém důkazu o sázce
Vysvětlení dokladu o autoritě
Vysvětlení důkazu popálenin
Vysvětlení delegovaného důkazu o sázce
Hybridní PoW/PoS konsensus vysvětlen
Závěrečné myšlenky
Mechanismy pro dosažení konsensu jsou životně důležité pro fungování distribuovaných systémů. Mnozí věří, že největší inovací v bitcoinu bylo použití Proof of Work, které uživatelům umožnilo dohodnout se na sdíleném souboru faktů.
Algoritmy konsensu dnes podporují 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. Nyní jsou základním kamenem technologie blockchain a jsou zásadní pro dlouhodobou životaschopnost různých existujících sítí.
Ze všech konsensuálních algoritmů zůstává Proof of Work dominantní nabídkou. Ještě nebyla navržena alternativa, která je spolehlivější a bezpečnější. To znamená, že existuje obrovské množství výzkumu a vývoje náhrad za PoW a pravděpodobně uvidíme, že se jich v nadcházejících letech objeví více.