ETHEREUM VIRTUAL MACHINE (EVM)
Ryan Cordell
Last edit: @ryancreatescopy, November 30, 2020
See contributors
The EVM’s physical instantiation can’t be described in the same way that one might point to a cloud or an ocean wave, but it does exist as one single entity maintained by thousands of connected computers running an Ethereum client.
The Ethereum protocol itself exists solely for the purpose of keeping the continuous, uninterrupted, and immutable operation of this special state machine; It's the environment in which all Ethereum accounts and smart contracts live. At any given block in the chain, Ethereum has one and only one 'canonical' state, and the EVM is what defines the rules for computing a new valid state from block to block.
PREREQUISITES
Some basic familiarity with common terminology in computer science such as bytes, memory, and a stack are necessary to understand the EVM. It would also be helpful to be comfortable with cryptography/blockchain concepts like hash functions, Proof-of-Work and the Merkle Tree.
FROM LEDGER TO STATE MACHINE
The analogy of a 'distributed ledger' is often used to describe blockchains like Bitcoin, which enable a decentralized currency using fundamental tools of cryptography. A cryptocurrency behaves like a 'normal' currency because of the rules which govern what one can and cannot do to modify the ledger. For example, a Bitcoin address cannot spend more Bitcoin than it has previously received. These rules underpin all transactions on Bitcoin and many other blockchains.
While Ethereum has its own native cryptocurrency (Ether) that follows almost exactly the same intuitive rules, it also enables a much more powerful function: smart contracts. For this more complex feature, a more sophisticated analogy is required. Instead of a distributed ledger, Ethereum is a distributed state machine. Ethereum's state is a large data structure which holds not only all accounts and balances, but a machine state, which can change from block to block according to a pre-defined set of rules, and which can execute arbitrary machine code. The specific rules of changing state from block to block are defined by the EVM.
A diagram showing the make up of the EVM
Diagram adapted from Ethereum EVM illustrated
THE ETHEREUM STATE TRANSITION FUNCTION
The EVM behaves as a mathematical function would: Given an input, it produces a deterministic output. It therefore is quite helpful to more formally describe Ethereum as having a state transition function:
Y(S, T)= S'
Given an old valid state (S) and a new set of valid transactions (T), the Ethereum state transition function Y(S, T) produces a new valid output state S'
State
In the context of Ethereum, the state is an enormous data structure called a modified Merkle Patricia Trie, which keeps all accounts linked by hashes and reducible to a single root hash stored on the blockchain.
Transactions
Transactions are cryptographically signed instructions from accounts. There are two types of transactions: those which result in message calls and those which result in contract creation.
Contract creation results in the creation of a new contract account containing compiled smart contract bytecode. Whenever another account makes a message call to that contract, it executes its bytecode.
EVM INSTRUCTIONS
The EVM executes as a stack machine with a depth of 1024 items. Each item is a 256-bit word, which was chosen for maximum compatibility with the SHA-3-256 hash scheme.
During execution, the EVM maintains a transient memory (as a word-addressed byte array), which does not persist between transactions.
Contracts, however, do contain a Merkle Patricia storage trie (as a word-addressable word array), associated with the account in question and part of the global state.
Compiled smart contract bytecode executes as a number of EVM opcodes, which perform standard stack operations like XOR, AND, ADD, SUB, etc. The EVM also implements a number of blockchain-specific stack operations, such as ADDRESS, BALANCE, SHA3, BLOCKHASH, etc.
A diagram showing where gas is needed for EVM operations
Diagrams adapted from Ethereum EVM illustrated
EVM IMPLEMENTATIONS
All implementations of the EVM must adhere to the specification described in the Ethereum Yellowpaper.
Over Ethereum's 5 year history, the EVM has undergone several revisions, and there are several implementations of the EVM in various programming languages.
neo cryptocurrency ethereum перспективы bitcoin transaction invest bitcoin bot bitcoin программа tether cryptocurrency top ethereum dag ethereum org captcha bitcoin bitcoin genesis pay bitcoin mt4 bitcoin china bitcoin bitcoin greenaddress qtminer ethereum bitcoin preev bitcoin статья bitcoin nachrichten bitcoin count sha256 bitcoin пожертвование bitcoin alien bitcoin qtminer ethereum bitcoin курс bitcoin aliexpress bitcoin выиграть mail bitcoin bitcoin markets zebra bitcoin динамика ethereum ethereum calculator 100 bitcoin bitcoin tm ethereum network bitcoin golden казино ethereum россия bitcoin monero btc bitcoin минфин bitcoin доходность carding bitcoin ethereum упал ethereum rub gemini bitcoin tether coin ethereum перевод bitcoin обналичить вирус bitcoin trade cryptocurrency bitcoin instagram legal bitcoin bitcoin rotator bitcoin fake bitcoin mempool bitcoin видеокарты monero spelunker bitcoin x bitcoin stellar приложения bitcoin bitcoin магазин bitcoin network tether coin вики bitcoin bitcoin blockstream создатель ethereum bitcoin server bitcoin stellar ethereum address bitcoin shop bitcoin forum мавроди bitcoin auto bitcoin форумы bitcoin jax bitcoin bitcoin icons торрент bitcoin контракты ethereum bitcoin super click bitcoin
bitcoin market
fake bitcoin avto bitcoin alpha bitcoin bitcoin cloud bitcoin миллионеры value bitcoin cryptocurrency arbitrage bitcoin swiss ethereum картинки bitcoin москва second bitcoin bitcoin black bitcoin loan bitcoin debian взломать bitcoin сбербанк bitcoin
bitcoin hash форк bitcoin forbes bitcoin bitcoin multiplier bitcoin new datadir bitcoin bitcoin fields кран ethereum ru bitcoin bitcoin github bitcoin advertising exchange bitcoin bitcoin сша
video bitcoin сбербанк bitcoin порт bitcoin
bitcoin debian
bitcoin options bitcoin oil bitcoin vizit iphone tether bistler bitcoin bitcoin чат карты bitcoin Diagrams adapted from Ethereum EVM illustratedbitcoin клиент secp256k1 bitcoin
Consnew cryptocurrency Where to Buy Ripple and What Is Ripple - A Full Ripple Reviewaddnode bitcoin ethereum calc parity ethereum bitcoin sweeper cryptocurrency analytics simplewallet monero flappy bitcoin 60 bitcoin bitcoin fake bitcoin plus bitcoin foundation
часы bitcoin bitcoin transaction bitcoin two boxbit bitcoin bitcoin rotator bitcoin программирование
конвектор bitcoin
bitcoin cc You need to consider how much extra electricity you are going to use, and whether you are mining enough coins to make it worthwhile.продажа bitcoin bitcoin окупаемость tether coin delphi bitcoin
сложность ethereum bitcoin goldman bitcoin bitrix
клиент bitcoin top tether bitcoin weekend обмен tether
лотерея bitcoin
сколько bitcoin капитализация bitcoin eth ethereum spots cryptocurrency форк bitcoin статистика bitcoin bitcoin картинки ethereum icon antminer bitcoin 2048 bitcoin bitcoin обменники bitcoin биржи bitcoin arbitrage ethereum erc20 The semiconductor industry is fast-paced. Increased competition, innovations in production, and economies of scale mean the price of chips keep falling. For large ASIC mining companies to sustain their profit margins they must tirelessly seek incremental design improvements.ethereum contracts bitcoin programming валюта tether
bitcoin pay
миксер bitcoin hd7850 monero валюта tether bitcoin plus bear bitcoin сборщик bitcoin bitcoin now bitcoin onecoin moto bitcoin mine monero captcha bitcoin bitcoin convert ethereum rig
bitcoin valet вклады bitcoin сколько bitcoin usd bitcoin
pow bitcoin create bitcoin
Blockchain technology involves an entirely new vocabulary.torrent bitcoin trade cryptocurrency криптовалют ethereum
технология bitcoin bitcoin motherboard hash bitcoin bitcoin приложение qiwi bitcoin
monero купить
bitcoin rpg продам ethereum сайте bitcoin bitcoin отзывы bitcoin hack получение bitcoin ethereum кошелька delphi bitcoin blender bitcoin bitcoin advertising ethereum course maps bitcoin keys bitcoin
bitcoin loan bitcoin информация bitcoin презентация ethereum токены bitcoin отзывы ethereum blockchain ethereum swarm 2016 bitcoin in bitcoin bitcoin зарегистрироваться bitcoin графики bitcoin cz dag ethereum
flappy bitcoin bitcoin карты bitcoin pools ферма ethereum bitcoin flapper bitcoin demo bitcoin land Each time a cryptocurrency transaction is made, a cryptocurrency miner is responsible for ensuring the authenticity of information and updating the blockchain with the transaction. The mining process itself involves competing with other cryptominers to solve complicated mathematical problems with cryptographic hash functions that are associated with a block containing the transaction data.bitcoin сайт ethereum network контракты ethereum bitcoin магазин bitcoin s bitcoin joker So why all the fuss about blockchain? Is it really that important?bitcoin оборудование email bitcoin таблица bitcoin airbitclub bitcoin matrix bitcoin обналичить bitcoin flappy bitcoin bitcoin price bitcoin майнеры plasma ethereum обмен ethereum captcha bitcoin bitcoin base ethereum алгоритмы bitcoin telegram 8 bitcoin accepts bitcoin wiki bitcoin bitcoin cryptocurrency bitcoin mt4 ethereum course bitcoin token
bitcoin фарм bitcoin отслеживание bank cryptocurrency бонусы bitcoin bitcoin transactions
nanopool ethereum bitcoin завести сети bitcoin bitcoin de monero fr bitcoin символ bitcoin программирование покер bitcoin ethereum упал инвестирование bitcoin bitcoin seed bitcoin описание bitcoin wiki prune bitcoin bitcoin котировки сайт ethereum заработок bitcoin monero xmr bitcoin инструкция forbot bitcoin mining bitcoin bitcoin регистрация bitcoin список надежность bitcoin the ethereum и bitcoin капитализация ethereum
платформы ethereum To deposit crypto, just create a deposit address and send the funds to this address. Funding your account with fiat currencies for trading can be done in a number of ways, including SWIFT, SEPA and domestic wire transfers. The option you select will be based on your location and preference.us bitcoin rotator bitcoin форки ethereum surf bitcoin обменники ethereum monero wallet bitcoin акции bitcoin алгоритм bitcoin alert
аналоги bitcoin крах bitcoin ethereum flypool bitcoin tor
бесплатные bitcoin mine bitcoin bitcoin apple что bitcoin
bitcoin goldman bitcoin конвертер
bitcoin зарегистрироваться казино ethereum цена bitcoin global bitcoin хардфорк monero отзыв bitcoin bitcoin usd
iobit bitcoin 4000 bitcoin bitcoin сети testnet ethereum
monero график график monero bitcoin planet tether bitcointalk 600 bitcoin ethereum бутерин bitcoin биржи japan bitcoin monero продать wallet cryptocurrency
korbit bitcoin bitcoin fake бесплатные bitcoin bitcoin spinner bank bitcoin monero майнить bitcoin комментарии bitcoin курсы bitcoin презентация bitcoin reward
ethereum blockchain clockworkmod tether If Ethereum manages to implement Proof of Stake, then it could make Ethereum much more valuable and more decentralized than Bitcoin. This means that the Ethereum network could become more secure than Bitcoin. Currently, only those who can afford the most powerful mining equipment can expect to become successful Bitcoin and Ethereum miners.статистика bitcoin криптовалюты ethereum
bitcoin hosting bitcoin алгоритм
china bitcoin стратегия bitcoin bitcoin торги bitcoin заработка кредит bitcoin bitcoin scam balance bitcoin monero difficulty loan bitcoin падение ethereum wiki ethereum bitcoin skrill bitcoin playstation
credit bitcoin currency bitcoin bitcoin multiplier arbitrage cryptocurrency bitcoin phoenix unconfirmed bitcoin bitcoin markets up bitcoin index bitcoin ethereum рост bitcoin passphrase stealer bitcoin mine bitcoin хардфорк bitcoin bitcoin friday bitrix bitcoin bitcoin services Trezor Model T Reviewаккаунт bitcoin
blender bitcoin bitcoin акции vps bitcoin testnet bitcoin эпоха ethereum 3 bitcoin fire bitcoin golang bitcoin ethereum developer
Consensus Rule Changesbitcoin раздача search bitcoin bitcoin продам настройка bitcoin
bitcoin конвертер dash cryptocurrency пример bitcoin майнинг bitcoin
bitcoin реклама
bitcoin зарегистрироваться bitcoin виджет bitcoin видеокарты ethereum калькулятор ethereum foundation monero форум bitcoin clouding dwarfpool monero bitcoin make bitcoin вирус tor bitcoin
secp256k1 ethereum bitcoin keywords андроид bitcoin exchanges bitcoin эфир ethereum dorks bitcoin monero ico cryptocurrency price bitcoin бесплатные
free monero bitcoin cny bitcoin сервисы краны ethereum
bitcoin cnbc pay bitcoin bitcoin япония wifi tether bitcoin презентация bitcoin сборщик etherium bitcoin фото bitcoin брокеры bitcoin бонусы bitcoin masternode bitcoin bitcoin это
bitcoin usb bitcoin tm bitcoin jp security bitcoin
blocks bitcoin mine ethereum
bitcoin keywords pps bitcoin bitcoin expanse monero обменник ethereum игра bitcoin strategy rpc bitcoin bistler bitcoin bitcoin plugin bitcoin air 2013ethereum stratum часы bitcoin hacking bitcoin monero прогноз обновление ethereum bitcoin carding auction bitcoin bitcoin co mainer bitcoin видео bitcoin
халява bitcoin chain bitcoin удвоитель bitcoin bitcoin заработок bitcoin donate
bitcoin brokers monero blockchain
bitcoin china
abi ethereum bitcoin scanner андроид bitcoin pow bitcoin ethereum farm бот bitcoin coingecko bitcoin plus500 bitcoin ethereum токен lazy bitcoin ethereum telegram суть bitcoin avto bitcoin maining bitcoin ethereum dark monero calculator
bitcoin fan хардфорк ethereum bitcoin analysis
bitcoin goldman cryptocurrency tech bitcoin department dwarfpool monero loan bitcoin bitcoin galaxy