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.
accepts bitcoin bitcoin best bitcoin ваучер create bitcoin ad bitcoin bitcoin кликер
получение bitcoin
bitcoin транзакции
MiningBitcoin's security was designed to be upgraded in a forward compatible way and could be upgraded if this were considered an imminent threat (cf. Aggarwal et al. 2017, 'Quantum attacks on Bitcoin, and how to protect against them').bitcoin hosting You need either a GPU (graphics processing unit) or an application-specific integrated circuit (ASIC) in order to set up a mining rig.monero fr poloniex monero car bitcoin шифрование bitcoin bitcoin investing робот bitcoin investment bitcoin bitcoin graph bitcoin rub nya bitcoin bitcoin mail использование bitcoin 10 bitcoin bitcoin ledger исходники bitcoin работа bitcoin topfan bitcoin котировки bitcoin токен bitcoin x2 bitcoin pixel bitcoin water bitcoin bitcoin сети monero 1070 bitcoin индекс bitcoin code
monero купить
ethereum nicehash bitcoin работать cryptocurrency это bitcoin машины bitcoin zebra bitcoin loan bitcoin faucet location bitcoin fun bitcoin bitcoin doge bitcoin инструкция bitcoin основы компиляция bitcoin сайт ethereum mt5 bitcoin
ethereum markets оплата bitcoin bitcoin home bitcoin монеты raiden ethereum bitcoin лохотрон bitcoin баланс monero advcash bitcoin bitcoin иконка q bitcoin habrahabr bitcoin blender bitcoin bitcoin pdf polkadot блог tether пополнение bitcoin film bitcoin symbol криптовалюта monero bitcoin testnet coingecko bitcoin convert bitcoin bitcoin heist block bitcoin cryptocurrency boom bitcoin bitcoin аккаунт claymore monero взлом bitcoin биржа monero ethereum siacoin обменник bitcoin payeer bitcoin обменять bitcoin обменять monero bitcoin сети ethereum платформа bitcoin кошелька One important rule for all investors is this: only invest what you’re willing to lose. The world of crypto is volatile and *****; anything can happen. Don’t make investments you can’t afford and do your research before you put your money in.What Is Ethereum?видеокарта bitcoin bitcoin unlimited txid ethereum gif bitcoin froggy bitcoin bitcoin проект 33 bitcoin bitcoin png программа tether token ethereum decred cryptocurrency адрес bitcoin bitcoin bitrix краны monero bitcoin community windows bitcoin bitcoin чат математика bitcoin bitcoin пицца
ann bitcoin монета ethereum bitcoin доллар
цена bitcoin bitcoin wmx ethereum course bitcoin video bitcoin daily сети ethereum bitcoin casascius
tether верификация ethereum платформа программа ethereum bitcoin получение bitcoin gif ethereum продам bitcoin карта bitcoin rt bitcoin maining ethereum проблемы
reverse tether ethereum покупка
bitcoin wmx token ethereum bitcoin приват24 claim bitcoin сайт ethereum bitcoin direct токены ethereum bitcoin скачать ethereum course okpay bitcoin bitcoin монет bitcoin asic bitcoin weekly coffee bitcoin bitcoin банкнота
ava bitcoin bitcoin hosting
monero биржи хардфорк ethereum dag ethereum bitcoin пожертвование bitcoin fun dat bitcoin робот bitcoin шифрование bitcoin bitcoin python ethereum programming bitcoin торговля
bitcoin de film bitcoin платформы ethereum bitcoin qazanmaq сети ethereum ethereum pow bitcoin virus хайпы bitcoin cold bitcoin bitcoin комиссия
bitcoin electrum описание ethereum цена ethereum пулы ethereum bitcoin x bitcoin кранов
Litecoin’s greater number of maximum coins might offer a psychological advantage over Bitcoin, due to its smaller price as of yet for a single unit.monero node Learn how to mine Monero, in this full Monero mining guide.widget bitcoin Arbitrary rules can be imposed upon their users by the controllersdirect bitcoin bitcoin продать bitcoin rpc
ethereum studio
lurkmore bitcoin testnet bitcoin лото bitcoin block bitcoin bitcoin store bitcoin group робот bitcoin bitcoin cc bitcoin акции ethereum casper bitcoin asics bitcoin rub ubuntu ethereum форк bitcoin zcash bitcoin bitcoin dynamics lealana bitcoin ethereum заработать bitcoin расчет monero криптовалюта bitcoin бесплатные
bitcoin etf bitcoin mmgp So, What is Cryptocurrency Mining For?bitcoin 2000 платформ ethereum bitcoin спекуляция
monero вывод live bitcoin cryptocurrency faucet abi ethereum us bitcoin bitcoin airbit
Updated oftenThere are a variety of hot wallets available for investors and many of them are free to download. Some wallets are specifically designed to be used in partnership with particular mobile web applications or even with certain cryptocurrencies.building somewhere. But as more capital is invested in the ‘land core protocol’ (additional roads, ports, and skysc*****rs would be equivalent to additional protocol layers), a virtuous cycle develops—the existing infrastructureava bitcoin
monero fr алгоритм ethereum Trezor Model T Reviewthe currency is currently the most favorable of any investment in the world.ethereum картинки уязвимости bitcoin 2x bitcoin tether майнинг bitcoin видеокарты bitcoin master bitcoin wallet bitcoin poloniex github bitcoin bitcoin me weekend bitcoin agario bitcoin ethereum blockchain 3. Mining Hardwareplaystation bitcoin bitcoin fake bitcoin калькулятор red bitcoin
книга bitcoin mine ethereum mac bitcoin token ethereum фарм bitcoin bitcoin gadget Ledger Wallet Deal Active Right Now:котировки ethereum скачать tether
майнер ethereum конвертер ethereum opencart bitcoin
bitrix bitcoin litecoin bitcoin monero fr bitcoin wmz
super bitcoin monero hashrate bitcoin развитие bitcoin generate gemini bitcoin создатель bitcoin криптовалюту bitcoin bitcoin москва bitcoin иконка Summary: Minimum Necessary Issuance 1⁄1000millilitecoin, mŁbitcoin кредиты bitcoin matrix
bitcoin спекуляция bitcoin государство bitcoin rub bitcoin payeer bitcoin автор login bitcoin 1000 bitcoin bitcoin tor ethereum ann bitcoin price bitcoin валюты code bitcoin de bitcoin bitcoin сайт bitcoin options decred ethereum bitcoin доходность datadir bitcoin bubble bitcoin bitcoin ledger
xapo bitcoin вывод ethereum
bitcoin автомат конвертер monero air bitcoin bitcoin token ethereum картинки bitcoin bow nicehash monero love bitcoin
server bitcoin спекуляция bitcoin сборщик bitcoin россия bitcoin bitcoin zone puzzle bitcoin bitcoin cgminer консультации bitcoin bitcoin exchange rpc bitcoin bitcoin quotes серфинг bitcoin 50 bitcoin рейтинг bitcoin panda bitcoin coin ethereum ethereum exchange bitcoin cc bitcoin пулы bitcoin s moneybox bitcoin эфир ethereum iota cryptocurrency bitcoin криптовалюта korbit bitcoin Monero Mining Rewardsantminer ethereum Functions of Zeroсбербанк bitcoin bitcoin брокеры bitcoin анонимность bitcoin уязвимости bitcoin foto ethereum настройка lamborghini bitcoin bitcoin hyip bitcoin зарегистрировать service bitcoin брокеры bitcoin обозначение bitcoin epay bitcoin bitcoin foundation freeman bitcoin
мастернода bitcoin bitcoin работать algorithm bitcoin hash bitcoin bitcoin фарминг 4000 bitcoin bitcoin торрент 4 bitcoin bip bitcoin
bitcoin код bitcoin miner 1) New transactions are broadcast to all nodes.акции bitcoin
autobot bitcoin ethereum прогнозы ethereum asic mine ethereum автоматический bitcoin monero gpu эфириум ethereum bittorrent bitcoin tether верификация bitcointalk monero bitcoin займ golden bitcoin смесители bitcoin gui monero bitcoin список swarm ethereum cryptocurrency calendar ethereum forum bitcoin ios blender bitcoin курс monero добыча bitcoin blockchain ethereum отзыв bitcoin
linux ethereum kurs bitcoin
bitcoin desk programming bitcoin майнить monero monaco cryptocurrency ethereum blockchain tether перевод bitcoin capitalization geth ethereum
ethereum chart bitcoin s bitcoin reindex bitcoin команды bitcoin fake cubits bitcoin bitcoin millionaire maps bitcoin bitcoin xpub bitcoin usb bitcoin buy партнерка bitcoin multiply bitcoin
bitcoin farm bitcoin genesis проверка bitcoin ethereum usd Banking Systemsbitcoin electrum bitcoin blockstream ethereum статистика bitcoin iso kaspersky bitcoin
33 bitcoin cold bitcoin
куплю ethereum работа bitcoin ethereum chart bitcoin sha256 кредиты bitcoin
платформы ethereum android tether алгоритмы ethereum bitcoin хардфорк wechat bitcoin
bitcoin s bcc bitcoin bitcoin reklama
конференция bitcoin разработчик ethereum bitcoin faucet bitcoin продажа bitcoin это tether yota bitcoin видеокарты майнить bitcoin значок bitcoin calculator bitcoin trade cryptocurrency bitcoin вирус tether yota ethereum myetherwallet стоимость monero ethereum ubuntu bonus ethereum bitcoin compare bitcoin пул conference bitcoin 22 bitcoin ethereum install bitcoin payza wiki ethereum bitcoin x2 bitcoin бумажник bitcoin kran доходность ethereum etoro bitcoin bitcoin adder foto bitcoin claim bitcoin rpg bitcoin bitcoin forbes
мавроди bitcoin bitcoin cryptocurrency
bitcoin symbol tether bootstrap bitcoin school explorer ethereum nanopool ethereum ethereum хешрейт cryptocurrency calendar bitcoin daemon bitcoin pro
keys bitcoin
In this way, corporate management and governmental oversight are indistinguishable, both sources of forcible, monotechnic, ceremonial, spurious technological development—and debt.zcash bitcoin bitcoin перевод ethereum siacoin ethereum майнить
майн bitcoin 1080 ethereum
bitcoin monero видео bitcoin bitcoin блокчейн homestead ethereum торговать bitcoin bitcoin etf bitcoin инвестиции расчет bitcoin ethereum github bitcoin цена алгоритм bitcoin as collateral (LTV ratio of 66%). The collateral market for VOC shares wasbitcoin анимация metal bitcoin
ethereum coins ethereum usd Ethereum’s economics rely on a 3-phase model:claim bitcoin ethereum russia что bitcoin chaindata ethereum stake bitcoin оплата bitcoin ethereum обмен ethereum котировки
bitcoin создатель my ethereum bitcoin xl bitcoin rate
bitcoin nodes bitcoin get nicehash bitcoin bitcoin money ethereum бесплатно monero майнить store bitcoin ethereum покупка bitcoin получить monero биржа ethereum clix сложность ethereum Anyone can create new kinds of assets and trade them on Ethereum. These are known as 'tokens'. People have tokenised traditional currencies, their real estate, their art, and even themselves!Pre-requisitesIn present day, the monopolistic service provider whose rent-seeking is beingкомпиляция bitcoin
pizza bitcoin bitcoin вики bitcoin laundering hack bitcoin
bitcoin bot gek monero monero coin платформ ethereum индекс bitcoin ethereum developer bitcoin puzzle js bitcoin яндекс bitcoin bitcoin markets ethereum кошелька
bitcoin бонусы iota cryptocurrency ethereum charts bitcoin ru bitcoin top mineable cryptocurrency alpha bitcoin On Coinbase, you can buy major cryptocurrencies likedapps ethereum bitcoin hardware monero xmr кошелек ethereum trade cryptocurrency primedice bitcoin bitcoin yandex
ethereum продать
safe bitcoin bitcoin habrahabr moneybox bitcoin tether js bitcoin bow bitcoin кликер bitcoin pdf bitcoin mail ninjatrader bitcoin bitcoin express fasterclick bitcoin stock bitcoin bitcoin ann faucet bitcoin kupit bitcoin bitcoin курс bitcoin порт
bitcoin описание падение ethereum bitcoin client bitcoin nonce
bitcoin forum coinder bitcoin chaindata ethereum exchanges bitcoin bitcoin чат monero алгоритм bitcoin tx exchange ethereum ethereum course деньги bitcoin mikrotik bitcoin
sec bitcoin пулы ethereum decred ethereum raiden ethereum ethereum stats рост ethereum bitcoin вложить регистрация bitcoin bitcoin linux bitcoin nachrichten maining bitcoin
bitcoin котировки bitcoin gambling bitcoin loto tether usb cryptocurrency charts torrent bitcoin bitcoin qiwi avatrade bitcoin cryptocurrency mining картинка bitcoin сделки bitcoin bitcoin vector криптовалюту monero ethereum android ethereum биржа ethereum логотип bitcoin two bitcoin change alipay bitcoin pull bitcoin терминалы bitcoin boom bitcoin ultimate bitcoin займ bitcoin bitcoin оплатить rus bitcoin
stock bitcoin bitcoin rigs алгоритмы ethereum проект ethereum bitcoin easy алгоритм bitcoin деньги bitcoin blockchain ethereum mining ethereum bitcoin создатель инструкция bitcoin ethereum контракт To hold is often both the hardest and most important aspect of investing.999 bitcoin bitcoin doubler android tether bitcoin two cryptocurrency ethereum magic bitcoin mine monero monero poloniex difficulty ethereum bitcoin putin alpari bitcoin se*****256k1 ethereum bitcoin code lazy bitcoin
miner bitcoin
bitcoin transaction кредиты bitcoin bitcoin кредит
bitcoin виджет
ethereum ios серфинг bitcoin
bitcoin win bitcoin получение bitcoin рейтинг bitcoin автоматически bitcoin сша bitcoin easy bitcoin programming msigna bitcoin bitcoin multiplier ethereum телеграмм ethereum claymore форк bitcoin bitcoin bitrix ethereum russia добыча ethereum
free monero bitcoin описание bitcoin кошелька bitcoin прогноз monero minergate
mmm bitcoin keys bitcoin bitcoin sha256 bitcoin earning cryptocurrency trading bitcoin loans миксер bitcoin rates bitcoin new bitcoin Concept 3) When coins are on your own computer (meaning you’re using the wallet software from bitcoin.org), the first time you open your wallet software you will need to make a password to encrypt your wallet (see above). After making this password (don’t ever forget it), you MUST backup your wallet file in a different location. This file is where your money is stored. The file name is 'wallet.dat' and backing it up is as simple as copying the file and putting it somewhere else. To find your wallet.dat file:accept bitcoin bitcoin 99 bitcoin алматы bitcoin алматы bitcoin kran и bitcoin bitcoin nodes ethereum contracts bitcoin scam blockchain bitcoin faucet bitcoin cryptocurrency market bitcoin количество ethereum контракт продать ethereum ethereum валюта bitcoin rub bitcoin вектор bitcoin сколько обновление ethereum
map bitcoin создать bitcoin bitcoin formula global bitcoin habrahabr bitcoin bazar bitcoin greenaddress bitcoin ethereum os ethereum пул pirates bitcoin ethereum ubuntu ethereum faucets difficulty ethereum ethereum стоимость bitcoin получить кошелька bitcoin ethereum vk bitcoin москва bitcoin get bitcoin hosting
bitcoin книга cryptocurrency mining nanopool monero система bitcoin
bitcoin mining bitcoin компания store bitcoin monero spelunker nicehash bitcoin фонд ethereum обмен bitcoin neo bitcoin