­č窭čç░ S├║be┼żnos┼ą a in├ę: Inteligentn├ę zmluvy v Cardane a model eUTXO

Model eUTXO Cardana poskytuje bezpe─Źn├ę a univerz├ílne prostredie na spracovanie viacer├Żch oper├íci├ş bez zlyhania syst├ęmu

Concurrency and all that: Cardano smart contracts and the eUTXO model

Cardano je blockchain zalo┼żen├Ż na UTXO, ktor├Ż vyu┼ż├şva in├║ programov├║ paradigmu pre decentralizovan├ę aplik├ície (DApps) ako in├ę blockchainy zalo┼żen├ę na ├║─Źtoch, napr├şklad Ethereum. ┼ápecifickou pr├şchu┼ąou, ktor├║ Cardano vyu┼ż├şva, je model Extended Unspent Transaction Output (eUTXO) zaveden├Ż aktualiz├íciou Alonzo. eUTXO pon├║ka v├Ą─Ź┼íiu bezpe─Źnos┼ą umo┼ż┼łuj├║cu predv├şdate─żnos┼ą n├íkladov na vykon├ívanie inteligentn├Żch kontraktov (bez nepr├şjemn├Żch prekvapen├ş) a v d├┤sledku toho pon├║ka in├Ż pr├şstup k paraleliz├ícii.

Model eUTXO zdedil n├ívrh modelu UTXO (Bitcoin), kde jedna vetva je pod─ża defin├şcie postupnos┼ą transakci├ş, ktor├í vy┼żaduje postupnos┼ą valid├íci├ş. Na rozdelenie logiky na r├┤zne vetvy a presadenie v├Ą─Ź┼íieho paralelizmu je nevyhnutn├ę budova┼ą DApps a in├ę rie┼íenia pomocou viacn├ísobn├Żch UTXO . To poskytuje v├Żhody z h─żadiska ┼ík├ílovania, podobne ako sa u Bitcoinu predpoklad├í rozdelenie jednej pe┼ła┼żenky na ─Źiastkov├ę pe┼ła┼żenky.

DApps postaven├ę na Cardano nie s├║ obmedzen├ę na jednu transakciu na blok. V skuto─Źnosti rozpo─Źet bloku (t. j. maxim├ílny po─Źet transakci├ş, ktor├ę m├┤┼że poja┼ą) umo┼ż┼łuje vykon├íva┼ą stovky jednoduch├Żch transakci├ş a nieko─żko zlo┼żit├Żch skriptov. Model eUTXO v┼íak umo┼ż┼łuje min├║┼ą v├Żstup transakcie len raz. Vzh─żadom na to, ┼że pou┼ż├şvatelia m├┤┼żu ─Źeli┼ą probl├ęmom s konfliktom pri snahe z├şska┼ą pr├şstup k tomu ist├ęmu UTXO, je d├┤le┼żit├ę pou┼ż├şva┼ą mnoho r├┤znych UTXO. V┼íimnite si, ┼że je to d├┤le┼żit├ę, pokia─ż by tak├Żto n├ívrh nemal prospech z pr├şsneho poradia klientov. Sady UTXO mo┼żno pou┼żi┼ą na implement├íciu n├ívrhov├Żch vzorov, ktor├ę zah┼Ľ┼łaj├║ semafory. Okrem toho m├┤┼żu r├┤zni pou┼ż├şvatelia komunikova┼ą s jedn├Żm inteligentn├Żm kontraktom bez ak├ęhoko─żvek zlyhania s├║be┼żnosti. Je to preto, ┼że inteligentn├Ż kontrakt m├┤┼że sprac├║va┼ą mno┼żstvo r├┤znych UTXO, ktor├ę tvoria jeho aktu├ílny stav a mimo re┼ąazca metad├íta, ktor├ę umo┼ż┼łuj├║ interpret├íciu t├Żchto UTXO.

Rob├şme veci paraleln├ę

Blockchainy dosahuj├║ nemennos┼ą a transparentnos┼ą spracovania transakci├ş odli┼ín├Żm sp├┤sobom. Ka┼żd├Ż blockchainov├Ż syst├ęm by mal ma┼ą s├║bor vlastnost├ş, ktor├ę sp─║┼łaj├║ st├íle rast├║cu potrebu bezpe─Źn├ęho a z├írove┼ł r├Żchleho spracovania oper├íci├ş, a to

  • Priepustnos┼ą - po─Źet oper├íci├ş, ktor├ę syst├ęm dok├í┼że vykona┼ą za ur─Źit├Ż ─Źas. T├Żka sa to napr├şklad po─Źtu transakci├ş alebo inteligentn├Żch kontraktov spracovan├Żch za jednu sekundu.
  • V├Żkon - ako r├Żchlo syst├ęm pracuje. V├Żkon meria ─Źas vykonania transakcie alebo inteligentn├ęho kontraktu.
  • ┼ák├ílovate─żnos┼ą - schopnos┼ą syst├ęmu vykon├íva┼ą viacero oper├íci├ş bez pre┼ąa┼żenia siete alebo ovplyvnenia v├Żkonnostn├Żch vlastnost├ş.

Zvy┼íovan├şm paralelizmu m├┤┼żeme v kone─Źnom d├┤sledku zlep┼íi┼ą priepustnos┼ą syst├ęmu pri zachovan├ş rovnak├ęho v├Żkonu jednotliv├Żch oper├íci├ş, ale tento druh ┼ík├ílovate─żnosti bude v┼żdy obmedzen├Ż mierou sporu.

Pokia─ż ide o ┼ík├ílovate─żnos┼ą, rozli┼íujeme aj tak├ę vlastnosti syst├ęmu, ako s├║ konkurencia, paralelizmus a obsah. S├║be┼żnos┼ą je nevyhnutn├í na to, aby viacer├ş akt├ęri mohli postupova┼ą pri plnen├ş ur─Źitej ├║lohy bez toho, aby sa navz├íjom ru┼íili. Paralelnos┼ą umo┼ż┼łuje tak├Żto postup v rovnakom ─Źase bez ak├ęhoko─żvek ru┼íenia. K s├║pereniu doch├ídza vtedy, ke─Ć sa tieto viacer├ę subjekty navz├íjom ru┼íia pri s├║be┼żnej alebo paralelnej pr├íci.

Porozumenie s├║be┼żnosti

S├║be┼żnos┼ą m├┤┼że, ale nemus├ş zlep┼íi┼ą v├Żkon, priepustnos┼ą alebo odozvu syst├ęmu. Mno┼żstvo s├║be┼żnosti obmedzuje maxim├ílny po─Źet s├║be┼żn├Żch oper├íci├ş, ktor├ę mo┼żno vykona┼ą.

Na dosiahnutie skuto─Źn├ęho zlep┼íenia v├Żkonu v blockchaine zalo┼żenom na UTXO by mali by┼ą procesory alebo in├ę subjekty schopn├ę vykon├íva┼ą viacero akci├ş s├║─Źasne. ─î├şm vy┼í┼íia je ├║rove┼ł s├║be┼żnosti, t├Żm vy┼í┼í├ş je maxim├ílny mo┼żn├Ż paralelizmus. Tak├Żto pr├şstup sa potom premieta do zlep┼íenia v├Żkonu a priepustnosti. Poskytuje tie┼ż v├Żznamn├ę v├Żhody oproti syst├ęmom zalo┼żen├Żm na ├║─Źtoch (ako je Ethereum).

Nasadenie DApps na ├║─Źtovn├Żch knih├ích UTXO je in├ę

Pr├şstup Cardana k nasadzovaniu DApp je odli┼ín├Ż a preto si vy┼żaduje u─Źenie a odli┼ín├Ż pr├şstup. Je to ako pr├íca s r├┤znymi programovac├şmi jazykmi: existuje jeden cie─ż - nasadi┼ą rie┼íenie, ale ve─ża programovac├şch jazykov, ktor├ę sa na tento ├║─Źel daj├║ pou┼żi┼ą.

Maximaliz├ícia s├║be┼żnosti je zru─Źnos┼ą, ktor├║ sa treba nau─Źi┼ą: v├Żvoj├íri musia p├şsa┼ą k├│d sp├┤sobom, ktor├Ż v├Żrazne obmedzuje mo┼żnosti vzniku sporn├Żch situ├íci├ş (napr. vyh├Żban├şm sa zdie─żan├Żm stavom a n├íhodn├Żm z├ívislostiam). Syst├ęm potom mus├ş t├║to s├║be┼żnos┼ą previes┼ą na paralelizmus. Viacer├ş v├Żvoj├íri u┼ż identifikovali sp├┤soby, ako k tomu pristupova┼ą, zatia─ż ─Źo in├ş st├íle vyv├şjaj├║ rie┼íenia. Jednoduch├ę presadenie sk├║senost├ş z├şskan├Żch na jednom blockchaine nebude fungova┼ą; hoci je krivka u─Źenia sa o nie─Źo strm┼íia, v─Ćaka v├Żsledkom sa to oplat├ş.

V ka┼żdom pr├şpade je d├┤le┼żit├ę pochopi┼ą, ┼że na nasadenie ┼ík├ílovate─żnej DApp na Cardano nem├┤┼że v├Żvoj├ír pou┼żi┼ą len upraven├Ż kontrakt Etherea. Cardano je zalo┼żen├ę na modeli UTXO; nie je zalo┼żen├ę na ├║─Źtoch. A to znamen├í, ┼że jeden stav v re┼ąazci nebude sp─║┼ła┼ą vlastnos┼ą s├║be┼żnosti na Cardane. Namiesto toho by DApps mali rozdeli┼ą svoj on-chain stav na mnoho UTXO. T├Żm sa zv├Ż┼íi s├║be┼żnos┼ą ich aplik├ície, ─Źo umo┼żn├ş vy┼í┼íiu priepustnos┼ą.

N├í┼í vzdel├ívac├ş t├şm sa u┼ż predt├Żm podelil o jednoduch├║ implement├íciu DEXu v ┼ít├Żle AMM v kurze Plutus Pioneer. Hoci je to u┼żito─Źn├ę na ├║─Źely v├Żu─Źby, t├íto architekt├║ra by priamo nepodporovala komer─Źn├Ż DEX, kde sa vy┼żaduje pr├şstup knihy objedn├ívok a ─Ćal┼íia s├║be┼żnos┼ą. V├Żvoj├ír, ktor├Ż by ju chcel nasadi┼ą v mainnete Cardano, by musel zodpovedaj├║cim sp├┤sobom zlep┼íi┼ą ┼ík├ílovate─żnos┼ą architekt├║ry.

Rie┼íenie sme navrhli v r├ímci n├í┼ího ned├ívneho dokumentu Djed stablecoin paper. Pri implement├ícii Djed na Cardane sa uprednost┼łuje modelov├Ż vzor knihy objedn├ívok, v r├ímci ktor├ęho je tvorca objedn├ívky zodpovedn├Ż za post├║penie ka┼żdej objedn├ívky na razenie alebo sp├ílenie stablecoinu inteligentnej zmluvy, pri─Źom ka┼żd├ęmu pr├şpadn├ęmu kupuj├║cemu alebo pred├ívaj├║cemu stablecoinov a rezervn├Żch minc├ş sa uklad├í dodato─Źn├Ż motiva─Źn├Ż poplatok. Na zaru─Źenie jedine─Źnosti transakci├ş, spr├ívnosti ka┼żdej odoslanej objedn├ívky a na zabr├ínenie ├║tokom typu front-running sa pou┼ż├şva aj nieko─żko bezpe─Źnostn├Żch mechanizmov - prostredn├şctvom rozsiahleho pou┼ż├şvania nezamenite─żn├Żch tokenov (NFT). Tokeny NFT sa pou┼ż├şvaj├║ aj na hl├ísenie ├║spe┼ín├Żch alebo ne├║spe┼ín├Żch pr├şkazov na razenie a p├ílenie. O tejto t├ęme ─Źoskoro uverejn├şme obsiahlej┼í├ş ─Źl├ínok.

Ak sa chcete dozvedie┼ą viac o ┼ík├ílovate─żnosti, m├┤┼żete si pre─Ź├şta┼ą ako navrhn├║┼ą ┼ík├ílovate─żn├║ aplik├íciu v Plutuse a zisti┼ą, ako organizova┼ą DApps na Cardano pomocou vzorovej knihy objedn├ívok. V├Żvoj├íri tie┼ż predstavili paraleln├ę a deterministick├ę pr├şstupy k architekt├║re inteligentn├Żch kontraktov eUTXO, ktor├ę mo┼żno pova┼żova┼ą za zov┼íeobecnenie paraleln├Żch krokov stavov├ęho stroja predstaven├Żch v dokumente Hydra na realiz├íciu viackrokov├Żch stavov├Żch zdrojov. Viacer├ş ─Ćal┼í├ş v├Żvoj├íri a ─Źlenovia komunity tie┼ż publikovali vide├í, ─Źl├ínky a u┼żito─Źn├ę vl├íkna na Twitteri, v ktor├Żch na─Źrtli svoje postupy. Je to brilantn├í lekcia toho, ako bude komunita pokra─Źova┼ą vo v├Żvoji vlastn├Żch inovat├şvnych rie┼íen├ş, ke─Ć┼że pr├şstupy sa so zrelos┼ąou platformy ┼ítandardizuj├║.

Posunutie sa vpred

Alonzo hard fork predstav├ş z├íkladn├ę stavebn├ę bloky Plutusu 1.0. Je to za─Źiatok rastu ekosyst├ęmu. Hoci je e┼íte skoro, testnet Alonzo umo┼ż┼łuje na┼íim v├Żvoj├írom pos├║di┼ą vlastnosti syst├ęmu a vytvori┼ą ┼ík├ílovate─żn├ę DApps v predstihu - pripravuj├║c sa na ich spustenie v mainnete. Desiatky projektov u┼ż pracuj├║ s lok├ílnymi in┼ítanciami prostredia Plutus. Vzh─żadom na to, ┼że hlavn├Ż verejn├Ż testnet bude ─Źoskoro podporova┼ą inteligentn├ę kontrakty, o─Źak├ívame v nasleduj├║cich t├Ż┼żd┼łoch a mesiacoch v├Żrazn├ę zv├Ż┼íenie aktivity. Koncom tohto mesiaca sa na samite Cardano summit (25. - 26. septembra) predstavia mnoh├ę z t├Żchto projektov a navy┼íe bud├║ poskytnut├ę d├┤le┼żit├ę aktualiz├ície pl├ínu inteligentn├Żch kontraktov a prebiehaj├║ceho v├Żvoja technologick├ęho z├ísobn├şka. V├Żvoj├írske podujatia, hackathony a, samozrejme, v├Żsledky projektu Catalyst bud├║ aj na─Ćalej prin├í┼ía┼ą nov├ę n├ístroje a abstrakcie do tohto r├Żchlo rast├║ceho v├Żvoj├írskeho ekosyst├ęmu.

Ak ste v├Żvoj├ír, ur─Źite sa pripojte k na┼íej komunite Discord a zapojte sa do Project Catalyst, ak chcete financova┼ą svoj projekt.

R├íd by som po─Ćakoval Larsovi Br├╝njesovi, Jannovi M├╝llerovi a Manuelovi Chakravartymu za ich technick├Ż pr├şnos a podporu po─Źas pr├şpravy pr├şspevku na blogu.


(Nap├şsala Olga Hryniuk z IOHK) - preklad @Martin.M
P├┤vodn├Ż ─Źl├ínok: Concurrency and all that: Cardano smart contracts and the eUTXO model