­č窭čç░ Hydra: rie┼íenie ┼ík├ílovate─żnosti Cardana

Hydra: rie┼íenie ┼ík├ílovate─żnosti Cardana

V bud├║cnosti sa v├Ą─Ź┼íina transakci├ş bude spracov├íva┼ą pomocou rie┼íen├ş druhej vrstvy. Prv├ę vrstvy nemusia by┼ą schopn├ę uspokoji┼ą vysok├Ż dopyt po transakci├ích. Cardano m├í rie┼íenie druhej vrstvy a jeho n├ízov je Hydra.

Telo Hydry je ako hlavn├Ż re┼ąazec. Hydra m├┤┼że ma┼ą viac hl├ív. Ka┼żd├í hlava dok├í┼że spracova┼ą ~1000 TPS.

Kryptomeny pri┼íli na svet, aby sa stali alternat├şvou k s├║─Źasn├ęmu finan─Źn├ęmu syst├ęmu. Pou┼ż├şvatelia ako tak├ş musia ma┼ą mo┼żnos┼ą plati┼ą v obchode rovnako r├Żchlo ako kreditn├Żmi kartami. To znamen├í, ┼że transakcia mus├ş by┼ą z├║─Źtovan├í do nieko─żk├Żch sek├║nd. Sie┼ą Visa spracuje ka┼żd├Ż de┼ł v priemere 150 mili├│nov transakci├ş. Je to pribli┼żne 2 000 transakci├ş za sekundu (TPS). Tak├íto priepustnos┼ą je pre s├║─Źasn├ę blockchainov├ę siete nedosiahnute─żn├í. Be┼żn├í priepustnos┼ą siet├ş PoW je zvy─Źajne len nieko─żko desiatok TPS. Siete PoS m├┤┼żu dosiahnu┼ą nieko─żko stoviek TPS.

Distribuovan├ę siete vo v┼íeobecnosti trpia v├í┼żnymi obmedzeniami ┼ík├ílovate─żnosti, n├şzkou priepustnos┼ąou a nadmern├Żm ├║lo┼żiskom potrebn├Żm na udr┼żiavanie stavu syst├ęmu a hist├│rie transakci├ş. Po pribli┼żne 5 rokoch interdisciplin├írneho v├Żskumn├ęho ├║silia v r├ímci IOHK bol vydan├Ż dokument Hydra. Vedci a v├Żskumn├şci z oblasti siet├ş, v├Żpo─Źtov s viacer├Żmi stranami, programovac├şch jazykov a konsenzu museli spolupracova┼ą, aby pri┼íli s rie┼íen├şm ┼ík├ílovania, ktor├ę sa dobre hod├ş k blockchainu a inteligentn├Żm kontraktom. Ide o v├Żznamn├Ż vedeck├Ż ├║spech a v├Żznamn├Ż m├ş─żnik vo v├Żvoji Cardana. Ouroboros Hydra otv├íra nov├ę mo┼żnosti ┼ík├ílovate─żnosti PoS. V─Ćaka Hydre sa Cardano m├┤┼że skuto─Źne sta┼ą alternat├şvou k s├║─Źasn├Żm fiat peniazom.

Hydra je rie┼íenie druhej vrstvy nad prvou vrstvou Cardano, kde sa pou┼ż├şva konsenzus PoS. Hydra je navrhnut├í tak, aby sa dobre hodila k modelu stake pool. T├şm IOHK predstavil roz┼í├şren├Ż model UTxO, ktor├Ż umo┼ż┼łuje shardovanie priestoru pre stake bez potreby shardovania samotnej ├║─Źtovnej knihy. St├íle je mo┼żn├ę shardova┼ą na ├║rovni ledgeru a Hydra je doplnkovou s├║─Źas┼ąou cel├ęho rie┼íenia ┼ík├ílovania. Ka┼żd├Ż pool m├┤┼że vytvori┼ą nov├║ hlavu Hydra, tak┼że pridanie ─Ćal┼í├şch poolov znamen├í, ┼że je mo┼żn├ę prida┼ą viac hl├ív. Tak┼że prid├ívan├şm nov├Żch hl├ív do protokolu mo┼żno dosiahnu┼ą takmer line├írne ┼ík├ílovanie. Boli vykonan├ę simul├ície a v├Żsledky s├║ skvel├ę. Ka┼żd├í hlava Hydra dok├í┼że spracova┼ą pribli┼żne 1000 TPS a je tu priestor na ─Ćal┼íiu optimaliz├íciu. Tak┼że s 1000 baz├ęnmi by Cardano teoreticky mohlo by┼ą schopn├ę ┼ík├ílova┼ą a┼ż na 1 mili├│n TPS a finaliz├ícia transakci├ş bude ve─żmi r├Żchla. Hydra umo┼ż┼łuje horizont├ílne ┼ík├ílovanie. To znamen├í zvy┼íovanie v├Żkonu za─Źlenen├şm ─Ćal┼í├şch uzlov. Je to v┼żdy jednoduch┼íie ako prid├íva┼ą ─Ćal┼í├ş v├Żkonn├Ż hardv├ęr, preto┼że existuj├║ HW limity.

Hydra zabezpe─Ź├ş n├şzku latenciu a minim├ílne ukladanie ├║dajov na uzol. Hydra je tie┼ż schopn├í vykon├íva┼ą inteligentn├ę kontrakty, tak┼że v├Żvoj├íri m├┤┼żu ─żahko vytv├íra┼ą dapps a vyu┼ż├şva┼ą mikroplatby, hlasovanie a ─Ćal┼íie veci.

Nevad├ş, ak nerozumiete v┼íetk├ęmu, ─Źo bolo nap├şsan├ę vy┼í┼íie. Po─Ćme teraz hlb┼íie do technick├Żch detailov.

Ak├Ż je vz┼ąah medzi blockchainom a Hydrou

Mo┼żnosti prvej vrstvy bud├║ v┼żdy obmedzen├ę, pokia─ż ide o po─Źet transakci├ş spracovan├Żch v danom ─Źasovom obdob├ş. Ak sa nem├í obetova┼ą decentraliz├ícia, priepustnos┼ą nikdy nebude dostato─Źn├í na to, aby ve─żk├ę mno┼żstvo ─żud├ş mohlo pou┼ż├şva┼ą konsenzu├ílnu distribuovan├║ sie┼ą. Rie┼íen├şm m├┤┼że by┼ą vytvorenie druhej vrstvy nad prvou vrstvou. Prv├í vrstva je to, ─Źo naz├Żvame blockchain. Je to najbezpe─Źnej┼íia a decentralizovan├í sie┼ą s ni┼ż┼íou priepustnos┼ąou. Nad touto prvou vrstvou je mo┼żn├ę vytvori┼ą kv├ízi nez├ívisl├║ sie┼ą, druh├║ vrstvu. Druh├í vrstva je vytvoren├í tak, aby sa ─Źo najviac ┼ík├ílovala a aby boli transakcie r├Żchle a lacn├ę. Hydra je teda rie┼íen├şm druhej vrstvy pre prv├║ vrstvu Cardano.

Ke─Ć┼że bezpe─Źnos┼ą prvej vrstvy je zabezpe─Źen├í blockchainom a distribuovan├Żm konsenzom, hovor├şme, ┼że transakcie sa sprac├║vaj├║ v re┼ąazci. Pou┼ż├şvatelia bud├║ m├┤c┼ą previes┼ą finan─Źn├ę prostriedky na druh├║ vrstvu. Transakcie v druhej vrstve sa teda sprac├║vaj├║ mimo re┼ąazca, teda mimo blockchainu. Prv├í vrstva teda neoveruje transakcie, ktor├ę sa uskuto─Ź┼łuj├║ v druhej vrstve.

Uk├í┼żme si to na pr├şklade. Alica, Bob a Carol maj├║ v blockchaine v prvej vrstve po 10 minc├ş ADA. Spolu 30 minc├ş. Existuje ┼ípeci├ílny mechanizmus, ktor├Ż umo┼ż┼łuje presun minc├ş do druhej vrstvy. V na┼íom pr├şpade do Hydry. Presnej┼íie povedan├ę, hlava Hydry je otvoren├í. V hlave Hydry si v┼íetci ├║─Źastn├şci vymie┼łaj├║ mince prostredn├şctvom transakci├ş. Prv├í vrstva tieto transakcie neoveruje. Po zatvoren├ş hlavy Hydry blockchain prevezme len posledn├║ platn├║ distrib├║ciu minc├ş z druhej vrstvy. O prenose minc├ş medzi vrstvami bude re─Ź nesk├┤r.

Blockchain m├┤┼że ─żahko overi┼ą, ┼że z o─Źak├ívanej hlavy Hydry sa 30 minc├ş ADA vr├íti sp├Ą┼ą do blockchainu. Teda presne to─żko, ko─żko bolo prenesen├ę do blockchainu po─Źas otvorenia Hydrinej hlavy. Vlastn├şctvo minc├ş sa mohlo zmeni┼ą v druhej vrstve, pri─Źom Alica m├í teraz 20 minc├ş a Bob m├í Carol 5 minc├ş. V├Żhodou je, ┼że v druhej vrstve m├┤┼że prebehn├║┼ą ve─żk├ę mno┼żstvo r├Żchlych transakci├ş medzi mnoh├Żmi pou┼ż├şvate─żmi a blockchain sa o to nemus├ş priamo stara┼ą.

Alica, Bob a Carol preved├║ mince ADA z blockchainu do Hydry. Hlava Hydry je otvoren├í. V hlave Hydry si strany m├┤┼żu vymeni┼ą to─żko r├Żchlych transakci├ş, ko─żko chc├║. Na konci sa kone─Źn├Ż stav minc├ş prenesie sp├Ą┼ą do blockchainu.

Alica, Bob a Carol m├┤┼żu medzi sebou komunikova┼ą priamo v hlave Hydry. Deje sa to tak, ┼że je mo┼żn├ę zabudn├║┼ą na hist├│riu transakci├ş. Strany si navz├íjom aktualizuj├║ lok├ílne stavy a po ich potvrden├ş medzi v┼íetk├Żmi je mo┼żn├ę hist├│riu transakci├ş vymaza┼ą. V hlave Hydry sa tak uchov├íva len posledn├Ż platn├Ż stav, ktor├Ż sa pou┼żije pri prevode prostriedkov sp├Ą┼ą do blockchainu. Podrobnej┼íie sa mu budeme venova┼ą aj nesk├┤r.

Stavov├ę kan├íly Hydry

Hydra pou┼ż├şva stavov├ę kan├íly, ktor├ę roz┼íiruj├║ koncept platobn├Żch kan├ílov. Strany udr┼żiavaj├║ stavov├ę kan├íly na udr┼żiavanie spolo─Źn├ęho stavu a s├║ schopn├ę sa na ┼łom dohodn├║┼ą bez interakcie s blockchainom.

Hydra nie je len o prevode finan─Źn├Żch prostriedkov, ale aj o vykon├ívan├ş inteligentn├Żch zml├║v. Je teda potrebn├ę pracova┼ą so stavmi. Napr├şklad je mo┼żn├ę vytvori┼ą inteligentn├Ż kontrakt v prvej vrstve a prenies┼ą ho do hlavy Hydry, kde sa m├┤┼że vykona┼ą.

Inteligentn├Ż kontrakt si m├┤┼żete predstavi┼ą ako program alebo postupnos┼ą ur─Źit├Żch oper├íci├ş, ktor├ę sa vykon├ívaj├║ podmiene─Źne. To znamen├í, ┼że oper├ícia sa vykon├í len vtedy, ak nastala o─Źak├ívan├í udalos┼ą. Ak sa tak nestane, m├┤┼że sa vykona┼ą in├í oper├ícia. M├┤┼żeme hovori┼ą o udalos┼ąami riadenom vykon├ívan├ş inteligentn├ęho kontraktu. Inteligentn├Ż kontrakt je v ka┼żdom okamihu v ur─Źitom stave, ktor├Ż sa postupne podmiene─Źne men├ş, pokia─ż je akt├şvny a udalosti sp├║┼í┼ąaj├║ zmeny.

Predstavte si st├ívkov├║ kancel├íriu, v ktorej m├┤┼żu ─żudia tipova┼ą v├Żsledky z├ípasov. Inteligentn├Ż kontrakt bude schopn├Ż zablokova┼ą vklady v┼íetk├Żch ├║─Źastn├şkov a potom spravodlivo rozdeli┼ą v├Żhry na z├íklade v├Żsledkov z├ípasov. Ak to zjednodu┼í├şme, kontrakt bude v nieko─żk├Żch stavoch na jeden z├ípas.

Verejn├Ż blockchain z├ípas├ş s prijat├şm. Vy┼í┼íie prijatie je kriticky z├ívisl├ę od schopnosti protokolu viac ┼ík├ílova┼ą. Vysvetl├şme si, ─Źo presne je ┼ík├ílovate─żnos┼ą, a pozrieme sa na rozdiely medzi PoS a PoW Viac inform├íci├ş .

  1. Zbieranie vkladov a tipov ├║─Źastn├şkov pred z├ípasom.
  2. Zastavenie prij├şmania vkladov kr├ítko pred za─Źiatkom z├ípasu.
  3. ─îakanie na v├Żsledok z├ípasu.
  4. Spracovanie v├Żsledku z├ípasu a v├Żpo─Źet v├Żhier.
  5. Rozdelenie v├Żhier medzi v├Żhercov.

Inteligentn├Ż kontrakt sa m├┤┼że vykon├íva┼ą v syst├ęme Hydra a m├┤┼że sa pou┼żi┼ą pre viac z├ípasov za sebou. Blockchain teda nem├┤┼że uchov├íva┼ą v┼íetky transakcie s├║visiace so st├ívkami. Hist├│ria m├┤┼że by┼ą v syst├ęme Hydra zabudnut├í. Po rozdelen├ş v├Żhier medzi v├Żhercov po z├ípase mo┼żno v┼íetky stavy a transakcie vymaza┼ą. Samozrejme, okrem kone─Źn├ęho stavu. Predpokladajme, ┼że inteligentn├Ż kontrakt bol vytvoren├Ż pre futbalov├║ sez├│nu. Po skon─Źen├ş sez├│ny sa m├┤┼że hlava Hydry zatvori┼ą a jedin├ę, ─Źo bude ulo┼żen├ę v blockchaine, je rozdelenie z├ívere─Źn├ęho fondu st├ívkarov.

Pre─Źo nevs├ídza┼ą prostredn├şctvom inteligentn├ęho kontraktu?

Koncept stavov├Żch kan├ílov nie je nov├Ż a u┼ż existuj├║ niektor├ę implement├ície. Maj├║ v┼íak nieko─żko v├í┼żnych nev├Żhod. Najv├Ą─Ź┼íou nev├Żhodou je, ┼że infra┼ítrukt├║ru prvej vrstvy a k├│d inteligentn├ęho kontraktu, ktor├Ż je nap├şsan├Ż pre infra┼ítrukt├║ru prvej vrstvy, nie je mo┼żn├ę pou┼żi┼ą v r├ímci druhej vrstvy bez zmien. Tieto zmeny, ktor├ę s├║ potrebn├ę na prenos finan─Źn├Żch prostriedkov a inteligentn├Żch zml├║v medzi vrstvami, m├┤┼żu by┼ą ve─żmi nebezpe─Źn├ę.

V blockchaine sa napr├şklad zvy─Źajne pou┼ż├şva model UTxO (Unspent Transaction Output - v├Żstup z nespotrebovanej transakcie). UTxO je v podstate abstrakcia minc├ş. Ka┼żd├Ż UTxO predstavuje re┼ąazec vlastn├şctva implementovan├Ż ako re┼ąazec digit├ílnych podpisov, kde vlastn├şk pou┼ż├şva s├║kromn├Ż k─ż├║─Ź na podp├şsanie transakcie, ktor├í pren├í┼ía vlastn├şctvo jeho UTxO na verejn├Ż k─ż├║─Ź pr├şjemcu. Ako sme u┼ż povedali, pre zjednodu┼íenie si m├┤┼żete UTxO predstavi┼ą ako reprezent├íciu mince. Va┼íe vlastn├şctvo minc├ş je definovan├ę po─Źtom UTxO, ktor├ę m├íte v pe┼ła┼żenke a ktor├ę sa nach├ídzaj├║ na va┼íich adres├ích.

Model UTxO sa pova┼żuje za ve─żmi bezpe─Źn├Ż sp├┤sob, ako manipulova┼ą s prostriedkami v r├ímci blockchainu. S├║─Źasn├ę rie┼íenia druhej vrstvy nie s├║ schopn├ę pracova┼ą priamo s UTxO. Mince s├║ teda reprezentovan├ę ├║plne in├Żm sp├┤sobom. S├║─Źasn├ę druh├ę vrstvy tak str├ícaj├║ d├┤le┼żit├Ż bezpe─Źnostn├Ż prvok. To ist├ę plat├ş aj pre vykon├ívanie inteligentn├Żch kontraktov, kde mus├ş d├┤js┼ą ku konverzii reprezent├ície inform├íci├ş. A to m├┤┼że by┼ą ve─żmi nebezpe─Źn├ę.

Hydra v├Żrazne zjednodu┼íuje rie┼íenia druhej vrstvy. Hydra je schopn├í prija┼ą rie┼íenie prvej vrstvy. Model Extended-UTxO a cel├║ infra┼ítrukt├║ru inteligentn├Żch kontraktov prvej vrstvy je mo┼żn├ę pou┼żi┼ą v r├ímci Hydry. Transakcie Hydra pracuj├║ priamo s UTxO na zmenu vlastn├şctva. Inteligentn├Ż kontrakt, ktor├Ż je nasaden├Ż v blockchaine, sa m├┤┼że vykon├íva┼ą tak, ako je v hlave Hydry, a nedoch├ídza k ┼żiadnej konverzii ├║dajov.

V jednoduchosti je sila.

Aby sme rozdiel videli jasnej┼íie, m├┤┼żeme sa pozrie┼ą na Ethereum. Ethereum pou┼ż├şva na z├ípis inteligentn├ęho kontraktu v prvej vrstve Solidity. Ke─Ć sa m├í kontrakt prenies┼ą do druhej vrstvy, mus├ş sa konvertova┼ą, preto┼że druh├í vrstva nedok├í┼że pracova┼ą priamo so Solidity. Aby sa umo┼żnila konverzia, mus├ş sa upravi┼ą samotn├Ż inteligentn├Ż kontrakt Solidity. Skriptovac├ş jazyk blockchainu a druhej vrstvy sa v├Żrazne l├ş┼íi. Konverzia je teda nevyhnutn├í.

V syst├ęme Hydra nie je potrebn├í ┼żiadna konverzia, preto┼że obe vrstvy dok├í┼żu pou┼ż├şva┼ą rovnak├Ż skriptovac├ş syst├ęm. Hydra zav├ídza izomorfn├ę viacstranov├ę stavov├ę kan├íly. V podstate to znamen├í, ┼że stavov├ę kan├íly pou┼ż├şvaj├║ skriptovac├ş jazyk podkladovej ├║─Źtovnej knihy. Hydra zdedila skriptovac├ş jazyk z blockchainu Cardano.

Stavov├ę kan├íly umo┼ż┼łuj├║ paraleln├ę spracovanie transakci├ş a inteligentn├Żch kontraktov, ktor├ę sa deje mimo re┼ąazca. Je mo┼żn├ę otvori┼ą viac hl├ív Hydry. Hydra teda m├┤┼że by┼ą viachlav├í. Ka┼żd├í novootvoren├í hlava predstavuje nov├║ paraleln├║ jednotku. Po uzavret├ş stavov├ęho kan├íla m├┤┼że by┼ą stav hlavy bezprobl├ęmovo absorbovan├Ż blockchainom. Je to jednoduch├í a priamo─Źiara ├║loha, preto┼że v re┼ąazci aj mimo neho sa pou┼ż├şva rovnak├Ż k├│d inteligentn├ęho kontraktu. V Hydre je dokonca mo┼żn├ę vytvori┼ą inteligentn├Ż kontrakt bez registr├ície v blockchaine. Blockchain je schopn├Ż prevzia┼ą inteligentn├║ zmluvu a pokra─Źova┼ą v jej vykon├ívan├ş on-chain.

Hlav Hydry je viac.

V─Ćaka Hydre m├┤┼że Cardano takmer line├írne ┼ík├ílova┼ą. To znamen├í, ┼że ke─Ć sa do siete pridaj├║ nov├ę zdroje, potom sa m├┤┼że spracova┼ą viac transakci├ş a inteligentn├Żch zml├║v. Zvy┼íuje sa tak v├Żkonnos┼ą. V pr├şpade blockchainu to tak v┼żdy nie je. Prinajmen┼íom to nie je tak├ę jednoduch├ę.

Roz┼í├şren├ę UTxO

Pou┼ż├şvanie modelu UTxO v oboch vrstv├ích nie je zadarmo a obe vrstvy na┼ł musia by┼ą pripraven├ę. Pou┼żitie izomorfn├Żch stavov├Żch kan├ílov vy┼żaduje schopnos┼ą vzia┼ą ─Źas┼ą stavu blockchainu, spracova┼ą ju nez├ívisle mimo v Hydre a nakoniec ju vedie┼ą zl├║─Źi┼ą sp├Ą┼ą do blockchainu. UTxO sa na to dobre hod├ş a dok├í┼że reprezentova┼ą stav na re┼ąazci aj mimo re┼ąazca. Tradi─Źn├Ż model UTxO Bitcoinu sa v┼íak ┼ąa┼żko pou┼ż├şva na spracovanie mimo re┼ąazca, preto┼że m├í obmedzen├ę mo┼żnosti skriptovania. IOHK zaviedol roz┼í├şren├Ż model UTxO (EUTxO) a podporu pre v┼íeobecn├Ż stavov├Ż stroj (budeme o ┼łom hovori┼ą nesk├┤r). Roz┼í├şren├Ż model UTxO a stavov├Ż stroj umo┼ż┼łuj├║ bezpe─Źn├Ż prenos medzi vrstvami bez obmedzenia skriptovania.

Prenos UTxO z blockchainu do hlavy Hydry koordinuj├║ viacer├ę strany. Hovor├şme o otvoren├ş hlavy Hydry. Samotn├í hlava je n├ízov protokolu druhej vrstvy. Na za─Źiatku, po prenose, je po─Źiato─Źn├Ż stav hlavy, ktor├Ż sa vyv├şja v protokole Head nez├ívisle od blockchainu. Strany posielaj├║ transakcie, vykon├ívaj├║ inteligentn├ę zmluvy a spolo─Źne udr┼żiavaj├║ spolo─Źn├Ż stav. V─Ćaka izomorfnej povahe je mo┼żn├ę pou┼ż├şva┼ą rovnak├ę overovanie transakci├ş, pravidl├í a vykon├ívanie skriptov v re┼ąazci aj mimo neho.

Ktor├íko─żvek strana m├┤┼że chcie┼ą ukon─Źi┼ą protokol Head mimo re┼ąazca. V takom pr├şpade strany prenes├║ kone─Źn├Ż stav Head sp├Ą┼ą do blockchainu. Stav blockchainu sa teda zodpovedaj├║cim sp├┤sobom aktualizuje a je konzistentn├Ż so stavom fin├ílnej hlavy.

Hydra umo┼ż┼łuje inkrement├ílne commitovanie a decommitovanie. To znamen├í, ┼że UTxO mo┼żno prida┼ą do hlavy Hydra alebo z nej odstr├íni┼ą bez toho, aby bolo potrebn├ę hlavu zatvori┼ą a znovu otvori┼ą. Je to ve─żmi praktick├ę, preto┼że do projektu m├┤┼że by┼ą zapojen├Żch viac ├║─Źastn├şkov a bolo by zbyto─Źne re┼żijn├ę zatv├íra┼ą Head len preto, ┼że jeden ├║─Źastn├şk potrebuje prida┼ą alebo odobra┼ą prostriedky.

Stavov├Ż stroj

Pojem stavov├Ż stroj v├ím mo┼żno nie je zn├ímy. Zjednodu┼íene povedan├ę, ide o matematick├Ż model v├Żpo─Źtu. Je to abstraktn├Ż stroj, ktor├Ż sa v danom ─Źase m├┤┼że nach├ídza┼ą presne v jednom z kone─Źn├ęho po─Źtu stavov. Stavov├Ż stroj m├┤┼że prejs┼ą z jedn├ęho stavu do druh├ęho v reakcii na ur─Źit├ę vstupy. Zmena z jedn├ęho stavu do druh├ęho sa naz├Żva prechod. Pou┼ż├şva sa v r├ímci prvej vrstvy Cardano, aby bola absol├║tna istota, ┼że prenos UTxO medzi vrstvami je spo─żahliv├Ż a bezpe─Źn├Ż, preto┼że v ka┼żdom okamihu existuje len jeden platn├Ż stav a prechod do ─Ćal┼íieho stavu je deterministick├Ż.

V├Żber poschodia. Dvere sa zatvoria a v├Ż┼ąah sa bude bezpe─Źne pohybova┼ą.

Predstavte si v├Ż┼ąah. V├Ż┼ąah m├┤┼że otv├íra┼ą a zatv├íra┼ą dvere. M├┤┼że sa tie┼ż pohybova┼ą o jedno poschodie nahor alebo nadol. Pou┼ż├şvatelia m├┤┼żu pou┼ż├şva┼ą tla─Źidl├í, ─Źo je vstup pre v├Ż┼ąah. V├Ż┼ąah vie, ─Źi s├║ dvere zatvoren├ę alebo otvoren├ę a na ktorom poschod├ş sa nach├ídzaj├║. To s├║ tie┼ż vstupy. V├Ż┼ąah sa nikdy nesmie pohybova┼ą s otvoren├Żmi dverami. Bolo by to nebezpe─Źn├ę pre ─żud├ş vo vn├║tri. V├Ż┼ąah sa bude pohybova┼ą hore/dole len vtedy, ke─Ć s├║ dvere zatvoren├ę. To je to, ─Źo m├┤┼że robi┼ą stavov├Ż stroj. S├║ definovan├ę platn├ę prechody zo stavu do stavu. V├Ż┼ąah m├┤┼że pracova┼ą so stavmi: Dvere s├║ otvoren├ę, dvere s├║ zatvoren├ę, pohyb hore, pohyb dole, ne─Źinnos┼ą. Platn├Ż prechod zo stavu do stavu je: Dvere zatvoren├ę Ôćĺ Pohyb nahor. Op├ş┼íme si situ├íciu z vy┼í┼íie uveden├ęho obr├ízka. Vo v├Ż┼ąahu s├║ ─żudia. Stav je Dvere otvoren├ę. Niekto stla─Ź├ş tla─Źidlo. Je to vstup pre v├Ż┼ąah, ktor├ęho v├Żsledkom je zatvorenie dver├ş. Stavov├Ż automat prepne stav na stav Dvere zatvoren├ę. Potom je mo┼żn├ę bezpe─Źne prejs┼ą do stavu Pohyb hore. Neplatn├í transakcia by bola: Dvere otvoren├ę Ôćĺ Presun nahor. Stavov├Ż stroj v├Ż┼ąahu zabezpe─Źuje, ┼że k neplatn├ęmu prechodu nikdy nem├┤┼że d├┤js┼ą. In├Żmi slovami, zabezpe─Źuje, aby sa mohli uskuto─Źni┼ą len definovan├ę a o─Źak├ívan├ę prechody. Trochu sme to zjednodu┼íili, ale d├║fame, ┼że ste pochopili my┼ílienku.

Vr├í┼ąme sa sp├Ą┼ą k Hydre. Blokov├í ─Źas┼ą Hydry mus├ş zabezpe─Źi┼ą dve veci:

  1. Star├í sa o uzamknutie UTxO v blockchaine, ke─Ć sa UTxO pren├í┼íaj├║ do Head. UTx0s zost├ívaj├║ uzamknut├ę v blockchaine, k├Żm je Head akt├şvny. To sa deje, ke─Ć sa m├í Head otvori┼ą.
  2. Ke─Ć m├í by┼ą Head zatvoren├Ż, u─żah─Źuje to vyrovnanie kone─Źn├ęho stavu Hydry. Zabezpe─Źuje, aby sa UTxO bezpe─Źne preniesli sp├Ą┼ą do blockchainu a dekomitovali. Deje sa to, ke─Ć m├í by┼ą Head uzavret├Ż.

Stavov├Ż stroj sa star├í o prenos UTxOs.

Tieto dve funkcie zabezpe─Źuj├║, ┼że UTxO, ktor├ę boli pou┼żit├ę ako po─Źiato─Źn├Ż stav Hlavy, s├║ nahraden├ę UTxO, ktor├ę zodpovedaj├║ kone─Źn├ęmu stavu Hlavy.

UTxO sa uzamkn├║ pri otvoren├ş hlavice a odomkn├║ pri jej zatvoren├ş.

V r├ímci stavov├ęho stroja Hydra sa pou┼ż├şvaj├║ ┼ítyri stavy: Po─Źiato─Źn├Ż, Otvoren├Ż, Zatvoren├Ż a Kone─Źn├Ż, a my sa na ne pozrieme bli┼ż┼íie hne─Ć ni┼ż┼íie.

Je pravdepodobne zbyto─Źn├ę zaobera┼ą sa stavov├Żm strojom hlb┼íie. D├┤le┼żit├ę je vedie┼ą, ┼że prenos UTxO medzi vrstvami je pr├şsne a bezpe─Źne definovan├Ż. Konkr├ętne UTxO m├┤┼że by┼ą spracovan├ę bu─Ć blokov├Żm re┼ąazcom, alebo hlavou Hydry. Nikdy nie oboma vrstvami s├║─Źasne.

Protokol Hlavy

Ktor├íko─żvek strana m├┤┼że iniciova┼ą vytvorenie Hlavy Hydry t├Żm, ┼że po┼żiada s├║bor str├ín o pripojenie. Ka┼żd├í strana vytvor├ş kan├íl so v┼íetk├Żmi ostatn├Żmi stranami. Ak to nie je z nejak├ęho d├┤vodu mo┼żn├ę, vytvorenie hlavy sa preru┼í├ş. Strany si vymie┼łaj├║ materi├íl s verejn├Żm k─ż├║─Źom prostredn├şctvom vytvoren├Żch kan├ílov. Materi├íl s verejn├Żm k─ż├║─Źom sa pou┼ż├şva na overovanie transakci├ş s├║visiacich s hlavou v re┼ąazci, preto┼że to m├┤┼żu robi┼ą len ─Źlenovia hlavy. Materi├íl sa pou┼ż├şva aj na potvrdzovanie udalost├ş v hlave na z├íklade viacer├Żch podpisov.

Inici├ítor hlavy zaklad├í hlavu predlo┼żen├şm po─Źiato─Źnej transakcie do blockchainu. Vytvoria sa ┼ípeci├ílne tokeny a pridelia sa v┼íetk├Żm ─Źlenom Head. Verejn├ę k─ż├║─Źe ─Źlenov Head tak m├┤┼żu by┼ą prepojen├ę s tokeny. V tomto okamihu sa zap├íja stavov├Ż stroj a star├í sa o bezpe─Źn├Ż prenos UTxO z blockchainu do hlavy. Prv├Żm stavom je po─Źiato─Źn├Ż stav. V tomto bode m├┤┼żu v┼íetci ─Źlenovia Head odovzda┼ą UTxO do Head. Ak niektor├Ż ─Źlen Head neodo┼íle transakciu commit, potom sa stav prepne priamo z Initial do Final a Head sa neotvor├ş. Predpokladajme, ┼że v┼íetk├Żm ─Źlenom sa podarilo odosla┼ą transakciu commit. V tomto pr├şpade s├║ UTxO uzamknut├ę v r├ímci blockchainu, aby s nimi mohli ─Źlenovia Head pracova┼ą. ─îlenovia Hlavy m├┤┼żu za─Źa┼ą pou┼ż├şva┼ą UTxO v r├ímci Hlavy, ke─Ć stavov├Ż stroj prepne stav na Otvoren├ę. Od tohto momentu sa UTxO za─Źn├║ vyv├şja┼ą mimo re┼ąazca.

V ktoromko─żvek okamihu, ke─Ć je Head otvoren├Ż, m├┤┼że ktor├íko─żvek strana iniciova┼ą uzavretie Head. Stavov├Ż automat prepne stav na Close (zatvori┼ą). Nast├íva obdobie spochyb┼łovania, po─Źas ktor├ęho strany poskytuj├║ svoj kone─Źn├Ż stav, ktor├Żm je ich s├║bor UTxO. Po uplynut├ş obdobia spochyb┼łovania stavov├Ż automat prepne stav na Kone─Źn├Ż. Podobne ako na za─Źiatku sa stavov├Ż stroj postar├í o bezpe─Źn├Ż prenos sady UTxO, ktor├í zodpoved├í kone─Źn├ęmu stavu Head, sp├Ą┼ą do blockchainu.

Pozrime sa na spracovanie transakci├ş v Head. Protokol Head je asynchr├│nny a dok├í┼że spracov├íva┼ą transakcie paralelne. Ka┼żd├í strana si udr┼żiava vlastn├Ż kone─Źn├Ż stav UTxO. Protokol Head zhroma┼ż─Ćuje a distribuuje viacero podpisov na ka┼żdej vydanej transakcii. Po potvrden├ş transakcie sa st├íva s├║─Źas┼ąou posledn├ęho platn├ęho stavu UTxO. Posledn├Ż platn├Ż stav UTxO je nezvratn├Ż, preto je mo┼żn├ę jednotliv├ę UTxO okam┼żite min├║┼ą. Vzh─żadom na asynchr├│nne spracovanie sa m├┤┼że kone─Źn├Ż stav strany navz├íjom l├ş┼íi┼ą. UTxO sa vyv├şja v ─Źase od po─Źiato─Źnej f├ízy. Ka┼żd├í strana uplat┼łuje v┼íetky transakcie, ktor├ę boli potvrden├ę v hlave, a tak sa kone─Źn├Ż stav m├┤┼że neust├íle meni┼ą.

Protokol Head neuchov├íva hist├│riu transakci├ş, aby sa minimalizovalo lok├ílne ukladanie str├ín. Namiesto uchov├ívania hist├│rie sa neust├íle generuj├║ sn├şmky UTxO. V┼żdy je vybran├Ż ved├║ci sn├şmky, ktor├Ż pon├║ka svoj poh─żad na potvrden├Ż stav. Ostatn├ę strany potvrdia stav podpisom a v├Żsledkom je vygenerovanie nov├ęho sn├şmku. Na rozdiel od asynchr├│nneho spracovania transakci├ş sa sn├şmky generuj├║ sekven─Źne. Po potvrden├ş novej sn├şmky m├┤┼żu strany vymaza┼ą v┼íetky transakcie, ktor├ę boli spracovan├ę a s├║ s├║─Źas┼ąou novej sn├şmky. Potvrden├Ż stav strany je v┼żdy pred poslednou potvrdenou sn├şmkou. Nie je teda potrebn├ę ─Źaka┼ą na potvrdenie niektorej transakcie, aby bolo mo┼żn├ę potvrdi┼ą nov├Ż n├ívrh sn├şmky. Sn├şmka odr├í┼ża kone─Źn├Ż stav ved├║ceho, ktor├Ż bol potvrden├Ż v┼íetk├Żmi ─Źlenmi ved├║ceho.

Chcete z├şska┼ą viac inform├íci├ş? ─îl├ínok o Hydre si m├┤┼żete pre─Ź├şta┼ą na blogu IOHK:

Zhrnutie

Hydra umo┼żn├ş to, ─Źo je absol├║tne nevyhnutn├ę pre ─Ćal┼íie prijatie kryptomien, a to je vysok├í ┼ík├ílovate─żnos┼ą. Bez tejto vlastnosti je glob├ílny syst├ęm v podstate nepou┼żite─żn├Ż, preto┼że ke─Ć ho ─żudia bud├║ chcie┼ą za─Źa┼ą pou┼ż├şva┼ą, zistia, ┼że musia dlho ─Źaka┼ą na vyrovnanie transakcie. A ─Źasto si aj priplatia. Hydra men├ş pravidl├í hry. Okrem posielania transakci├ş umo┼ż┼łuje aj vykon├ívanie inteligentn├Żch kontraktov. V┼íetko je navy┼íe v porovnan├ş s konkurenciou ve─żmi bezpe─Źn├ę v─Ćaka priamemu vyu┼żitiu UTxO.

Odkaz na p├┤vodn├Ż ─Źl├ínok: Hydra: Cardano scalability solution | Cardanians