­č窭čç░ 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)