Wat is Ethereum Virtual Machine?

De Ethereum Virtual Machine is een enkele entiteit die onderhouden wordt door duizenden verbonden computers die een Ethereum client runnen.
Dit artikel is bedoeld om je een idee te geven wat de EVM eigenlijk is.
Wie houdt de Ethereum blockchain bij?
Iedereen kan dit netwerk onderhouden door een node te worden. Je downloadt wat software voor op je PC en voilà. Dan ben je nog geen validator, dus het levert slechts voordelen op voor het Ethereum netwerk, je krijgt geen transactiekosten en mag geen nieuwe blokken maken met een node.
Het Ethereum protocol heeft als enige doel het bewaren van de continue, ononderbroken en onveranderbare werkzaamheid van deze “special state machine”. Hierin “leven” alle Ethereum accounts en smart contracts. Elk blok op de blockchain heeft slechts één canonical state en de EVM definieert wat de regels zijn voor het berekenen van een nieuwe valide state van blok tot blok.
De analogie van een gedistribueerd grootboek (distributed ledger) wordt vaak gebruikt om blockchains als Bitcoin te omschrijven. Hiermee kun je een gedecentraliseerde cryptocurrency fundamentele tools voor cryptografie laten gebruiken. Het grootboek houdt bij wat iemand wel en niet kan doen om het te veranderen, bijvoorbeeld het verbieden van meer uitgeven dan je gekregen hebt.

Scan de QR-code of klik de link om lid te worden bij Whitebit en je exclusieve korting te claimen op de toch al goedkope transactiekosten van 0,1% bij deze exchange. Maak zelf ook referrals en krijg 40-50% commissie over hun transactiekosten.
Smart contracts op Ethereum
Ethereum heeft zijn eigen munt, Ether of ook wel ETH genoemd, die vrijwel exact dezelfde regels volgt, maar maakt ook een veel krachtigere functie mogelijk: smart contracts. Bij Ethereum kun je de analogie van de gedistribueerde machine state gebruiken. Ethereum’s state is een grote datastructuur die niet alleen alle accounts en balansen bevat, maar ook een machine state die van blok tot blok kan veranderen volgens een vooraf vastgestelde set regels en die willekeurige machinecode kan uitvoeren. De specifieke regels om de staat te veranderen van blok tot blok worden gedefinieerd door de EVM.

Door deze smart contracts op hun EVM kan Ethereum ook communiceren met andere blockchains die gebruik maken van hun EVM. Deze interoperabiliteit geeft een extra zetje aan het succes van Ethereum. Hiermee worden decentrale apps (dApps) mogelijk en die worden erg veel gebruikt.
Wiskunde op Ethereum Virtual Machine
De EVM gedraagt zich als een wiskundige functie: gegeven een bepaalde input genereert het een deterministische output. Ethereum heeft een “state transition function”. Als je een oude geldige staat hebt van het netwerk en een nieuwe set van geldige transacties, dan zorgt de state transition function ervoor dat er een nieuwe geldige output state wordt gegenereerd van het Ethereum netwerk.
Met hun “modified Merkle Patricia Trie”, een eigen soort Merkle tree, zorgt Ethereum voor sterke efficiëntie in hun database.
De EVM voert een “stack machine” uit met een diepte van 1.024 items. Elk van deze items is een 256 bits woord dat gekozen is om mee te werken. Standaardwoorden kun je in de onderstaande tekening zien, zoals storage en gas.

EVM “opcodes”, zoals AND, OR, ADD en dergelijke worden hierbij gebruikt om standaard wiskundige mogelijkheden te openen. Verder worden er woorden gebruikt die specifiek zijn voor de Ethereum blockchain, zoals ADDRESS of BALANCE.
Computertaal op de EVM
Alle implementaties van de Ethereum Virtual Machine moeten gehoorzamen aan de specificaties die de Ethereum Yellow Paper heeft beschreven. Ethereum execution clients zijn er voor JavaScript, C++ en Python.
Smart contracts voor de EVM worden over het algemeen geschreven in Solidity of Vyper.
Conclusie
De Ethereum Virtual Machine is een virtuele computer die de staat van de Ethereum blockchain bij kan houden. Hij maakt smart contracts en dApps mogelijk en is hierdoor een essentieel onderdeel van het grote succes dat Ethereum heet.

