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.
monero calc bitcoin etherium
bitcoin проблемы
bitcoin wmx bitcoin основы bitcoin mac bitcoin мошенники bitcoin code eos cryptocurrency bitcoin иконка ultimate bitcoin обзор bitcoin bitcoin tor bitcoin 5 p2p bitcoin валюта monero ethereum testnet blocks bitcoin avatrade bitcoin bistler bitcoin
обмен tether polkadot блог ethereum install bitcoin linux hourly bitcoin free monero polkadot store bitcoin cny bitcoin книга habrahabr bitcoin ethereum сложность программа bitcoin logo bitcoin bitcoin гарант
tether iphone андроид bitcoin bitcoin markets cz bitcoin bitcoin обналичить кошелька ethereum trinity bitcoin bitcoin обменники
INTERESTING FACTasics bitcoin linux bitcoin
бумажник bitcoin bitcoin habr click bitcoin
gold cryptocurrency keystore ethereum приложение tether bitcoin государство анонимность bitcoin raiden ethereum bitcoin fork
trade cryptocurrency bitcoin wm
6000 bitcoin bitcoin магазин bitcoin бесплатные bitcoin stellar
bitcoin zona bitcoin расчет
bitcoin etf
bitcoin индекс monero proxy халява bitcoin get bitcoin king bitcoin pools bitcoin bitcoin sell bitcoin 123 monero hardware agario bitcoin ultimate bitcoin 22 bitcoin что bitcoin кредиты bitcoin игра ethereum
bitcoin cache
instant bitcoin bitcoin кредиты
bitcoin forums
monero fee ethereum форк bitcoin reddit ethereum получить bitcoin transaction конференция bitcoin asic bitcoin bitcoin journal
асик ethereum ethereum org отзыв bitcoin bitcoin map автомат bitcoin bitcoin валюты bitcoin win майнить ethereum sell bitcoin
добыча bitcoin bitcoin бесплатно банк bitcoin daemon monero bitcoin course ethereum testnet bitcoin криптовалюту ethereum курс анонимность bitcoin cran bitcoin mac bitcoin bitcoin инструкция seed bitcoin box bitcoin bitcoin удвоить рынок bitcoin bitcoin обменник On January 12, 2009, Satoshi Nakamoto made the first Bitcoin transaction. They sent 10 BTC to a coder named Hal Finney. By 2011, Satoshi Nakamoto was gone. What they left behind was the world’s first cryptocurrency.bitcoin fpga картинки bitcoin It’s much more difficult to answer a more advanced question, 'Should I buy Ethereum now?' Read on to learn how to judge for yourself.карты bitcoin bitcoin usa bitcoin youtube bitcoin scripting bitcoin новости btc ethereum
bitcoin word bitcoin flapper ninjatrader bitcoin sec bitcoin coinbase ethereum bitcoin dat solidity ethereum валюта monero wiki ethereum bitcoin продам ethereum transaction bitcoin 123 bitcoin сервисы dog bitcoin bitcoin youtube
alpari bitcoin bubble bitcoin ethereum farm
dark bitcoin эфир ethereum bitcoin captcha widget bitcoin обвал bitcoin bitcoin png ethereum course joker bitcoin cryptocurrency tech bitcoin шифрование фри bitcoin bitcoin qiwi ethereum russia
parity ethereum bitcoin machine куплю ethereum token bitcoin ru bitcoin collector bitcoin bitcoin луна bitcoin блоки bitcoin gift bitcoin monkey ethereum telegram golden bitcoin monero продать ethereum news monero faucet bitcoin аккаунт today bitcoin ethereum russia зарегистрироваться bitcoin bitcoin 2020 ethereum 4pda status bitcoin bitcoin лохотрон monero pro tether bitcoin airbit
ethereum network
maining bitcoin coingecko ethereum poloniex ethereum japan bitcoin купить ethereum адрес ethereum android tether bitcoin biz bitcoin dollar trade bitcoin bitcoin форекс китай bitcoin bitcoin map bitcoin forex ethereum wallet coindesk bitcoin bitcoin окупаемость шифрование bitcoin bitcoin криптовалюту bitcoin pdf ethereum casino bitcoin department dag ethereum web3 ethereum подарю bitcoin crococoin bitcoin pay bitcoin ethereum продать 9000 bitcoin tether limited
instaforex bitcoin bitcoin planet bitcoin автоматически buy ethereum подтверждение bitcoin динамика bitcoin pro100business bitcoin x2 bitcoin fenix bitcoin buy ethereum bitcoin gadget bitcoin investment monero кран основатель ethereum tether обменник waves bitcoin bitcoin usd bitcoin node bitcoin icons green bitcoin monero новости
bitcoin орг bitcoin electrum wikileaks bitcoin miningpoolhub ethereum
wmx bitcoin
bitcoin iso bitcoin virus ethereum eth bitcoin org
Blockchain Interview Guidebitcoin services security bitcoin wallets cryptocurrency cryptocurrency calendar cryptocurrency calendar bitcoin упал
bye bitcoin 1080 ethereum теханализ bitcoin bitcoin local bitcoin компания bitcoin xl ethereum online eth bitcoin bitcoin адреса currency bitcoin segwit bitcoin japan bitcoin monero хардфорк bitcoin trinity bitcoin mining mmm bitcoin тинькофф bitcoin bitcoin открыть ethereum бесплатно обменники ethereum
bitcoin сети bitcoin antminer курса ethereum bitcoin chains 2016 bitcoin bitcoin коллектор trader bitcoin topfan bitcoin monero форк capitalization bitcoin майнер ethereum okpay bitcoin bitcoin grafik bitcoin cost pinktussy bitcoin
bitcoin эмиссия
difficulty ethereum bear bitcoin bitcoin bot bitcoin рублей free bitcoin tether пополнить
bitcoin windows перевод ethereum bitcoin widget bitcoin ne ethereum course bitcoin com bitcoin protocol bitcoin heist bitcoin stock bitcoin рухнул bitcoin win видео bitcoin mine monero dorks bitcoin bitcoin стоимость
cryptocurrency gold ethereum btc bitcoin миллионеры windows bitcoin bitcoin advcash ethereum swarm кредит bitcoin
bitcoin пирамиды logo ethereum
bitcoin tx хешрейт ethereum monero обменять статистика ethereum decred ethereum coin bitcoin monero пулы статистика ethereum alpha bitcoin
ethereum хешрейт bitcoin eu ethereum заработок bitcoin зебра пул monero bitcoin investing ubuntu bitcoin
bitcoin заработать chart bitcoin ethereum course форк ethereum бот bitcoin bitcoin приложения bitcoin bcc программа ethereum bitcoin x2 half bitcoin википедия ethereum bitcoin луна
bitcoin online konverter bitcoin вложения bitcoin
ethereum 1070 bitcoin сети bitcoin работать bitcoin it bitcoin purchase продам bitcoin tether wifi bitcoin порт деньги bitcoin bitcoin qr bazar bitcoin
bitcoin tor bazar bitcoin bitcoin pools bitcoin брокеры bitcoin mercado ethereum новости pool bitcoin bear bitcoin bitcoin game
monero майнеры bitcoin минфин q bitcoin криптовалюта ethereum
Web walletsmonero windows monero wallet monero прогноз bitcoin motherboard the ethereum карты bitcoin *****uminer monero технология bitcoin forum ethereum bitcoin gif ethereum script bitcoin миксер bitcoin cap
bitcoin iq bitcoin loto bitcoin china tether верификация
рубли bitcoin ethereum php bitcoin traffic
bitcoin nodes bitcoin xt monero продать bitcoin exchange ethereum mist by bitcoin hit bitcoin bitcoin ocean bitcoin brokers
short bitcoin 10000 bitcoin транзакции ethereum разработчик bitcoin skrill bitcoin In January 2009, the first bitcoin currency transaction occurred between two computers owned by Nakamoto and the late Hal Finney, a developer and an early cryptocurrency enthusiast. bitcoin xl форк bitcoin обмена bitcoin кости bitcoin bitcoin china best bitcoin обмена bitcoin bitcoin котировки bitcoin double course bitcoin vpn bitcoin bitcoin fpga cardano cryptocurrency bitcoin fox home bitcoin widget bitcoin ethereum plasma ethereum виталий bitcoin зарабатывать value bitcoin genesis bitcoin claim bitcoin bitcoin haqida ethereum продам 4pda tether blockchain monero bitcoin торги monero майнить bitcoin strategy Conscryptocurrency bitcoin trend bitcoin minecraft ethereum токены bitcoin компьютер bitcoin store bitcoin рубль escrow bitcoin bitcoin пожертвование monero краны *****a bitcoin bitcoin daemon
monero cryptonote
сервисы bitcoin json bitcoin bitcoin прогнозы Binance Coinbitcoin зарегистрироваться bitcoin кранов the ethereum bitcoin spinner invest bitcoin bitcoin loans bitcoin заработок bitcoin farm Every node in the Ethereum network has:bitcoin png
bitcoin pump rus bitcoin вложения bitcoin bitcoin алматы bitcoin novosti bitcoin conference hyip bitcoin rush bitcoin bitcoin заработок
captcha bitcoin cryptocurrency price bitcoin оплата python bitcoin обмена bitcoin bitcoin exchanges android tether captcha bitcoin продать bitcoin bitcoin cards client ethereum видеокарты ethereum difficulty ethereum carding bitcoin bitcoin настройка новости monero ethereum алгоритмы bitcoin com bitcoin биржи monero майнить компиляция bitcoin billionaire bitcoin carding bitcoin cryptocurrency faucet bitcoin maps ads bitcoin bitcoin me bitcoin dump puzzle bitcoin moneybox bitcoin bitcoin 10 In simpler words, the digital ledger is like a Google spreadsheet shared among numerous computers in a network, in which, the transactional records are stored based on actual purchases. The fascinating angle is that anybody can see the data, but they can’t corrupt it.You need to think about a real problem and how blockchain technology can solve it. If your project has no real benefit, then why will anyone want to invest or use it? If you want to create value, you must add value.0 bitcoin sha256 bitcoin
ethereum casino zcash bitcoin xmr monero ethereum bitcoin bitcoin monero buy ethereum bitcoin ставки cryptocurrency faucet bitcoin автосерфинг фри bitcoin кошелек ethereum bitcoin 33 maining bitcoin карты bitcoin bitcoin аналоги bitcoin миллионеры
amazon bitcoin bitcoin инвестиции майн bitcoin технология bitcoin
total cryptocurrency bitcoin cudaminer bitcoin block bitcoin markets android tether key bitcoin bitcoin maps форк ethereum bitcoin автомат ethereum mine dwarfpool monero
bitcoin рейтинг usa bitcoin
bitcoin clicks bitcoin qt bitcoin лопнет multisig bitcoin etoro bitcoin bitcoin buy bitcoin changer playstation bitcoin bitcoin future bitcoin сайты
перспективы ethereum bitcoin пузырь bitcoin видеокарты перспективы bitcoin заработок bitcoin reklama bitcoin bitcoin index tera bitcoin bitcoin символ love bitcoin кости bitcoin tether верификация bitcoin сша map bitcoin mmm bitcoin bitcoin ruble виталий ethereum reverse tether bitcoin сервер ethereum faucets monero новости
bitcoin 9000 bitcoin взлом bitcoin freebitcoin bitcoin куплю british bitcoin tether limited rinkeby ethereum bitcoin armory
ethereum stratum ethereum сайт cryptocurrency analytics bitcoin 10000 bitcoin информация ютуб bitcoin 6000 bitcoin ethereum raiden group bitcoin ethereum контракт bitcoin froggy tether обменник платформа ethereum bitcoin япония
ethereum котировки Monero Mining: Full Guide on How to Mine Moneropdf bitcoin bitcoin сети bitcoin анимация tether пополнение Fungibility is an important property of sound money. If every user needed to perform taint analysis on all the funds they received, then the utility of the system would drop significantly.курс bitcoin bitcoin кредиты jax bitcoin лотереи bitcoin check bitcoin bitcoin network mine ethereum bye bitcoin обменник bitcoin wikipedia ethereum casino bitcoin reddit bitcoin инвестирование bitcoin bitcoin token ethereum кран
bitcoin торговля bitcoin key total cryptocurrency asics bitcoin Because Ethereum runs on a decentralized network, there's never any downtime for apps. Developers maintain complete control over their assets, and they don't have to worry about the restrictions of platforms like Google Play or the Apple App Store. It's even possible to create your own cryptocurrency using Ethereum.How Does Ethereum Work?майнить ethereum tether майнинг 'Those that attempt to copy bitcoin signal a failure to understand the properties that make bitcoin valuable or viable as money.'пулы ethereum bitcoin wmz 'This new faith has emerged from a bizarre fusion of the cultural bohemianism of San Francisco with the hi-tech industries of Silicon Valley… promiscuously combines the free-wheeling spirit of the hippies and the entrepreneurial zeal of the yuppies. This amalgamation of opposites has been achieved through a profound faith in the emancipatory potential of the new information technologies. In the digital utopia, everybody will be both hip and rich.'bitcoin node bitcoin casino bitcoin кошелек win bitcoin bitcoin ocean local bitcoin pool bitcoin ethereum обмен bitcoin system ethereum twitter