Wat is een Ethereum Virtual Machine (EVM) en hoe werkt het?

Ether (ETH), de op een na grootste cryptocurrency in termen van marktkapitalisatie, is populair onder cryptocurrency-investeerders vanwege zijn native ETH-token. De native Solidity-programmeertaal en Ethereum Virtual Machine (EVM) spelen echter een belangrijke rol in de bewondering die het ontvangt van de ontwikkelaarsgemeenschap. Sterker nog, de Ethereum blockchain blijft aantrekken gedecentraliseerde applicatie (DApp) ontwikkelaars vanwege de flexibiliteit, het uitgebreide scala aan beschikbare ontwikkelaarstools en het grote gebruikersbestand van het platform.

De EVM vormt de kern van de architectuur van de blockchain en is het programma dat de applicatiecode uitvoert of slimme contracten, zoals ze worden genoemd, biedt een runtime-omgeving voor hen die bovenop het Ethereum-netwerk draait. Bovendien is de EVM Turing-compleet en kan dus elk programma gecodeerd in elke programmeertaal uitvoeren, waardoor ontwikkelaars eenvoudig aangepaste slimme contracten en DApps kunnen maken voor de snelgroeiende Web3 ruimte. 

Naast deze belangrijke functionaliteiten heeft EVM toegang tot alle knooppunten in het netwerk, zorgt het voor de uitvoering van slimme contracten en handelt het effectief alle transacties af op de Ethereum-blockchain, waardoor het een van de krachtigste virtuele machines is die er momenteel zijn.

Wat is Ethereum Virtual Machine (EVM) en hoe werkt het?

Geconceptualiseerd in 2013 door programmeur Vitalik Buterin, dankt het Ethereum-netwerk zijn fenomenale succes als de geprefereerde blockchain voor DApp-ontwikkelaars aan de Ethereum Virtual Machine (EVM) die werd ontworpen door Gavin Wood tijdens zijn ambtstermijn bij Ethereum. Geschreven in C++ en met behulp van de LLVM Project-compiler, is EVM een speciale statusmachine die continu werkt en waarvan de onveranderlijke bewerkingen de status van elk blok in de Ethereum-blockchain bepalen. 

De EVM regelt niet alleen wat knooppunten wel of niet kunnen doen met het gedistribueerde grootboek dat wordt bijgehouden door de Ethereum-blockchain, maar definieert ook de specifieke regels voor het veranderen van de status van blok naar blok. De laatste functionaliteit maakt de slimme contractfunctionaliteit mogelijk waar Ethereum bekend om staat.

Om te begrijpen wat een Ethereum Virtual Machine doet, moet men kijken naar elk van de verschillende functies die het dient om de goede werking van het Ethereum-netwerk te waarborgen. Voor elke input die het ontvangt, produceert de EVM een output die deterministisch van aard is en een wiskundige functie volgt in de eenvoudigste zin van het woord. 

De EVM werkt als een stackmachine die transiënte waarden van en naar een pushdown-stack pusht en heeft een diepte van 1024 items, waarvan elk een 256-bits woord is. Het onderhoudt ook een tijdelijk geheugen in de vorm van een byte-array, die verandert tussen twee transacties op de Ethereum-blockchain. Gecompileerde slimme contractcodes worden door de EVM uitgevoerd in de vorm van een verzameling van 140 standaard opcodes, terwijl andere blockchain-specifieke stack-operaties er ook door worden geïmplementeerd.

Schema's van een virtuele Ethereum-machine

De EVM heeft dus een machinestatus die van nature vluchtig is tijdens de verwerking van elke transactie en een globale of wereldstatus die informatie bevat over de verschillende accounts die op de Ethereum-blockchain worden bijgehouden. Alle acties worden beheerst door de EVM-code, die op zichzelf verschillende iteraties heeft ondergaan sinds de lancering van het Ethereum-netwerk in 2015, wat heeft geleid tot het bestaan ​​van verschillende implementaties van de EVM die momenteel in gebruik is.

In feite is de EVM verantwoordelijk voor het handhaven van een abstractieniveau tussen duizenden Ethereum-knooppunten en de uitvoerende code, en fungeert het als een functie die consistente resultaten levert zonder veel details aan klanten of knooppunten bekend te maken.

Wat is het doel van de Ethereum Virtual Machine (EVM)?

De EVM heeft op betrouwbare wijze alle applicaties die op het Ethereum-netwerk draaien van stroom voorzien zonder dat er grote downtime is gemeld. Voor ontwikkelaars fungeert de EVM als het overkoepelende programma dat kleinere uitvoerbare programma's uitvoert die in Ethereum bekend staan ​​als slimme contracten, terwijl ze de vrijheid krijgen om deze slimme contracten in te schrijven een verscheidenheid aan programmeertalen waaronder Solidity, Vyper, Python en Yul, onder andere.

Vanwege deze flexibiliteit die door de EVM wordt geboden, heeft de Ethereum-blockchain duizenden DApps voortgebracht in de gedecentraliseerde financiering (DeFi) en niet-fungible token (NFT) ruimte. Elk van deze DApps en de slimme contracten waaruit ze zijn gemaakt, worden omgezet in bytecode die wordt ingevoerd in de EVM en wordt verdeeld over alle knooppunten in het Ethereum-netwerk. Wanneer een slim contract wordt geïmplementeerd, is de EVM verantwoordelijk voor de communicatie met alle knooppunten en het doorvoeren van statuswijzigingen wanneer er een consensus is bereikt.

Er kan worden gezegd dat de EVM in elk Ethereum-knooppunt wordt geplaatst om slimme contracten uit te voeren met behulp van bytecode in plaats van de basisprogrammeertaal, waardoor de fysieke hostcomputer wordt geïsoleerd van de machinecode waarop Ethereum draait.

Voordelen van Ethereum Virtual Machine (EVM)

Vanwege de manier waarop de EVM werkt, kunnen ontwikkelaars code uitvoeren zonder zich zorgen te hoeven maken over de impact op de rest van het netwerk of de mogelijkheid dat het spijbelt met gegevens of persoonlijke bestanden die op een van de knooppuntcomputers worden gehost. 

Bovendien kunnen ze complexe slimme contracten uitvoeren op verschillende computeromgevingen met gedistribueerde consensus. Dit zorgt ervoor dat het uitvallen van een enkel knooppunt geen negatieve invloed heeft op de werking van de DApp of het smart contract, aangezien de EVM-code voor alle knooppunten hetzelfde blijft. Bovendien, aangezien accountgegevens op mondiaal niveau worden bijgehouden in de EVM, vinden ontwikkelaars het perfect voor het schrijven van aangepaste slimme contractcode en het maken van afzonderlijke DApps die toegang hebben tot deze wereldwijde dataset en betrouwbare uitvoer kunnen produceren. 

De heiligheid van de uitkomst maakt de EVM in het bijzonder en de Ethereum-blockchain in het algemeen zeer geschikt voor de duurzame uitbreiding van de DApps en het slimme contract Ethereum-ecosysteem. Voeg daarbij de bibliotheek met standaardcodes waaruit ontwikkelaars kunnen kiezen, een toenemend aantal EVM-compatibele laag-2 blockchains en een groot aantal potentiële EVM-use-cases mogelijk, en het is gemakkelijk in te zien waarom de EVM het voorkeursplatform is voor Web3-ontwikkeling.

Nadelen van Ethereum Virtual Machine (EVM)

Ondanks de vele voordelen die de EVM biedt, zijn er bepaalde nadelen waarmee ontwikkelaars en ondernemers die voortbouwen op Ethereum rekening moeten houden. De belangrijkste hiervan zijn de hoge transactiekosten of gaskosten die gepaard gaan met het uitvoeren van een slim contract op het Ethereum-netwerk. 

Deze vergoedingen worden betaald in ETH en variëren afhankelijk van de complexiteit van het contract en de netwerkcongestie op het moment van uitvoering, waardoor het voor ontwikkelaars en ondernemers absoluut noodzakelijk is om prijs hun diensten dienovereenkomstig. Aangezien Solidity de meest geprefereerde taal is voor codering op de EVM, impliceert dit bovendien dat ontwikkelaars er voldoende ervaring mee moeten hebben en een beetje technische expertise moeten hebben om efficiënte slimme contracten te creëren door het te gebruiken. 

Dit laatste is belangrijk omdat elke aanvullende berekeningsvereiste zal leiden tot hogere gaskosten en uiteindelijk nadelig zal blijken te zijn voor het succes van het project. Als ontwikkelaars ervoor kiezen om te coderen met andere talen, moeten ze voorzichtig zijn met het oplossen van inherente herhalingen in de code, aangezien de EVM ze toch zal compileren. Hoewel het upgraden van slimme contracten in een later stadium mogelijk is, brengt dit beveiligingsrisico's met zich mee bij het maken van een tussenliggend slim contract dat verwijst naar het adres van het oorspronkelijke slimme contract.

De toekomst van EVM's

Ondanks de revolutionaire veranderingen die de EVM teweeg heeft gebracht in het blockchain-ecosysteem, is deze technologie voor het lezen en uitvoeren van code wordt verbeterd door een aantal blockchain-projecten. 

met ketenoverschrijdende interoperabiliteit Omdat dit het belangrijkste aspect is voor ontwikkelaars, hebben veel EVM-compatibele blockchains standgehouden, waarvan de meeste een lager gas en snellere transactiesnelheden bieden dan het Ethereum-protocol. Als gevolg hiervan kunnen deze blockchains nu naadloos communiceren met Ethereum-gebruikers en vergemakkelijken ze geldovermakingen naar hun eigen netwerken met behulp van blockchain bruggen.

Echter, met het Ethereum-protocol dat de samenvoeging in september 2022 met succes voltooit, het volgende doel is om van te verschuiven EVM naar Ethereum WebAssembly (eWASM). Ontworpen om zeer modulair en platformonafhankelijk te zijn, wordt eWASM aangeprezen als de volgende game-changer voor het Ethereum-protocol en zou het andere blockchains kunnen motiveren om deze runtime-omgeving ook voor slimme contracten te gebruiken. Of eWASM's de EVM zullen vervangen als het meest vertrouwde mechanisme voor slimme contracten, is echter een vraag die alleen de tijd zal beantwoorden.