🇨🇿 Škálovatelnost jako cesta Cardana ke globální adopci

Chcete se dostat z bodu A do bodu B. Můžete si koupit drahou jízdenku a cestovat hodinu, nebo si koupit levnější a být tam za 2 minuty. Lidé se chovají racionálně a většina z nich si vybere cenově dostupnější a rychlejší variantu. Proto nikdy nebudou ochotni platit za drahé transakce v blockchainu.

Veřejné a decentralizované blockchainové sítě se obvykle musí lépe škálovat. To znamená, že nejsou schopny včas zpracovat všechny příchozí transakce uživatelů. Představte si to jako autobus, který jezdí pravidelně každých 10 minut ze zastávky. Do autobusu se vejde jen 100 lidí, ale na zastávce pravidelně stojí 200 nebo dokonce 300 lidí. Lidé potřebují do autobusu nastoupit, a tak začnou nabízet vyšší jízdné. Někteří lidé jsou stále ochotni platit. Jízdné se zvýší z 0,50 USD na 50 USD. Objeví se konkurence. Moderní rychlovlak, který jezdí každých 30 sekund, jízdné je pouze 0,10 USD a vejde se do něj 1 000 lidí. Za týden už autobus nikdo nevyužije.

V blockchainové terminologii bychom řekli, že vysokorychlostní vlak škáluje lépe než autobus. Počet transakcí, které systém zpracuje za sekundu, se označuje jako propustnost. Představte si ji jako počet lidí, které autobus odveze každou sekundu. V našem případě je to 0,16 lidí, protože 100 lidí dělíme 600 sekundami.

Cardano má ambice stát se globálním finančním a sociálním operačním systémem. K tomu potřebuje lépe škálovat. Mnohem lépe. V tomto článku se zabýváme tím, proč je obtížné dosáhnout škálovatelnosti na první vrstvě a proč potřebujeme druhé vrstvy. Budeme mluvit trochu o Hydře, trochu o rollupech a trochu o Milkomedě.

Nezapomeňte, že jedna transakce Cardano může obsahovat více aktiv a více příjemců. Nebudeme to v článku příliš opakovat, ale jedna transakce Cardano může být stejná jako 10 nebo dokonce 100 transakcí na jiné blockchainové síti.

TLDR

Na celém světě se za sekundu uskuteční více než 16 000 digitálních finančních transakcí. Pro decentralizované blockchainy je obtížné přiblížit se tak vysoké propustnosti. Stavové kanály, sidechainy a rollupy jsou druhé vrstvy, kterou budeme v ekosystému Cardano v blízké budoucnosti používat.

Proč blockchain dobře neškáluje?

Blockchain je distribuovaná síť složená z uzlů. Jedním z požadavků na blockchain je decentralizace, což v podstatě znamená možnost relativně levně provozovat vlastní plnohodnotný uzel. Uzly mají 4 úzká místa: výpočetní výkon, paměť, úložiště a propustnost sítě (maximální množství dat, které může uzel v daném okamžiku stáhnout nebo odeslat).

Uzly v síti Cardano spolu komunikují a předávají si všechny transakce, které uživatelé zadají. Každý uzel transakci ověří. To může vyžadovat validaci skriptem Plutus, který vyžaduje větší výpočetní výkon. Všechny přijaté transakce musí být dočasně uloženy. Platné transakce, které se dostanou do bloku, musí být uloženy trvale.

Cardano v současné době zpracovává zhruba 50 000 transakcí za 24 hodin. Mnoho transakcí obsahuje více příjemců, takže Cardano každou sekundu používá zhruba 1 až 5 lidí.

A teď si představte, jaký počítač byste museli mít, kdyby Cardano používalo 1000x více lidí. Nebo 10 000krát více lidí. Požadavky na výpočetní výkon, paměť, úložiště a šířku pásma by byly extrémní. Plnohodnotný uzel by mohli provozovat pouze podnikatelé, což by vedlo k centralizaci. Myšlenka “nedůvěřuj, ověřuj” by byla nedosažitelná.

Podle jedné zprávy, kterou v roce 2021 poskytla společnost Capgemini a BNP Paribas, se v roce 2020 uskuteční na celém světě 522 miliard finančních digitálních transakcí. To je 1,4 miliardy denně, tedy přibližně 16 000 transakcí každou sekundu. Skutečné číslo může být ještě vyšší, protože tým neměl přístup k údajům všech společností.

Vyšší nároky na výkon počítačů vedou k centralizaci sítě. Má-li decentralizovaná síť lépe škálovat, stojí tým před velkou technologickou výzvou.

Aby bylo možné transakci vypořádat, musí se uzly nejprve dohodnout na její platnosti. Pokud má systém velký počet uzlů, může tato dohoda nějakou dobu trvat. Při vyšší decentralizaci je dohoda mezi uzly obtížnější. Každý jednotlivý uzel musí spotřebovávat vlastní výpočetní zdroje na získání, ověření a uložení transakcí. To je z hlediska decentralizace žádoucí, ale z hlediska škálovatelnosti velmi neefektivní. Je zřejmé, že pokud má ekosystém (blockchain a druhé vrstvy) lépe škálovat, nemohou uzly ověřovat všechny transakce mezi uživateli.

Úkolem druhých vrstev je zmírnit úzká místa prvních vrstev. Cílem je paralelizovat zpracování transakcí v různých vrstvách, a tím ušetřit výpočetní prostředky první vrstvy. Vždy musí existovat nějaký mechanismus pro přenos prostředků z první vrstvy do druhé a zpět.

Druhá vrstva má vlastní uzly (počítačové zdroje) a vlastní pravidla pro dosažení konsensu mezi uživateli. Decentralizace a bezpečnostní předpoklady se mohou výrazně lišit od první vrstvy. Někteří lidé se mylně domnívají, že pokud je druhá vrstva vytvořena nad určitým blockchainem, automaticky zdědí jeho vlastnosti. Není tomu tak. Smyslem druhé vrstvy je převzít odpovědnost za aktiva z první vrstvy. První vrstva se podílí pouze na převodu aktiv mezi vrstvami, ale neověřuje transakce a provádění chytrých smluv probíhajících ve druhé vrstvě. Druhé vrstvy obvykle představují zcela odlišnou infrastrukturu, včetně uzlů (které mohou mít chyby), peněženek, konsensu (druhou vrstvou může být pouze centralizovaný server nebo se skládá pouze z několika uzlů provozovaných jedním subjektem) atd.

Všimněte si, že ověřování transakcí je o práci s daty. Aby bylo možné data ověřit, musí být k dispozici. V praxi to znamená, že je uzel musí stáhnout nebo mu je někdo musí poslat (šířka pásma) a uzel je musí uložit (paměť, úložiště) a ověřit (výpočetní výkon). Problém je v tom, že běžný počítač nedokáže zpracovat obrovský objem dat. Lidé si stěžují, že blockchain Cardano je příliš velký a rychle roste. Druhé vrstvy snižují nároky na výpočetní zdroje prvních vrstev, protože se předpokládá, že data (transakce), která vznikla ve druhé vrstvě, budou uložena jinde, nebo budou po určité době jednoduše smazána.

Pravděpodobně víte, že první vrstvou je Cardano. Druhými vrstvami jsou nebo budou Milkomeda, Hydra, Midnight a další. Pojďme se podívat na rozdíly mezi jednotlivými řešeními. Existují 3 základní koncepty druhých vrstev: sidechainy, stavové kanály a rollupy. Nebudeme se příliš zabývat rozdíly mezi jednotlivými koncepty. Zaměříme se na to, jak v principu fungují.

Hydra

Hydra je řešení stavových kanálů.

Hydra se používá následujícím způsobem. Několik uživatelů se dohodne (mimo řetězec), že společně otevřou tzv. hlavu Hydry. To v podstatě znamená, že použijí chytrý kontrakt, který převede vybrané množství jejich aktiv z blockchainu Cardano do Hydry. K převodu stavu z Cardana do Hydry je nutná transakce v řetězci. Po převodu si uživatelé navzájem sdílejí stav mimo řetězec. Mohou tak rychle a levně provést libovolný počet transakcí. Konečné změny jsou přeneseny zpět do blockchainu Cardano prostřednictvím on-chain transakce.

Hydra je podobná síti Lightning Network (LN). Head Hydra může otevřít více uživatelů, zatímco LN umožní otevření kanálu pouze mezi dvěma uživateli. Hydra umožní uživatelům používat tokeny a může také provádět chytré kontrakty.

Hydra je užitečná, když si více uživatelů chce navzájem posílat více transakcí. Každý uživatel musí používat uzel Hydra a být neustále online, aby se zajistilo, že nedojde k pokusu o předčasné uzavření hlavy Hydry. Pokud se tak stane, je nutné zkontrolovat konečný stav a v případě potřeby jej zpochybnit (pro případ pokusu o podvod).

Uzel Hydra je užitečný, pokud účastníci předem vědí, kdy bude uzel Hydra Head uzavřen.

Hydra má vlastní mechanismus konsensu, který probíhá pouze mezi účastníky. Blockchain Cardano neví nic o tom, jaké transakce v Hydra Head probíhají.

Dá se říci, že transakce v Hydra Head jsou soukromé. Konečný stav je však zapsán do blockchainu.

V budoucnu se bude pracovat na tom, aby Hydra Tail umožňoval uživatelům být dočasně off-line. Hydra bude fungovat z mobilního telefonu. Dalším plánovaným vylepšením bude možnost propojit Hydra Heads mezi sebou. Vzájemné propojení Hydra Heads otevírá cestu k větším sítím účastníků, čímž se z lokálních Heads efektivně stane globální síť.

Milkomeda

Milkomeda C1 je EVM sidechain řešení.

Milkomeda umožňuje provádění aplikací Ethereum v ekosystému Cardano. Chcete-li používat Milkomedu, potřebujete peněženku kompatibilní s EVM, například Metamask. Peněženku připojíte k sidechainu Milkomeda. Poté je třeba odeslat aktiva ze sítě Cardano do Milkomedy prostřednictvím mostu. Z ADA se stane MilkADA (jakési zabalené ADA). MilkADA slouží k placení poplatků.

Sidechain je obvykle samostatná síť s vlastními validátory. V případě Milkomedy jsou validátory provozovány skupinou Cardano SPO.

Tým dcSpark přišel s inovací nazvanou wrapped smart contracts, která uživatelům umožňuje zůstat v síti Cardano, ale používat smart contracts na sidechainu. Jediné, co musí uživatelé udělat, je odeslat jedinou transakci Cardano s daty a aktivy potřebnými k interakci se sidechainovou dApp. O zbytek se postará překlenovací vrstva sidechainu. Toto konkrétní řešení ve skutečnosti využívá zdroje sítě Cardano, ale může ušetřit výpočetní výkon.

Běžně se sidechainy používají tak, že se aktiva přenášejí přes most a všechny transakce a provádění chytrých smluv probíhají ve druhé vrstvě. Tím se v podstatě ušetří všechny výpočetní zdroje první vrstvy (podobně jako u řešení stavových kanálů). Uživatelé nejsou nuceni provozovat uzel druhé vrstvy a nemusí být online jako v případě řešení státního kanálu. Sidechainy mají obvykle vlastní veřejnou účetní knihu, v níž jsou transakce dohledatelné.

Obecně se sidechain může potýkat s podobnými problémy jako blockchain, pokud by měl být decentralizovaný. To však uživatelé neočekávají. Cílem sidechainu je obvykle lepší škálování za cenu menší decentralizace.

Rollupy

IOG i dcSpark týmy pracují na rollupech pro Cardano. Rollupy mohou ušetřit výpočetní výkon a paměť první vrstvy. Do jisté míry také úložiště a šířku pásma, ale jejich využití se může lišit případ od případu.

Rollupy jsou většinou založeny na chytrém kontraktu, který umožňuje uživatelům převádět aktiva z blockchainu do sítě rollupů. V rollupu lze s aktivy dělat v podstatě cokoli. Rollup může být jen rychlá transakční síť, může vykonávat chytré kontrakty na libovolném virtuálním stroji nebo to může být aplikace.

Rollup udržuje stav sítě prostřednictvím speciální datové struktury Merkleho stromu. Představte si ji jako pyramidu postavenou z cihel, kde každá jednotlivá cihla představuje informace (zůstatek uživatele, transakce atd.). Z každé informace lze vytvořit hash (krátký řetězec). Hash lze také vytvořit ze dvou informací. Pro každé dva hashe z nižší vrstvy pyramidy se vytvoří jeden hash ve vyšší vrstvě. Postupuje-li se tímto způsobem směrem k vrcholu pyramidy, vytvoří se jediný hash, kořen Merke (kořen stavu), který reprezentuje všechna data ve stromové struktuře.

Je možné kryptograficky dokázat, že v Merklově stromu existuje kus stavu, pokud máte k dispozici tento kus stavu, několik uzlů větví a kořen Merklova stromu.

Rollup průběžně odesílá nový stav (Merkleho kořen) do inteligentního kontraktu první vrstvy. Blockchain se používá k zápisu stavu rollupu, který nelze změnit. Blockchain slouží také jako vrstva dostupnosti dat, protože nový stav rollupu je distribuován spolu s každým novým blokem.

Rollupy mají tendenci mít problémy s dostupností dat. Pokud by blockchain zapisoval pouze Merkleho kořen, nevěděl by nic o transakcích, což je žádoucí vlastnost. Pokud by však byl rollup delší dobu offline, prostředky by uvízly, protože bez dat (nebo alespoň části dat) nelze prokázat, že uživatel je vlastníkem prostředků.

Existuje více řešení tohoto problému. Rollup může posílat data do blockchainu společně s kořenem Merkle. Právě data umožňující obnovit změny provedené ve stromu Merkle. Síť blockchain nemusí data zpracovávat, pouze je ukládat. Data mohou být komprimována.

Některé rollupy ukládají data v jiných specializovaných sítích. Tím se šetří úložiště na plných uzlech (velikost blockchainu roste pomaleji). Některá řešení ověřují, že data jsou skutečně dostupná v externích sítích.

Rollupy mohou používat kryptografii Zero Knowledge (ZK). ZK umožňuje uživateli vytvořit důkaz, že správně splnil úkol, aniž by musel poskytnout jakékoli informace o úkolu.

Jak ZK funguje? Představte si, že máte tajný kód ke dveřím umístěným na chodbě. Chcete druhé straně dokázat, že kód znáte, ale nechcete jí ho ukázat? Projdete tedy chodbou a otevřete dveře. Průchod chodbou je vaším důkazem, že kód skutečně znáte.

ZK rollup může vytvořit ZK důkaz, že vzal předchozí stav, zpracoval platné TX a správně vytvořil nový kořen stavu. Chytrá smlouva spuštěná na blockchainu může ověřit všechny důkazy a může odmítnout aktualizaci Merklova stromu, pokud dojde k pokusu o podvod. ZK rollup nepotřebuje ukládat data transakcí a podpisů v blockchainu, protože není možné podvádět.

Stejně jako u sidechainů musí mít rollup vlastní způsob decentralizace, řízení projektu atd. Často hrozí, že smart contract může být aktualizován prostřednictvím administrátorských klíčů. Tímto způsobem si tým zachovává kontrolu nad kontraktem, a tedy v podstatě i nad prostředky uživatelů. Některé projekty to řeší tak, že nová aktualizace je aktivní se zpožděním (např. 2 týdny).

V době psaní tohoto článku není jisté, jak daleko jsou týmy s vývojem rollupů pro Cardano. Náš předpoklad je, že se prvních pokusů dočkáme v roce 2023. Rollupy se používají v mnoha projektech a první pokusy se dělají i na Bitcoinu, který má velmi omezenou programovatelnost.

Závěr

Každá druhá vrstva bude vždy závislá na té první. Proto se musí výrazně zlepšit i škálovatelnost prvních vrstev, jinak bude blockchain navždy omezovat fungování druhých vrstev. V případě řešení stávových kanálů je třeba kanály neustále otevírat a zavírat. Někdo spočítal, že kdyby se všichni lidé na planetě připojili k Lightning Network, trvalo by to 70 let. Pokud budou transakce na první vrstvě drahé a pomalé, mnoho lidí se na druhou vrstvu nedostane a pravděpodobně se o to ani nepokusí. Cardano bude škálovat na první layer výrazně lépe díky PoS Leios.

Pokud používáte sidechainy a rollupy, vždy si uvědomte, jak moc jsou tyto sítě decentralizované a jaká jsou rizika jejich používání.

Cardano má sidechain na Milkomedě. Hydra Head již byla otevřena na main-netu. Očekáváme, že první rollup se objeví ještě letos a dodá ho tým dcSpark. Každé jednotlivé řešení má své silné a slabé stránky a je vhodné pro různé případy použití. Všechna řešení mají šanci uspět.

Článek připravili Cardanians s podporou od Cexplorer.

Přečtěte si celý článek: https://cexplorer.io/article/scalability-as-cardano-s-path-to-global-adoption