Virtual machine
Een virtual machine is in blockchaincontext de gestandaardiseerde uitvoeringsomgeving die elke node draait om smart contracts identiek te verwerken — een softwarematig gedefinieerde computer waarvan het gedrag zo nauwkeurig is gespecificeerd dat duizenden onafhankelijke machines, op verschillende hardware en besturingssystemen, uit dezelfde transacties exact dezelfde resultaten berekenen. Dit determinisme maakt het mogelijk dat een gedecentraliseerd netwerk het eens wordt over de uitkomst van het uitvoeren van willekeurige code.
De blockchain-VM is bewust beperkt in vergelijking met een algemene computer: hij draait in een sandbox (contracten hebben geen toegang tot de hostmachine, bestanden of het internet), is gemeten (elke instructie kost gas, wat oneindige lussen en spam voorkomt) en deterministisch (geen willekeur of klokuitlezingen die tussen nodes kunnen verschillen). Contractcode wordt gecompileerd naar de bytecode van de VM en on-chain opgeslagen; wanneer een transactie het contract aanroept, voert de VM van elke node die bytecode uit en past dezelfde statuswijzigingen toe. De Ethereum Virtual Machine (EVM) is verreweg het meest verbreid, zozeer dat veel concurrerende ketens hem uit compatibiliteitsoverwegingen implementeren — maar er bestaan alternatieven: Solana draait een VM gebaseerd op eBPF die programma's uitvoert die uit Rust zijn gecompileerd, en verschillende nieuwere ketens gebruiken VM's op basis van WebAssembly of de VM van de programmeertaal Move (Aptos, Sui), ontworpen rond veiliger omgaan met activa.
Een veelvoorkomende misvatting is dat de virtual machine één computer is die ergens draait; het is een specificatie die lokaal en redundant wordt uitgevoerd door elke valideerende node, en die redundantie — iedereen voert alles opnieuw uit — is precies waarom on-chain berekeningen duur zijn en waarom schaalontwerpen zoals rollups de uitvoering één keer proberen te bewijzen in plaats van overal te herhalen.