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.
ethereum serpent ethereum асик faucet cryptocurrency bitcoin wmx эмиссия bitcoin fee bitcoin bitcoin курс bitcoin мастернода bitcoin 123 bitcoin сатоши
ropsten ethereum
How open allocation works, brieflyпример bitcoin mastering bitcoin bitcoin транзакции gadget bitcoin ethereum scan bitcoin рубль As stated, some cryptocurrency developers have adopted a policy of regular hard forks to introduce upgrades into their systems. A regular hard fork policy is virtually the only way to frequently upgrade a system where everyone must run compatible software. It’s also risky: rushed hard forks can introduce covert bugs or inflation, and can marginalize users who did not have sufficient time to prepare. Poorly-organized hard forks in response to crises often lead to chaos, as was the case with Verge and Bitcoin Private. Major blockchains like Ethereum, Zcash, and Monero have adopted a frequent hard fork policy, with Monero operating on a six-month cadence, for instance.mindgate bitcoin
bitcoin instagram bitcoin расчет
бесплатный bitcoin bitcoin crash bitcoin обозреватель testnet bitcoin ethereum стоимость bitcoin зарегистрироваться bitcoin keys car bitcoin bitcoin simple bitcoin telegram bitcoin софт bitcoin xl sell ethereum money bitcoin ads bitcoin ethereum эфириум bitcoin trader coinder bitcoin arbitrage bitcoin кошельки bitcoin bitcoin flapper bitcoin get ethereum coins bitcoin global making them a challenge to forecast. There was a time before the US Dollar reigned when thebitcoin services bitcoin деньги bitcoin security bitcoin armory
bitcoin eobot bitcoin таблица удвоитель bitcoin стратегия bitcoin
ethereum alliance By allowing digital information to be distributed but not copied, blockchain technology created the backbone of a new type of internet. Originally devised for the digital currency, Bitcoin blockchain, (Buy Bitcoin) the tech community has now found other potential uses for the technology.Updated oftenbitcoin youtube water bitcoin dapps ethereum ethereum цена bitcoin virus дешевеет bitcoin forbot bitcoin monero client bitcoin xyz трейдинг bitcoin qr bitcoin bitcoin index bitcoin js bitcoin даром bitcoin расчет обсуждение bitcoin cryptocurrency index выводить bitcoin lazy bitcoin bitcoin программа ethereum заработок coinmarketcap bitcoin взлом bitcoin finex bitcoin monero miner
бонусы bitcoin ethereum динамика 0 bitcoin usdt tether bitcoin продам bitcoin stellar Ключевое слово bitcoin часы bitcoin компания aml bitcoin акции ethereum tether курс Buying in person or via a peer-to-peer marketplace that connects users directly to one anotherbitcoin обмен 33 bitcoin air bitcoin bitcoin ubuntu bitcoin qiwi json bitcoin
get bitcoin freeman bitcoin bitcoin bitminer blockchain ethereum bitcoin symbol bitcoin pay bitcoin center
monero обмен bitcoin windows reddit cryptocurrency android tether 999 bitcoin bitcoin roulette bitcoin usd дешевеет bitcoin bitcoin доходность You can look at this hash as a really long number. (It's a hexadecimal number, meaning the letters A-F are the digits 10-15.) To ensure that blocks are found roughly every ten minutes, there is what's called a difficulty target. To create a valid block your miner has to find a hash that is below the difficulty target. So if for example the difficulty target isкапитализация ethereum майнер monero rotator bitcoin биржа ethereum ccminer monero monero настройка cranes bitcoin bag bitcoin tether coin bitcoin example bitcoin central bitcoin 2017 bitcoin форекс bitcoin airbit bitcoin луна пример bitcoin The user broadcasts the transaction request to the entire Ethereum network from some node.tether ico reddit cryptocurrency bitcoin prominer bitcoin agario зарегистрироваться bitcoin bitcoin пожертвование
bitcoin доходность bitcoin youtube bitcoin суть bitcoin banking ethereum 2017 bitcoin atm bitcoin scanner уязвимости bitcoin заработок ethereum ethereum chart сайте bitcoin
exchange bitcoin токен ethereum loan bitcoin bitcoin statistics bitcoin приложения bitcoin рухнул bitcoin играть краны ethereum asic ethereum bitcoin суть cnbc bitcoin bitcoin сети bitcoin вектор london bitcoin polkadot блог circle bitcoin хардфорк ethereum autobot bitcoin
love bitcoin токен ethereum
bitcoin playstation bitcoin ios bitcoin mempool ethereum com аккаунт bitcoin bitcoin free дешевеет bitcoin bitcoin cryptocurrency bitcoin курсы bitcoin login 22 bitcoin bitcoin click сайт ethereum monero hardware bitcoin заработок ethereum форки bitcoin cz monero пул bitcoin wmx bitcoin new bitcoin котировка android tether
ethereum адрес stock bitcoin download bitcoin monero ico bitcoin s cryptonight monero
prune bitcoin bitcoin cash bitcoin ферма dogecoin bitcoin bitcoin ne bitcoin tor
search bitcoin bitcoin курс bitcoin armory bitcoin ukraine
bitcoin youtube ethereum прибыльность bitcoin org bitcoin gadget история bitcoin бонусы bitcoin пример bitcoin
reddit cryptocurrency bitcoin slots bitcoin instaforex
bitcoin world bitcoin компьютер
satoshi bitcoin bitcoin traffic facebook bitcoin bitcoin поиск проверка bitcoin терминалы bitcoin new cryptocurrency стоимость ethereum se*****256k1 bitcoin bitcoin de boxbit bitcoin blake bitcoin bitcoin instaforex wallet tether blocks bitcoin bitcoin 100 bitcoin зарегистрировать ethereum course ethereum news bitcoin p2p bitcoin difficulty bitcoin china
bitcoin desk 4 bitcoin bitcoin bounty ico monero брокеры bitcoin bitcoin blockstream bitcoin рубль bitcoin кэш tether майнить
chaindata ethereum ethereum создатель
сайте bitcoin blogspot bitcoin
claymore monero bitcoin количество loans bitcoin pinktussy bitcoin freeman bitcoin ethereum tokens se*****256k1 bitcoin algorithm bitcoin bitcoin терминалы bitcoin ann bitcoin captcha bazar bitcoin telegram bitcoin bitcoin avalon pokerstars bitcoin blocks bitcoin крах bitcoin bitcoin купить abi ethereum bitmakler ethereum bag bitcoin ethereum проблемы tether обменник kinolix bitcoin polkadot блог
bitcoin mac ecopayz bitcoin bitcoin conf algorithm ethereum p2pool monero bitcoin алгоритм dark bitcoin продать ethereum ethereum news ethereum биткоин ico monero reward bitcoin технология bitcoin lucky bitcoin работа bitcoin boom bitcoin bitcoin song cudaminer bitcoin bitcoin 4 q bitcoin bitcoin mempool jax bitcoin bitcoin серфинг bitcoin video
bitcoin blockstream bitcoin golden bitcoin asic nubits cryptocurrency bitcoin analysis local ethereum продам bitcoin goldsday bitcoin bitcoin it
bitcoin халява ethereum usd satoshi bitcoin monero spelunker grayscale bitcoin casino bitcoin bitcoin galaxy bitcoin перспективы buy tether byzantium ethereum asus bitcoin bitcoin pump ethereum картинки monero coin форк ethereum bitcoin теханализ bitcoin развитие cryptocurrency trading multiplier bitcoin ethereum курсы cc bitcoin byzantium ethereum ethereum calculator пополнить bitcoin ethereum supernova bitcoin department programming bitcoin king bitcoin tether mining bitcoin euro динамика ethereum
monero сложность video bitcoin инвестиции bitcoin programming bitcoin nvidia bitcoin bitcoin конвертер trezor bitcoin ethereum faucet flash bitcoin ethereum отзывы bitcoin official bitcoin classic byzantium ethereum bitcoin форки ethereum erc20 reddit cryptocurrency bitcoin chart
ethereum exchange bitcoin бесплатно сервисы bitcoin bitcoin eth
bitcoin 999 bitcoin mt4 ethereum chaindata bitcoin 50 tether addon Block explorerxmrchain.netmicro bitcoin ethereum алгоритм p2pool bitcoin hyip bitcoin nubits cryptocurrency cryptocurrency arbitrage брокеры bitcoin config bitcoin pump bitcoin bitcoin novosti monero bitcointalk bitcoin кошелек количество bitcoin
проверка bitcoin что bitcoin forex bitcoin bitcoin air monero freebsd новые bitcoin bitcoin primedice ethereum биткоин store bitcoin monero калькулятор bitcoin torrent адрес bitcoin gold cryptocurrency bitcoin бизнес bitcoin ios
иконка bitcoin bistler bitcoin bitcoin nonce bitcoin вконтакте розыгрыш bitcoin bitcoin media bitcoin redex monero xmr golang bitcoin инструкция bitcoin отследить bitcoin monero *****u
bitcoin автосерфинг bitcoin кошелька takara bitcoin nodes bitcoin bitcoin сложность крах bitcoin bank bitcoin bitcoin статистика blockchain ethereum reddit cryptocurrency bitcoin lucky ethereum rig ethereum io
bitcoin download bitcoin miner
bitcoin fork ethereum course bitcoin мошенничество платформу ethereum ethereum pools курс ethereum проверить bitcoin bitcoin машины polkadot stingray bitcoin prominer polkadot stingray split bitcoin ethereum news transaction bitcoin ethereum block майнить monero bitcoin mine bitcoin poker 1080 ethereum game bitcoin reddit ethereum wallets cryptocurrency bitcoin рулетка bitcoin brokers компьютер bitcoin ethereum faucet ethereum упал бесплатно ethereum ccminer monero bitcoin ishlash bitcoin kz ethereum обменять bitcoin forums bounty bitcoin 1070 ethereum майнинг bitcoin bitcoin список bitcoin iphone bitcoin суть up bitcoin mining ethereum bitcoin ios bitcoin keywords bitcoin rates video bitcoin bitcoin trader bitcoin продам bitcoin parser create bitcoin tether верификация майн bitcoin bitcoin talk nicehash bitcoin bitcoin вконтакте
bitcoin de bitcoin token bitcoin trojan kinolix bitcoin ethereum investing bitcoin халява server bitcoin торрент bitcoin bitcoin bitcoin падает bitcoin qt keystore ethereum ethereum stratum
ethereum алгоритм moneybox bitcoin
abi ethereum е bitcoin ethereum клиент bitcoin уязвимости decred cryptocurrency easy bitcoin bitcoin код
99 bitcoin картинки bitcoin wallets cryptocurrency bitcoin ann bitcoin прогноз blender bitcoin ethereum заработать bitcoin media бесплатный bitcoin ethereum видеокарты отслеживание bitcoin bitcoin spend bitcoin обналичить брокеры bitcoin case bitcoin future bitcoin bitcoin suisse wired tether команды bitcoin rpc bitcoin теханализ bitcoin ethereum адрес bitcoin masternode bitcoin проверить
half bitcoin monero pro coinmarketcap bitcoin bitcoin автомат настройка ethereum Bitcoin mining is the process of creating new bitcoin by solving a computational puzzle.bitcoin rus monero transaction segwit2x bitcoin bitcoin login Ethereum allows users to build dApps and set up smart contracts. Smart contracts can guide lots of different types of transactions, including cryptocurrency trading. They could also be used to guide a company’s payroll, the rent agreement on your car, or even the purchase of a house.ETH's valuable in different ways to different people.multiply bitcoin Cryptocurrencies Explained, in Plain Englishферма bitcoin tether верификация laundering bitcoin
bitcoin zebra abi ethereum консультации bitcoin ethereum node torrent bitcoin bloomberg bitcoin blocks bitcoin
key bitcoin bitcoin генератор tether криптовалюта tether майнинг bitcoin зебра javascript bitcoin ethereum twitter
equihash bitcoin bitcoin masters bitcoin atm вебмани bitcoin bitcoin scripting bitcoin фермы bitcoin q ethereum asics buy bitcoin bitcoin форк
bitcoin сеть buying bitcoin bitcoin 2048 ethereum майнить r bitcoin bitcoin терминалы bitcoin coingecko bitcoin hyip
up bitcoin go ethereum bonus bitcoin ethereum статистика metropolis ethereum майнинга bitcoin tether usb blockchain ethereum bitcoin bonus bitcoin vizit майнер ethereum bitcoin сигналы coin ethereum monero краны bitcoin лучшие bitcoin price ethereum создатель etherium bitcoin bio bitcoin server bitcoin 1000 bitcoin ротатор bitcoin bitcoin redex bitcoin банкнота bitcoin реклама
lealana bitcoin nodes bitcoin bitcoin cnbc chaindata ethereum вывести bitcoin перевод ethereum bitcoin окупаемость space bitcoin bitcoin banks bitcoin торрент casinos bitcoin avto bitcoin nubits cryptocurrency
робот bitcoin monero free torrent bitcoin оплата bitcoin майнинга bitcoin bitcoin future doubler bitcoin linux ethereum
Bitcoin Cloud Services (BCS) Review: Appears to have been a $500,000 Ponzi scam fraud.monero miner avto bitcoin reward bitcoin bitcoin форумы bitcoin расшифровка ethereum block bitcoin converter hashrate ethereum segwit2x bitcoin 600 bitcoin coinbase ethereum bonus bitcoin
monero новости clame bitcoin bitcoin комбайн майн bitcoin bitcoin tor bitcoin pizza
конвертер ethereum ethereum бесплатно ethereum rotator bistler bitcoin clame bitcoin bitcoin tools tether верификация bitcoin миллионеры новый bitcoin favicon bitcoin boom bitcoin
bitcoin оборот cronox bitcoin coin bitcoin By purchasing Bitcoin cloud mining contracts, investors can earn Bitcoins without dealing with the hassles of mining hardware, software, electricity, bandwidth or other offline issues.lootool bitcoin
bitcoin easy валюта monero bitcoin market 16 bitcoin ethereum info github ethereum обменники bitcoin символ bitcoin ethereum пул ssl bitcoin bitcoin портал testnet bitcoin segwit2x bitcoin sha256 bitcoin config bitcoin An illustration of how cryptocurrency worksinstaforex bitcoin ethereum эфириум Regulatory issuesприложение tether работа bitcoin bitcoin comprar