Ethereum Virtual Machine (EVM) dizajniran je kao runtime okruženje za Ethereum pametne ugovore. EVM funkcionira slično decentraliziranom računalu s milijunima izvršnih projekata. Služi kao virtualni stroj koji podržava cijeli operativni sustav Ethereuma i odgovoran je za izvršenje i implementaciju pametnih ugovora.
EVM se nalazi na vrhu hardvera i mrežnih slojeva čvorova Ethereuma. Potpun je Turing i stoga može izvršiti bilo koji program napisan u bilo kojem programskom jeziku, dopuštajući programerima da s lakoćom pišu pametne ugovore i decentralizirane aplikacije (DApps) za područje Web3 u nastajanju.
Njegova je primarna funkcija izračunati status mreže te izvršiti i kompajlirati različite vrste koda pametnog ugovora u format čitljiv ljudima poznat kao “Bytecode”. To omogućuje Ethereum čvorovima da identificiraju pametne ugovore raspoređene na EVM-kompatibilnim lancima kao što su Polygon ili Avalanche i omogućuje programerima da jednostavno premjeste svoje Dapp-ove ili tokene iz Ethereuma u druge EVM-kompatibilne lance. Ove bitne značajke EVM-a čine ga jednim od trenutno najmoćnijih virtualnih računala.
Kako radi?
Mreža Ethereum, koju je 2013. osmislio programer Vitalik Buterin, svoj fenomenalni uspjeh kao blockchain izbora za DApp programere duguje Ethereum Virtual Machine (EVM) koji je kreirao Gavin Wood tijekom svog zaposlenja u Ethereumu. EVM je određeni stroj stanja koji stalno radi i čije nepromjenjive radnje definiraju stanje svakog bloka u Ethereum blockchainu. Napisan je u C++ i koristi LLVM Project kompajler.
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. Ova značajka omogućuje funkcionalnost pametnog ugovora po kojoj je Ethereum postao poznat.
EVM je virtualni stroj temeljen na stogu, što znači da radi na podatkovnoj strukturi zadnji ušao, prvi izašao (LIFO) poznatoj kao stog s dubinom od 1024 stavke, od kojih je svaka 256-bitna riječ. 256-bitna veličina riječi EVM-a omogućuje izvorno raspršivanje i operacije eliptične krivulje, osiguravajući da samo zakoniti vlasnici mogu koristiti sredstva. Za svaki ulaz koji primi, EVM generira izlaz koji je deterministički i matematički sličan funkciji u najosnovnijem smislu. Ovaj stog se koristi za čuvanje i manipuliranje podacima tijekom izvršenja pametnih ugovora. Kada se pametni ugovor izvrši na EVM-u, kod se izvodi kroz niz operacija koje manipuliraju stogom.
Štoviše, EVM podržava niz programskih jezika, uključujući Vyper i Solidity, pri čemu je Solidity najčešće korišteni jezik za izvorni kod pametnih ugovora. Ovi se programski jezici primjenjuju za stvaranje pametnih ugovora, koji se zatim transformiraju u bajt kod potreban za EVM. On-chain bajt kod, također poznat kao runtime bajt kod, naknadno se pretvara u operativni kod koji EVM računalni mehanizam tumači kako bi izvršio navedene aktivnosti.








