🇸🇰 Čo prináša aktualizácia Vasil do Cardana

Čo prináša aktualizácia Vasil do Cardana

Tím IOG sa nestará o to, či je medvedí alebo býčí trh, a neustále vylepšuje protokol Cardano. Dôležitá je dlhodobá vízia. Tím tak prináša to, čo komunita očakáva. Poďme sa pozrieť na to, čo dlho očakávaná aktualizácia Vasil prináša do systému Cardano.

Aktualizácie sú budúcnosť

Žiadna digitálna technológia sa nezaobíde bez tímu, ktorý z času na čas opravuje chyby a prináša významné vylepšenia. Blockchain je technológia a je potrebné ju vylepšovať, pretože len zvyšovanie efektivity, nové možnosti a znižovanie nákladov pre používateľov prinesú dlhodobý úspech v podobe širšieho prijatia. To platí tak pre súčasných IT gigantov, ako aj pre technológiu blockchain, ktorá prišla na svet pred viac ako 10 rokmi ako veľmi neefektívna. Ak má jedného dňa blockchainovú sieť používať stovky miliónov používateľov denne, je nevyhnutné pokračovať v inováciách.

Cardano je navrhnuté tak, aby bolo schopné pravidelne inovovať bez prerušenia. Cardano je globálna sieť, takže nie je možné ju dočasne vypnúť, aby sa sieť aktualizovala. Tím našiel spôsob, ako vykonávať aktualizácie a zároveň neovplyvniť používanie siete. Vytvorili na to nástroj hard-fork combinator. Hard-fork combinator umožňuje nasadiť aktualizácie bez obmedzenia používania. Používatelia si ani nevšimnú, že boli nasadené vylepšenia. Môžu ich však začať okamžite používať.

Aktualizácia Vasil prináša významné vylepšenia výkonu a schopností protokolu Cardano. Aktualizácia je súčasťou uzla Cardano verzie 1.35.0 a sieť sa na ňu pripravuje. Najdôležitejším vylepšením v aktualizácii Vasil je hlavne Diffusion pipelining, ktorý bude mať vplyv na lepšiu škálovateľnosť. Existuje aj niekoľko CIP (Cardano Improvement Proposal), ktoré sa týkajú platformy Plutus.

Diffusion pipelining

Diffusion pipelining zefektívňuje šírenie informácií o novo vytvorených blokoch medzi účastníkmi siete Peer-to-Peer. Toto vylepšenie umožňuje šírenie informácií o bloku ešte pred jeho úplným overením v uzle. To umožňuje paralelizovať validáciu a distribúciu blokov.

Priepustnosť siete možno zefektívniť zvýšením veľkosti bloku a znížením intervalu, v ktorom sa vytvárajú nové bloky. Do väčšieho bloku možno vložiť viac informácií, napríklad transakcií. Čím častejšie sa vytvárajú bloky, tým viac požiadaviek používateľov sa spracuje za daný čas.

Zväčšovanie veľkosti bloku a skracovanie času bloku má obmedzenia vyplývajúce z možností internetu. Cardano je globálna sieť s uzlami po celom svete. Ak uzol vytvorí nový blok napríklad v Európe, blok sa musí postupne dostať cez ostatné uzly do Ázie, Južnej a Severnej Ameriky, Austrálie a ďalších miest. Každý jednotlivý uzol overuje informácie predtým, ako ich môže ďalej distribuovať svojim kolegom. To znamená, že kým sa blok dostane aspoň k 95 % uzlov v sieti, uplynie určitý čas nazývaný oneskorenie. Tento čas je v sieti Cardano najviac 5 sekúnd. Oneskorenie nastavené na 5 sekúnd je čas potrebný na zaručenie šírenia bloku, ktorého veľkosť nepresahuje 2 MB.

Je zrejmé, že čím je blok väčší, tým dlhšie bude trvať jeho validácia (čas procesora), a teda tým dlhšie bude trvať jeho šírenie. V sieti Cardano je potrebné validovať nielen transakcie, ale aj skripty Plutus. Validácia skriptov je výpočtovo náročnejšia ako validácia transakcií. S rastúcou veľkosťou bloku môže rásť aj počet skriptov v ňom, takže bude rásť aj čas potrebný na validáciu celého bloku.

Všimnite si, že čas bloku musí byť nastavený na dlhší čas ako Oneskorenie, aby sa vytvorila dostatočná rezerva na šírenie bloku v sieti. V prípade Cardano je teraz čas bloku nastavený na 20 sekúnd. Ak je možné skrátiť čas šírenia bloku, je možné postupne skracovať aj čas bloku. Výsledkom bude vyššia priepustnosť.

Ako sa vlastne vykonáva validácia blokov? Pre zjednodušenie si môžete predstaviť, že každý uzol má tri vrstvy. Úplne dole je sieťová vrstva, ktorá prijíma a odosiela údaje cez internet. Sieťová vrstva môže prijímať a odosielať bloky. Blok môže byť spracovaný po častiach, t. j. ako hlavička bloku a telo bloku. Druhou vrstvou je vrstva konsenzu. Na tejto úrovni prebieha validácia hlavičky a tela bloku. Overovanie tela bloku je výpočtovo náročnejšie ako overovanie hlavičky. Treťou vrstvou je blockchain, ktorý prijíma platné bloky. Môžete si to predstaviť ako presun informácií zo spodnej vrstvy na vrchnú. Do blockchainu sa dostanú len platné bloky. Neplatné bloky sa na základe konsenzu vyradia, takže sa neuložia do blockchainu ani sa ďalej nešíria do siete.

Pozrime sa teraz zjednodušene na to, ako sa distribuuje blok v sieti Peer-to-Peer. Predstavme si, že výrobca bloku práve vytvoril nový blok. Pozrieme sa na to, čo musí urobiť validátor bloku. Výrobca bloku pošle hlavičku bloku validátorovi bloku. Validátor bloku musí overiť, či hlavička spĺňa pravidlá protokolu. Musí napríklad overiť, či výrobca bloku bol skutočne zvoleným vedúcim slotu (musí sa poskytnúť dôkaz), či je digitálny podpis správny a či nový blok správne odkazuje na predchádzajúci blok. Ak je hlavička bloku v poriadku, stiahne sa aj telo bloku. Hlavička bloku obsahuje odkaz na telo bloku. Validátor bloku overí, či je odkaz správny, a ak je správny, môže overiť transakcie a vykonať skripty Plutus. Ak je telo bloku správne, validátor bloku môže pridať blok do svojej verzie blockchainu a ďalej distribuovať blok do siete ďalšiemu peerovi (ďalšiemu validátorovi bloku).

Všimnite si, že každý validátor blokov musí pred redistribúciou bloku overiť hlavičku aj telo bloku. Celkový čas potrebný na distribúciu bloku do celej siete by sa získal vynásobením priemerného času validácie na jednom validátore bloku počtom skokov v sieti.

Difúzna pipelining urýchli distribúciu blokov v sieti tým, že validátor bloku pošle telo bloku do siete pred validáciou obsiahnutých údajov. Validátor bloku overí iba odkaz medzi hlavičkou a telom a ak je v poriadku, okamžite šíri blok. Validátor musí overiť, či prijal blok, ktorý patrí k prijatej hlavičke. Validácia odkazu (hash tela hlavičky) trvá len krátko v porovnaní s validáciou zvyšku tela. To znamená, že celkový rozpočet na distribúciu bloku do celej siete sa znižuje o čas, ktorý by jednotlivé skoky strávili overovaním tela bloku. Inými slovami, validácia tela bloku a distribúcia bloku sa vykonávajú súčasne. Difúzna pipelining zvyšuje rýchlosť dostupnosti údajov.

Všimnite si, že iba výrobca bloku (vedúci slotu) overuje telo bloku na začiatku distribúcie do siete. Všetky ostatné uzly distribuujú celý blok po overení iba hlavičky bloku a odkazu v tele bloku.

Neúplné bloky sa v sieti nedistribuujú, pretože ak validátor bloku nedostane telo bloku so správnym odkazom, celý blok zahodí. Ak je odkaz v tele bloku správny, ale následná validácia tela zlyhá, poctivé uzly celý blok zahodia.

Všimnite si, že zmena na úrovni siete nemá významný vplyv na konsenzus. Všetky potrebné validácie na prijatie bloku a jeho pridanie do blockchainu sa vykonávajú rovnakým spôsobom ako pred aktualizáciou. Difúzna pipelining zvyšuje rýchlosť šírenia blokov v sieti, čím sa otvárajú možnosti na zväčšenie veľkosti bloku a potenciálne skrátenie času blokovania.

Vypočítajme, o koľko rýchlejšie sa blok šíri od výrobcu bloku cez validátor 4 blokov, ak validácia hlavičky trvá 50 ms a validácia tela 250 ms. Produkciu bloku započítame do celkového času, pretože producent musí validovať telo. Bez difúzneho potrubia trvá validácia celého bloku v každom uzle 300 ms. Takže čas propagácie od výrobcu bloku k štvrtému validátoru bloku trvá 5 * 300 ms, čo je 1500 ms (1,5 s).

Pri použití difúzneho potrubia trvá validácia bloku len čas potrebný na validáciu hlavičky (50 ms) a overenie odkazu medzi hlavičkou a telom bloku, pričom sa počíta 5 ms. Na dostatočnú validáciu bloku a jeho distribúciu rovnocennému partnerovi je potrebných len 55 ms. Celkový čas distribúcie bloku bude trvať 300 + (4 * 55), čo je 520 ms.

V nasledujúcej tabuľke sú uvedené zlepšenia, ktoré možno dosiahnuť prostredníctvom aktualizácie. V poslednom riadku sú uvedené údaje pre asynchrónne overovanie (AV). AV nie je súčasťou aktualizácie Vasil a je ďalším možným vylepšením, ktoré rozširuje pipelining Diffusion.

Alonzo prináša inteligentné zmluvy do Cardana

Hard-fork Alonzo prinesie do Cardana inteligentné kontrakty. Pozrime sa na históriu a potenciál inteligentných zmlúv. Odvážime sa myslieť vo veľkom na budúcnosť technológií.Viac

CIPy súvisiace s platformou Plutus

Začnime s CIP-32, ktorý sa týka inline datums. Rozšírené UTXO umožňuje používateľom voliteľne pridávať do UTXO ľubovoľné používateľské údaje vo formáte podobnom JSON. Tieto údaje sa nazývajú Datum. Datum umožní vývojárom poskytnúť skriptom funkcionalitu podobnú stavu. Používateľské údaje možno považovať za lokálny stav skriptu. Tento stav má len lokálnu platnosť, pretože je spojený s konkrétnym UTXO.

V súčasnosti sa Datum implementuje pripojením hashov dátumov k výstupom a vyžadovaním, aby výdajová transakcia poskytla skutočný Datum (skutočné údaje). Údaje z výdavkovej transakcie sa overujú tak, že sa vytvorí hash, ktorý sa musí zhodovať s hashom, ktorý je uložený v Date.

Výhodou je úspora miesta v blockchaine, pretože Datum je len hash k údajom, ktoré môžu byť ľubovoľne veľké. Nevýhodou je, že údaje, ktorých hash je rovnaký ako hash v Datum, musia byť poskytnuté v transakcii. Dodajme, že teoreticky môže byť údajom napríklad len krátke číslo, ktoré môže byť menšie ako hash. V takom prípade by bolo výhodnejšie mať údaje priamo v Date a nie v hash.

Datum obsahuje údaje, ktoré predstavujú určitú aplikačnú logiku. Údaje v Date vkladá strana, ktorá vytvára výstup pomocou transakcie Plutus. Výdajová strana musí rozumieť tejto aplikačnej logike, t. j. musí rozumieť obsahu Datumu, a to nie je možné bez komunikácie so stranou, ktorá výstup vytvorila. Komunikácia musí prebiehať buď mimo reťazca, alebo iným spôsobom v reťazci. To môže byť pre stranu, ktorá výdavky vynakladá, nepohodlné.

V CIP-32 sa navrhuje, aby Datum mohol obsahovať buď priamo údaje (inline údaje), alebo hash údajov, ako je to teraz. Transakcie Plutus umožňujú vybrať si jeden z týchto prístupov.

Ak by sa údaje nachádzali priamo v Datume, nebolo by potrebné vkladať údaje do transakcií výdavkov. Nezabudnite, že používateľ môže stále používať program Redeemer ako vstup pre skript Plutus.

Tento nový prístup k aplikácii Datum uľahčí prácu vývojárom dApp, najmä v kombinácii s CIP-31.

CIP-31navrhuje vytvoriť nový druh vstupu, referenčný vstup, ktorý by umožnil pozrieť sa na výstup bez toho, aby ste ho museli minúť. Umožní to prístup k informáciám, ktoré sú uložené v blockchaine vo forme dát bez toho, aby bolo potrebné míňať a znovu vytvárať UTXO, ktoré sú spojené s dátami. Okrem toho bude možné skontrolovať hodnotu súvisiacu s referenčným vstupom.

Datum v podstate poskytuje spôsob, ako ukladať údaje v blockchaine a pristupovať k nim. Môžete sa naň pozerať ako na zdroj informácií. Bohužiaľ, prístup k údajom v systéme Datum je v súčasnosti v mnohých ohľadoch obmedzený. Aby ste mohli pristupovať k informáciám a používať ich, musíte vynaložiť výstup, ktorý je spojený s Datumom.

Aplikácia môže potrebovať použiť informácie, a ak si ich chce ponechať na ďalšie použitie, musí vytvoriť nový výstup s rovnakými informáciami. Nevýhodou je, že sa vytvára nový výstup, takže ak chce k informáciám pristupovať niekto iný, nemôže použiť starý výstup, ale novovytvorený. Nový výstup sa však vytvorí po pridaní nového bloku. V praxi to znamená, že niektoré aplikácie sú obmedzené na jednu operáciu na jeden blok.

Okrem toho, ak sa chce strana pozrieť na informácie v Date a je nútená vydať výstup, znamená to, že musia byť splnené podmienky vydania a strana musí zvážiť, čo s prostriedkami urobí. To je nepohodlné a hlavne nákladné.

CIP-31 to zmení. Autor transakcie špecifikuje vstupy buď ako výdavkové vstupy, alebo ako referenčné vstupy. Referenčný vstup je vstup transakcie, ktorý je normálne prepojený s konkrétnym výstupom transakcie, s tým rozdielom, že sa na výstup odkazuje, a nie ho vynakladá.

Inými slovami, teraz musíte zaplatiť poplatok za transakciu, aby ste získali informácie z dátumu, pretože je potrebné minúť výstup. Po aktualizácii Vasil môžete získať informácie takmer zadarmo v súvislosti s výdajom transakcie, ktorá sa chystá minúť iné UTXO. Všimnite si, že aj keď transakcia obsahuje odkaz na vstup, musí ešte minúť aspoň jeden výstup. Takže poplatok za transakciu musí byť vždy zaplatený.

Referenčný výstup sa neberie do úvahy pri vyrovnávaní transakcie, t. j. pri kontrole, či je hodnota na vstupe rovnaká ako hodnota na výstupe transakcie. To znamená, že podmienky výdavkov pre referenčný výstup sa vôbec nekontrolujú. Referenčný výstup zostáva v aktívnej sade UTXO na ďalšie použitie. Dôležité je, že referenčné vstupy sú viditeľné pre skripty, takže údaje z Datum týchto referenčných vstupov môžu byť použité ako vstup pre logiku rozhodovania skriptu.

Skript dostáva informácie o transakciách prostredníctvom kontextu skriptu. Novo dostáva ďalšie informácie o tom, že môže byť zahrnutý zoznam referenčných vstupov. Takto bude skript vedieť správne pracovať s referenčnými vstupmi.

Transakcia má ako vstup UTXO, ktorý sa plánuje minúť, a zároveň môže mať aj referenčný vstup. Referenčný vstup sa môže použiť počas vykonávania skriptu Plutus. Po validácii a zaradení transakcie do bloku sa UTXO minie, ale referenčný vstup zostáva nezmenený a môže k nemu neskôr pristupovať iná strana. Informácie v systéme Datum sú tak dostupné dlhšie obdobie pre viacerých používateľov.

Aplikácie môžu napríklad skontrolovať stav (Datum alebo uzamknutú hodnotu) bez toho, aby museli spotrebovať výstup. Poskytovatelia údajov v reťazci môžu v systéme Datum ukladať ľubovoľné údaje a iné skripty (aplikácie) môžu k týmto údajom pristupovať. Za uloženie údajov v blockchaine sa platí len raz a potom budú k dispozícii aj ostatným.

CIP-33 využíva CIP-31 a CIP-32, aby umožnil pripájanie skriptov k výstupom. CIP-33 zavádza referenčné skripty, ktoré možno použiť na splnenie požiadaviek na skripty počas validácie.

Zakaždým, keď sa má skript použiť, musí transakcia, ktorá vyžaduje jeho použitie, poskytnúť celý skript ako súčasť transakcie. To zväčšuje reťazec a zvyšuje poplatok používateľa. Ak transakcia používa viac skriptov, môže naraziť na problém s obmedzením maximálnej veľkosti.

Referenčný vstup a inline Datum tento problém riešia tým, že umožňujú uloženie skriptu v blockchaine. Potom sa naň dá odkazovať opakovane. Výdavková transakcia, ktorá chce minúť UTXO, sa môže odvolať na skript, ktorý sa použije na overenie. To znamená, že transakcia, ktorá používa skript, nemusí niesť jeho obsah. Musí len odkazovať na výstup, v ktorom sa skript nachádza.

Keď sa transakcia validuje a je potrebné poskytnúť skript zodpovedajúci hash skriptu, okrem skriptov uvedených v samotnej transakcii sa budú brať do úvahy aj všetky referenčné skripty z výstupov, na ktoré odkazujú vstupy transakcie. Inými slovami, použije sa odkaz na skript (ktorý už bol uložený v blockchaine).

Vďaka tomuto vylepšeniu nemusia aplikácie často posielať skripty vždy, keď ich chcú použiť. Skript bude uložený v reťazci a bude sa dať opakovane použiť pre viacero UTXO. Ten istý skript môžu používať viaceré strany.

Záver

Opísali sme hlavné vylepšenia, ktoré prinesie aktualizácia Vasil. V skutočnosti bude aktualizácia obsahovať niekoľko ďalších menších vylepšení. Zvýšenie škálovateľnosti a zlepšenie platformy Plutus otvára nové možnosti pre vývojárov a výhody pre používateľov. Tím už pracuje na návrhu nových vylepšení. Neváhajte a používajte Cexplorer, ktorý je pripravený na aktualizáciu Vasil.

Aktualizácia bola pomenovaná na počesť zosnulého Vasila St. Dabova, veľvyslanca spoločnosti Cardano a veľkého podporovateľa projektu, ktorý bohužiaľ zomrel v roku 2021.


(Napísal @Cardanians.io) - preklad @Martin.M
Pôvodný článok: What Vasil upgrade brings to Cardano | Cardanians