Wat is de Ethereum Virtuele Machine (EVM)?
De Ethereum Virtual Machine (EVM) is software die de regels bepaalt voor het berekenen van de staat van het Ethereum netwerk van blok tot blok. De EVM is een kernonderdeel van Ethereum omdat het smart contracts uitvoert, transacties verwerkt en rekeningsaldi bijwerkt.
In eenvoudige woorden is de EVM een virtuele machine of een cloudcomputer die het Ethereum protocol aandrijft. Net als een computer voert het code uit en heeft het geheugen om informatie op te slaan. EVM is echter niet slechts één computer, maar een pool van duizenden cloudmachines over de hele wereld.
De belangrijkste functies van EVM |
|
De status van de Ethereum blockchain beheren |
Slimme contracten uitvoeren |
Gegevens opslaan |
Gaskosten berekenen |
Hoe werkt de EVM?
Ontwikkelaars op Ethereum schrijven hun smart contract code in een programmeertaal genaamd Solidity. De code wordt vervolgens vertaald naar bytecode zodat de EVM de instructies kan lezen.
In het proces van het vertalen van de code van Solidity naar bytecode, worden de instructies eerst opgesplitst in ‘opcodes’ of operatiecodes. Elke regel code wordt omgezet naar opcodes zodat de EVM precies weet hoe een transactie uitgevoerd moet worden.
Zoals we weten, vereist elke transactie op Ethereum een gas fee om te worden uitgevoerd. Daarom is de relatie tussen opcodes en gas fee ook belangrijk om te begrijpen hoe de EVM werkt.
In theorie, wanneer je gas fees betaalt, betaal je eigenlijk voor de opcodes om uitgevoerd te worden door de EVM. Hoe meer opcodes er zijn, hoe hoger je kosten zullen zijn.
Belangrijkste kenmerken van EVM
- Turing-complete virtuele machine
De EVM is ontworpen als een Turing-complete virtuele machine. Turing-complete verwijst naar een machine die elk probleem kan oplossen als deze de benodigde bronnen van tijd, energie en volledige instructies krijgt.
De Turing-compleetheid van Ethereum is het vermogen van het netwerk om toekomstige overeenkomsten van een smart contract te begrijpen en te implementeren.
- Deterministische code-uitvoering
De EVM voert code deterministisch uit. Een bepaald smart contract zal altijd dezelfde uitvoer produceren voor dezelfde invoer. Het maakt niet uit waar het smart contract wordt uitgevoerd of wie het uitvoert, de uitvoer zal altijd consistent zijn voor een bepaalde invoer.
- Isolatie
De EVM is ontworpen om geïsoleerd van de rest van het computersysteem te werken. Dit zorgt ervoor dat de smart contracts worden uitgevoerd binnen een veilige omgeving.
EVM architectuur
EVM-code: De bytecode die de EVM kan uitvoeren.
Staat: Ethereum is een grote datastructuur die informatie over rekeningen en balansen bevat. De staat van deze informatie verandert van blok tot blok terwijl de EVM nieuwe inputs verwerkt om deterministische outputs te produceren.
Transacties: Transacties zijn cryptografisch ondertekende instructies van gebruikers die de EVM uitvoert. Er zijn twee soorten instructies:
- Berichtoproepen kunnen eenvoudige transactie-instructies zijn voor het verzenden van ETH van de ene rekening naar de andere.
- Contractaanmaak zijn instructies om nieuwe slimme contracten aan te maken.
Ruimte: De EVM gebruikt drie ruimtecomponenten:
- Stack – tijdelijke opslag die een maximale capaciteit heeft van 1024 items. Alle operaties worden uitgevoerd op de stack.
- Geheugen – tijdelijke opslag die alleen toegankelijk is tijdens de uitvoering van slimme contracten. De inhoud wordt weggegooid zodra de contractuitvoering voltooid is.
- Opslag – persistent geheugen dat niet verloren gaat, omdat de gegevens zijn opgeslagen op de Ethereum blockchain. Vergeleken met stack en geheugen, resulteert het gebruik van opslaggeheugen in hogere gaskosten.
Gas: De hoeveelheid rekenkracht die nodig is om bewerkingen op een blockchainnetwerk uit te voeren. Voor elke EVM berekening zijn gas kosten nodig, anders wordt de transactie niet verwerkt.
Belang van EVM-compatibiliteit
Ethereum is uitgegroeid tot het meest waardevolle openbare blockchainnetwerk voor slimme contracten ter wereld.
Op 21 juni 2023 had Ethereum’s ecosysteem van gedecentraliseerde applicaties (dApps) een totale gesloten waarde (TVL) van $24,63 miljard. De op één na meest waardevolle keten Tron had volgens DefiLlama een TVL van $5 miljard. Dit toont een duidelijke marktvoorkeur voor Ethereum, dat zichzelf heeft gevestigd als de go-to blockchain voor gedecentraliseerde financiën (DeFi).
Veel blockchainnetwerken zijn ontworpen om EVM-compatibel te zijn. Hierdoor kan de blockchain Ethereum smart contracts uitvoeren. EVM-compatibiliteit stelt ontwikkelaars in staat om hun smart contracts eenvoudig uit te rollen over Ethereum en meerdere EVM-compatibele ketens.
EVM-compatibele netwerken kunnen gebruik maken van de enorme pool van Ethereum gebruikers, wat cruciaal kan zijn voor groei en massale adoptie.
Welke ketens zijn EVM-compatibel?
- Ethereum
- BNB Chain
- Polygon PoS
- Avalanche
- Optimisme
- Arbitrium
- Fantoom
- Maanboon
- Klaytn
- Cronos
Conclusie
De EVM software is het levensbloed van Ethereum omdat het de status van de blockchain onderhoudt en smart contracts uitvoert.
De razendsnelle groei van Ethereum heeft EVM tot een industriestandaard gemaakt, zozeer zelfs dat concurrerende blockchainnetwerken hun systemen ontwerpen om er compatibel mee te zijn.