Monad ir jauna 1. slāņa viedo līgumu platforma, kas nesen piesaistīja 225 miljonus USD finansējumu no riska kapitāla uzņēmuma Paradigm.
Lai gan Monad vēl nav palaists, sagaidāms, ka tas būs pieejams publiskajā testtīklā 2024. gada beigās, bet galvenā tīkla izvietošana ir plānota 2025. gada sākumā.
Monad ir paralēls Ethereum virtuālās mašīnas (EVM) projekts, un tāpat kā līdzīgi projekti, piemēram, Aurora (būvēta uz Near Protocol) vai Sei, tā mēģina paralēli izpildīt EVM norādījumus, lai tīkls varētu apstrādāt vairākus darījumus vienlaicīgi. Tas ļauj apstrādāt lielāku darījumu apjomu, palielina caurlaidspēju un samazina izmaksas.
Paralēlizācija ietver darījumu izpildes sadalīšanu mazākos, neatkarīgos uzdevumos, kurus var apstrādāt vienlaicīgi. Monad ievieš četras optimizācijas, lai uzlabotu savu vienprātību, izpildi un datu uzglabāšanu: MonadBFT, atliktā izpilde, paralēlā izpilde un MonadDb.
MonadBFT
MonadBFT ir konveijera divfāžu bizantiešu defektu izturīgs algoritms, kas izstrādāts, lai uzlabotu blokķēdes mērogojamību un efektivitāti. Tas ir HotStuff algoritma atvasinājums, kas optimizēts darbībai daļēji sinhronos apstākļos.
Šī optimizācija ir svarīga, jo vairums reālo tīklu neuzrāda perfekti sinhronu darbību mainīgo ziņojumu piegādes laiku dēļ, ko izraisa tīkla pārslodze, latentums un citi faktori. Pielāgojot šos daļēji sinhronos apstākļus, MonadBFT nodrošina pienācīgu veiktspēju un uzticamību praktiskā izvietošanā.
HotStuff algoritms ir vienprātības protokols, kas paredzēts blokķēdes sistēmām, lai panāktu Bizantijas kļūdu toleranci (BFT), kas ir datorsistēmas spēja turpināt darbību pat tad, ja daži tās mezgli darbojas ļaunprātīgi vai ir bojāti.
Tas panāk šo robustumu, izmantojot virkni saziņas kārtu starp mezgliem, lai vienotos par nākamo ķēdes bloku. Lai panāktu vienprātību, HotStuff ir nepieciešami trīs saziņas posmi, kas var kļūt par šķērsli mērogojamībai un efektivitātei. MonadBFT uzlabo HotStuff, samazinot saziņas kārtas, kas nepieciešamas vienprātībai, no trim līdz diviem.
Vienprātības mehānisms darbojas fāzēs. Vadošais mezgls piedāvā blokus, un pārbaudītāji tos pārskata. Katrā kārtā līderis izsūta jaunu bloku ar kvoruma sertifikātu (QC) vai taimauta sertifikātu (TC) par iepriekšējo kārtu. QC ir pierādījums tam, ka bloku ir apstiprinājis validētāju vairākums, norādot, ka viņi piekrīt bloka derīgumam.
No otras puses, TC norāda, ka vajadzīgais apstiprinātāju skaits nav panākuši vienprātību noteiktā laika posmā. Tas darbojas kā rezerves mehānisms, lai novērstu sistēmas apstāšanos.
Validatori balso par vadītāja piedāvāto jauno bloku. Ja apstiprina pietiekams skaits apstiprinātāju (divas trešdaļas), bloks tiek pabeigts nākamajās kārtās un tiek izsniegti kvalitātes sertifikāti.
Ja pārbaudītāji savlaicīgi nesaņem derīgu bloku, viņi nosūta parakstītus taimauta ziņojumus, kurus var apkopot TC. Pēc tam šis TC tiek nosūtīts tieši nākamajam vadītājam. Bloks tiek pabeigts, kad pārbaudītāji redz divus secīgus sertificētus blokus.
Šis divfāžu izpildes noteikums nodrošina ātru bloka pabeigšanu, vienlaikus saglabājot tīkla drošību un kļūdu toleranci. Tāpat kā visos asinhronajos BFT iestatījumos, lai saglabātu drošību, divām trešdaļām Monad validatora mezglu nedrīkst būt pretrunīgi un tiem jābūt vienādam balsojuma svaram.
Atliktā izpilde
Atliktā izpilde atdala darījuma izpildi no vienprātības. Atšķirībā no tradicionālajām blokķēdēm, piemēram, Ethereum, kur mezgliem ir jāizpilda darījumi pirms vienprātības noteikšanas, MonadBFT konsenss koncentrējas tikai uz darījumu secību.
Ethereum mezgliem ir jāpanāk vienprātība gan par darījumu sarakstu blokā, gan Merkles koka sakni, lai veiktu stāvokli pēc darījuma izpildes. Tas nozīmē, ka konsensa vadītājam ir jāizpilda darījumi pirms bloka iesniegšanas, un visiem apstiprināšanas mezgliem šī izpilde ir jāatkārto pirms balsošanas.
Tāpēc bloķēšanas laiks var kļūt diezgan garš, un tiek samazināta aprēķinu sarežģītība, ko tīkls var apstrādāt. MonadBFT vienprātības mehānisms nosaka tikai darījumu secību un ļauj izpildei notikt neatkarīgi pēc vienprātības sasniegšanas.
Lai nodrošinātu, ka izpilde tiek veikta pareizi, Monad aizkavē vienošanos par stāvokļa Merkles sakni par D blokiem. D ir visas sistēmas parametrs, kas pašlaik ir paredzēts 10.
Šis dizains mazina riskus, kas saistīti ar ļaunprātīgu mezglu, kas neveic darījumus pareizi. Kad tīkls panāk vienprātību par bloku N ar divu trešdaļu balsu vairākumu, tas arī vienojas par stāvokli, kuru blokā N-D pārstāv Merkles koks.
Ja kāds mezgls, izpildot bloku N-D, atklāj kļūdu, tas balso pret priekšlikumu par bloku N. Tas izraisa atcelšanu bloka N-D-1 galīgajā stāvoklī, kam seko transakciju atkārtota izpilde no bloka N-D. Mezgls var pārbaudīt un labot savus izpildes rezultātus salīdzinājumā ar citiem tīkla mezgliem, pārbaudot savu Merkle sakni. Gaismas mezgli var pieprasīt pilnus mezglus, lai iegūtu Merkles stāvokļa mainīgo vērtību pierādījumus.
Paralēlā izpilde
Populāras paralēlās izpildes blokķēdes ir deterministiskas vai optimistiskas.
Monad izmanto optimistisku izpildi, lai panāktu paralēlu darījumu apstrādi. Šī metode ir nedaudz līdzīga spekulatīvai izpildei, ko izmanto centrālie procesori (CPU), kur procesori prognozē filiāles instrukciju ceļu un izpilda tās pirms laika.
Monad izpildes dzinējs sāk apstrādāt jaunus darījumus pat pirms iepriekšējo darījumu izpildes pabeigšanas, palielinot kopējo caurlaidspēju.
Tomēr šī stratēģija, ko sauc par optimistisku vienlaicības kontroli, var izraisīt kļūdas, ja turpmākie darījumi ir savstarpēji atkarīgi. Ja tiek atklāts konflikts (piemēram, kad divi darījumi mēģina mainīt vienu un to pašu konta atlikumu), ietekmētie darījumi tiek atkārtoti izpildīti, lai novērstu neatbilstības.
Sliktākajā gadījumā darījums ir jāizpilda divas reizes, bet kopumā tas rada tikai 1,5% pieskaitāmās izmaksas. Monad izmanto arī statisku kodu analizatoru, lai iepriekš paredzētu atkarības starp darījumiem. Šī statiskā analīze ļauj Monad identificēt iespējamos konfliktus pirms izpildes un, lai gan tā nenovērš visus konfliktus, palīdz optimizēt sākotnējo darījumu grafiku efektīvākai, optimistiskākai paralēlai izpildei.
Sei izmanto arī optimistisku paralēlizāciju, pieņemot, ka darījumi nekonfliktēs, bet tai ir atšķirīga pieeja konfliktu risināšanai. Paralēlizācijas procesa laikā Sei izseko, kuras stāvokļa daļas maina katrs darījums. Ja tā konstatē, ka divi darījumi ir pretrunā, kas nozīmē, ka tie mēģina modificēt vienu un to pašu stāvokļa daļu, sistēma uz laiku aptur izpildi un secīgi apstrādā konfliktējošās transakcijas, līdzīgi kā Monad.
Tomēr Monad izmantotais statiskā koda analizators ļauj efektīvāk plānot darījumus, tādējādi samazinot konfliktu iespējamību, savukārt Sei vienkārši risina konfliktus, kas rodas izpildes laikā.
Optimistiskā izpilde arī novērš nepieciešamību pēc sarežģītiem plānošanas un atkarības analīzes algoritmiem, kas nepieciešami deterministiskām metodoloģijām. Deterministiskā pieejā, ko izmanto Sui un Solana, darījumos pirms izpildes ir jādeklarē, kurām štata daļām tie piekļūs.
Šī sākotnējā deklarācija ļauj sistēmai plānot darījumus tā, lai izpildes laikā izvairītos no konfliktiem. Šīs metodes galvenā priekšrocība ir paredzamība: tā kā atkarības ir zināmas iepriekš, sistēma var nodrošināt, ka darījumi netraucē viens otru, tādējādi nodrošinot konsekventus un uzticamus rezultātus.
Tomēr šī paredzamība maksā. Lai analizētu atkarības un plānotu darījumus, ir nepieciešami sarežģīti algoritmi, kuriem ir jāņem vērā visas iespējamās mijiedarbības starp darījumiem un jāievieš skaitļošanas pieskaitāmās izmaksas, kā rezultātā palielinās aparatūras prasības.
Nepieciešamība pēc reāllaika analīzes un plānošanas arī palielina sarežģītību, jo sistēmai ir nepārtraukti jāuzrauga un jāpielāgo izpildes secība, lai novērstu konfliktus.
Turklāt deterministiska pieeja var saskarties ar problēmām efektīvas mērogošanas jomā. Palielinoties darījumu skaitam, atkarības analīzes sarežģītība pieaug eksponenciāli.
MonadDB
MonadDB ir pielāgota datu bāze, kas īpaši izstrādāta, lai optimizētu paralēlās izpildes ieviešanu. Tradicionālajās blokķēdēs, piemēram, Ethereum, piekļuve ievades/izvades (I/O) kļūst par nozīmīgu sašaurinājumu, galvenokārt tāpēc, ka šīs sistēmas balstās uz sinhronām I/O operācijām.
Procesiem ir jāgaida, līdz tiek pabeigta katra lasīšanas vai rakstīšanas darbība, pirms pāriet uz nākamo, kas ievērojami ierobežo caurlaidspēju un kopējo veiktspēju. Lai pārvarētu šo ierobežojumu, MonadDB izmanto asinhronās diska operācijas, kas ļauj sistēmai uzsākt vairākas lasīšanas un rakstīšanas darbības vienlaikus, negaidot, līdz katra tiks pabeigta. Tas uzlabo kopējo darījumu apstrādes ātrumu, īpaši, ja to apvieno ar paralēlu izpildi.
Secinājums
Monāde ir nozīmīgs sasniegums blokķēdes tehnoloģijā. Tas izmanto novatoriskas metodes, piemēram, optimistisku izpildi, atlikto izpildi un pielāgotu datu bāzi MonadDB, lai uzlabotu mērogojamību un efektivitāti.
Tā optimistiskā paralēlizācijas metode, kas ir līdzīga spekulatīvai izpildei centrālajos procesoros, nodrošina lielu caurlaidspēju, vienlaikus apstrādājot darījumus un atkārtoti izpildot konfliktējošās transakcijas tikai nepieciešamības gadījumā.
Apvienojumā ar statisko koda analīzi šī metode optimizē darījumu plānošanu un samazina konfliktu iespējamību. Salīdzinājumā ar citiem paralēliem EVM projektiem, piemēram, Sei un deterministiskām sistēmām, piemēram, Sui un Solana, Monad pieeja līdzsvaro efektivitāti un sarežģītību, nodrošinot stabilu risinājumu lieliem darījumu apjomiem.
MonadBFT, konveijera divfāžu bizantiešu defektu tolerantā algoritma ieviešana vēl vairāk nodrošina ātru bloku pabeigšanu un tīkla drošību.
Kamēr Monad gatavojas publiskajam testtīklam 2024. gada beigās un mainnet izvietošanai 2025. gada sākumā, tas sevi pozicionē kā milzīgu spēlētāju nākamās paaudzes mērogojamās blokķēdes platformās.