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

Ether (ETH), som er den næststørste kryptovaluta med hensyn til markedsværdi, er populær blandt kryptovaluta-investorer på grund af dens oprindelige ETH-token. Imidlertid er dets oprindelige Solidity-programmeringssprog og Ethereum Virtual Machine (EVM) medvirkende til den beundring, den modtager fra udviklerfællesskabet. Faktisk Ethereum blockchain fortsætter med at tiltrække decentral applikation (DApp) udviklere på grund af dens fleksibilitet, det store udvalg af tilgængelige udviklerværktøjer og platformens store brugerbase.

EVM danner kernen i blockchains arkitektur og er det program, der udfører sin applikationskode eller smarte kontrakter, som de kaldes, hvilket giver dem et køretidsmiljø, der kører oven på Ethereum-netværket. Derudover er EVM Turing-komplet og kan således køre ethvert program kodet i et hvilket som helst programmeringssprog, hvilket giver udviklere mulighed for nemt at oprette tilpassede smarte kontrakter og DApps til den spirende Web3 plads. 

Ud over disse vigtige funktionaliteter har EVM adgang til alle noder i netværket, håndterer smart kontraktudførelse og håndterer effektivt alle transaktioner på Ethereum blockchain, hvilket gør den til en af ​​de mest kraftfulde virtuelle maskiner, der findes i dag.

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

Konceptualiseret i 2013 af programmør Vitalik Buterin, Ethereum-netværket skylder sin fænomenale succes som den foretrukne blockchain for DApp-udviklere til Ethereum Virtual Machine (EVM), der blev designet af Gavin Wood under hans embedsperiode hos Ethereum. Skrevet i C++ og ved hjælp af LLVM Project-kompileren, er EVM en speciel tilstandsmaskine, der fungerer kontinuerligt, og hvis uforanderlige operationer bestemmer tilstanden for hver blok i Ethereum blockchain. 

EVM'en styrer ikke kun, hvad noder kan eller ikke kan gøre ved den distribuerede hovedbog, der vedligeholdes af Ethereum blockchain, men definerer også de specifikke regler for at skifte tilstand fra blok til blok. Sidstnævnte funktionalitet er det, der muliggør den smarte kontraktfunktionalitet, som Ethereum er blevet kendt for.

For at forstå, hvad en Ethereum Virtual Machine gør, skal man se på hver af de forskellige funktioner, den tjener for at sikre en gnidningsløs drift af Ethereum-netværket. For hvert input, den modtager, producerer EVM et output, der er deterministisk af natur og følger en matematisk funktion i den enkleste forstand. 

Fungerer som en stakmaskine, der skubber forbigående værdier til og fra en pushdown-stak, og EVM har en dybde på 1024 elementer, hvor hver af dem er et 256-bit ord. Det opretholder også en midlertidig hukommelse i form af et byte-array, som skifter mellem to transaktioner på Ethereum-blockchain. Smart kontraktkoder, der er blevet kompileret, udføres af EVM i form af en samling af 140 standard opkoder, mens andre blockchain-specifikke stak-operationer også implementeres af den.

Skema af en Ethereum Virtual Machine

Således har EVM en maskintilstand, der er flygtig af natur under behandlingen af ​​enhver transaktion og en global eller verdensstat, der indeholder oplysninger om de forskellige konti, der vedligeholdes på Ethereum blockchain. Alle handlinger er styret af EVM-koden, som i sig selv har gennemgået adskillige iterationer siden lanceringen af ​​Ethereum-netværket i 2015, hvilket førte til eksistensen af ​​forskellige implementeringer af den EVM, der i øjeblikket er i brug.

Faktisk er EVM ansvarlig for at opretholde et abstraktionsniveau mellem tusindvis af Ethereum-noder og den eksekverende kode, der fungerer som en funktion, der leverer ensartede resultater uden at afsløre mange detaljer til klienter eller knudepunkter.

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

EVM har pålideligt drevet alle applikationer, der kører på Ethereum-netværket, uden at der er rapporteret nogen større nedetid. For udviklere fungerer EVM som det overordnede program, der kører mindre eksekverbare programmer, der er kendt som smarte kontrakter i Ethereum, mens de giver dem friheden til at skrive disse smarte kontrakter i en række forskellige programmeringssprog herunder Solidity, Vyper, Python og Yul, blandt andre.

På grund af denne fleksibilitet, der tilbydes af EVM, har Ethereum blockchain affødt tusindvis af DApps i decentral finansiering (DeFi) , nonfungible token (NFT) plads. Hver af disse DApps og de smarte kontrakter, de er lavet af, konverteres til bytekode, der føres ind i EVM'en og distribueres blandt alle noder i Ethereum-netværket. Når en smart kontrakt er implementeret, er EVM ansvarlig for at kommunikere med alle noder og udføre tilstandsændringer, når der er opnået konsensus.

Det kan siges, at EVM er indsat i hver Ethereum-node for at udføre smarte kontrakter ved hjælp af bytecode i stedet for basisprogrammeringssproget, og dermed isolere den fysiske værtscomputer fra maskinkoden, som Ethereum kører på.

Fordele ved Ethereum Virtual Machine (EVM)

På grund af den måde, hvorpå EVM fungerer, kan udviklere eksekvere kode uden at bekymre sig om dens indvirkning på resten af ​​netværket eller muligheden for, at den spiller pjækker med data eller personlige filer, der er hostet på nogen af ​​node-computere. 

Derudover kan de køre komplekse smarte kontrakter på forskellige computermiljøer med distribueret konsensus. Dette sikrer, at svigt af en enkelt node ikke har nogen negativ indvirkning på driften af ​​DApp eller smart kontrakt, da EVM-koden forbliver den samme på tværs af alle noder. Desuden, da kontodata vedligeholdes på et globalt niveau i EVM, finder udviklere det perfekt til at skrive tilpasset smart kontraktkode og skabe særskilte DApps, der kan få adgang til dette globale datasæt og producere pålidelige output. 

Helligheden af ​​resultatet er det, der gør EVM, i særdeleshed, og Ethereum blockchain generelt velegnet til den bæredygtige udvidelse af DApps og smart kontrakt Ethereum-økosystemet. Tilføj hertil biblioteket med standardkoder, der er tilgængelige for udviklere at vælge imellem, et stigende antal EVM-kompatible lag-2 blockchains og et stort antal potentielle EVM-brugssager muligt, og det er let at se, hvorfor EVM er den foretrukne platform for Web3 udvikling.

Ulemper ved Ethereum Virtual Machine (EVM)

På trods af de mange fordele, som EVM tilbyder, er der visse ulemper, der skal overvejes af udviklere og iværksættere, der bygger på Ethereum. Den vigtigste af disse er de høje transaktionsgebyrer eller gasomkostninger forbundet med at køre en smart kontrakt på Ethereum-netværket. 

Betales i ETH varierer disse gebyrer afhængigt af kontraktens kompleksitet og netværksbelastningen på udførelsestidspunktet, hvilket gør det bydende nødvendigt for udviklere og iværksættere at prissætte deres ydelser i overensstemmelse hermed. Derudover, da Solidity er det mest foretrukne sprog til kodning på EVM, indebærer det, at udviklere skal have tilstrækkelig erfaring med det og besidde et minimum af teknisk ekspertise for at skabe effektive smarte kontrakter ved at bruge det. 

Sidstnævnte er vigtigt, da ethvert yderligere beregningskrav vil føre til højere gasomkostninger og i sidste ende vise sig at være skadeligt for projektets succes. Hvis udviklere vælger at kode ved hjælp af andre sprog, skal de være forsigtige med at løse eventuelle iboende gentagelser i koden, da EVM vil fortsætte med at kompilere dem alligevel. Selvom det er muligt at opgradere smarte kontrakter på et senere tidspunkt, kommer det med sikkerhedsrisici forbundet med at oprette en mellemliggende smart kontrakt, der refererer til adressen på den originale smarte kontrakt.

Fremtiden for EVM'er

På trods af de revolutionerende ændringer, som EVM har medført til blockchain-økosystemet, er denne teknologi til at læse og udføre kode bliver forbedret af en række blockchain-projekter. 

Med interoperabilitet på tværs af kæder som det vigtigste aspekt for udviklere, er mange EVM-kompatible blockchains kommet op, hvor de fleste tilbyder lavere gas og hurtigere transaktionshastigheder end Ethereum-protokollen. Som et resultat er disse blockchains nu i stand til at interagere med Ethereum-brugere problemfrit og letter pengeoverførsler til deres egne netværk ved hjælp af blockchain broer.

Men med Ethereum-protokollen, der med succes afsluttede sammenlægningen i september 2022, næste mål er at skifte fra EVM til Ethereum WebAssembly (eWASM). Designet til at være meget modulopbygget og platform-uafhængig, eWASM bliver udråbt som den næste game-changer for Ethereum-protokollen og kan motivere andre blockchains til også at anvende dette runtime-miljø til smarte kontrakter. Hvorvidt eWASM'er vil erstatte EVM som den mest betroede mekanisme til smarte kontrakter, er et spørgsmål, som kun tiden vil svare på.