🇸🇰 Pochopenie Nakamotovho konsenzu

Pochopenie Nakamotovho konsenzu

Cardano používa variant Nakamotovho konsenzu s názvom Ouroboros. Ide o konsenzus typu PoS (Proof-of-Stake), ktorý využíva základné princípy, ktoré vymyslel Satoshi Nakamoto pre Bitcoin. Ouroboros je navrhnutý tak, aby poskytoval podobné bezpečnostné záruky ako Proof-of-Work (PoW) a zároveň bol energeticky úspornejší. V článku vysvetlíme základné princípy Nakamotovho konsenzu a zdôrazníme rozdiely medzi PoW a PoS. Zameriame sa na princípy a základné mechanizmy.

Nakamotov konsenzus

Nakamotov konsenzus vymyslel Satoshi Nakamoto, pseudonymný tvorca Bitcoinu. Je to riešenie byzantského generálneho problému, ktorý sa pýta, či je možné dosiahnuť konsenzus v distribuovanej sieti nezávislých uzlov.

Ouroboros je navrhnutý tak, aby poskytoval podobné bezpečnostné záruky ako Bitcoin a zároveň bol energeticky úspornejší. PoW Bitcoinu a PoS Cardana majú spoločné princípy Nakamotovho konsenzu, a to napriek rozdielom v ich mechanizmoch a implementáciách.

Hlavný rozdiel medzi PoW a PoS spočíva v spôsobe implementácie týchto princípov.

PoW vyžaduje, aby baníci riešili zložité kryptografické hádanky s využitím výpočtového výkonu na pridávanie nových blokov do blockchainu.

PoS vyberá producentov blokov (pooly) na razenie nových blokov na základe množstva mincí ADA, ktoré vlastnia alebo im boli delegované.

Zásadný rozdiel je v nákladných zdrojoch, ktoré používajú mechanizmy konsenzu PoW a PoS.

PoW potrebuje na svoju prevádzku obrovské množstvo hash rate (výpočtového výkonu). To spotrebuje veľké množstvo energie. Elektrická energia je drahý a obnoviteľný zdroj. Jej množstvo je neobmedzené.

PoS je energeticky efektívnejší, pretože digitálne mince sa používajú ako zdroj. Elektrická energia sa spotrebúva len na prevádzku uzlov. Mince ADA sú drahý, neobnoviteľný a vzácny zdroj.

Používanie rôznych drahých zdrojov ovplyvnilo implementáciu princípov Nakamotovho konsenzu. Konsenzus PoW aj konsenzus PoS využívajú rôzne mechanizmy na dosiahnutie časovania výroby blokov, náhodnosti, bezpečnosti, decentralizácie, inkluzívnosti, egalitarizmu atď.

PoW a PoS sa líšia v jednotlivých prvkoch, ale oba konsenzusy sú si veľmi podobné, pokiaľ ide o princípy Nakamotovho konsenzu.

V článku sa nebudeme zaoberať všetkými prvkami. Zameriame sa najmä na vysvetlenie spôsobu dosiahnutia konsenzu. Skôr ako sa k nemu dostaneme, vysvetlíme si potrebnú teóriu.

Na čo slúži konsenzus?

Účelom konsenzu v distribuovanej sieti je zabezpečiť, aby sa všetky zúčastnené uzly, ktoré môžu byť rozmiestnené na rôznych miestach, dohodli na jednotnom stave siete napriek tomu, že neexistuje centrálna autorita.

Táto dohoda umožňuje sieti udržiavať konzistentný a spoľahlivý stav účtovnej knihy. Sieť musí v pravidelných intervaloch dosahovať dohodu, ktorá umožňuje zmenu stavu účtovnej knihy.

V sieťach blockchain sa stav mení pridaním nového bloku. Do blokov sa vkladajú transakcie používateľov. V prípade Cardano sa do blokov môžu vkladať aj certifikáty.

Čo máme na mysli pod pojmom konsenzus?

Konsenzus môže označovať súbor pravidiel, ktoré umožňujú uzlom v rámci distribuovanej siete dosiahnuť vzájomnú dohodu (prostredníctvom vzájomnej výmeny informácií a prijímania autonómnych rozhodnutí).

Tieto pravidlá sú zakódované v zdrojovom kóde sieťového protokolu. Protokol je v podstate plán a klient je softvér, ktorý tento plán implementuje. Nainštalovaním klienta do svojho počítača sa používatelia stávajú uzlami, ktoré prispievajú k činnosti distribuovanej (decentralizovanej) siete.

Konsenzus sa môže konkrétne vzťahovať aj na implementáciu tohto procesu dohody, napríklad prostredníctvom mechanizmov PoW alebo PoS.

Konsenzus teda môže byť schopnosť siete dosiahnuť dohodu, ale aj konkrétna implementácia. Ten istý termín môže odkazovať na schopnosť a zároveň na nástroj.

Na obrázku môžete vidieť klientov, ktorí používajú konsenzus Ouroboros PoS, ktorý im umožňuje dosiahnuť vzájomnú dohodu o zmene stavu účtovnej knihy. Všimnite si, že účtovná kniha je súčasťou každého klienta. K zmenám stavu dochádza vo všetkých uzloch.

Požiadavky na konsenzus siete

Skôr ako začneme vysvetľovať Nakamotov konsenzus, je potrebné vysvetliť niektoré dôležité aspekty, ktoré sú kladené na všetky druhy sieťového konsenzu pre distribuované siete.

Mechanizmus konsenzu musí zabezpečiť, aby sieť fungovala správne aj v prítomnosti chybných alebo škodlivých uzlov. Zlomyseľní aktéri, ktorí chcú narušiť schopnosť dosiahnuť konsenzus a tým poškodiť sieť, sa môžu kedykoľvek pripojiť k otvorenej sieti.

Niekoľko uzlov v sieti môže byť z rôznych dôvodov v rovnakom čase mimo prevádzky.

V decentralizovanej sieti môže každý, kto vlastní drahý zdroj (hash rate v Bitcoine alebo mincu v Cardane), získať podiel na moci (t. j. podieľať sa na dosiahnutí dohody).

Spoľahlivosť a bezpečnosť siete sú založené na predpoklade, že poctiví účastníci vlastnia väčší podiel drahých zdrojov, ako potrebujú zlomyseľní aktéri na narušenie konsenzu.

Ďalším predpokladom je, že ak mnoho uzlov náhle vypadne z prevádzky, stále bude možné dosiahnuť konsenzus. Nie každý typ konsenzu to dokáže zabezpečiť.

Sieť by mala byť schopná zvládnuť zlyhania a chyby v sieti aj v zúčastnených uzloch bez toho, aby sa narušila celková funkčnosť systému. Sieť musí byť odolná voči chybám.

Všetky uzly, ktoré nie sú chybové, sa musia nakoniec dohodnúť na rovnakom stave účtovnej knihy, čím sa zabezpečí konzistentnosť a integrita v celom systéme. Sieť sa nesmie dostať do situácie, keď sa stav rozdelí na dva rôzne stavy (blockchain sa môže rozštiepiť na dva konkurenčné reťazce) bez toho, aby bola schopná túto situáciu riešiť.

Na obrázku môžete vidieť, že sieť udržiavala jednotný stav účtovnej knihy až do bloku N+3. Potom je stav nejednoznačný. Existuje dvojica blokov s rovnakou výškou N+4 a N+5.

V danom okamihu nie je možné určiť, ktorý stav účtovnej knihy je platný.

Pravidlá protokolu musia byť pripravené na každú eventualitu a zabezpečovať konzistentnosť stavu. V prípade rozdelenia stavu musí byť sieť schopná odhaliť problém a deterministicky rozhodnúť, ktorý zo stavov je správny (pravidlo dlhšieho reťazca).

Na obrázku môžete vidieť, že sieť vypustila spodné bloky N+4 a N+5 (boli osirelé). Za horný blok N+5 boli pridané nové bloky N+6 a N+7. Tento reťazec zvíťazil a predstavuje aktuálny (dohodnutý) stav účtovnej knihy.

Každý proces, ktorý nie je chybný, musí nakoniec dospieť k rozhodnutiu, čím sa zabezpečí, že konsenzuálny protokol sa nakoniec uzavrie. Inými slovami, sieť sa nesmie dostať do situácie, keď by nevedela, ako pokračovať v konsenze. Musí byť zabezpečená kontinuita.

Ak by sa sieť zastavila po pridaní dvojice blokov N+5 a nebola by schopná pridať ďalší blok tak, aby sa rozhodlo, ktorý stav je správny, musela by zasiahnuť centralizovaná entita (tím). To je nežiaduce.

Bezpečnosť a životaschopnosť

Bezpečnosť a živosť sú dve kritické vlastnosti, ktoré zabezpečujú správne a bezpečné fungovanie siete. Tímy vytvárajúce konsenzus v sieti musia tieto vlastnosti vyvážiť. Musia sa rozhodnúť, ktorú z nich uprednostňujú viac.

Opíšme si tieto vlastnosti.

Bezpečnosť sa vzťahuje na záruku, že sieť nedosiahne falošnú dohodu. Inými slovami, zaručuje, že každá transakcia, ktorú jeden správne fungujúci uzol považuje za konečnú, bude nakoniec považovaná za konečnú každým správne fungujúcim uzlom. Znamená to tiež, že žiadne dve transakcie, ktoré dva riadne fungujúce uzly považujú za konečné, si nikdy nebudú protirečiť.

V extrémnom prípade to možno interpretovať tak, že sieť uprednostňuje zastavenie konsenzu pred nesprávnym zúčtovaním transakcií. V sieti, ktorá uprednostňuje bezpečnosť pred životaschopnosťou, je vyhýbanie sa vidliciam kľúčové, pretože vidlica znamená, že existuje nesúhlas so stavom účtovnej knihy, čo môže viesť k porušeniu bezpečnosti.

Vyradenie transakcií je v takejto sieti veľmi nežiaduce, pretože by mohlo narušiť dôveru a spoľahlivosť systému. Používatelia očakávajú, že ich transakcie budú po zaradení do bloku a pripojení do blockchainu konečné a nemenné.

Túto nežiaducu situáciu môžete vidieť na obrázku. Sieť vytvorila dva bloky N+4 a v každom z nich sú rôzne transakcie (malé červené a modré políčka). Sieť musí jeden z blokov N+4 vrátane transakcií zahodiť.

Toto sú odlišné požiadavky od sietí, ktoré uprednostňujú živosť pred bezpečnosťou.

Živosť je zárukou, že sieť bude pokračovať v pokroku a nezastaví sa. To znamená, že pokiaľ existujú transakcie, ktoré neboli finalizované, množina finalizovaných transakcií bude naďalej rásť. To zaručuje, že každá transakcia bude nakoniec vyrovnaná všetkými poctivými uzlami.

Sieť, ktorá uprednostňuje živosť pred bezpečnosťou, sa nezastaví, keď sa rozvetví. Namiesto toho umožňuje dočasnú existenciu dvoch reťazcov a spolieha sa na to, že účastníci siete budú pokračovať v budovaní na základe reťazca, ktorý považujú za správny. Inými slovami, dočasne sa toleruje nekonzistentný stav hlavnej knihy.

Na obrázku vidíte podobnú situáciu ako vyššie. Pravidlá siete túto situáciu umožňujú. Nižší blok N+4 je vyradený (vrátane červenej transakcie). Pridá sa blok N+5, do ktorého bola vložená červená transakcia. Obe transakcie sú nakoniec v blockchaine.

Dúfam, že viete, ktorú vlastnosť preferuje sieť využívajúca Nakamotov konsenzus. Cardano aj Bitcoin uprednostňujú živosť pred bezpečnosťou.

Táto konštrukčná voľba je zjavná v spôsobe, akým konsenzus rieši rozvetvenie blockchainu. V Nakamotovom konsenze sú uzly pri výskyte forku inštruované, aby nasledovali najdlhší reťazec. Toto pravidlo zabezpečuje, že sieť pokračuje v napredovaní a rozširovaní blockchainu, aj keď dôjde k dočasným nezhodám alebo rozvetveniam.

Tento prístup však môže viesť k dočasnému porušeniu bezpečnosti, napríklad keď dvaja baníci ťažia blok s rovnakou výškou približne v rovnakom čase, čo vedie k forku. V Cardane môžu byť v rovnakom čase zvolení dvaja lídri slotov v okolí.

Sieť nakoniec konverguje na jednom z týchto blokov (reťazcov) v rámci pravidla najdlhšieho reťazca, ale dovtedy môžu existovať protichodné pohľady na históriu transakcií. Vlastnosť bezpečnosti sa nakoniec obnoví, keď konsenzus pokračuje v pridávaní nových blokov. Jeden reťazec sa stane výrazne dlhším ako ostatné, čím sa stane všeobecne akceptovaným reťazcom.

Hoci cieľom Nakamotovho konsenzu je poskytnúť bezpečnosť aj životaschopnosť, je navrhnutý tak, aby zabezpečil, že sieť zostane živá a schopná spracovávať transakcie aj v prípade dočasných nezhôd alebo problémov siete. Bezpečnosť sa dosahuje tým, že blockchain rastie a pravdepodobnosť hĺbkovej reorganizácie sa stáva zanedbateľnou.

Pravdepodobnostná konečnosť

Vlastnosti bezpečnosti a životaschopnosti súvisia s pravdepodobnostnou konečnosťou Nakamotovho konsenzu.

Pravdepodobnostná konečnosť sa vzťahuje na koncept, že konečnosť transakcie nie je v čase jej vloženia do nového bloku absolútna. Konečnosť transakcie sa stáva čoraz pravdepodobnejšou, keď sa na blok obsahujúci transakciu pridávajú ďalšie bloky.

Bezpečnosť a živosť súvisia s pravdepodobnostnou konečnosťou takto:

Bezpečnosť znamená, že ak bola transakcia zahrnutá do bloku a bolo nad ňu pridaných niekoľko blokov (čím sa prehĺbila jej pozícia v reťazci), pravdepodobnosť, že táto transakcia bude zrušená, je veľmi nízka.

Nie je však nulová. Vždy existuje malá šanca, že by mohol vzniknúť dlhší konkurenčný reťazec, hoci táto pravdepodobnosť exponenciálne klesá s každým ďalším blokom.

Živosť zaručuje, že transakcie budú nakoniec potvrdené a pridané do blockchainu. Pokiaľ pooly (producenti blokov) pokračujú v rozširovaní blockchainu pridávaním nových blokov, sieť vykazuje živosť.

Nie je zaručené, že transakcie budú zahrnuté do ďalšieho bloku, ale nakoniec budú zahrnuté, pokiaľ sú platné a sieť naďalej funguje.

V porovnaní s inými sieťovými konsenzami, ktoré uprednostňujú bezpečnosť pred živosťou, má Nakamotov konsenzus pomalé vyrovnanie.

Používateľ musí čakať, kým sieť pridá niekoľko blokov nad blok, do ktorého bola vložená jeho transakcia. Transakcia je nezvratná až po pridaní ďalších blokov. Každý ďalší novo pridaný blok (nad blokom s transakciou používateľa) predstavuje súhlas so stavom účtovnej knihy. K podrobnostiam sa dostaneme neskôr.

Na obrázku je vidieť, že Alicina transakcia (malý modrý rámček) bola vložená do bloku N+3. Konečnosť transakcie je 0, pretože zatiaľ nebol pridaný žiadny ďalší blok. S každým ďalším pridaným blokom sa zvyšuje konečnosť transakcie (a tiež bloku N+3). Po pridaní bloku N+4 je konečnosť 1 a tak ďalej. Ak Alica potrebuje 3 bloky ako dostatočný počet potvrdení (3 ďalší producenti blokov súhlasia s blokom N+3), môže považovať transakciu za finalizovanú (nezvratnú) v bloku N+6.

Poznámka: Finalizáciu transakcií možno vnímať ako binárne hodnoty. Transakcia je teda buď finálna (navždy zapísaná v blockchaine), alebo nie (zatiaľ). Preto sa často hovorí o počte potvrdení. Každý pridaný blok po bloku s transakciou predstavuje jedno ďalšie potvrdenie. V bloku N+6 má transakcia 3 potvrdenia. Ak to Alica považuje za dostatočný počet potvrdení pre transakciu s menšou sumou, môže transakciu považovať za dokončenú. Reorganizácia blockchainu môže stále nastať, ale s menšou pravdepodobnosťou.

Siete, ktoré uprednostňujú bezpečnosť pred živosťou, môžu rýchlejšie zhromažďovať súhlas so stavom. Teda nie prostredníctvom pridávania blokov, ale prostredníctvom určitej formy hlasovania buď pred pridaním bloku, alebo krátko po ňom. Tento druh konsenzu si zvyčajne vyžaduje, aby sa na hlasovaní o každom bloku aktívne podieľal veľký počet uzlov.

Konečnosť transakcií sa dá rýchlo dosiahnuť len vtedy, ak je možné získať súhlas s novým stavom (blokom) od väčšiny uzlov v krátkom čase.

Vytvorme nový blok Nakamotovým spôsobom

Povedali sme, že konsenzus je o dohode medzi uzlami o zmene stavu účtovnej knihy. Nakamotov konsenzus by sa dal jednoducho opísať takto.

V danom časovom intervale náhodne vyberme jeden uzol v sieti, ktorý získa právo vyrobiť nový blok. Tento blok bude vysielaný do siete. Ak iný náhodne zvolený uzol s týmto blokom súhlasí, pripojí svoj nový blok na tento (najnovší) blok. Ak nesúhlasí, pripojí nový blok na predchádzajúci blok (teda nie za najnovší blok).

Popíšme si nasledujúci obrázok.

Alica pridala blok N+2. Tento blok budú prijímať aj ostatné uzly v sieti, takže ho budú prijímať aj Bob a Carol. Bob je náhodne zvolený ako ďalší producent bloku. Po bloku N+2 pridá blok N+3 (zelený).

Carol dostane blok N+3, ktorý vytvoril Bob. Je náhodne zvolená ako ďalší producent bloku. Carol má dve možnosti. Môže pridať blok N+4 za existujúci blok N+3. Toto je očakávaný scenár (pretože v účtovnej knihe by nevznikla žiadna nekonzistentnosť). Ale Bobov blok N+3 sa jej nepáči. Preto sa rozhodla pripojiť blok N+3 (červenou farbou) za blok N+2.

Tým sa v blockchaine vytvorí vidlica (stav účtovnej knihy je teraz nekonzistentný). Ďalší náhodne zvolený producent blokov sa môže rozhodnúť, či pripojí nový blok po červenom alebo zelenom bloku N+3.

Pri pridávaní blokov sú kľúčové dve funkcie. Určenie, kedy sa má nový blok pridať a kto ho vyrába. Takže sú potrebné funkcie načasovania protokolu a náhodného výberu uzla.

K dohode medzi uzlami dochádza až po navrhnutí nového stavu. Ostatné uzly súhlasia so zmenou s veľkým oneskorením pripojením nového bloku za predchádzajúci blok. Súhlas nemožno získať od všetkých uzlov súčasne, ale len od jedného uzla - toho, ktorý bude vybraný ako producent ďalšieho bloku. Dosiahnutie dohody je postupný proces.

Uzly sa navzájom nedohodnú na zmene stavu skôr, ako k nej má dôjsť. Namiesto toho náhodne zvolený uzol autoritatívne navrhne zmenu a predpokladá, že ostatní budú súhlasiť. Ostatné uzly budú s najväčšou pravdepodobnosťou súhlasiť, ak je blok platný.

Výrobca bloku je motivovaný navrhnúť platný blok, pretože len tak má nárok na odmenu.

V každom kole je jeden navrhovateľ a veľa schvaľovateľov. Uzly v sieti platný blok akceptujú, pretože nemajú dôvod ho odmietnuť. Ak by uzly vyradili platné bloky, napríklad všetky bloky vytvorené Alicou, v sieti by vznikli vidlice (a tým aj nekonzistentnosť účtovnej knihy). To je nežiaduce.

Proces pridávania nového bloku pozostáva z nasledujúcich krokov:

  1. Náhodná voľba výrobcu bloku.
  2. Výroba nového bloku náhodne zvoleným uzlom.
  3. Vysielanie bloku do siete výrobcom.
  4. Overenie bloku a jeho prípadné prijatie.
  5. Opäť rovnaký proces od prvého kroku.

Tento proces je rovnaký pre Cardano aj Bitcoin. Hoci každý projekt používa iný konsenzus, v zásade sa nelíšia. Popíšme si rozdiely.

Rozdiely sú v časovaní protokolu a náhodnej voľbe výrobcov blokov.

Bitcoin je navrhnutý tak, aby vytváral nový blok približne každých 10 minút. Sieť upravuje obtiažnosť ťažby približne každé dva týždne (2016 blokov), aby sa tento čas blokovania udržal. Táto úprava zabezpečuje, že čas potrebný na výrobu bloku zostáva konzistentný, aj keď sa mení hash rate siete (celkový výpočtový výkon použitý na ťažbu).

Náhodná voľba je založená na riešení výpočtovo náročnej matematickej úlohy (kryptografické hádanky). Uzly, ktoré chcú ťažiť nový blok (pools), začnú riešiť úlohy v okamihu, keď dostanú nový blok. Všetky uzly začínajú približne v rovnakom čase (oneskorenie siete). Uzol, ktorý rieši úlohu ako prvý, okamžite vytvorí nový blok a rozošle ho do siete.

Všimnite si, že všetky pooly riešia tú istú úlohu, ale len jeden môže uspieť. Hneď ako pool dostane nový platný blok, prestane pracovať na aktuálnej úlohe a začne riešiť novú úlohu (ťažiť nový blok).

Niekedy sa stáva, že úlohu riešia dva pooly približne v rovnakom čase. V takom prípade dôjde k rozvetveniu blockchainu, ktoré sa vyrieši vyššie opísaným mechanizmom.

V Bitcoine sa proces pridania nového bloku skladá z nasledujúcich krokov:

  1. Všetky pooly (s baníkmi) začnú ťažiť nový blok.
  2. Jeden pool nájde riešenie kryptografickej hádanky.
  3. Pool vytvorí blok a rozošle ho do siete.
  4. Ostatné uzly a pooly blok overia.
  5. Opäť rovnaký proces od prvého kroku (ak bol blok platný).

Cardano rozdeľuje čas na jednosekundové sloty a na náhodný výber používa modernú kryptografiu, konkrétne overiteľnú náhodnú funkciu (VRF).

Namiesto toho, aby všetky uzly riešili počítačovo náročnú matematickú operáciu, o tzv. lídrovi slotu rozhoduje matematika a náhodné vstupy.

Každý uzol v každom slote overuje, či sa stal vedúcim slotu. Ak áno, vyrazí nový blok. Neexistuje žiadna centrálna autorita, ktorá by kontrolovala hlasovanie. Uzly sa na hlasovanie registrujú prostredníctvom certifikátov, ktoré sú uložené v blockchaine. Uzly môžu overovať, či sa stali lídrami slotu, úplne autonómne.

Každý uzol musí vypočítať svoje prahové číslo. To je odvodené od veľkosti podielu. Podiel sa skladá z mincí ADA prevádzkovateľa (pledge) a všetkých stakerov. Čím väčší je vklad, tým viac blokov môže fond v danej epoche vyprodukovať. Ide o rovnaký princíp, aký pozorujeme v Bitcoine. Čím väčší hash rate je delegovaný na pool, tým viac blokov pool vyťaží.

Každú sekundu každý pool využíva algoritmus VRF, aby získal výstup VRF. Výstup VRF sa porovnáva s prahovou hodnotou. Ak je výstup VRF menší ako prahová hodnota, pool sa stal lídrom slotu a získava právo ťažiť nový blok.

V Cardane sa proces pridávania nového bloku skladá z nasledujúcich krokov:

  1. V každom slote všetky pooly overia, či sa stali lídrom slotu.
  2. Líder slotu vyrazí nový blok a rozošle ho do siete.
  3. Ostatné uzly a pooly blok overia.
  4. Opäť ten istý proces od prvého kroku (ak bol blok platný).

Ako vidíte, ide o rovnaký proces ako v prípade Bitcoinu.

Podobne ako pri Bitcoine sa môže stať, že za 20 sekúnd (čas bloku Cardano) sa zvolí niekoľko lídrov slotu. Je dokonca možné, že v tom istom slote budú zvolení 2 lídri slotu. Podobne ako v prípade Bitcoinu sa na vyriešenie rozvetvenia blockchainu používa pravidlo dlhšieho reťazca.

Výstupom volieb VRF je číslo, ktoré rozhoduje o tom, ktorý reťazec sa bude nasledovať v prípade forku blockchainu.

Jedným z ďalších rozdielov je motivačný model. Bitcoin odmeňuje pooly (baníkov) v každom novom bloku. Cardano odmeňuje všetkých prevádzkovateľov stake poolov a stakerov raz za 5 dní (epoch).

Podobných drobných rozdielov by sme našli mnoho.

Napríklad pri validácii bloku. V prípade Bitcoinu sa overuje dôkaz, že matematická úloha bola vyriešená. V prípade Cardana sa overuje dôkaz, že blok pochádza z uzla, ktorý bol zvolený za lídra slotu (overujú sa aj iné veci, napríklad podpis KES).

V oboch prípadoch je zabezpečené, že stav účtovnej knihy nie je svojvoľne zmenený podvodným uzlom. V Bitcoine by podvodný uzol musel vynaložiť obrovský výpočtový výkon na vytvorenie nového podvodného bloku. V Cardane by podvodný uzol musel prelomiť kryptografiu, čo by si tiež vyžadovalo obrovský výpočtový výkon.

Oba prístupy majú podobné bezpečnostné záruky.

Prostredníctvom kryptografie môže Cardano efektívnejšie náhodne zvoliť lídrov slotov v danom časovom intervale a zabezpečiť, aby nikto iný ako zvolený líder slotu nemohol do blockchainu pridať nový blok. Bitcoin na to potrebuje spotrebovať obrovské množstvo energie.

Záver

Nakamotov konsenzus má pomalú finalizáciu transakcií, ale je veľmi robustný. Ak veľký počet uzlov vypadne z prevádzky, sieť je stále schopná vytvárať bloky (aj keď pomalšie).

Cardano a Bitcoin sa líšia v mnohých aspektoch, ako je decentralizácia, rozpočet na bezpečnosť, rovnostárstvo, inkluzívnosť atď.

Nakamoto konsenzus nemôže priamo ovplyvniť napríklad kvalitu decentralizácie. V sieti Bitcoin viac ako 50 % blokov vytvárajú len dva pooly, zatiaľ čo v sieti Cardano existuje viac ako 1000 poolov. Je to spôsobené odlišným mechanizmom odmeňovania (dôležitý je pojem nasýtenia bazénov). Bitcoinu nezáleží na tom, či je producentom blokov jeden človek alebo 1000 ľudí. Protokol Cardano pozná svoju decentralizáciu a dokáže ekonomicky motivovať jej rast.

Decentralizácia je kľúčovou vlastnosťou distribuovanej siete. Primárnym cieľom konsenzu siete je umožniť dohodu v relatívne veľkom počte producentov blokov (môžu ich byť rádovo stovky až tisíce). Kvalita jednotlivých vlastností siete je daná kombináciou rôznych prvkov a detailov. Nakamoto konsenzus je jedným z kľúčových prvkov pre Bitcoin aj Cardano, ale existujú aj ďalšie.

Mechanizmus odmeňovania, inkluzívnosť a rovnostárstvo ovplyvňujú decentralizáciu. V tomto sa od seba PoW a PoS zásadne líšia. Na rozdiel od ťažby má staking menšiu vstupnú bariéru, je menej rizikový a je prístupný každému na svete. To je len jeden z mnohých rozdielov.


Pôvodný článok: Understanding the Nakamoto Consensus | Cardano Explorer (cexplorer.io)