­č窭čç░ Sk├║manie mo┼żnost├ş ┼ík├ílovate─żnosti modelu UTxO

Sk├║manie mo┼żnost├ş ┼ík├ílovate─żnosti modelu UTxO

Model UTxO umo┼ż┼łuje paraleln├ę spracovanie transakci├ş, ─Źo je vlastnos┼ą, ktor├í je nevyhnutn├í na dosiahnutie vysokej ┼ík├ílovate─żnosti a r├Żchlej finaliz├ície transakci├ş. V tomto ─Źl├ínku sa budeme venova┼ą r├┤znym strat├ęgi├ím na zlep┼íenie konsenzu v sieti, ktor├ę m├┤┼żu vies┼ą k zv├Ż┼íeniu priepustnosti siete a r├Żchlej┼íej finaliz├ícii transakci├ş. V ─Źl├ínku sa dozviete o vstupn├Żch schva─żova─Źoch, shardingu a o tom, ako ochrana proti ├║tokom dvojit├ęho m├ş┼łania obmedzuje ┼ík├ílovate─żnos┼ą.

Z├íkladn├ę vlastnosti modelu UTxO

UTxO s├║ nez├ívisl├ę a nemenn├ę objekty. Ke─Ć je UTxO vytvoren├Ż ako v├Żstup transakcie, zost├íva nezmenen├Ż, k├Żm sa nevy─Źerp├í v novej transakcii. Ke─Ć sa minie, ├║plne sa spotrebuje a ako v├Żstup novej transakcie sa vytvor├ş nov├Ż UTxO.

Obr├ízok zn├ízor┼łuje nepretr┼żit├ę a paraleln├ę predkladanie nov├Żch transakci├ş pou┼ż├şvate─żmi. Ka┼żd├í transakcia jednozna─Źne odkazuje na vstupn├ę UTxO zo s├║boru UTxO, ako to nazna─Źuj├║ ─Źerven├ę ┼í├şpky ved├║ce k ─Źerven├Żm UTxO. V├Żraz STATE 1 predstavuje ─Źerstv├Ż glob├ílny stav, ktor├Ż vznik├í v ka┼żdom uzle po prijat├ş nov├ęho bloku. ─îerven├ę UTxO boli odstr├ínen├ę zo s├║boru UTxO. S├║bor UTxO bol aktualizovan├Ż pridan├şm novovytvoren├Żch UTxO, zn├ízornen├Żch zelen├Żmi ┼í├şpkami smeruj├║cimi k zelen├Żm UTxO.

Model UTxO zohr├íva k─ż├║─Źov├║ ├║lohu pri spr├íve glob├ílneho stavu po─Źas overovania transakci├ş. Glob├ílny stav v syst├ęme Cardano je reprezentovan├Ż akt├şvnou kolekciou UTxO, zn├ímou aj ako s├║bor UTxO. S pridan├şm ka┼żd├ęho nov├ęho bloku sa v┼íetky novo vytvoren├ę UTxO za─Źlenia do mno┼żiny UTxO. Naopak, UTxO, ktor├ę s├║ spotrebovan├ę (utraten├ę) transakciami, s├║ zo sady UTxO odstr├ínen├ę. UTxO mo┼żno vn├şma┼ą ako jednorazov├ę entity.

Ka┼żd├Ż uzol v sieti si udr┼żiava svoju individu├ílnu sadu UTxO. V├Ą─Ź┼íina uzlov dodr┼żiavaj├║cich konsenzus disponuje identickou sadou UTxO (glob├ílnym stavom), preto┼że si uchov├ívaj├║ rovnak├║ hist├│riu blockchainu vr├ítane naposledy pridan├ęho bloku. Napriek tomu v d├┤sledku oneskoren├ş pri prenose d├ít v sieti neprech├ídza glob├ílny stav okam┼żit├Żmi zmenami vo v┼íetk├Żch uzloch s├║─Źasne, ale sk├┤r s mal├Żm oneskoren├şm. Mo┼żno postulova┼ą, ┼że v okamihu, ke─Ć uzol tvorca bloku ┼í├şri do siete nov├Ż blok, v┼íetky uzly zdie─żaj├║ rovnak├Ż glob├ílny stav (─Źo znamen├í, ┼że prijali posledn├Ż blok a pod─ża toho aktualizovali glob├ílny stav).

Ako zv├Ż┼íi┼ą kone─Źnos┼ą transakci├ş?

Cardano vyu┼ż├şva mechanizmus konsenzu podobn├Ż konsenzu v ┼ít├Żle Nakamoto. Ten je typick├Ż pravdepodobnostnou kone─Źnos┼ąou blokov, a teda aj transakci├ş. To znamen├í, ┼że ak je transakcia zahrnut├í do nov├ęho bloku, ozna─Źovan├ęho ako BLOK 1, m├í po─Źet potvrden├ş nula. Ke─Ć sa prid├í blok, existuje pravdepodobnos┼ą, ┼że tento blok nemus├ş v blockchaine pretrva┼ą, preto┼że by mohol by┼ą nahraden├Ż alternat├şvnym blokom vytvoren├Żm pribli┼żne v rovnakom ─Źase. Istota, ┼że blok v blockchaine vydr┼ż├ş, sa zvy┼íuje s prid├ívan├şm nov├Żch blokov nad r├ímec BLOCK 1. ─îasto sa to ozna─Źuje ako zv├Ż┼íenie po─Źtu potvrden├ş.

Na obr├ízku m├┤┼żete vidie┼ą, ┼że po BLOKU 0 do┼ílo k rozvetveniu blockchainu. Vznikli dva alternat├şvne BLOKY 1. Po pridan├ş ─Ćal┼í├şch blokov zv├ş┼ąazil horn├Ż re┼ąazec. V hornom re┼ąazci sa uskuto─Źnila transakcia TX 1.

Cardano vykazuje n├şzku kone─Źnos┼ą transakci├ş. ─îas bloku v syst├ęme Cardano je nakonfigurovan├Ż na 20 sek├║nd. To znamen├í, ┼że ak si va┼ía transakcia vy┼żaduje 10 potvrden├ş, museli by ste ─Źaka┼ą pribli┼żne 200 sek├║nd, ─Źo s├║ zhruba 3 min├║ty.

V─Ćaka nez├ívislosti UTxO v r├ímci sady UTxO sa vz├íjomne vylu─Źuje aj potvrdzovanie transakci├ş. Ka┼żd├Ż uzol m├┤┼że potvrdi┼ą transakciu alebo skupinu transakci├ş. Poradie transakci├ş v r├ímci bloku je nepodstatn├ę, preto┼że sa navz├íjom neovplyv┼łuj├║. V d├┤sledku toho m├┤┼że uzol nielen validova┼ą jednotliv├ę transakcie po ich prijat├ş, ale aj pripoji┼ą schv├ílenie alebo hlasovanie v ur─Źitej forme pred roz┼í├şren├şm transakcie do siete. Ka┼żd├Ż nasleduj├║ci uzol, ktor├Ż dostane transakciu, bude sledova┼ą aj schv├ílenia od uzlov, ktor├ę dostali transakciu sk├┤r.

Na obr├ízku m├┤┼żete vidie┼ą, ako transakcia TX 1 postupne zbiera schv├ílenia v ka┼żdom ─Ćal┼íom uzle, do ktor├ęho sa ┼í├şri. Ke─Ć uzol 4 vytvor├ş nov├Ż blok, transakcia u┼ż m├í 4 schv├ílenia. V┼íimnite si, ┼że uzol 4 ako prv├Ż upravil svoj mem-pool. Uzol 4 odstr├ínil star├Ż vstupn├Ż UTxO (─Źerven├Ż) z transakcie TX 1 a vlo┼żil novovytvoren├Ż UTxO (zelen├Ż).

Transakcie, ktor├ę boli v pam├Ą┼ąovom fonde uzla dlh┼íie, maj├║ vo v┼íeobecnosti viac schv├ílen├ş a mohli by ma┼ą vy┼í┼íiu prioritu pri prid├ívan├ş do bloku. Toto je u┼ż vlastnos┼ą transakci├ş Cardano, ke─Ć┼że Cardano funguje na princ├şpe first-in, first-out. D├┤le┼żit├ę je, ┼że ak transakcia z├şska schv├ílenie od v├Ą─Ź┼íiny uzlov v sieti, pravdepodobnos┼ą jej vyradenia sa zni┼żuje, a to aj v pr├şpade, ┼że blockchain prejde reorganiz├íciou.

Proces dosiahnutia konsenzu o zaraden├ş transakci├ş m├┤┼że prebieha┼ą r├Żchlej┼íie a nez├ívisle od tvorby nov├Żch blokov.

Aj ke─Ć blok obsahuj├║ci transakciu m├í len nieko─żko potvrden├ş (pr├şpadne len jedno), medzi uzlami siete u┼ż bude existova┼ą konsenzus, ┼że transakcia by mala by┼ą s├║─Źas┼ąou blockchainu. Sie┼ą m├┤┼że by┼ą navrhnut├í tak, aby najstar┼íie transakcie s ve─żk├Żm po─Źtom potvrden├ş boli do blockchainu zaraden├ę pri najbli┼ż┼íej pr├şle┼żitosti.

Potenci├ílna reorganiz├ícia blockchainu v┼íak predstavuje v├Żzvu pre kone─Źnos┼ą transakci├ş. Napriek tomu, ┼że transakcia m├í vysok├Ż po─Źet schv├ílen├ş, je teoreticky mo┼żn├ę, ┼że bude z blockchainu do─Źasne odstr├ínen├í. K tomu m├┤┼że d├┤js┼ą, ak sa ─Źas┼ą re┼ąazca (najnov┼íie bloky blockchainu) nahrad├ş alternat├şvnou verziou. Bloky v tejto novej ─Źiastkovej verzii re┼ąazca m├┤┼żu obsahova┼ą in├Ż s├║bor transakci├ş. Zv├Ż┼íenie kone─Źnosti transakci├ş preto zah┼Ľ┼ła zmenu konsenzu, aby sa zabr├ínilo reorganiz├ícii blockchainu, alebo ├║pravu pravidiel, ktor├ę odr├í┼żaj├║ po─Źet schv├ílen├ş transakci├ş.

Na obr├ízku ni┼ż┼íie m├┤┼żete vidie┼ą ne┼żelan├║ reorganiz├íciu blockchainu. TX1 v hornom re┼ąazci mal 4 schv├ílenia a jedno potvrdenie (BLOCK 2). Napriek tomu nakoniec zv├ş┼ąazil doln├Ż re┼ąazec, v ktorom sa nenach├ídza transakcia TX 1.

Kone─Źnos┼ą transakcie mo┼żno zv├Ż┼íi┼ą t├Żm, ┼że uzly sa po─Źas jej ┼í├şrenia sie┼ąou zhodn├║ na jej za─Źlenen├ş do blockchainu. To je mo┼żn├ę v─Ćaka modelu UTxO, ke─Ć┼że valid├ícia transakcie si vy┼żaduje len overenie existencie vstupn├Żch UTxO (ich pr├ştomnos┼ą v mno┼żine UTxO), ─Źo znamen├í, ┼że s├║ spendovate─żn├ę.

Ni┼ż┼íie v ─Źl├ínku si uk├í┼żeme, ako je teoreticky mo┼żn├ę dosiahnu┼ą r├Żchlej┼íiu finaliz├íciu transakci├ş pred t├Żm, ako sie┼ą vytvor├ş ─Ćal┼í├ş blok.

Okrem toho je mo┼żn├ę finaliz├íciu zv├Ż┼íi┼ą ur├Żchlen├şm konsenzu o novo pridanom bloku v r├ímci siete. To sa d├í dosiahnu┼ą tak, ┼że uzly hlasuj├║ o bloku bu─Ć pred jeho pridan├şm do blockchainu, alebo kr├ítko po ┼łom.

Vstupn├ş schva─żovatelia

Input Endorsers je pl├ín na zlep┼íenie ┼ík├ílovate─żnosti syst├ęmu Cardano. Toto zlep┼íenie mo┼żno pova┼żova┼ą za formu hlasovania pred pridan├şm bloku (konsenzu├ílneho bloku) do blockchainu.

Input Endorsers pou┼ż├şva 3 typy blokov: Input Blocks (IB), Endorsement Blocks (EB) a Ranking Blocks (RB). Ka┼żd├Ż typ bloku sa bude razi┼ą s inou frekvenciou. Niektor├ę bloky m├┤┼żu by┼ą razen├ę v tom istom slote. Vstupn├ę bloky sa bud├║ razi┼ą s najr├Żchlej┼íou frekvenciou.

Vstupn├ę endory sleduj├║ v┼íetky predlo┼żen├ę transakcie a sp├íjaj├║ tieto transakcie do vopred zostaven├Żch blokov. Hlavn├Żm ├║─Źelom funkcie Input Endorser je oddeli┼ą v├Żber transakci├ş od v├Żroby blokov.

V tomto modeli by transakcie mohli zbiera┼ą s├║hlasy na svojej ceste do mem-poolov. Input Endorsers toti┼ż do konsenzu za─Źle┼łuj├║ prvky paralelizmu a s├║be┼żnosti pri zachovan├ş linearity blockchainu.

Algoritmus Input Endorsers u─żah─Ź├ş pr├şpravu ve─żk├ęho po─Źtu transakci├ş po─Źas f├ízy v├Żberu transakci├ş, preto┼że umo┼ż┼łuje s├║be┼żn├║ ├║─Źas┼ą viacer├Żch uzlov v sieti. Uzly Endorser overuj├║ a predbe┼żne schva─żuj├║ transakcie, ─Źo pom├íha zni┼żova┼ą v├Żpo─Źtov├ę za┼ąa┼żenie a n├íroky na ┼í├şrku p├ísma producentov zara─Ćovac├şch blokov a z├írove┼ł zvy┼íuje rozmanitos┼ą a dostupnos┼ą fondu transakci├ş. Okrem toho ur├Żch─żuj├║ potvrdzovanie transakci├ş, ktor├ę e┼íte len maj├║ by┼ą za─Źlenen├ę do re┼ąazca, t├Żm, ┼że poskytuj├║ overite─żn├Ż d├┤kaz o schv├ílen├ş.

Nasadenie vstupn├Żch schva─żovate─żov je mo┼żn├ę v├Żlu─Źne v─Ćaka modelu UTxO, preto┼że umo┼ż┼łuje uzlom nez├ívisle potvrdzova┼ą transakcie. Jedin├í linearita, ktor├║ je potrebn├ę v syst├ęme zachova┼ą, je na ├║rovni radenia blokov, vzh─żadom na to, ┼że blockchain je line├írna postupnos┼ą blokov. Poradie transakci├ş v r├ímci bloku vr├ítane blokov poradia je nepodstatn├ę. Zauj├şmav├ę je, ┼że rankingov├ę bloky neobsahuj├║ transakcie, ale iba odkazy na ne prostredn├şctvom schva─żovac├şch blokov.

Na obr├ízku s├║ zn├ízornen├ş pou┼ż├şvatelia, ktor├ş predkladaj├║ transakcie odkazuj├║ce na vstupn├ę UTxO (zn├ízornen├ę ako ─Źerven├ę UTxO) z akt├şvnej mno┼żiny UTxO (glob├ílny stav). Tieto transakcie prech├ídzaj├║ paraleln├Żm overovan├şm a n├ísledne s├║ za─Źlenen├ę do vstupn├Żch blokov. Uzly m├┤┼żu tieto vstupn├ę bloky schva─żova┼ą s├║be┼żne. Syst├ęm zachov├íva linearitu a najvy┼í┼íiu ├║rove┼ł valid├ície, ktor├í chr├íni pred ├║tokmi dvojit├ęho m├ş┼łania a podobne, na najvy┼í┼íej ├║rovni konsenzu, kde s├║ Ranking Blocks pripojen├ę k blockchainu.

S ka┼żd├Żm novo pripojen├Żm blokom k blockchainu sa men├ş aj glob├ílny stav. Ako bolo pop├şsan├ę vy┼í┼íie, spotrebovan├ę UTxO s├║ zo s├║boru UTxO odstr├ínen├ę a z├írove┼ł s├║ do neho vlo┼żen├ę nov├ę UTxO (zelen├ę UTxO z transakci├ş).

Pozn├ímka: Na obr├ízku vy┼í┼íie je zobrazen├í len spotreba UTxO, nie vkladanie nov├Żch UTxO do mno┼żiny UTxO.

Ochrana proti ├║toku dvojit├ęho m├ş┼łania

Ochrana proti ├║tokom dvojit├ęho m├ş┼łania je jedn├Żm z faktorov, ktor├ę obmedzuj├║ ┼ík├ílovate─żnos┼ą a paraleln├ę spracovanie transakci├ş. Vstupom pre overovanie transakci├ş je glob├ílny stav. Uzol overuje transakcie v kontexte aktu├ílneho glob├ílneho stavu, ktor├Ż udr┼żiava.

├Ü─Źtovn├Ż model z├ísadne ovplyv┼łuje to, ako uzly pracuj├║ s glob├ílnym stavom a ak├ę maj├║ mo┼żnosti, pokia─ż ide o paraleliz├íciu valid├ície transakci├ş a ┼ík├ílovate─żnos┼ą.

V kontexte modelu UTxO m├┤┼że d├┤js┼ą k ├║toku dvojit├Żm v├Żdavkom, ke─Ć pou┼ż├şvate─ż odo┼íle dve transakcie, ktor├ę odkazuj├║ na ten ist├Ż vstupn├Ż UTxO. Je to podobn├ę, ako keby ste sa pok├║┼íali dvakr├ít min├║┼ą tie ist├ę peniaze. Sofistikovan├Ż ├║to─Źn├şk m├┤┼że do siete odosiela┼ą transakcie prostredn├şctvom r├┤znych uzlov, t. j. na r├┤znych miestach siete. To znamen├í, ┼że obe transakcie bude ur─Źit├í skupina uzlov pova┼żova┼ą za platn├ę, k├Żm nepr├şde ─Ćal┼íia transakcia, ktor├í minie to ist├ę vstupn├ę UTxO. Vtedy nastane konflikt.

V ide├ílnom scen├íri sa ├║tok dvojit├ęho m├ş┼łania identifikuje pri najbli┼ż┼íej pr├şle┼żitosti. Jedna transakcia bude za─Źlenen├í do nov├ęho bloku, zatia─ż ─Źo druh├í bude zamietnut├í. Transakcia, ktor├í je zahrnut├í, ovplyvn├ş glob├ílny stav. Spotrebovan├ę UTxO sa stane nespotrebovate─żn├Żm, ─Ź├şm sa druh├í transakcia stane trvalo neplatnou, preto┼że sa vz┼ąahuje na u┼ż spotrebovan├ę UTxO.

V─Ćaka implement├ícii vstupn├Żch schva─żovac├şch blokov sa ├║tok dvojit├ęho m├ş┼łania m├┤┼że potenci├ílne odhali┼ą vo f├íze vstupn├Żch blokov alebo schva─żovac├şch blokov. Aj ke─Ć k tejto detekcii ned├┤jde, uzol ├║tok ur─Źite identifikuje po─Źas kon┼ítrukcie Bloku hodnotenia.

Obr├ízok ilustruje pokus o ├║tok dvojit├Żm m├ş┼łan├şm. Transakcia TX 1 je umiestnen├í do in├ęho Vstupn├ęho bloku v porovnan├ş s transakciou TX 2. N├ísledne s├║ obe transakcie zaraden├ę do samostatn├Żch Blokov schv├ílenia. V tejto f├íze m├┤┼że sie┼ą potenci├ílne identifikova┼ą konfliktn├ę transakcie a jednu z nich vyradi┼ą. Ak sa tak v┼íak nestane, konflikt sa vyrie┼íi po─Źas kon┼ítrukcie bloku hodnotenia. Uzol zodpovedn├Ż za zostavenie Ranking Block disponuje v┼íetk├Żmi potrebn├Żmi inform├íciami na odhalenie konfliktn├Żch transakci├ş a vyrie┼íenie probl├ęmu.

V┼íimnite si, ┼że syst├ęm u─żah─Źuje paraleln├ę spracovanie transakci├ş a z├írove┼ł zachov├íva schopnos┼ą deterministicky rie┼íi┼ą konflikty a znemo┼żni┼ą ├║toky dvojit├ęho m├ş┼łania. V├Ą─Ź┼íina transakci├ş je za─Źlenen├í do bloku hodnotenia, ale transakcie v konflikte nemaj├║ ┼íancu prejs┼ą overen├şm.

Predstavte si zlep┼íenie, pri ktorom kone─Źnos┼ą transakci├ş nez├ívis├ş od po─Źtu potvrden├ş na ├║rovni bloku Ranking, ale sk├┤r od po─Źtu potvrden├ş. To znamen├í, ┼że kone─Źnos┼ą by bola pribli┼żne ├║mern├í r├Żchlosti ┼í├şrenia transakci├ş v sieti. Uzol, ktor├Ż pou┼ż├şvate─ż vyu┼żil na odoslanie transakcie do siete, sa mus├ş dozvedie┼ą o po─Źte potvrden├ş. To si vy┼żaduje mechanizmus na ┼í├şrenie blokov potvrden├ş. Uzol, ktor├Ż inicioval transakciu, dostane blok schv├ílenia a bude v ┼łom sledova┼ą po─Źet schv├ílen├ş transakcie pou┼ż├şvate─ża. T├íto inform├ícia sa m├┤┼że pou┼ż├şvate─żovi zobrazi┼ą prostredn├şctvom pe┼ła┼żenky alebo cez prieskumn├şka blockchainu. Ak transakcia z├şskala schv├ílenia od, hypoteticky, 51 % podielu a bolo takmer ist├ę, ┼że neexistuje ┼żiadna konfliktn├í transakcia, transakcia by sa teoreticky mohla pova┼żova┼ą za kone─Źn├║. Kone─Źn├║ kone─Źnos┼ą by v┼íak transakcia dosiahla a┼ż vtedy, ke─Ć by sa stala s├║─Źas┼ąou bloku Ranking.

Model UTxO a rozde─żovanie

Sharding je k─ż├║─Źov├í technol├│gia, ktor├í zvy┼íuje ┼ík├ílovate─żnos┼ą blockchainov. Sie┼ą blockchainu je rozdelen├í na men┼íie ─Źasti alebo podsiete, zn├íme ako ÔÇťshardsÔÇŁ. Celkov├í v├Żpo─Źtov├í a ├║lo┼żn├í z├í┼ąa┼ż sa rozdel├ş na shardy.

Sharding je forma paralelizmu v syst├ęme. Ka┼żd├Ż shard pracuje nez├ívisle a m├┤┼że spracov├íva┼ą svoj vlastn├Ż s├║bor transakci├ş. Toto paraleln├ę vykon├ívanie transakci├ş zvy┼íuje celkov├║ ├║─Źinnos┼ą a priepustnos┼ą syst├ęmu.

Ka┼żd├Ż oddiel si udr┼żiava svoju ─Źas┼ą glob├ílneho stavu. Tento stav sa naz├Żva lok├ílny stav. Glob├ílny stav cel├ęho blockchainu je potom s├║hrnom v┼íetk├Żch t├Żchto lok├ílnych stavov.

D├┤le┼żit├Żm aspektom shardingu je komunik├ícia medzi jednotliv├Żmi shardmi. Vz┼ąahuje sa na proces v├Żmeny transakci├ş alebo inform├íci├ş medzi r├┤znymi shardmi. Je to k─ż├║─Źov├ę, preto┼że priepustnos┼ą sharded blockchainovej siete je v├Żrazne ovplyvnen├í cross-shard komunik├íciou.

Model UTxO je pre sharding v├Żhodnej┼í├ş ako model zalo┼żen├Ż na ├║─Źtoch.

V kontexte modelu UTxO sl├║┼żi transakcia ako z├íkladn├í jednotka valid├ície. Transakcia je jednotka, ktor├║ m├┤┼że nez├ívisle validova┼ą viacero str├ín s├║─Źasne. V├Żsledok t├Żchto valid├íci├ş bude v┼żdy identick├Ż. Cardano vykon├íva valid├ície transakci├ş deterministicky. Viacero str├ín m├┤┼że validova┼ą transakcie paralelne a v ─żubovo─żnom porad├ş, bez oh─żadu na blok, teda bez oh─żadu na to, kedy bud├║ transakcie za─Źlenen├ę do bloku a bez oh─żadu na poradie transakci├ş v r├ímci bloku.

Naopak, v modeli Etherea zalo┼żenom na ├║─Źtoch je blok prim├írnou jednotkou valid├ície. Transakcie s├║ navz├íjom z├ívisl├ę. Transakcia v syst├ęme Ethereum nem├┤┼że by┼ą validovan├í izolovane, ale len pokia─ż ide o prevl├ídaj├║ci glob├ílny stav. Glob├ílny stav v syst├ęme Ethereum mo┼żno konceptualizova┼ą ako postupnos┼ą transakci├ş. V├Żsledok valid├ície transakcie je z├ívisl├Ż od jej poz├şcie v r├ímci tejto sekvencie.

Rozdielnos┼ą ├║─Źtovn├Żch modelov v├Żrazne ovplyv┼łuje implement├íciu shardingu.

Zjednodu┼íene povedan├ę, uva┼żujme sie┼ą Cardano ako jeden shard. Ak by sme mali 10 shardov, bolo by to podobn├ę, ako keby ved─ża seba fungovalo 10 siet├ş Cardano. Teoreticky by to mohlo vies┼ą k desa┼ąn├ísobn├ęmu zv├Ż┼íeniu priepustnosti siete. V praxi by to v┼íak nemuselo by┼ą mo┼żn├ę kv├┤li faktorom, ako je komunik├ícia medzi jednotliv├Żmi shardmi, potreba zabezpe─Źi┼ą konzistenciu a bezpe─Źnos┼ą ├║dajov, latencia siete a r├ę┼żia spr├ívy (ako je vyrovn├ívanie z├í┼ąa┼że medzi shardmi, riadenie pripojenia a odchodu uzlov a smerovanie transakci├ş).

V pr├şpade blockchainov, ktor├ę pou┼ż├şvaj├║ model UTxO, je implement├ícia shardingu relat├şvne jednoduch├í, ke─Ć┼że glob├ílny stav prirodzene umo┼ż┼łuje paralelizmus a transakcie sa m├┤┼żu overova┼ą nez├ívisle v r├ímci ka┼żd├ęho shardu.

Model UTxO m├í svoje v├Żhody, pokia─ż ide o komunik├íciu medzi jednotliv├Żmi shardmi, ke─Ć┼że je relat├şvne jednoduch├ę vytvori┼ą transakciu, ktor├í vy┼żaduje valid├íciu z dvoch shardov.

Predstavte si transakciu, ktor├í m├í vstupn├ę UTxO z glob├ílneho stavu SHARD 1 a vytv├íra v├Żstupn├ę UTxO v glob├ílnom stave SHARD 2. T├íto transakcia by bola s├║─Źas┼ąou blockchainu v oboch shardoch. V├Żhodou je, ┼że tu m├┤┼że d├┤js┼ą k valid├ícii bez oh─żadu na blok, t. j. bez oh─żadu na poradie transakcie v bloku.

V ka┼żdom sharde so vstupn├Żmi schva─żova─Źmi by transakcia medzi shardmi mohla z├şska┼ą schv├ílenia (endorsementy) kr├ítko po svojom predlo┼żen├ş. Transakcia by bola predlo┼żen├í v SHARD 1, ktor├Ż by ju okam┼żite post├║pil do SHARD 2. V oboch shardoch by transakcia dostala schv├ílenia s├║─Źasne. V oboch ─Źastiach by transakcia mohla potenci├ílne z├şska┼ą podporu napr├şklad 51 % podielu vo ve─żmi kr├ítkom ─Źase. Musel by existova┼ą mechanizmus na zdie─żanie blokov potvrden├ş medzi jednotliv├Żmi oddielmi (sta─Źila by podmno┼żina ├║dajov t├Żkaj├║cich sa transakci├ş medzi re┼ąazcami). V ─Źase, ke─Ć by ka┼żd├Ż zo shardov vlo┼żil transakciu do rebr├ş─Źkov├ęho bloku, by dan├Ż shard mohol s vysokou mierou istoty o─Źak├íva┼ą, ┼że transakcia bude v─Ćaka vysok├ęmu po─Źtu endorsementov vlo┼żen├í do rebr├ş─Źkov├ęho bloku v druhom sharde.

Teoreticky nemus├ş oddiel 1 ─Źaka┼ą na vlo┼żenie transakcie do rebr├ş─Źkov├ęho bloku. Samozrejme, len za predpokladu, ┼że bude existova┼ą mechanizmus (a stimuly), ktor├Ż zabezpe─Ź├ş, ┼że transakcia s vysok├Żm po─Źtom potvrden├ş od v├Ą─Ź┼íiny podielov sa v┼żdy dostane do niektor├ęho z ─Ćal┼í├şch blokov.

Na obr├ízku m├┤┼żete vidie┼ą transakciu TX 1, ktor├í m├í vstup UTxO z bloku SHARD 1. V├Żsledkom transakcie je v├Żstupn├ę UTxO, ktor├ę je vytvoren├ę v SHARD 2. D├í sa poveda┼ą, ┼że hodnota sa pren├í┼ía medzi shardmi. Transakcia sa dostane do vstupn├ęho bloku v SHARD 1. SHARD 1 postupuje transakciu do SHARD 2. TX 1 sa dostane do Vstupn├ęho bloku v SHARD 2. Transakcia TX 1 sa postupne dostane do Blokov schva─żovania v oboch shardoch a nakoniec do Blokov hodnotenia. Hne─Ć ako sa transakcia vlo┼ż├ş do bloku Ranking Block, zmen├ş sa lok├ílny stav v danom sharde. Vstupn├Ż UTxO sa odstr├íni z lok├ílneho stavu SHARD 1. V lok├ílnom stave SHARD 2 sa vytvor├ş nov├Ż UTxO.

Model UTxO pon├║ka nieko─żko v├Żhod vr├ítane jeho pou┼żite─żnosti pre vstupn├ę schva─żovacie zariadenia aj sharding. Uveden├Ż pr├şklad ilustruje integr├íciu t├Żchto dvoch technol├│gi├ş. Po zaveden├ş Input Endorsers m├í sharding potenci├íl zv├Ż┼íi┼ą ┼ík├ílovate─żnos┼ą Cardana. Input Endorsers v┼íak musia ur├Żchli┼ą finaliz├íciu transakci├ş, aby sa predi┼ílo pomalej komunik├ícii medzi hardmi a zabezpe─Źila sa integrita glob├ílneho stavu.

Pre─Źo je ┼ąa┼żk├ę implementova┼ą sharding v Ethereu?

Ethereum funguje na modeli zalo┼żenom na ├║─Źtoch, kde m├í ka┼żd├Ż ├║─Źet priraden├Ż stav. Glob├ílny stav Etherea je v podstate datab├íza v┼íetk├Żch ├║─Źtov a ich aktu├ílnych zostatkov akt├şv. S ka┼żd├Żm nov├Żm blokom sa stav syst├ęmu aktualizuje na z├íklade transakci├ş v r├ímci dan├ęho bloku.

Transakcie sa sprac├║vaj├║ tak, ┼że sa skontroluje, ─Źi je na ├║─Źte odosielate─ża dostatok prostriedkov. Ak je ├║spe┼ín├í, zostatok odosielate─ża sa zn├ş┼żi, zatia─ż ─Źo zostatok pr├şjemcu sa zv├Ż┼íi. Virtu├ílny stroj Ethereum (EVM) potom vypo─Ź├şta nov├Ż stav z aktu├ílneho stavu a transakcie, ktor├Ż sa stane z├íkladom pre ─Ćal┼íiu transakciu. Tento nepretr┼żit├Ż v├Żvoj stavu blockchainu znamen├í, ┼że poradie transakci├ş je pre valid├íciu k─ż├║─Źov├ę.

Ka┼żd├í transakcia m├┤┼że potenci├ílne zmeni┼ą stav ak├ęhoko─żvek ├║─Źtu a jej v├Żsledok m├┤┼że z├ívisie┼ą od poradia jej spracovania. Na zachovanie konzistentnosti a zabr├ínenie dvojit├ęmu v├Żdavku sa glob├ílny stav po─Źas ka┼żd├ęho overovania ÔÇťuzamkneÔÇŁ, ─Ź├şm sa umo┼żn├ş spracovanie len jednej transakcie v danom ─Źase. Tento mechanizmus uzamykania je nevyhnutn├Ż pre integritu syst├ęmu, preto┼że zabra┼łuje tomu, aby s├║be┼żn├ę transakcie sp├┤sobili nekonzistentnos┼ą alebo dvojit├ę ─Źerpanie.

Vstupmi transakci├ş s├║ zostatky na ├║─Źtoch, ktor├ę s├║ zdie─żan├Żm zdrojom. To znamen├í, ┼że zostatok pri predlo┼żen├ş transakcie sa m├┤┼że l├ş┼íi┼ą od zostatku pri valid├ícii, ─Ź├şm sa vstup transakcie st├íva nedeterministick├Żm, na rozdiel od modelu UTxO.

V Ethereu s├║ zostatky trval├Żmi entitami, ktor├ę m├┤┼żu by┼ą transakciami kedyko─żvek modifikovan├ę, ale dve transakcie nem├┤┼żu s├║─Źasne modifikova┼ą ten ist├Ż zostatok.

Na obr├ízku m├┤┼żete vidie┼ą, ako pou┼ż├şvatelia zad├ívaj├║ 5 transakci├ş. Transakcie je mo┼żn├ę predklada┼ą paralelne. V┼íimnite si, ┼że nieko─żko transakci├ş upravuje ten ist├Ż zostatok. Napr├şklad TX 1 a TX 2 od─Ź├ştaj├║ hodnotu od toho ist├ęho zostatku. Transakcie TX 3 a TX 4 prid├ívaj├║ hodnotu k tomu ist├ęmu zostatku. STAV 1 a┼ż STAV 4 predstavuj├║ postupn├ę spracovanie transakci├ş, a teda postupn├║ aktualiz├íciu glob├ílneho stavu. Glob├ílny stav tvoria rovnak├ę zostatky, t. j. trval├ę objekty, ktor├Żch stav sa m├┤┼że prostredn├şctvom transakci├ş meni┼ą mnohokr├ít za sebou.

Predstavte si, o ko─żko komplikovanej┼íia je komunik├ícia medzi jednotliv├Żmi ─Źas┼ąami syst├ęmu, ak m├í transakcia s├║─Źasne zmeni┼ą jeden zostatok v SHARD 1 a druh├Ż v SHARD 2. Poradie transakci├ş v bloku Ethereum zohr├íva d├┤le┼żit├║ ├║lohu pri v├Żsledku valid├ície. Pri s├║─Źasnej implement├ícii EVM by bolo potrebn├ę, aby oba shardy zaradili transakciu do bloku a navz├íjom si odovzdali inform├ície o v├Żsledkoch valid├ície. Nem├í zmysel, aby v SHARD 1 bola valid├ícia transakcie ├║spe┼ín├í a hodnota bola odpo─Ź├ştan├í zo zostatku, zatia─ż ─Źo v SHARD 2 by valid├ícia transakcie zlyhala, t. j. hodnota by nebola prip├şsan├í na zostatok. Komunik├ícia medzi jednotliv├Żmi shardmi v├Żrazne obmedzuje mo┼żnos┼ą vytvori┼ą blok v ka┼żdom sharde.

Na obr├ízku vid├şte transakciu TX 1, ktor├í je po odoslan├ş vlo┼żen├í do mem-poolu. Potom je z mem-poolu vlo┼żen├í do BLOKU 1. Valid├ícia transakcie TX 1 men├ş aktu├ílny lok├ílny stav v SHARD 1. SHARD 1 v┼íak potrebuje pozna┼ą v├Żsledok valid├ície v SHARD 2. SHARD 1 preto komunikuje s SHARD 2 o v├Żsledku valid├ície transakcie v BLOKU 2 (SHARD 2). SHARD 2 teda mus├ş vlo┼żi┼ą transakciu TX 1 do BLOKU 2 a vykona┼ą valid├íciu. Potom m├┤┼że v├Żsledok valid├ície ozn├ími┼ą SHARD 1. V┼íimnite si, ┼że SHARD 1 mus├ş pozna┼ą v├Żsledok valid├ície v SHARD 2 pred pridan├şm ─Ćal┼íej transakcie do svojho BLOKU 1.

Uveden├Ż pr├şklad je skuto─Źne zjednodu┼íenou (naivnou) implement├íciou shardingu. Poukazuje na v├Żznamn├ę probl├ęmy, ktor├Żm ─Źel├ş t├şm Ethereum pri implement├ícii shardingu so s├║─Źasn├Żm mechanizmom konsenzu.

Zachovanie atomicity transakci├ş po─Źas komunik├ície medzi jednotliv├Żmi blokmi v blockchaine zalo┼żenom na ├║─Źtoch je zlo┼żit├í ├║loha. Je nevyhnutn├ę zabezpe─Źi┼ą, aby sa transakcia bu─Ć ├║plne vykonala, alebo v├┤bec nevykonala, aby sa zachovala integrita syst├ęmu.

Na rie┼íenie tohto probl├ęmu boli navrhnut├ę r├┤zne strat├ęgie a protokoly vr├ítane dvojf├ízov├Żch commit protokolov. Tieto rie┼íenia v┼íak tie┼ż predstavuj├║ svoje kompromisy a zlo┼żitos┼ą. Je pozoruhodn├ę, ┼że nieko─żko projektov ├║spe┼íne implementovalo sharding v r├ímci blockchainu s vyu┼żit├şm modelu zalo┼żen├ęho na ├║─Źtoch.

Záver

Zmena mechanizmov konsenzu je len jednou z met├│d na zv├Ż┼íenie ┼ík├ílovate─żnosti siete. ┼ák├ílovate─żnos┼ą mo┼żno zlep┼íi┼ą aj prostredn├şctvom rie┼íen├ş druhej vrstvy, viacvrstvovej architekt├║ry alebo zv├Ż┼íen├şm efektivity. Napr├şklad Plutus V2 je efekt├şvnej┼í├ş ako jeho predchodca Plutus V1, ─Źo vedie k ├║spore blokov├ęho priestoru. T├íto efekt├şvnos┼ą umo┼ż┼łuje uskuto─Źni┼ą viac transakci├ş na blok, ─Ź├şm sa zvy┼íuje priepustnos┼ą siete. Vstupn├ę endorsery v┼íak m├┤┼żu poskytn├║┼ą podstatnej┼íie zlep┼íenie ┼ík├ílovate─żnosti ako len zv├Ż┼íenie efekt├şvnosti.

Niektor├ş ─Źlenovia komunity Cardano sa domnievaj├║, ┼że d├┤raz by sa mal kl├ís┼ą sk├┤r na zv├Ż┼íenie ┼ík├ílovate─żnosti prostredn├şctvom kryptografie ZK ne┼ż na Input Endorsers. Cardano zahrnie kryptografiu ZK prostredn├şctvom tvrd├ęho forku Chang. V─Ćaka determinizmu Cardana bude mo┼żn├ę skon┼ítruova┼ą ZK rollupy, ktor├ę nevy┼żaduj├║ sekvencery.

Model UTxO je ve─żmi vhodn├Ż pre Input Endorsers alebo sharding, ke─Ć┼że glob├ílny stav zlo┼żen├Ż z jednorazov├Żch objektov je dobre paralelizovate─żn├Ż. Nieko─żko uzlov v sieti m├┤┼że paralelne potvrdzova┼ą transakcie nez├ívisle od seba, a to aj v pr├şpade shardingu.


P├┤vodn├Ż ─Źl├ínok: https://cexplorer.io/article/exploring-scalability-options-of-the-utxo-model