🇨🇿 Jak účetní model a design platformy ovlivňuje škálovatenost

Cardano používá model UTxO a pouze malé skripty jsou ověřovány on-chain (na blockchainu). Ethereum používá model založený na účtu a veškerá aplikační logika je implementována v chytrých smlouvách. Pojďme prozkoumat, jak tyto různé přístupy ovlivňují možnosti škálovatelnosti.

Škálovatelnost je o zdrojích

Škálovatelnost se týká počítačových zdrojů, které umožňují provoz sítě. Blockchainové platformy jsou globální decentralizované sítě složené z velkého počtu uzlů provozovaných dobrovolníky. Toto jsou jediné výpočetní zdroje dostupné v síti. Pokud má být dosaženo vysoké škálovatelnosti, je nutné tyto prostředky využívat co nejefektivněji. Samostatně by se dalo řešit téma nákladů a odměn.

Platformy umožňují nejen přenos hodnoty, ale i provádění složitých operací (smart kontraktů). Při návrhu platformy je třeba myslet na to, jak implementovat jednotlivé funkce sítě tak, aby spotřebovávaly co nejméně zdrojů.

Blockchain síť potřebuje následující zdroje:

  • Výpočetní výkon (CPU) pro provádění výpočtů a provádění instrukcí. Běžné transakce obvykle spotřebují méně výpočetního výkonu než provádění smart kontraktů.
  • Úložný prostor je důležitý pro ukládání dat a informací. Je nutné trvale uložit celý blockchain. Uzly také potřebují dočasně ukládat data pro ověřování transakcí a provádění chytrých kontraktů (například sada UTxO, distribuce stake, seznam aktivních certifikátů atd.).
  • Šířka pásma, což je rychlost přenosu dat nebo komunikace v systému.

Škálovatelnost blockchainu je ovlivněna dostupností, efektivitou a využitím zmíněných zdrojů. Škálovatelná síť může zvýšit nebo optimalizovat své zdroje tak, aby vyhovovala více uživatelům, transakcím nebo aplikacím, aniž by se snížil její výkon a kvalita.

Jednotlivé aplikace se mohou výrazně lišit, pokud jde o výpočetní výkon, úložiště a požadavky na šířku pásma. Není důležitý pouze design platformy, ale také týmy, které aplikace navrhují a implementují.

Návrh sítě by měl umožňovat přírůstkovou škálovatelnost poskytováním více zdrojů, ale to má své limity. Blockchainové sítě potřebují vysokou škálovatelnost, což znamená, že jsou schopny zpracovat více transakcí za sekundu (TPS), ale musí si zachovat bezpečnost, decentralizaci a funkčnost. Pro týmy je to velká výzva.

Například zvětšení velikosti bloku nebo zkrácení doby blokování může zvýšit TPS, ale také zvyšuje požadavky na úložiště a šířku pásma uzlů a také riziko rozvětvení (fork) a osiření bloků. Zvýšení počtu uzlů může zvýšit bezpečnost a decentralizaci sítě, ale také zvyšuje latenci a složitost mechanismu konsenzu.

Týmy musí pečlivě balancovat mezi všemi důležitými funkcemi blockchainové sítě, přičemž musí mít na paměti poslání projektu a požadavky komunity.

Týmy nesmí obětovat bezpečnost a decentralizaci kvůli škálovatelnosti. Mohou však existovat projekty, pro které je škálovatelnost důležitější než decentralizace.

Komunity očekávají od distribuovaných sítí výhody, jako je decentralizace, transparentnost a odolnost, ale tyto funkce přinášejí omezení, jako je latence sítě, složitost a koordinace (což jsou nepříznivé vlastnosti pro škálovatelnost).

Škálovatelnost je ovlivněna zejména návrhem blockchainové sítě (včetně provádění smart kontraktů) a účetním modelem. Budeme se zabývat oběma.

V článku si povíme o Cardano jako o platformě využívající model UTxO a platformě Plutus pro validaci skriptů. Ethereum je reprezentativní platforma využívající model založený na účtu a virtuální stroj Ethereum (EVM) pro provádění chytrých smluv.

Většina platforem, které používají model založený na účtu a EVM, může mít podobné problémy jako Ethereum. Pokud by se však týmům podařilo implementovat například sharding, mohly by škálovat lépe než Ethereum. Cílem článku není detailně porovnávat SC platformy, ale upozornit na rozdíly v designu.

Rozdíly mezi účetními modely

Model UTXO je jako ověřovací systém, kde každý transakční výstup (UTxO) představuje digitální asset, kterou může její majitel utratit.

Jednou z výhod modelu UTxO je, že umožňuje větší paralelismus, což znamená, že transakce mohou být zpracovávány nezávisle a současně různými uzly v síti, pokud nevynakládají stejné UTxO.

To může zlepšit škálovatelnost a propustnost sítě, protože v daném čase lze ověřit a potvrdit více transakcí. Model UTxO také snižuje potřebu synchronizace a koordinace mezi uzly, protože každý uzel potřebuje pouze sledovat ty UTxO, které jsou relevantní pro jeho transakce.

Model UTXO je jednoduchý a bezpečný, protože k provádění transakcí nevyžaduje složitou logiku ani chytré smlouvy. Zahrnuje pouze jednoduché aritmetické operace a kryptografické kontroly k ověření platnosti a pravosti transakcí.

Nevýhodou modelu UTxO je, že je náchylnější k fragmentaci, protože vytváří mnoho malých UTxO, které mohou být distribuovány na různé adresy (uživatelé Cardano a Bitcoinu mají obvykle prostředky na více adresách). To může zvýšit počet a velikost transakcí, protože ke splnění požadavku na útratu může být zapotřebí více vstupů a výstupů.

Model UTxO také zvyšuje požadavky na úložiště a šířku pásma uzlů, protože potřebují ukládat a přenášet všechna UTxO, která jsou relevantní pro jejich transakce.

Model založený na účtech je spíše jako databázový systém, kde každý účet má zůstatek, který lze aktualizovat transakcemi. Vyžaduje to větší synchronizaci a koordinaci mezi uzly, protože transakce musí aktualizovat globální stav účtů.

Globální stav je sbírka všech zůstatků a stavů účtů v síti, která se časem rozrůstá a musí být uložena a ověřena všemi uzly.

Model založený na účtech umožňuje menší paralelismus, protože transakce mohou záviset na stavu jiných transakcí nebo mohou ovlivňovat stav jiných transakcí. To může snížit škálovatelnost a propustnost sítě, protože transakce musí být prováděny v sekvenčním pořadí a nelze je zpracovávat nezávisle nebo současně různými uzly.

Globální stav spotřebovává mnoho výpočetního výkonu, protože jej musí vypočítat a ověřit každý uzel. Týká se to zejména složitých nebo velkých transakcí nebo realizace složitých smart kontraktů. O přenosu tokenů a provádění chytrých kontraktů budu hovořit v další části.

Blockchainy, které využívají model UTxO, mohou (alespoň teoreticky) dosáhnout vyšší škálovatelnosti a propustnosti než model založený na účtu, protože transakce lze ověřovat paralelně. Blockchainy, které používají model založený na účtech, mohou čelit úzkým místům nebo přetížení kvůli své globální závislosti na stavu. Samozřejmě i blockchainy, které používají model založený na účetním modelu mohou dobře škálovat. K tomu jsou vhodnější druhé vrstvy (rollupy, sidechainy atd.).

Rozdíly mezi návrhy platforem

Když Cardano potřebuje provést inteligentní smlouvu k ověření transakce, obvykle se jedná pouze o ověření jednoduchého skriptu. Validátorové skripty obvykle obsahují jen několik jednoduchých podmínek (nejlépe jednu) a jejich výsledkem je pouze návratová hodnota True nebo False (hodnota True umožňuje utrácení UTxO). Skripty nejsou určeny k provádění složitých operací, jako je volání jiných smluv nebo provádění složitých výpočtů.

Inteligentní smlouvy na Cardano se skládají z on-chain (skripty validátoru) a off-chain logiky. Všechny složité operace inteligentních smluv se provádějí offline a nespotřebovávají distribuované síťové zdroje. Ke spuštění off-chain logiky jsou spotřebovávány zdroje uživatelů (peněženky) nebo servery (cloud). Aplikace jsou skládací, protože týmy nejsou omezeny možnostmi platformy z hlediska vzájemné interakce.

Tento přístup může mít v kontextu decentralizace nevýhodu. Mnoho DEXů v ekosystému Cardano používá dávkovače (batchers). Decentralizace off-chain části smluv je však možná.

Je také důležité, v kolika případech je nutné smart kontrakt realizovat. Cardano má nativní aktiva, což znamená, že přenos tokenů je zajištěn přímo protokolem Cardano a není nutné spouštět smart kontrakty (nebo skripty).

Cardano je také efektivní v tom, že v rámci jedné transakce lze převést více tokenů pro více příjemců. Šetří se tím především úložiště a šířka pásma. DEXy mohou vytvořit jednu velkou transakci, ve které je více swapů.

Ethereum nemá žádná nativní aktiva. Všechny tokeny jsou vytvářeny prostřednictvím smart kontraktů, které je nutné provést při každé interakci s tokeny, včetně jejich převodu z účtu na účet. To je náročnější na výpočetní zdroje sítě než v případě nativních aktiv.

Chytré kontrakty na Ethereu většinou obsahují veškerou aplikační logiku. Jejich provedení je tedy velmi náročné na síťové zdroje. Stejně jako u transakcí musí být chytré smlouvy prováděny postupně.

Téměř vše, co Ethereum dělá, vyžaduje provedení chytré smlouvy, s výjimkou převodu ETH.

Pokud se bavíme o možnostech, jak lépe škálovat, je třeba se na to dívat optikou využití zdrojů. Zdroje jsou vždy omezené a cílem je maximalizovat jejich využití ve smyslu využití daného množství zdrojů k dosažení maximální TPS.

Input Endorsers

Rozdíl mezi modely založenými na UTxO a modely založenými na účtu lze dobře vysvětlit pohledem na funkci Input Endorsers (IE). IE je jedním ze způsobů, jak zlepšit škálovatelnost Cardano. Ukážeme si, jak IE zlepšuje škálovatelnost Cardana, ale také proč něco podobného nelze implementovat v případě modelu založeného na účtu.

Škálovatelnost a efektivitu Cardano lze zlepšit oddělením výběru transakcí od produkce bloků. Transakce mohou být předem zpracovány (předběžně ověřeny) sítí před vložením do bloku. Transakce mohou být vybírány a schvalovány vstupními endorsery (náhodně vybrané uzly na základě stake). Potvrzené transakce jsou pak šířeny sítí a zpracovávány jinými uzly, než je producenti bloků seskupují do bloků. Bloky obsahují pouze odkazy na schválené transakce.

Všimněte si, že když jsou transakce zahrnuty do bloku, mají potvrzení z více uzlů. To zlepšuje konečnost (finalitu) transakcí.

IE snižuje latenci a variabilitu časů šíření bloků, protože transakce mohou být streamovány neustále bez čekání na konsensus. To také zlepšuje rychlost a odezvu sítě.

Transakce mohou být zpracovávány paralelně různými uzly, než jsou zahrnuty do bloků, takže se zvyšuje propustnost a kapacita sítě. Cardano bude umět zpracovat více transakcí (a mohou být složitější).

IE využívá model UTXO, přesněji paralelismus.

IE se liší od shardingu, což je další technika pro škálování blockchainových sítí. IE nevyžaduje mezishard komunikaci nebo synchronizaci, protože všechny uzly zpracovávají stejné schválené transakce předtím, než jsou zahrnuty do bloků.

IE doplňuje sharding, protože může zlepšit škálovatelnost a efektivitu každého fragmentu nebo vrstvy sítě. Cardano tedy může mít sharding, jakmile je implementován IE.

IE nemusí být snadno použitelné na model založený na účtu.

Validace každé transakce závisí na validaci všech předchozích transakcí, tedy na globálním stavu. Ethereum uzly nemohou (předem) ověřovat transakce bez znalosti (budoucího) globálního stavu. Model založený na účtech vyžaduje větší synchronizaci a koordinaci mezi uzly, protože transakce musí aktualizovat globální stav účtů.

Jinými slovy, Ethereum nody nemohou vzít část transakcí a ty ověřit nezávisle na ostatních transakcích. Problém je, že globální stav se mění na jediném místě v síti (producent bloku) a všechny ostatní nody čekají až na to už budou moci nový blok ověřit. Oni jsou tedy idling.

Sharding

Ethereum mělo mít sharding, ale tým od tohoto záměru upustil a nyní se více přiklání k druhým vrstvám. Zamysleme se nad tím, jak by mohlo vypadat sharding na modelu založeném na účtu.

Sharding je technika, která rozděluje blockchain na menší části, zvané shardy, které mohou zpracovávat transakce paralelně. Sharding může zvýšit škálovatelnost a propustnost sítě, ale také přináší nové výzvy a kompromisy.

Jednou z výzev týkajících se globálního stavu je, jak zajistit konzistenci a bezpečnost cross-shard transakcí, což jsou transakce, které zahrnují účty nebo smlouvy na různých shardech. Transakce napříč shardy vyžadují koordinaci a komunikaci mezi shardy, což může způsobit latenci a složitost.

Kromě toho mohou transakce napříč shardy čelit riziku útoků na dvojí utrácení nebo změnu pořadí, kdy se zákeřní aktéři snaží zmanipulovat pořadí nebo platnost transakcí.

Každý shard by měl svůj vlastní globální stav a stav by musel být synchronizován mezi všemi shardy. Každý shard může mít svůj vlastní nezávislý stav, což znamená jedinečnou sadu zůstatků na účtech a inteligentních smluv. Globální stav sítě (všechny shardy dohromady) by nebyl pevným stavem. Musel by to být dynamický a vyvíjející se stav, který závisí na interakcích a konsensu mezi shardy.

Pokud by síť měla mít vždy jeden stav, mohlo by to být neuvěřitelně neefektivní a vyžadovat hodně komunikace a synchronizace.

Velkou výzvou by byla také implementace shardingu na Cardano. Je to však jednodušší než v případě modelů založených na účtu. Jakmile bude funkce Input Endorsers připravena, lze to zvážit.

Model EUTxO by mohl mít některé výhody pro implementaci shardingu oproti modelu založenému na účtu díky přirozenému paralelismu.

Více uzlů se může aktivně podílet na shardingu současně. IE by s tím pomohl. Transakce mohou být streamovány neustále bez čekání na konsensus, takže by se snížila latence a složitost transakcí napříč shardy.

Podobně jako u modelu založeného na účtech vyžaduje sharding větší synchronizaci a koordinaci mezi uzly.

Uzly by si musely být vědomy nejen svého shardu (například vlastní sady UTxO), ale také alespoň částečně okolních stardů. Je možné, že bude potřeba implementovat nějaký druh (dynamického a vyvíjejícího se) globální stavu sítě.

Implementace shardingu na modelech založených na účtu nebo UTxO není triviální úkol. I když to může být v případě modelu UTxO jednodušší (hlavně díky paralelismu), rozhodně to není snadný cíl.

Závěr

Škálovatelnost blockchainů (a platforem) je ovlivněna účetním modelem, návrhem sítě, optimalizacemi a dalšími věcmi. Mithril například umožní vytváření bezstavových klientů, což jsou uzly, které neukládají celý stav blockchainu, ale pouze ověřují transakce pomocí kryptografických důkazů.

Z mého pohledu je škálovatelnost hlavně o chytrém využití výpočetních zdrojů tím nejlepším možným způsobem a schopnosti zdroje přidávat. To má ale své limity (na rozdíl od centralizovaných sítí) a týmy musí balancovat mezi důležitými vlastnostmi sítě.

I když se model založený na UTxO zdá být výhodnější pro škálovatelnost, nemusí to být nejlepší možné řešení pro konkrétní případ použití, který platforma nabízí.

Nejlepší devizou projektu je tým, který je schopen projekt přizpůsobit podmínkám trhu nebo přání komunity a dodat řešení, které je v danou chvíli potřeba k adopci. Nízká škálovatelnost je překážkou, když brání širšímu přijetí. Jsou projekty, které (údajně) mají tisíce TPS na první vrstvě, přesto nejsou v top 10.

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

Přečtěte si celý článek: https://cexplorer.io/article/how-the-accounting-model-and-design-of-the-blockchain-affects-scalability