Hva er en Ethereum Virtual Machine (EVM) og hvordan fungerer den?

Ether (ETH), som er den nest største kryptovalutaen når det gjelder markedsverdi, er populær blant kryptovalutainvestorer på grunn av dets opprinnelige ETH-token. Imidlertid er dets opprinnelige Solidity-programmeringsspråk og Ethereum Virtual Machine (EVM) medvirkende til hyllingen den mottar fra utviklerfellesskapet. Faktisk Ethereum blockchain fortsetter å tiltrekke seg desentralisert applikasjon (DApp) utviklere på grunn av sin fleksibilitet, det store utvalget av utviklerverktøy tilgjengelig og plattformens store brukerbase.

EVM danner kjernen i blokkjedens arkitektur, og er programmet som kjører applikasjonskoden eller smarte kontrakter, som de kalles, og gir dem et kjøretidsmiljø som kjører på toppen av Ethereum-nettverket. Dessuten er EVM Turing-komplett og kan dermed kjøre et hvilket som helst program kodet i et hvilket som helst programmeringsspråk, og dermed lar utviklere enkelt lage tilpassede smarte kontrakter og DApps for den spirende Web3 plass. 

I tillegg til disse viktige funksjonene har EVM tilgang til alle noder i nettverket, håndterer smart kontraktsutførelse og håndterer effektivt alle transaksjoner på Ethereum blockchain, noe som gjør den til en av de kraftigste virtuelle maskinene som eksisterer i dag.

Hva er Ethereum Virtual Machine (EVM) og hvordan fungerer det?

Konseptualisert i 2013 av programmerer Vitalik Buterin, skylder Ethereum-nettverket sin fenomenale suksess som den foretrukne blokkjeden for DApp-utviklere til Ethereum Virtual Machine (EVM) som ble designet av Gavin Wood under hans periode i Ethereum. Skrevet i C++ og ved hjelp av LLVM Project-kompilatoren, er EVM en spesiell tilstandsmaskin som opererer kontinuerlig og hvis uforanderlige operasjoner bestemmer tilstanden til hver blokk i Ethereum-blokkjeden. 

EVM styrer ikke bare hva noder kan eller ikke kan gjøre med den distribuerte hovedboken som vedlikeholdes av Ethereum-blokkjeden, men definerer også de spesifikke reglene for å endre tilstand fra blokk til blokk. Sistnevnte funksjonalitet er det som muliggjør den smarte kontraktsfunksjonaliteten som Ethereum har blitt kjent for.

For å forstå hva en Ethereum Virtual Machine gjør, må man se på hver av de forskjellige funksjonene den tjener for å sikre jevn drift av Ethereum-nettverket. For hver input som den mottar, produserer EVM en utgang som er deterministisk av natur og følger en matematisk funksjon i enkleste forstand. 

EVM fungerer som en stabelmaskin som skyver forbigående verdier til og fra en pushdown-stabel, og har en dybde på 1024 elementer, der hver av dem er et 256-bits ord. Den opprettholder også et midlertidig minne i form av en byte-array, som veksler mellom to transaksjoner på Ethereum-blokkjeden. Smarte kontraktskoder som er kompilert blir utført av EVM i form av en samling av 140 standard opkoder, mens andre blokkjedespesifikke stackoperasjoner også implementeres av den.

Skjematisk av en virtuell Ethereum-maskin

Dermed har EVM en maskintilstand som er flyktig av natur under behandlingen av enhver transaksjon og en global eller verdensstat som inneholder informasjon om de forskjellige kontoene som opprettholdes på Ethereum-blokkjeden. Alle handlinger er styrt av EVM-koden, som i seg selv har gått gjennom flere iterasjoner siden lanseringen av Ethereum-nettverket i 2015, noe som førte til eksistensen av forskjellige implementeringer av EVM som for tiden er i bruk.

Faktisk er EVM ansvarlig for å opprettholde et abstraksjonsnivå mellom tusenvis av Ethereum-noder og den utførende koden, og fungerer som en funksjon som leverer konsistente resultater uten å røpe mange detaljer til klienter eller noder.

Hva er formålet med Ethereum Virtual Machine (EVM)?

EVM har drevet pålitelig drift av alle applikasjoner som kjører på Ethereum-nettverket uten noen større nedetid rapportert. For utviklere fungerer EVM som det overordnede programmet som kjører mindre kjørbare programmer som er kjent som smarte kontrakter i Ethereum, samtidig som de gir dem friheten til å skrive disse smarte kontraktene i en rekke programmeringsspråk inkludert Solidity, Vyper, Python og Yul, blant andre.

På grunn av denne fleksibiliteten som tilbys av EVM, har Ethereum blockchain skapt tusenvis av DApps i desentralisert finans (DeFi) og ikke-fungible token (NFT) rom. Hver av disse DAppene og de smarte kontraktene de er laget av, konverteres til bytekode som mates inn i EVM og distribueres blant alle noder i Ethereum-nettverket. Når en smart kontrakt er distribuert, er EVM ansvarlig for å kommunisere med alle noder og utføre tilstandsendringer når en konsensus er oppnådd.

Det kan sies at EVM er satt inn i hver Ethereum-node for å utføre smarte kontrakter ved å bruke bytekode i stedet for basisprogrammeringsspråket, og dermed isolere den fysiske vertsdatamaskinen fra maskinkoden som Ethereum kjører på.

Fordeler med Ethereum Virtual Machine (EVM)

På grunn av måten EVM fungerer på, kan utviklere kjøre kode uten å bekymre seg for dens innvirkning på resten av nettverket eller muligheten for at den skuler med data eller personlige filer som ligger på noen av nodedatamaskinene. 

I tillegg kan de kjøre komplekse smarte kontrakter på forskjellige datamiljøer med distribuert konsensus. Dette sikrer at svikt i en enkelt node ikke har noen negativ innvirkning på driften av DApp eller smart kontrakt, siden EVM-koden forblir den samme på tvers av alle noder. Siden kontodata opprettholdes på globalt nivå i EVM, finner utviklere det dessuten perfekt for å skrive tilpasset smart kontraktskode og lage distinkte DApps som kan få tilgang til dette globale datasettet og produsere pålitelige utdata. 

Helligheten av resultatet er det som gjør EVM, spesielt, og Ethereum-blokkjeden generelt godt egnet for bærekraftig utvidelse av DApps og smartkontrakt Ethereum-økosystemet. Legg til dette biblioteket med standardkoder tilgjengelig for utviklere å velge mellom, et økende antall EVM-kompatible lag-2 blokkjeder og et stort antall potensielle EVM-brukssaker mulig, og det er lett å se hvorfor EVM er den foretrukne plattformen for Web3 utvikling.

Ulemper med Ethereum Virtual Machine (EVM)

Til tross for de mange fordelene som tilbys av EVM, er det visse ulemper som må vurderes av utviklere og gründere som bygger på Ethereum. Den viktigste av disse er de høye transaksjonsgebyrene eller gasskostnadene forbundet med å drive en smart kontrakt på Ethereum-nettverket. 

Disse avgiftene, betalt i ETH, varierer avhengig av kompleksiteten til kontrakten og nettverksbelastningen på utførelsestidspunktet, noe som gjør det avgjørende for utviklere og gründere å prise tjenestene deres deretter. I tillegg, siden Solidity er det mest foretrukne språket for koding på EVM, innebærer det at utviklere må ha tilstrekkelig erfaring med det og ha et minimum av teknisk ekspertise for å lage effektive smarte kontrakter ved å bruke det. 

Det siste er viktig siden ethvert ekstra beregningskrav vil føre til høyere gasskostnader og til slutt vise seg å være skadelig for prosjektets suksess. Hvis utviklere velger å kode med andre språk, må de være forsiktige med å løse eventuelle iboende repetisjoner i koden siden EVM vil fortsette å kompilere dem uansett. Selv om oppgradering av smarte kontrakter er mulig på et senere tidspunkt, kommer det med sikkerhetsrisikoer forbundet med å opprette en mellomledd smart kontrakt som refererer til adressen til den opprinnelige smarte kontrakten.

Fremtiden til EVM-er

Til tross for de revolusjonerende endringene forårsaket av EVM i blockchain-økosystemet, er denne teknologien for lesing og utførelse av kode blir forbedret av en rekke blokkjedeprosjekter. 

Med interoperabilitet på tvers av kjeder som det viktigste aspektet for utviklere, har mange EVM-kompatible blokkjeder dukket opp, med de fleste som tilbyr lavere gass og raskere transaksjonshastigheter enn Ethereum-protokollen. Som et resultat er disse blokkjedene nå i stand til å samhandle sømløst med Ethereum-brukere og tilrettelegger for pengeoverføringer til sine egne nettverk ved å bruke blockchain broer.

Imidlertid, med Ethereum-protokollen som fullførte sammenslåingen i september 2022, neste mål er å skifte fra EVM til Ethereum WebAssembly (eWASM). Designet for å være svært modulært og plattformuavhengig, blir eWASM utpekt som den neste spillveksleren for Ethereum-protokollen og kan motivere andre blokkjeder til å bruke dette kjøretidsmiljøet for smarte kontrakter også. Hvorvidt eWASM-er vil erstatte EVM som den mest pålitelige mekanismen for smarte kontrakter er imidlertid et spørsmål som bare tiden vil svare på.