🇸🇰 Škálovateľnosť ako cesta Cardana ku globálnemu prijatiu

Škálovateľnosť ako cesta Cardana ku globálnemu prijatiu

Chcete sa dostať z bodu A do bodu B. Môžete si kúpiť drahý lístok a cestovať hodinu, alebo si kúpiť lacnejší a byť tam za 2 minúty. Ľudia sa správajú racionálne a väčšina si vyberie cenovo dostupnejšiu a rýchlejšiu možnosť. Preto nikdy nebudú ochotní platiť za drahé transakcie na blockchaine.

Verejné a decentralizované blockchainové siete sa zvyčajne musia lepšie škálovať. To znamená, že nie sú schopné včas spracovať všetky prichádzajúce transakcie používateľov. Predstavte si to ako autobus, ktorý jazdí pravidelne každých 10 minút zo zastávky. Do autobusu sa zmestí len 100 ľudí, ale na zastávke pravidelne stojí 200 alebo dokonca 300 ľudí. Ľudia potrebujú nastúpiť do autobusu, preto sa začne ponúkať vyššie cestovné. Niektorí ľudia sú stále ochotní zaplatiť Cestovné sa zvýši z 0,50 USD na 50 USD. Vznikne konkurencia. Moderný vysokorýchlostný vlak, ktorý jazdí každých 30 sekúnd, cestovné je len 0,10 USD a zmestí sa doň 1 000 ľudí. Za týždeň nebude autobus používať nikto.

V terminológii blockchainu by sme povedali, že vysokorýchlostný vlak sa škáluje lepšie ako autobus. Počet transakcií, ktoré systém spracuje za sekundu, sa označuje ako priepustnosť. Predstavte si ju ako počet ľudí, ktorých autobus odvezie každú sekundu. V našom prípade je to 0,16 ľudí, pretože 100 ľudí delíme 600 sekundami.

Cardano má ambície stať sa globálnym finančným a sociálnym operačným systémom. Aby sa mu to podarilo, musí sa lepšie škálovať. Oveľa lepšie. V tomto článku rozoberieme, prečo je ťažké dosiahnuť škálovateľnosť na prvej vrstve a prečo potrebujeme druhé vrstvy. Trochu si povieme o Hydre, trochu o rollupoch a trochu o Milkomede.

Nezabudnite, že jedna transakcia Cardano môže obsahovať viacero aktív a viacerých príjemcov. V článku to nebudeme príliš opakovať, ale jedna transakcia Cardano môže byť rovnaká ako 10 alebo dokonca 100 transakcií v inej blockchainovej sieti.

TLDR

Na celom svete sa za sekundu uskutoční viac ako 16 000 digitálnych finančných transakcií. Pre decentralizované blockchainy je ťažké priblížiť sa k takejto vysokej priepustnosti. Štátne kanály, sidechainy a rollupy sú druhou vrstvou, ktorú budeme v ekosystéme Cardano v blízkej budúcnosti používať.

Prečo sa blockchain nedá dobre škálovať?

Blockchain je distribuovaná sieť zložená z uzlov. Jednou z požiadaviek na blockchain je decentralizácia, čo v podstate znamená možnosť relatívne lacno prevádzkovať vlastný plnohodnotný uzol. Uzly majú 4 úzke miesta: výpočtový výkon, pamäť, úložisko a šírku pásma (maximálne množstvo údajov, ktoré môže uzol v danom čase stiahnuť alebo odoslať).

Uzly v sieti Cardano navzájom komunikujú a posielajú ďalej všetky transakcie, ktoré používatelia zadajú. Každý uzol transakciu overuje. To môže vyžadovať validáciu skriptom Plutus, ktorá si vyžaduje väčší výpočtový výkon. Všetky prijaté transakcie sa musia dočasne uložiť. Platné transakcie, ktoré sa dostanú do bloku, musia byť uložené natrvalo.

Cardano v súčasnosti spracuje približne 50 000 transakcií za 24 hodín. Mnohé transakcie obsahujú viacero príjemcov, takže Cardano každú sekundu používa približne 1 až 5 ľudí.

Teraz si predstavte, aký počítač by ste museli mať, keby Cardano používalo 1000x viac ľudí. Alebo 10 000-krát viac ľudí. Požiadavky na výpočtový výkon, pamäť, úložisko a šírku pásma by boli extrémne. Plnohodnotný uzol by mohli prevádzkovať len podnikatelia, čo by viedlo k centralizácii. Myšlienka “nedôveruj, overuj” by bola nedosiahnuteľná.

Podľa jednej zo správ, ktorú poskytla spoločnosť Capgemini a BNP Paribas v roku 2021, sa v roku 2020 na celom svete uskutočnilo 522 miliárd finančných digitálnych transakcií. To je 1,4 miliardy denne alebo približne 16 000 transakcií každú sekundu. Skutočné číslo môže byť ešte vyššie, keďže tím nemal prístup k údajom všetkých spoločností.

Vyššie nároky na výkon počítačov vedú k centralizácii siete. Ak má decentralizovaná sieť lepšie škálovať, tím stojí pred veľkou technologickou výzvou.

Aby bolo možné transakciu vyrovnať, musia sa uzly najprv dohodnúť na jej platnosti. Ak má systém veľký počet uzlov, táto dohoda môže trvať určitý čas. Vyššia decentralizácia sťažuje dohodu medzi uzlami. Každý jednotlivý uzol musí spotrebovať vlastné výpočtové zdroje na získanie, overenie a uloženie transakcií. To je z hľadiska decentralizácie žiaduce, ale z hľadiska škálovateľnosti veľmi neefektívne. Je jasné, že ak má ekosystém (blockchain a druhé vrstvy) lepšie škálovať, uzly nemôžu overovať všetky transakcie medzi používateľmi.

Úlohou druhých vrstiev je zmierniť úzke miesta prvých vrstiev. Cieľom je paralelizovať spracovanie transakcií v rôznych vrstvách, čím sa ušetria výpočtové zdroje prvej vrstvy. Vždy musí existovať nejaký mechanizmus na prenos aktív z prvej vrstvy do druhej a späť.

Druhá vrstva má vlastné uzly (počítačové zdroje) a vlastné pravidlá na dosiahnutie konsenzu medzi používateľmi. Decentralizácia a bezpečnostné predpoklady sa môžu výrazne líšiť od prvej vrstvy. Niektorí ľudia sa mylne domnievajú, že ak sa druhá vrstva vytvorí nad určitým blockchainom, automaticky zdedí jeho vlastnosti. Nie je to tak. Zmyslom druhej vrstvy je prevziať zodpovednosť za aktíva z prvej vrstvy. Prvá vrstva sa podieľa len na prevode aktív medzi vrstvami, ale neoveruje transakcie a vykonávanie inteligentných zmlúv, ktoré prebiehajú v druhej vrstve. Druhé vrstvy zvyčajne predstavujú úplne inú infraštruktúru vrátane uzlov (ktoré môžu mať chyby), peňaženiek, konsenzu (druhá vrstva môže byť len centralizovaný server alebo sa skladá len z niekoľkých uzlov prevádzkovaných jedným subjektom) atď.

Všimnite si, že overovanie transakcií je o práci s údajmi. Aby bolo možné overovať údaje, musia byť k dispozícii. V praxi to znamená, že uzol ich musí stiahnuť alebo mu ich niekto musí poslať (šírka pásma), uzol ich musí uložiť (pamäť, úložisko) a overiť (výpočtový výkon). Problémom je, že bežný počítač nedokáže spracovať obrovský objem údajov. Ľudia sa sťažujú, že blockchain Cardano je príliš veľký a rýchlo rastie. Druhé vrstvy znižujú nároky na výpočtové zdroje prvých vrstiev, pretože sa predpokladá, že údaje (transakcie), ktoré vznikli v druhej vrstve, budú po určitom čase uložené inde alebo jednoducho vymazané.

Pravdepodobne viete, že Cardano je prvou vrstvou. Druhými vrstvami sú alebo budú Milkomeda, Hydra, Midnight a ďalšie. Pozrime sa na rozdiely medzi jednotlivými riešeniami. Existujú 3 základné koncepty druhých vrstiev: sidechains, stavové kanály a rollupy. Nebudeme sa príliš zaoberať rozdielmi medzi jednotlivými koncepciami. Zameriame sa na to, ako v princípe fungujú.

Hydra

Hydra je riešenie stavového kanála.

Hydra sa používa nasledujúcim spôsobom. Niekoľko používateľov sa dohodne (mimo reťazca), že spoločne otvoria takzvanú hlavu Hydra. To v podstate znamená, že použijú inteligentný kontrakt, ktorý prevedie zvolený objem ich aktív z blockchainu Cardano do Hydry. Na prenos stavu z Cardano do Hydry je potrebná transakcia v reťazci. Po prevode si používatelia navzájom zdieľajú stav mimo reťazca. Môžu tak rýchlo a lacno vykonať ľubovoľný počet transakcií. Konečné zmeny sa prenášajú späť do blockchainu Cardano prostredníctvom on-chain transakcie.

Hydra je podobná sieti Lightning Network (LN). Hydra Head môže otvoriť viacero používateľov, zatiaľ čo LN umožní otvorenie kanála len medzi 2 používateľmi. Hydra umožní používateľom používať tokeny a môže tiež vykonávať inteligentné zmluvy.

Hydra je užitočná, keď si viacerí používatelia chcú navzájom posielať viacero transakcií. Každý používateľ musí používať uzol Hydra a byť neustále online, aby sa zabezpečilo, že nedôjde k pokusu o predčasné uzavretie Hydra Head. Ak sa tak stane, je potrebné skontrolovať konečný stav a v prípade potreby ho napadnúť (v prípade pokusu o podvod).

Hydra je užitočná vtedy, keď účastníci vopred vedia, kedy bude Hydra Head uzavretá.

Hydra má vlastný mechanizmus konsenzu, ktorý prebieha len medzi účastníkmi. Blockchain Cardano nevie nič o tom, aké transakcie sa v Hydra Head uskutočňujú.

Dá sa povedať, že transakcie v Hydra Head sú súkromné. Konečný stav sa však zapisuje do blockchainu.

V budúcnosti sa bude pracovať na Hydra Tail, aby používatelia mohli byť dočasne offline. Hydra bude fungovať z mobilného telefónu. Ďalším plánovaným vylepšením bude možnosť vzájomného prepojenia Hydra Heads. Vzájomné prepojenie Hydra Heads otvára cestu väčším sieťam účastníkov, čím sa miestne Hydra Heads efektívne zmenia na globálnu sieť.

Milkomeda

Milkomeda C1 je riešenie kompatibilné s bočným reťazcom EVM.

Milkomeda umožňuje vykonávať aplikácie Ethereum v ekosystéme Cardano. Na používanie Milkomedy potrebujete peňaženku kompatibilnú s EVM, napríklad Metamask. Peňaženku pripojíte k sidechainu Milkomeda. Potom musíte poslať aktíva zo siete Cardano do Milkomedy prostredníctvom mostíka. Z ADA sa stane MilkADA (akási zabalená ADA). MilkADA sa používa na platenie poplatkov.

Sidechain je zvyčajne samostatná sieť s vlastnými validátormi. V prípade Milkomeda sú validátory prevádzkované skupinou Cardano SPO.

Tím dcSpark prišiel s inováciou nazývanou zabalené inteligentné zmluvy, ktorá umožňuje používateľom zostať v sieti Cardano, ale používať inteligentné zmluvy na sidechaine. Jediné, čo musia používatelia urobiť, je odoslať jednu transakciu Cardano s údajmi a aktívami potrebnými na interakciu so sidechain dApp. O zvyšok sa postará bridge vrstva sidechainu. Toto konkrétne riešenie v skutočnosti využíva zdroje uzlov Cardano, ale môže ušetriť výpočtový výkon.

Bežne sa sidechainy používajú tak, že aktíva sa prenášajú cez mostík a všetky transakcie a vykonávanie inteligentných kontraktov sa uskutočňujú v druhej vrstve. Tým sa v podstate ušetria všetky výpočtové zdroje prvej vrstvy (podobne ako pri riešeniach so stavovým kanálom). Používatelia nie sú nútení spustiť uzol druhej vrstvy a nemusia byť online ako v prípade riešenia štátneho kanála. Sidechainy majú zvyčajne vlastnú verejnú účtovnú knihu, v ktorej sú transakcie sledovateľné.

Vo všeobecnosti môže sidechain čeliť podobným problémom ako blockchain, ak by mal byť decentralizovaný. To však používatelia neočakávajú. Cieľom sidechainu je zvyčajne lepšie škálovanie za cenu menšej decentralizácie.

Rollups

Tímy IOG a dcSpark pracujú na rollupoch pre Cardano. Rollupy môžu ušetriť výpočtový výkon a pamäť prvej vrstvy. Do určitej miery aj úložisko a šírku pásma, ale ich využitie sa môže v jednotlivých prípadoch líšiť.

Rollupy sú väčšinou založené na inteligentnom kontrakte, ktorý umožňuje používateľom prenášať aktíva z blockchainu do siete rollupov. V rollupe môžete s aktívami robiť v podstate čokoľvek. Rollup môže byť len rýchla transakčná sieť, môže vykonávať inteligentné kontrakty na akomkoľvek virtuálnom stroji alebo môže byť aplikáciou.

Rollup udržiava stav siete prostredníctvom špeciálnej dátovej štruktúry Merkleho stromu. Predstavte si ju ako pyramídu postavenú z tehličiek, kde každá jednotlivá tehlička predstavuje informácie (zostatok používateľa, transakcie atď.). Z každej informácie možno vytvoriť hash (krátky reťazec). Hash sa dá vytvoriť aj z dvoch informácií. Pre každé dva hashe z nižšej vrstvy pyramídy sa vytvorí jeden hash vo vyššej vrstve. Ak sa takto postupuje smerom k vrcholu pyramídy, vytvorí sa jediný hash, koreň Merke (koreň stavu), ktorý reprezentuje všetky údaje v stromovej štruktúre.

Je možné kryptograficky dokázať, že v Merklovom strome existuje kus stavu, pokiaľ máte k dispozícii kus stavu, niekoľko vetiev uzlov (tehál v našej analógii) a Merklov koreň.

Rollup priebežne posiela nový stav (Merkleho koreň) do inteligentného kontraktu prvej vrstvy. Blockchain sa používa na zápis stavu rollup, ktorý sa nedá zmeniť. Blockchain slúži aj ako vrstva dostupnosti údajov, pretože nový stav rollupu sa distribuuje spolu s každým novým blokom.

Rollupy majú tendenciu mať problémy s dostupnosťou údajov. Ak by blockchain zapisoval len Merkleho koreň, nevedel by nič o transakciách, čo je žiadaná vlastnosť. Ak by však bol rollup dlhší čas offline, prostriedky by uviazli, pretože bez údajov (alebo aspoň časti údajov) nie je možné dokázať, že používateľ je vlastníkom prostriedkov.

Existuje viacero riešení tohto problému. Rollup môže posielať údaje do blockchainu spolu s koreňovým systémom Merkle. Práve údaje umožňujúce obnoviť zmeny vykonané v Merkleho strome. Sieť blockchain nemusí údaje spracovať, stačí ich len uložiť. Údaje môžu byť komprimované.

Niektoré rollupy ukladajú údaje v iných špecializovaných sieťach. Tým sa šetrí úložisko na plných uzloch (veľkosť blockchainu rastie pomalšie). Niektoré riešenia overujú, či sú údaje skutočne dostupné v externých sieťach.

Rollupy môžu používať kryptografiu Zero Knowledge (ZK). ZK umožňuje používateľovi vytvoriť dôkaz, že správne splnil úlohu bez toho, aby musel poskytnúť akékoľvek informácie o úlohe.

Ako ZK funguje? Predstavte si, že máte tajný kód k dverám, ktoré sa nachádzajú na chodbe. Chcete druhej strane dokázať, že kód poznáte, ale nechcete jej ho ukázať? Prejdete teda chodbou a otvoríte dvere. Prechod cez chodbu je vaším dôkazom, že kód skutočne poznáte.

ZK rollup môže vytvoriť ZK dôkaz, že prevzal predchádzajúci stav, spracoval platné TX a správne vytvoril nový koreň stavu. Inteligentná zmluva vykonávaná na blockchaine môže overiť všetky dôkazy a môže odmietnuť aktualizáciu Merklovho stromu, ak dôjde k pokusu o podvod. ZK rollup nepotrebuje ukladať údaje o transakciách a podpisoch na blockchain, pretože nie je možné podvádzať.

Rovnako ako pri sidechainoch musí mať rollup vlastný spôsob decentralizácie, riadenia projektu atď. Často hrozí, že inteligentný kontrakt môže byť aktualizovaný prostredníctvom administrátorských kľúčov. Týmto spôsobom si tím zachováva kontrolu nad kontraktom, a teda v podstate aj nad prostriedkami používateľov. Niektoré projekty to riešia tak, že nová aktualizácia je aktívna s oneskorením (napr. 2 týždne).

V čase písania tohto článku nie je isté, ako ďaleko sú tímy s vývojom rollupov pre Cardano. Náš predpoklad je, že prvé pokusy uvidíme v roku 2023. Rollupy sa používajú v mnohých projektoch a prvé pokusy sa robia dokonca aj na Bitcoine, ktorý má veľmi obmedzenú programovateľnosť.

Záver

Každá druhá vrstva bude vždy závislá od prvej. Preto sa musí výrazne zlepšiť aj škálovateľnosť prvých vrstiev, inak bude blockchain navždy obmedzovať fungovanie druhých vrstiev. V prípade štátnych kanálových riešení sa kanály musia neustále otvárať a zatvárať. Niekto vypočítal, že ak by sa všetci na planéte pripojili na Lightning Network, trvalo by to 70 rokov. Ak budú transakcie na prvej vrstve drahé a pomalé, veľa ľudí sa na druhú vrstvu nedostane a pravdepodobne sa o to ani nepokúsi. Cardano bude na prvej vrstve škálovať podstatne lepšie vďaka PoS Leios.

Ak používate sidechainy a rollupy, vždy si uvedomte, ako sú siete decentralizované a aké sú riziká ich používania.

Cardano má sidechain na Milkomede. Hydra Head už bola otvorená na main-nete. Očakávame, že prvý rollup sa objaví ešte tento rok a dodá ho tím dcSpark. Každé jednotlivé riešenie má svoje silné a slabé stránky a je vhodné pre rôzne prípady použitia. Všetky riešenia majú šancu uspieť.


Pôvodný článok: Scalability as Cardano’s path to global adoption | Cardano Explorer (cexplorer.io)