Što je Ethereum Virtual Machine (EVM) i kako radi?

Eter (ETH), koja je druga najveća kriptovaluta u smislu tržišne kapitalizacije, popularna je među investitorima u kriptovalute zbog svog izvornog ETH tokena. Međutim, njegov izvorni programski jezik Solidity i Ethereum Virtual Machine (EVM) ključni su za pohvale koje dobiva od zajednice programera. Zapravo, ethereum blockchain nastavlja privlačiti decentralizirana aplikacija (DApp) programerima zbog svoje fleksibilnosti, širokog raspona dostupnih razvojnih alata i velike korisničke baze platforme.

Čineći jezgru blockchain arhitekture, EVM je program koji izvršava svoj aplikacijski kod ili pametni ugovori, kako se nazivaju, pružajući im run-time okruženje koje radi na Ethereum mreži. Štoviše, EVM je Turing-kompletan i stoga može pokrenuti bilo koji program kodiran u bilo kojem programskom jeziku, omogućujući razvojnim programerima da jednostavno kreiraju prilagođene pametne ugovore i DApps za rastuće Web3 prostor. 

Uz ove važne funkcionalnosti, EVM ima pristup svim čvorovima u mreži, upravlja izvršavanjem pametnih ugovora i učinkovito upravlja svim transakcijama na Ethereum blockchainu, što ga čini jednim od najmoćnijih virtualnih strojeva koji danas postoje.

Što je Ethereum Virtual Machine (EVM) i kako funkcionira?

Konceptualizirao programer 2013 Vitalik Buterin, Ethereum mreža duguje svoj fenomenalan uspjeh kao preferirani blockchain za DApp programere Ethereum Virtual Machine (EVM) koji je dizajnirao Gavin Wood tijekom svog mandata u Ethereumu. Napisan u C++ i koristeći LLVM Project kompajler, EVM je poseban stroj stanja koji radi kontinuirano i čije nepromjenjive operacije određuju stanje svakog bloka u Ethereum blockchainu. 

EVM ne samo da upravlja što čvorovi mogu ili ne mogu učiniti distribuiranoj knjizi koju održava Ethereum blockchain, već također definira specifična pravila promjene stanja od bloka do bloka. Potonja funkcionalnost je ono što omogućuje funkcionalnost pametnog ugovora po kojoj je Ethereum postao poznat.

Da bismo razumjeli što Ethereum Virtual Machine radi, potrebno je pogledati svaku od različitih funkcija kojima služi u osiguravanju glatkog rada Ethereum mreže. Za svaki ulaz koji primi, EVM proizvodi izlaz koji je determinističke prirode i slijedi matematičku funkciju u najjednostavnijem smislu. 

Djelujući poput stroja za slaganje koji gura prolazne vrijednosti na i iz potisnog snopa, EVM ima dubinu od 1024 stavke, a svaka od njih je 256-bitna riječ. Također održava privremenu memoriju u obliku niza bajtova, koji se mijenja između dvije transakcije na Ethereum blockchainu. Kodove pametnih ugovora koji su sastavljeni izvršava EVM u obliku zbirke od 140 standardnih operacijskih kodova, dok on također implementira druge operacije skupa specifične za blockchain.

Shema Ethereum virtualnog stroja

Stoga EVM ima stanje stroja koje je po prirodi promjenjivo tijekom obrade bilo koje transakcije i globalno ili svjetsko stanje koje sadrži informacije o različitim računima koji se održavaju na Ethereum blockchainu. Svim radnjama upravlja EVM kod, koji je sam po sebi prošao kroz nekoliko iteracija od pokretanja mreže Ethereum 2015., što je dovelo do postojanja različitih implementacija EVM-a koje se trenutno koriste.

Zapravo, EVM je odgovoran za održavanje razine apstrakcije između tisuća Ethereum čvorova i izvršnog koda, djelujući kao funkcija koja daje dosljedne rezultate bez otkrivanja mnogih detalja klijentima ili čvorovima.

Koja je svrha Ethereum Virtual Machine (EVM)?

EVM pouzdano napaja sve aplikacije koje rade na Ethereum mreži bez prijavljenih većih zastoja. Za programere, EVM djeluje kao sveobuhvatni program koji pokreće manje izvršne programe koji su poznati kao pametni ugovori u Ethereumu, dok im pruža slobodu pisanja tih pametnih ugovora u niz programskih jezika među ostalima uključujući Solidity, Vyper, Python i Yul.

Zbog ove fleksibilnosti koju nudi EVM, Ethereum blockchain iznjedrio je tisuće DApp-ova u decentralizirane financije (DeFi) i nepromjenjivi token (NFT) prostor. Svaki od tih DApps i pametnih ugovora od kojih se oni sastoje pretvaraju se u bajt kod koji se unosi u EVM i distribuira među svim čvorovima u Ethereum mreži. Kada se implementira pametni ugovor, EVM je odgovoran za komunikaciju sa svim čvorovima i učinak promjena stanja kada se postigne konsenzus.

Može se reći da je EVM umetnut unutar svakog Ethereum čvora za izvršavanje pametnih ugovora korištenjem bajtkoda umjesto osnovnog programskog jezika, čime se fizičko glavno računalo izolira od strojnog koda na kojem se Ethereum pokreće.

Prednosti Ethereum Virtual Machine (EVM)

Zbog načina na koji EVM radi, programeri mogu izvršavati kod bez brige o njegovom utjecaju na ostatak mreže ili mogućnosti da se poigrava s podacima ili osobnim datotekama smještenim na bilo kojem čvornom računalu. 

Osim toga, mogu pokrenuti složene pametne ugovore u različitim računalnim okruženjima s distribuiranim konsenzusom. Ovo osigurava da kvar jednog čvora nema nikakav negativan utjecaj na rad DApp-a ili pametnog ugovora, jer EVM kod ostaje isti na svim čvorovima. Štoviše, budući da se podaci o računu održavaju na globalnoj razini u EVM-u, programeri ga smatraju savršenim za pisanje prilagođenog koda pametnog ugovora i stvaranje različitih DApp-ova koji mogu pristupiti ovom globalnom skupu podataka i proizvesti pouzdane rezultate. 

Svetost ishoda ono je što posebno EVM i Ethereum blockchain čini prikladnima za održivo širenje DApps i Ethereum ekosustava pametnih ugovora. Dodajte ovome biblioteku standardnih kodova dostupnih programerima na izbor, sve veći broj EVM-kompatibilnih blockchains sloja 2 i veliki broj potencijalnih mogućih slučajeva upotrebe EVM-a, i lako je vidjeti zašto je EVM preferirana platforma za Web3 razvoj.

Nedostaci Ethereum Virtual Machine (EVM)

Unatoč mnogim prednostima koje nudi EVM, postoje određene mane koje programeri i poduzetnici koji grade na Ethereumu moraju uzeti u obzir. Najvažniji od njih su visoke transakcijske naknade ili troškovi plina povezani s pokretanjem pametnog ugovora na mreži Ethereum. 

Plaćane u ETH, ove naknade variraju ovisno o složenosti ugovora i zagušenju mreže u vrijeme izvršenja, zbog čega je programerima i poduzetnicima imperativ cijene svoje usluge u skladu s tim. Osim toga, budući da je Solidity najpoželjniji jezik za kodiranje na EVM-u, to podrazumijeva da programeri moraju imati odgovarajuće iskustvo s njim i posjedovati minimalnu tehničku stručnost za stvaranje učinkovitih pametnih ugovora pomoću njega. 

Potonje je važno budući da će svaki dodatni zahtjev za proračunom dovesti do većih troškova plina i na kraju se pokazati štetnim za uspjeh projekta. Ako programeri odluče kodirati korištenjem drugih jezika, moraju biti oprezni u rješavanju bilo kakvih inherentnih ponavljanja u kodu budući da će EVM svejedno nastaviti s kompajliranjem. Iako je nadogradnja pametnih ugovora moguća u kasnijoj fazi, dolazi sa sigurnosnim rizicima povezanim sa stvaranjem posredničkog pametnog ugovora koji upućuje na adresu izvornog pametnog ugovora.

Budućnost EVM-a

Bez obzira na revolucionarne promjene koje je EVM donio u blockchain ekosustav, ova tehnologija za čitanje i izvršavanje koda se poboljšava brojnim blockchain projektima. 

S međulančana interoperabilnost Budući da je najvažniji aspekt za programere, mnogi lanci blokova kompatibilni s EVM-om su se podupirali, a većina nudi niži gas i veće brzine transakcija od Ethereum protokola. Kao rezultat toga, ovi lanci blokova sada mogu neprimjetno komunicirati s korisnicima Ethereuma i olakšavaju prijenos sredstava na vlastite mreže koristeći blockchain mostovi.

Međutim, uz Ethereum protokol koji je uspješno dovršio Spajanje u rujnu 2022. sljedeći cilj je pomak od EVM u Ethereum WebAssembly (eWASM). Dizajniran da bude visoko modularan i neovisan o platformi, eWASM se reklamira kao sljedeća promjena pravila za Ethereum protokol i mogao bi motivirati druge lance blokova da koriste ovo okruženje za izvršavanje i za pametne ugovore. Međutim, hoće li eWASM zamijeniti EVM kao najpouzdaniji mehanizam za pametne ugovore pitanje je na koje će samo vrijeme dati odgovor.