Monad je nová platforma inteligentních kontraktů vrstvy 1, která nedávno získala finanční prostředky ve výši 225 milionů dolarů od společnosti rizikového kapitálu Paradigm. 

Přestože Monad ještě nebyl spuštěn, očekává se, že bude spuštěn na své veřejné testovací síti koncem roku 2024, přičemž nasazení do mainnetu je plánováno na začátek roku 2025.

Monad je paralelní projekt virtuálního stroje Ethereum (EVM) a podobně jako podobné projekty, jako je Aurora (postavená na protokolu Near Protocol) nebo Sei, se pokouší paralelizovat provádění instrukcí EVM, aby síť mohla zpracovávat více transakcí současně. To umožňuje zvládnout větší objem transakcí, zvyšuje propustnost a snižuje náklady.

Paralelizace zahrnuje rozdělení provádění transakcí na menší, nezávislé úlohy, které lze zpracovávat současně. Monad zavádí čtyři optimalizace pro zlepšení konsenzu, provádění a ukládání dat: MonadBFT, odložené provádění, paralelní provádění a MonadDb.

MonadBFT

MonadBFT je zřetězený dvoufázový byzantský algoritmus odolný proti chybám navržený tak, aby zlepšil škálovatelnost a efektivitu blockchainu. Je to derivát algoritmu HotStuff optimalizovaný pro provoz v částečně synchronních podmínkách. 

Tato optimalizace je důležitá, protože většina sítí v reálném světě nevykazuje dokonale synchronní chování kvůli proměnným dobám doručení zpráv způsobeným přetížením sítě, latencí a dalšími faktory. Přizpůsobením těchto částečně synchronních podmínek zajišťuje MonadBFT slušný výkon a spolehlivost v praktickém nasazení.

Algoritmus HotStuff je konsensuální protokol navržený pro blockchainové systémy k dosažení byzantské odolnosti proti chybám (BFT), což je schopnost počítačového systému pokračovat v provozu, i když některé z jeho uzlů jednají zlomyslně nebo jsou chybné.

Této robustnosti dosahuje řadou komunikačních kol mezi uzly, aby se dohodly na dalším bloku v řetězci. HotStuff vyžaduje tři komunikační kola k dosažení konsensu, což se může stát úzkým hrdlem pro škálovatelnost a efektivitu. MonadBFT vylepšuje HotStuff snížením komunikačních kol potřebných pro konsensus ze tří na dva.

Mechanismus konsenzu funguje ve fázích. Vedoucí uzel navrhuje bloky a validátoři je kontrolují. V každém kole vedoucí rozešle nový blok s certifikátem kvora (QC) nebo certifikátem časového limitu (TC) pro předchozí kolo. QC je důkazem, že blok byl schválen většinou validátorů, což znamená, že souhlasí s platností bloku.

Na druhé straně TC ukazuje, že požadovaný počet validátorů nedosáhl v daném časovém rámci konsensu. To funguje jako nouzový mechanismus, který zabraňuje zastavení systému.

Validátoři hlasují o novém bloku navrženém lídrem. Pokud schválí dostatečný počet validátorů (dvě třetiny), blok je v následujících kolech dokončen a jsou vydány QC.

Pokud validátoři neobdrží platný blok včas, zašlou podepsané zprávy o časovém limitu, které lze agregovat do TC. Tento TC je poté odeslán přímo dalšímu vedoucímu. Blok je dokončen, když validátoři uvidí dva po sobě jdoucí certifikované bloky.

Toto dvoufázové pravidlo potvrzování zajišťuje rychlou finalizaci bloku při zachování zabezpečení sítě a odolnosti proti chybám. Stejně jako ve všech asynchronních nastaveních BFT musí být dvě třetiny validátorových uzlů Monadu nekonkurenční a musí mít stejnou váhu hlasů, aby byla zachována bezpečnost.

Odložená exekuce

Odložené provedení odděluje provedení transakce od konsensu. Na rozdíl od tradičních blockchainů, jako je Ethereum, kde uzly musí provádět transakce před vytvořením konsensu, konsensus MonadBFT se zaměřuje výhradně na pořadí transakcí.

Na Ethereu musí uzly dosáhnout konsensu jak na seznamu transakcí v bloku, tak na kořeni stromu Merkle, aby bylo možné provést státní potransakční provedení. To znamená, že vedoucí konsensu musí provést transakce před odesláním bloku a všechny ověřovací uzly musí toto provedení před odevzdáním svého hlasu zopakovat.

Blokové časy se proto mohou značně prodloužit a složitost výpočtů, které může síť zvládnout, se sníží. Mechanismus konsenzu MonadBFT určuje pouze pořadí transakcí a umožňuje provedení nezávisle po dosažení konsensu.

Aby se zajistilo, že provedení bude provedeno správně, Monad zpozdí dohodu o Merkle kořeni státu o D bloky. D je celosystémový parametr, o kterém se v současnosti očekává, že bude 10.

Tento návrh snižuje rizika spojená se škodlivým uzlem, který neprovádí transakce správně. Jakmile síť dosáhne konsensu na bloku N dvoutřetinovou většinou hlasů, shodne se tím také na stavu reprezentovaném Merkleovým stromem v bloku N-D.

Pokud některý uzel objeví chybu při provádění bloku N-D, hlasuje proti návrhu na blok N. To spustí návrat do konečného stavu bloku N-D-1, po kterém následuje opětovné provedení transakcí z bloku N-D. Uzel může ověřit a opravit výsledky svého provádění proti jiným uzlům v síti kontrolou svého vlastního kořene Merkle. Lehké uzly mohou dotazovat plné uzly na Merkleovy důkazy hodnot stavových proměnných.

Paralelní provedení

Populární paralelní prováděcí blockchainy jsou buď deterministické, nebo optimistické.

Monad využívá optimistické provádění k dosažení paralelního zpracování transakcí. Tato metoda je poněkud analogická se spekulativním prováděním používaným centrálními procesorovými jednotkami (CPU), kde procesory předpovídají cestu větvených instrukcí a provádějí je s předstihem. 

Prováděcí stroj Monad začíná zpracovávat nové transakce ještě před dokončením provádění předchozích transakcí, což zvyšuje celkovou propustnost.

Tato strategie, nazývaná optimistická kontrola souběžnosti, však může vést k chybám, když jsou následné transakce vzájemně závislé. Pokud je zjištěn konflikt (např. když se dvě transakce pokoušejí upravit stejný zůstatek účtu), dotčené transakce se znovu provedou, aby se opravily nesrovnalosti.

V nejhorším případě musí být transakce provedena dvakrát, ale v souhrnu to přidá pouze 1,5 % režie. Monad také využívá analyzátor statického kódu k předvídání závislostí mezi transakcemi předem. Tato statická analýza umožňuje společnosti Monad identifikovat potenciální konflikty před provedením, a přestože nezabrání všem konfliktům, pomáhá optimalizovat počáteční plánování transakcí pro efektivnější a optimističtější paralelní provádění.

Sei také využívá optimistickou paralelizaci za předpokladu, že transakce nebudou konfliktní, ale uplatňuje odlišný přístup k řešení konfliktů. Během procesu paralelizace Sei sleduje, které části stavu každá transakce upravuje. Pokud zjistí, že dvě transakce jsou v konfliktu, což znamená, že se pokoušejí upravit stejnou část stavu, systém dočasně zastaví provádění a znovu zpracuje konfliktní transakce postupně, podobně jako Monad.

Monadovo použití analyzátoru statického kódu však umožňuje efektivnější plánování transakcí, čímž se snižuje možnost konfliktu, zatímco Sei jednoduše řeší konflikty, jakmile během provádění nastanou.

Optimistické provádění také eliminuje potřebu složitých algoritmů plánování a analýzy závislostí, které jsou vyžadovány pro deterministické metodologie. V deterministickém přístupu používaném Sui a Solanou musí transakce před provedením deklarovat, do kterých částí státu vstoupí.

Tato deklarace předem umožňuje systému plánovat transakce způsobem, který zabraňuje konfliktům během provádění. Primární výhodou této metody je předvídatelnost: Vzhledem k tomu, že závislosti jsou známy předem, systém může zajistit, aby se transakce vzájemně neovlivňovaly, což má za následek konzistentní a spolehlivé výsledky.

Tato předvídatelnost však něco stojí. Analýza závislostí a plánování transakcí vyžaduje sofistikované algoritmy, které musí počítat se všemi potenciálními interakcemi mezi transakcemi a zavádět výpočetní režii, což má za následek vyšší hardwarové požadavky.

Ke složitosti přispívá také potřeba analýzy a plánování v reálném čase, protože systém musí neustále monitorovat a upravovat příkaz k provádění, aby se předešlo konfliktům.

Kromě toho může deterministický přístup čelit problémům při efektivním škálování. S rostoucím počtem transakcí exponenciálně roste složitost analýzy závislostí.

MonadDB

MonadDB je vlastní databáze navržená speciálně pro optimalizaci implementace paralelního spouštění. V tradičních blockchainech, jako je Ethereum, se vstup/výstup (I/O) stává významným úzkým hrdlem, především proto, že tyto systémy spoléhají na synchronní I/O operace. 

Procesy musí čekat na dokončení každé operace čtení nebo zápisu, než přejdou k další, což výrazně omezuje propustnost a celkový výkon. K překonání tohoto omezení využívá MonadDB asynchronní diskové operace, které umožňují systému zahájit více operací čtení a zápisu současně bez čekání na dokončení každé z nich. To zvyšuje celkovou rychlost zpracování transakcí, zejména v kombinaci s paralelním prováděním.

Závěr

Monad představuje významný pokrok v technologii blockchain. Využívá inovativní techniky, jako je optimistické provádění, odložené provádění a vlastní databáze MonadDB, které zvyšují škálovatelnost a efektivitu. 

Jeho metoda optimistické paralelizace, podobná spekulativnímu provádění v CPU, umožňuje vysokou propustnost tím, že zpracovává transakce souběžně a znovu provádí konfliktní transakce pouze v případě potřeby.

V kombinaci se statickou analýzou kódu tato metoda optimalizuje plánování transakcí a snižuje pravděpodobnost konfliktů. Ve srovnání s jinými paralelními projekty EVM, jako je Sei, a deterministickými systémy jako Sui a Solana, přístup společnosti Monad vyvažuje efektivitu a složitost a poskytuje robustní řešení pro velké objemy transakcí.

Zavedení MonadBFT, zřetězeného dvoufázového byzantského algoritmu odolného proti chybám, dále zajišťuje rychlou finalizaci bloků a zabezpečení sítě.

Jak se Monad připravuje na svou veřejnou testovací síť na konci roku 2024 a nasazení do mainnetu na začátku roku 2025, staví se jako impozantní hráč v další generaci škálovatelných blockchainových platforem.