Wat is de Ethereum Virtual Machine?

Ethereum is een open-source blockchain-platform dat kan worden gebruikt voor het uitvoeren van cryptocurrency-transacties. Daarnaast wordt het platform gebruikt voor andere toepassingen zoals de uitvoering van decentrale applicaties (dapps), smart contracts en Non Fungible Tokens (NFT’s). De Ethereum-blockchain is wereldwijd toegankelijk via het internet. Om gebruik te kunnen maken van het netwerk is in principe alleen een geschikte crypto-wallet nodig. Een van de belangrijkste elementen van Ethereum is de zogenaamde Ethereum Virtual Machine (EVM), een rekenmachine die werkt als een gedecentraliseerde computer. De EVM vormt de basis voor de digitale structuur en de operationele processen van het blockchainnetwerk. Het is de ‘runtime-omgeving’ voor de uitvoering van bepaalde acties binnen het Ethereum-netwerk.

Smart contract, de Ethereum Virtual Machine speelt een belangrijke rol bij de uitvoering van smart contracts

Smart contracts

De Ethereum Virtual Machine is een volledig geïsoleerde ‘turingcomplete’ virtuele machine, die ervoor zorgt dat het blockchain-protocol op de juiste wijze wordt uitgevoerd. Alle nodes (knooppunten) binnen het netwerk draaien op de EVM om de consensus (overeenstemming) binnen de blockchain te garanderen. De EVM zorgt ervoor dat er extra functionaliteiten binnen het netwerk kunnen worden geïmplementeerd, zoals bijvoorbeeld smart contracts. Een smart contract is een computerprogramma waarmee juridisch relevante gebeurtenissen automatisch kunnen worden uitgevoerd, gecontroleerd of gedocumenteerd, volgens de specifieke voorwaarden van een contract of overeenkomst tussen twee of meerdere partijen.

 

EVM-bytecode

Smart contracts zijn in staat om EVM-bytcode uit te voeren. EVM-bytecode is een ‘low-level’ programmeertaal die is samengesteld uit een ‘high-level’ programmeertaal. EVM-bytecode is niet door mensen leesbaar, maar alleen door de Ethereum Virtual Machine. Een van de meest gebruikte programmeertalen voor het schrijven van smart contract-code is Solidity.

 

Volledig geïsoleerd

De EVM draait tussen het besturingssysteem en de applicatielaag, om de afhankelijkheid van het besturingssysteem te verminderen. De EVM wordt beschouwd als het onderdeel van de Ethereum-blockchain dat de uitvoering en implementatie van smart contracts mogelijk maakt. Dankzij de Ethereum Virtual Machine kunnen de smart contracts in principe op bijna alle computers worden uitgevoerd. De EVM is volledig geïsoleerd en dat betekent dat de EVM-bytecode geen toegang heeft tot het netwerk, het bestandssysteem of andere processen binnen de Ethereum blockchain.

 

Ethereum logo, Ethereum Virtual Machine

 

Twee soorten accounts

Ethereum kent twee accountsoorten. De zogenaamde Externally Owned Accounts (EOA) en contract-accounts. Beide accountsoorten hebben een adres en kunnen ETH ontvangen en versturen. Een Ethereum-contract bevat een intrinsiek computerprogramma en verricht op basis daarvan specifieke handelingen, na het ontvangen van een transactie met instructies. Deze handelingen kunnen zijn betalingen aan de Externally Owned Accounts of andere contracten, of transacties met instructies aan andere contracten. Elke EOA kan een contract in de Ethereum-blockchain plaatsen. Dit account is de eigenaar van het contractadres.

Geheime sleutel

Geheime digitale sleutel

Voor het aanmaken van een Externally Owned Account moet er een ‘geheime digitale sleutel’ worden gekozen, waarna op basis van een openbaar algoritme een adres wordt afgeleid. Eenmaal in het bezit van een geheime digitale sleutel kan de eigenaar beschikken over de bezittingen van dat specifieke adres. Iedereen kan in principe – zonder zelf de geheime digitale sleutel te kunnen bepalen – een met een geheime sleutel gecodeerde Ethereum-transactie decoderen. Daarbij kan worden bepaald of deze gemaakt is door iemand die de geheime sleutel van het opgegeven adres van de afzender kent en dus de legitieme eigenaar is van de bezittingen van dat adres.

 

 

Toestandsvariabelen

Een contract-account daarentegen beschikt wel over een adres, maar niet over een geheime digitale sleutel. Iedereen kan in principe een instructie naar een contract sturen. Of het contract daar gehoor aan geeft, hangt af van de inhoud van de instructie. Een contract is géén op de achtergrond werkend programma en voert géén acties uit zonder instructies. Een Ethereum-contract kan zogenaamde ‘toestandsvariabelen’ hebben. Deze toestandsvariabelen zijn variabelen waarvan de waarde na de uitvoering van een specifieke instructie blijft opgeslagen en later weer kan worden gebruikt. Het grote verschil tussen Externally Owned Accounts en contract-accounts is dat de EAO’s worden beheerd door de geheime digitale privésleutels en dat contract-accounts worden opgeslagen in de smart contracts.

 

Bedieningscodes

Een overeenkomst die is geschreven in smart contract-code (meestal in de programmeertaal Solidity), wordt omgezet in EVM-bytecode en kan vervolgens door de Ethereum Virtual machine worden geïnterpreteerd. Met behulp van zogenaamde ‘bedieningscodes’ kan de EVM daarna specifieke taken uitvoeren.

Blockchain

eWASM

Ethereum stapt over van het Proof of Work consensus-mechanisme, naar het Proof of Stake protocol. Tijdens “Serenity”, de vierde en laatste fase van de ontwikkeling van Ethereum 2.0, zal de Ethereum Virtual Machine worden vervangen door de virtuele machine “eWASM”. Deze virtuele machine is ontworpen voor verschillende programmeertalen, waaronder Solidity. Hierdoor zullen de schaalbaarheid en de interoperabiliteit van de Ethereum-blockchain waarschijnlijk snel toenemen. De bytecode van eWASM wordt ondersteund door alle webbrowsers, omdat deze is ingebouwd in een WWW-standaard.

 

Op de hoogte blijven van de ontwikkelingen op het gebied van blockchaintechnologie? Meld je dan nu aan voor de blogpost!

 

Meld je aan voor de blogpost!
Ik ga ermee akkoord dat mijn naam en e-mailadres worden gedeeld met Mailchimp.
Met de blogpost van Uitleg Blockchain blijf je automatisch op de hoogte van de nieuwste ontwikkelingen omtrent de blockchain technologie.
We hebben een hekel aan spam. Uw e-mailadres zal niet worden verkocht of gedeeld met anderen (afgezien van het marketing automation platform dat wij gebruiken voor onze e-maillijst).