Hlavní síť Cardano byla spuštěna v polovině roku 2020 a zatím funguje spolehlivě a bez problémů. Za konsensem Ouroboros Proof-of-Stake je spousta vědeckých prací a praxe ukazuje, že teoretické předpoklady se zdají být správné. Lidé se ptají, proč Ouroboros nemusí trestat nepoctivé účastníky skrze mechanismus zvaný “slashing”, tak jak to dělají jiné PoS protokoly. Zkusme odpovědět na otázku.
Vytvoření konsensu distribuované sítě je těžké
Decentralizace a bezpečnost jakéhokoli konsensu v síti jsou klíčové požadavky pro budování kryptoměny. Shoda v síti je digitální proces s mnoha účastníky. Účastníci žijí ve fyzickém světě a mohou se chovat racionálně nebo iracionálně, co se týče nejlepších zájmů protokolu. Protokol může stimulovat racionální chování účastníků, ale nemůže plně zabránit iracionálnímu chování. Účastníci jsou ekonomicky odměňováni za racionální chování, otázkou však je, zda je nutné účastníky za iracionální chování trestat.
Iracionální chování představuje potenciální hrozbu pro protokol, protože by mohl čelit problémům při vytváření konsensu v síti. Účastníky můžeme rozdělit na racionální a iracionální (čestní a nepoctiví). Účastníci mají určitou konsensuální moc, která bývá (ale nemusí) rozložena nerovnoměrně. V sítích PoS musí účastníci kupovat mince na otevřeném trhu. Čím vyšší počet mincí má daný účastník, tím vyšší konsensuální sílu má k dispozici.
Kontrolu nad protokolem budou mít v rukou racionální účastníci, pokud budou mít vyšší podíl (stake). V tomto případě je zajištěna vysoká úroveň zabezpečení. Dá se říci, že racionální a iracionální účastníci bojují za to, aby měli vyšší podíl. Jakmile má jeden iracionální účastník (nebo skupina) vyšší podíl moci než všichni racionální účastníci, stává se z něj diktátor s absolutní mocí ohledně konsensu v síti.
V okamžiku psaní je pro stakování použito ~ 71% mincí ADA, které jsou v oběhu. Je to přibližně 23,000,000,000 mincí ADA. Iracionální účastník by musel vlastnit více než 11,500,000,000 mincí ADA, aby měl dominanci v síťovém konsensu.
Dosud jsme hovořili hlavně o krátkodobém zabezpečení konsensu v síti, ale není to jediný aspekt, který je třeba vzít v úvahu. Protokol musí zůstat zabezpečený z dlouhodobé perspektivy. Znamená to, že rozpočet na bezpečnost musí být zvažován z dlouhodobého hlediska, aby bylo zajištěno, že protokol bude mít v příštích několika desetiletích dostatečné zdroje pro odměňování racionálních účastníků. Kromě toho musí být zajištěna nejen bezpečnost, ale také vysoká úroveň decentralizace.
Teoreticky může protokol zajistit vysokou úroveň zabezpečení i v případě, že existuje pouze jediný diktátor. Platí to však pouze v případě, že diktátor bude jednat racionálně. Ve fyzickém světě to nelze zajistit, a proto se chceme této situaci vyhnout. Nízký počet účastníků je také nežádoucí situací, protože by se mohli dohodnout a začít jednat nečestně. Pouze vysoká úroveň decentralizace tedy může zajistit vysokou úroveň zabezpečení. Jinými slovy, protokol musí být odolný vůči vnějším útokům (bohatý účastník), ale také vůči interním útokům (tajná dohoda mezi účastníky).
Je potrestání zlomyslných účastníků nutné?
Odpověď na otázku, zda je nutné potrestat iracionální účastníky, je široká a závisí na mnoha faktorech. Nejde jen o bezpečnostní otázku, ale také o úroveň decentralizace a dlouhodobou udržitelnost obou těchto kvalit. Je těžké toho dosáhnout.
Týmy musí při rozhodování o shodě PoW nebo PoS činit náročná rozhodnutí co se týče designu. Konsenzus PoS se musí vypořádat s dobře popsanými útoky, například s “nothing at stake” nebo s “grinding attack”. Je levné vytvořit nový blok v síti PoS, takže je snadné vytvořit alternativní bloky. Ve stejném okamžiku tedy může existovat více verzí blockchainu (či jeho části) a protokol musí mít definovaná pravidla pro výběr řetězce. V mnoha implementacích PoS lze historii blockchainu použít jako zdroj náhodnosti během procesu volby uzlu, který získá právo na výrobu nového bloku. Protokol musí zabránit nepoctivým účastníkům manipulovat s mechanismem náhodnosti, jinak by mohli oklamat volební proces tak, aby byli vždy zvoleni.
Na rozdíl od dominantního konsensu PoW existuje více konceptů PoS, které řeší tyto problémy odlišně. Některé týmy se domnívají, že je třeba zavést penalizační mechanismus a trestat nepoctivé účastníky, když hrají proti protokolu. Protokol obvykle zmrazí stakované mince účastníků na definované období. Je-li nějaké škodlivé chování pozorováno jinými uzly v síti, je škodící uzel penalizován odečtením určitého množství mincí. Tento proces se nazývá slashing (sekání).
Slashing je mechanismus, který nutí racionální účastníky dodržovat pravidla protokolu. Iracionální účastníci si jsou vědomi, že škodlivé chování je penalizováno, takže jsou od toho přímo ekonomicky odrazeni. Z pohledu protokolu se zdá být chytré snížit konsensuální sílu škodlivých účastníků skrze slashing. Lze zajistit, že iracionální účastníci hrající úmyslně proti protokolu budou ekonomicky vyčerpáni.
V případě Bitcoinu předcházela praxe formální teorii a modelování. Tým IOHK se rozhodl udělat to přesně naopak. Než začali implementovat protokol, chtěli udělat akademický výzkum v oblasti teorie her a formální teorie. Byl zvážen motivační model a byl navržen jedinečný systém sdílení odměn (reward sharing scheme). Systém sdílení odměn podporuje spravedlivé vytváření poolů a podporuje co největší počet účastníků v PoS síti. Tým IOHK matematicky dokázal, že všechny bezpečnostní předpoklady jsou správné, a použil výsledky výzkumu pro implementací a nasazením protokolu v hlavní síti. Jedním z výsledků výzkumu je skutečnost, že penalizace škodících účastníků je zbytečná pod podmínkou, že vznikne požadovaný počet poolů které budou v Nashově rovnováze (Nash equilibrium). Než budeme pokračovat, podívejme se krátce na teorii o Nashově rovnováz.
Nashova rovnováha
Motivační modely jsou postaveny na základě teorie her. Teorie her je o studiu strategických interakcí mezi lidmi, kteří mají učinit nějaké strategické rozhodnutí. Interakce lze matematicky modelovat a analyzovat. Teorie her je použitelná v mnoha oblastech, jako jsou sociální vědy, logické systémy, informatika atd.
Nashova rovnováha se používá pro modelování a definování řešení ve hře, kde hráči spolu nespolupracují. Tato hra může zahrnovat dva nebo více hráčů. V Nashově rovnováze se předpokládá, že každý hráč zná rovnovážné strategie ostatních hráčů a žádný hráč nemá co získat změnou pouze své vlastní strategie.
Každý hráč si musí zvolit strategii a akční plán. Je to většinou založeno na událostech, které se ve hře dosud staly. Jde o to, že žádný hráč nemůže zvýšit svůj vlastní zisk změnou strategie, pokud ostatní hráči udržují svoji strategii beze změny. Sada strategií hráčů představuje Nashovu rovnováhu. Jinými slovy, je ekonomicky racionální dodržovat vítěznou strategii a příliš se neodchylovat. Významnou odchylku lze považovat za iracionální chování bez ohledu na to, zda to bylo úmyslné či nikoli.
Představte si, že máme dva hráče. Alice a Bob si musí zvolit svoji strategii. Alice vybere strategii A a Bob zvolí strategii B. Nashovy rovnováhy se dosáhne, když Alice nemá lepší dostupnou strategii než A, aby maximalizovala svůj zisk v reakci na Boba a jeho zvolenou strategii B. Bob také potřebuje zvolit vítěznou strategii a on si vybral B. Bob nemá lepší dostupnou strategii než B, aby maximalizoval svůj zisk v reakci na Alici a její zvolenou strategii. Udržování rovnováhy je nejlepší strategií pro oba hráče, pokud jde o zisk.
Stejným způsobem to funguje, když je více hráčů. Pokud se Carol a Dan zapojí do hry se svými strategiemi C a D, je dosaženo Nashovy rovnováhy, když je strategie A nejlepší volbou pro Alici, aby reagovala na strategie B, C a D. Stejný princip lze analogicky použít na všechny hráče.
Teorie her je velmi vhodná pro modelování chování účastníků, kteří provozují uzly v decentralizované síti. V případě Cardana použili herní teoretici Nashovu rovnováhu k analýze výsledku strategické interakce několika provozovatelů poolů a jejich členů. Výsledek každého rozhodujícího účastníka závisí na rozhodnutích ostatních. Cardano je globální decentralizovaná síť. Provozovatelé poolů a jejich členové tak nemohou předvídat chování ostatních. Každé rozhodnutí je učiněno na základě omezeného souboru informací. Pokud je Alice provozovatelem poolu, může jen předvídat, jaké rozhodnutí učiní Bob. Alice si však nemůže být jistá. Alice může přemýšlet o uvažování ostatních účastníků a může učinit racionální rozhodnutí týkající se její strategie. Alice může očekávat, že se všichni ostatní provozovatelé poolů budou chovat racionálně. Totéž lze říci o delegátorech. Je chytré očekávat racionální chování, protože účastníci se snaží maximalizovat své zisky. Alice se může rozhodnout relativně snadno, protože ví, co mohou ostatní vzít v úvahu, a dokáže předpovědět jejich chování.
Schéma sdílení odměn
Protokol Ouroboros PoS může komunikovat s lidmi žijícími ve fyzickém světě pouze prostřednictvím ekonomických pobídek. Protokol ví, co je v jeho nejlepším zájmu, pokud jde o bezpečnost a decentralizaci. Lidé vědí, co je v jejich nejlepším zájmu ohledně finančních odměn. Lze tedy sladit zájem protokolu a účastníků.
Cardano používá schéma sdílení odměn, které podporuje spravedlivé rozdělení odměn v prostředí s velkým počtem zúčastněných stran s různými rolemi. V síti Cardano jsou pooly zodpovědné za produkci bloků. K poolu se mohou připojit další stake-holdeři, kterým se také říká delegátoři (delegují své mince poolu, čímž zvyšují jeho konsensuální moc). Pool lze vnímat jako jednu z mnoha malých společností či firem. Provozovatel poolu je manažer firmy a delegátoři jsou zaměstnanci. Konsensuální síla poolů obvykle sestává z podílu provozovatelů poolů a mnoha (menších či větších) podílů delegátorů.
Motivační mechanismus lze parametrizovat tak, aby dosáhl požadovaného počtu poolů. Základní myšlenkou je, že když budou účastníci správně motivováni, bude dosaženo Nashovy rovnováhy na základě jejich racionálního a čestného chování. Cílem pobídkového mechanismu je rozvíjet vysokou úroveň decentralizace a bezpečnosti. Musí být zmírněna řada útoků, například cenzura transakcí, Sybil útok, dominance jediného účastníka. Těchto kvalit musí být dosaženo souběžně s vysokou efektivitou protokolu v dalších oblastech (například škálování).
Systém sdílení odměn u Cardana funguje tak, že odměňuje jak provozovatele poolů, tak i delegátory. Protokol vytváří pravidelné snímky (snapshot) všech účastníků a ty slouží jako vstup pro odměňování. Protokol nejprve poskytuje vyšší odměnu operátorům poolů za jejich služby. Zadruhé, všichni delegátoři jsou také odměněni. Ekosystém Cardano je velmi inkluzivní. Malé pooly mohou získat podobné poměrné odměny jako velké pooly. Zároveň existuje horní hranice, která omezuje velikost poolů. Jakmile pool dosáhne horní hranice (bod saturace), odměna je snížena. Subjekt s velkým podílem je tedy nucen vytvořit více poolů, místo aby měl jen jeden. Nový menší pool bude soutěžit s ostatními menšími pooly. Delegátoři se mohou rozhodnout, zda budou podporovat nový malý pool operátora poolu, který vlastní více poolů, nebo zda podpoří malý pool, který vlastní někdo jiný. Je to něco, co provozovatel poolu nemůže přímo ovlivnit.
Odměna všem zúčastněným stranám je ve skutečnosti velmi chytrá, protože existuje více jednotlivců, kteří činí svá vlastní rozhodnutí. Pokud se provozovatel poolu (manažer společnosti) nechová v nejlepším zájmu protokolu, delegátoři delegují do jiného poolu (zaměstnanci opustí společnost). Delegátoři to mohou udělat ihned. Škodící operátor tak může relativně rychle ztratit konsensuální sílu. Nový snímek se pořizuje každých 5 dní a nový snímek se použije se zpožděním jedné epochy. Předpokládejme, že provozovatel poolu se začne chovat zlomyslně a začne to dělat na konci současné epochy. Delegátoři budou mít 5 dní na to, aby na to zareagovali a přenesli svůj podíl jinam. Za 10 dní může pool ztratit významný podíl a tím konsensuální sílu. Zároveň budou mít ostatní pooly vyšší stake.
Vyšší decentralizace lze dosáhnout, když je snadné se připojit. Delegování i vytvoření nového poolu musí být relativně levné. V ideálním případě by většina mincí v oběhu měla být použita ke stakingu. V ekosystému Cardano potřebujete k účasti na stakingu jen pár mincí ADA. Delegování není stanoveno na určité časové období a delegátoři mohou vždy levně převést svůj stake.
Alternativou k tomuto přístupu je zmrazení mincí na určité časové období a jejich odpočet v případě nesprávného chování, tedy slashing. To má několik negativních důsledků. Za prvé, kryptoměny jsou tu, aby byly utratitelné. Když jsou mince zamčené, brání to jejich základní povaze. Pokud stake-holder nemá dostatek mincí k vytvoření vlastního poolu nebo ověřovacího uzlu, nemůže v podstatě použít mince ke stakingu. Když mohou být mince sebrány protokolem, delegátoři riskují své mince v případě, kdy se provozovatel poolu začne chovat špatně. Jinými slovy, delegátoři jsou nuceni svěřit mince někomu koho neznají. Mnoho menších stake-holderů to pravděpodobně nebude chtít riskovat. Zdá se, že zamykání a odebírání mincí není z hlediska decentralizace nejlepším přístupem. Prostředí, kde je k vytvoření ověřovacího uzlu vyžadován minimální počet mincí, je také poměrně exkluzivní. Kryptoměny jsou volatilní a je téměř nemožné vytvořit nový uzel, když cena mincí každých pár let dosáhne nové ATH. Jediným řešením je snížit po nějakém čase požadovaný počet mincí pro vytvoření ověřovacího uzlu.
U některých DPoS projektů vidíme, že voliči mohou rozhodovat o omezeném počtu producentů bloků, kteří mají stejnou moc. Producenti bloků jsou vybráni ze sady kandidátů. Pobídky či odměňování pro voliče nejsou často brány v úvahu. Ve výsledku můžeme pozorovat nízkou účast voličů. O producentech bloků tak může rozhodovat jen malý počet mincí. Protože jsou odměňováni pouze producenti bloků, stávají se bohatšími. Navíc mohou hlasovat jeden pro druhého. To znamená, že Alice jako producent bloků může hlasovat pro Boba, který je také producentem bloků. Bob na oplátku hlasuje pro Alici. Síť s omezenou sadou producentů bloků se stejnou konsensuální mocí může být velmi efektivní, pokud jde o škálovatelnost, ale je obětována decentralizace. Navíc může být relativně levně zvolen a poté se chovat škodlivě.
Systém sdílení odměn které přináší Cardano úměrně odměňuje všechny účastníky za jejich účast na síťovém konsensu. Stake-holdeři jsou odměňovány každých 5 dní. Delegování mincí ADA do poolu lze považovat za určitou formu hlasování. Delegátoři se rozhodnou sdílet odměny s daným poolem. Pool získává odměny pouze za služby, které jsou v souladu s nejlepším zájmem protokolu. Delegátoři se chovají racionálně a vybírají si pooly, které pro ně generují odměny. Provozovatelé poolů jsou závislí na delegátorech a velikost jejich odměny závisí na celkovém staku jejich poolů. Provozovatelé poolů jsou tedy také motivováni k racionálnímu chování. Mezi protokolem, operátory poolu a delegátory existuje nádherná symbióza.
Závěr
Jednoduše řečeno, Cardano nepotřebuje slashing, protože má jedinečný systém sdílení odměn, který podporuje vysokou úroveň decentralizace v prostředí, kde jsou všichni účastníci ekonomicky motivováni k racionálnímu chování. Protokol ekonomicky stimuluje existenci požadovaného počtu poolů. Nashova rovnováha je předpisem strategie pro každého racionálního účastníka s tím, že pokud se jimi ostatní hráči řídí, nemá smysl, aby se od ní racionální hráč odchýlil. Kromě toho je ekosystém Cardano vysoce inkluzivní a delegáti mají kontrolu nad svými mincemi a mohou také levně měnit svá rozhodnutí týkající se delegování. Delegování je navíc procesem bez rizika. V takovém prostředí je iracionální chovat se zákeřně a lze očekávat, že iracionální účastníci budou tvořit pouze okrajovou skupinu. Pokud je většina mincí ADA v rukou racionálních účastníků, pak ti iracionální mají nízkou sílu. Zabezpečení Cardano roste s distribucí mincí ADA.
V případě, že jsou škodliví účastníci ochotni přijít o peníze, slashing pravděpodobně moc nepomůže. Mít potřebnou konsensuální moc, která by způsobila poškození decentralizované sítě, je vždy o tom mít potřebné množství zdrojů a ochotu přijít o peníze. Je v principu nemožné zabránit tomuto typu útoku. Je možné dosáhnout stavu, kdy síť útok přežije a útočník bude ekonomicky vyčerpaný. Bylo by relativně snadné implementovat slashing v protokolu Cardano. V tuto chvíli se však zdá, že to není nutné a main-net bez toho běží bezchybně.
Přečtěte si původní článek: