De EVM (Ethereum Virtual Machine) is een gedecentraliseerde computer die smart contracts uitvoert op het Ethereum-netwerk. Het zorgt voor consensus en interoperabiliteit tussen nodes.
EVM (Ethereum Virtual Machine) uitgelegd
De Ethereum Virtual Machine (EVM) is het hart van het Ethereum (ETH) netwerk en fungeert als een gedecentraliseerde Turing-complete computer. Het is ontworpen om smart contracts te draaien, wat in feite zelfuitvoerende contracten zijn waarbij de voorwaarden van de overeenkomst direct zijn geschreven in programmeercode.
Smart contracts zijn scripts die worden geschreven in programmeertalen zoals Solidity en Vyper. Eenmaal op de Ethereum-blockchain geplaatst, kunnen ze worden uitgevoerd door de EVM. Hier zijn enkele kernpunten om te overwegen:
- Gedecentraliseerd: In tegenstelling tot traditionele systemen waarbij er één centrale instantie is die de code uitvoert, draaien op Ethereum talloze nodes (computers) die elk een kopie van de EVM hebben. Elke keer dat een smart contract wordt aangeroepen, wordt het uitgevoerd op al deze machines, wat zorgt voor consensus en beveiliging.
- Turing-complete: Dit betekent dat de EVM in staat is om elke berekening uit te voeren, mits er genoeg rekenkracht en tijd beschikbaar is. Hierdoor kunnen ontwikkelaars complexe applicaties bouwen.
- Gas: Omdat de EVM op talloze machines over de hele wereld draait, is er een mechanisme nodig om ervoor te zorgen dat de code efficiënt wordt uitgevoerd en niet oneindig blijft lopen. “Gas” is een eenheid die de hoeveelheid werk aangeeft die nodig is om operaties uit te voeren. Gebruikers betalen gas om transacties en contractuitvoeringen te verwerken, en dit dient als een stimulans voor miners om de transacties te verifiëren en aan de blockchain toe te voegen.
- Interoperabiliteit: De EVM zorgt ervoor dat alle nodes in het Ethereum-netwerk op een uniforme manier werken. Ongeacht de onderliggende hardware of besturingssysteem van een node, zal de EVM hetzelfde resultaat produceren voor een gegeven smart contract, wat zorgt voor interoperabiliteit en consensus.
Samengevat is de EVM een cruciaal onderdeel van het Ethereum-ecosysteem, waardoor het mogelijk is om gedecentraliseerde applicaties te bouwen die onveranderlijk, transparant en vrij van tussenpersonen zijn. Het stelt ontwikkelaars in staat om innovatieve oplossingen te creëren op een netwerk dat betrouwbaarheid en zekerheid waarborgt.
Hoe werkt de EVM? (Ethereum Virtual Machine)
De Ethereum Virtual Machine (EVM) is een complex systeem, hieronder een beknopte uitleg.
- Bytecode: Wanneer ontwikkelaars een smart contract schrijven, meestal in een hogere programmeertaal zoals Solidity, wordt dit contract gecompileerd naar EVM bytecode. Deze bytecode is wat daadwerkelijk wordt uitgevoerd door de EVM.
- Transacties & Oproepen: Een gebruiker of een ander smart contract kan een transactie sturen naar het Ethereum-netwerk om een functie binnen een smart contract aan te roepen. Deze transactie bevat informatie zoals de afzender, de ontvanger (vaak het adres van een smart contract), de hoeveelheid ether om over te dragen, de data voor de functieoproep en de gaslimiet.
- Gas & Uitvoering: Elke operatie in de EVM kost een bepaalde hoeveelheid gas. Gas is een maatstaf voor de hoeveelheid rekenwerk dat nodig is om een operatie uit te voeren. De afzender van de transactie specificeert een gasprijs, die bepaalt hoeveel ether ze bereid zijn te betalen voor elke eenheid gas. Miners kiezen welke transacties te verwerken op basis van deze gasprijs. Het totale gas dat wordt verbruikt, vermenigvuldigd met de gasprijs, bepaalt de transactiekosten.
- Uitvoeringsomgeving: Wanneer een smart contract wordt aangeroepen, creëert de EVM een uitvoeringsomgeving. Deze omgeving bevat alle relevante informatie over de huidige staat van het contract, zoals de huidige opslag, het balans en andere relevante details.
- Consensus: Aangezien het Ethereum-netwerk uit duizenden nodes bestaat, moet elke node dezelfde transactie uitvoeren en tot hetzelfde resultaat komen. Dit zorgt voor consensus op het netwerk. Als een smart contract een bepaalde uitkomst heeft op één node, moet het dezelfde uitkomst hebben op alle andere nodes.
- State Transition: Na de uitvoering van een smart contract of transactie, verandert de ‘staat’ van het Ethereum-netwerk. Dit betekent dat balansen kunnen veranderen, opgeslagen data in een contract kan worden bijgewerkt, of nieuwe contracten kunnen worden gecreëerd.
- Immutable Ledger: Zodra de staat is bijgewerkt en de transactie is bevestigd, wordt deze permanent opgeslagen in de Ethereum-blockchain. Dit zorgt voor transparantie en onveranderlijkheid.
Kortom, de EVM verwerkt transacties, voert smart contract code uit en waarborgt consensus over de gehele staat van het netwerk. Het is het fundament dat de werking van gedecentraliseerde applicaties op het Ethereum-platform mogelijk maakt.
Hoe is het concept van de EVM ontstaan?
Het concept van de Ethereum Virtual Machine (EVM) is ontstaan uit de ambitie om een gedecentraliseerd wereldwijd platform te creëren voor onstuitbare applicaties. De oorsprong ervan is diep verweven met de geschiedenis van Ethereum zelf. Laten we de ontstaansgeschiedenis in stappen verkennen:
- Beperkingen van Bitcoin (BTC): Bitcoin, als de eerste succesvolle gedecentraliseerde cryptocurrency, introduceerde het concept van een gedecentraliseerde grootboek en de mogelijkheid om “onveranderlijke” transacties te hebben. Echter, Bitcoin’s scripting taal was beperkt in haar mogelijkheden. Vitalik Buterin, de oprichter van Ethereum, zag de behoefte aan een blockchain met een meer flexibele en uitgebreide programmeertaal.
- De behoefte aan een Turing-complete machine: Buterin en zijn team wilden een platform waarop ontwikkelaars elke gewenste applicatie konden bouwen, zonder beperkingen. Voor deze visie was een Turing-complete (in staat om elke berekening te simuleren, gegeven genoeg middelen) omgeving nodig. Dit idee leidde tot de creatie van de Ethereum Virtual Machine, een omgeving waarin code van elke complexiteit kon worden uitgevoerd.
- Smart Contracts: Terwijl ideeën over slimme contracten al decennia bestonden (oorspronkelijk voorgesteld door Nick Szabo in de jaren ’90), had de blockchain-technologie het potentieel om deze ideeën te realiseren. De EVM werd specifiek ontworpen om deze smart contracts te faciliteren.
- Gedecentraliseerde Autonome Organisaties (DAO’s): Een ander kernconcept dat de ontwikkeling van de EVM beïnvloedde, was het idee van DAO’s – organisaties die volledig worden gerund door code. Om dergelijke complexe entiteiten op een blockchain mogelijk te maken, moest de onderliggende virtuele machine flexibel en krachtig zijn.
- Ontwikkeling en Whitepaper: Na het herkennen van deze behoeften en kansen, schreef Buterin de Ethereum whitepaper in 2013, waarin de concepten en het ontwerp van Ethereum, inclusief de EVM, werden uiteengezet. Dit leidde tot een publieke belangstelling, een succesvolle crowdfunding in 2014, en uiteindelijk tot de lancering van Ethereum in 2015.
- Ontwerpkeuzes: De EVM is ontworpen als een stack-based machine met een beperkte set van instructies. Deze ontwerpkeuze was gemaakt om de machine eenvoudig en beveiligingsgericht te houden, terwijl het toch mogelijk was om een breed scala aan applicaties te ondersteunen.
Samengevat is de EVM ontstaan uit de wens om een gedecentraliseerd platform te creëren dat verder gaat dan eenvoudige transacties, om zo een rijke set aan gedecentraliseerde applicaties en organisaties mogelijk te maken. Het is het resultaat van zowel de visie van zijn oprichters als van de beperkingen en kansen die door eerdere blockchain-technologieën zijn geïdentificeerd.
Welke belangrijke projecten, dApps, of protocollen zijn gebouwd bovenop de EVM?
De Ethereum Virtual Machine (EVM) heeft als Turing-complete omgeving de basis gelegd voor een enorm scala aan projecten, dApps (decentrale applicaties) en protocollen. Hier zijn enkele van de meest opmerkelijke die tot mijn laatste update in 2022 op Ethereum zijn gebouwd:
DeFi (Decentralized Finance) Protocollen:
- MakerDAO: Een gedecentraliseerd kredietplatform dat DAI uitgeeft, een stablecoin gekoppeld aan de Amerikaanse dollar.
- Compound: Een algoritmisch, autonoom renteprotocol waarmee gebruikers kunnen lenen en leningen kunnen verstrekken.
- Aave: Een gedecentraliseerd geldmarktnetwerk voor het lenen en uitlenen van assets.
- Uniswap: Een gedecentraliseerde exchange (DEX) die een geautomatiseerd liquiditeitsprotocol gebruikt in plaats van een traditioneel orderboek.
- Synthetix: Een protocol voor de uitgifte van synthetische assets.
NFT (Non-Fungible Tokens) Platforms:
- CryptoKitties: Een van de eerste en meest bekende NFT-spellen, waarmee gebruikers digitale katten kunnen verzamelen en fokken.
- OpenSea: Een populaire marktplaats voor NFT’s, waar gebruikers verschillende soorten NFT’s kunnen kopen en verkopen.
- Rarible: Een gedecentraliseerd platform waar gebruikers NFT’s kunnen maken, verkopen en verzamelen.
- Decentraland: Een virtuele wereld waar grond en items als NFT’s worden verhandeld.
Gedecentraliseerde organisaties (DAO’s):
- MolochDAO: Gericht op het financieren van Ethereum-infrastructuurprojecten.
- Aragon: Een platform voor het creëren en beheren van DAO’s.
Schalingsoplossingen:
- Optimism: Implementeert Optimistic Rollups, een laag-2-schalingsoplossing voor het Ethereum-netwerk.
- zkSync: Een laag-2 schalingsoplossing gebaseerd op zkRollups.
Identiteits- en Reputatieprotocollen:
- uPort: Biedt zelfsoevereine identiteitsoplossingen op Ethereum.
Voorspellingsmarkten:
- Augur: Een gedecentraliseerde voorspellingsmarkt waar gebruikers kunnen wedden op de uitkomsten van toekomstige gebeurtenissen.
Overige:
- Chainlink: Een gedecentraliseerd orakelnetwerk dat real-world data verbindt met smart contracts.
- ENS (Ethereum Name Service): Een domeinnaamsysteem voor het vertalen van menselijke leesbare Ethereum-adressen.
Dit is slechts een fractie van de talloze projecten, dApps en protocollen die zijn gebouwd op Ethereum. Het ecosysteem is rijk en gevarieerd en blijft groeien, met nieuwe innovatieve oplossingen die regelmatig worden gelanceerd. Het toont het potentieel en de veelzijdigheid van de EVM als basis voor gedecentraliseerde toepassingen.