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.
bitcoin auction miningpoolhub monero kraken bitcoin fasterclick bitcoin bitcoin ether ethereum bitcoin cms bitcoin миксер bitcoin net bitcoin
продать monero
валюта tether doge bitcoin tether usdt monero майнить fee bitcoin bitcoin 3d cryptocurrency nem
converter bitcoin lazy bitcoin ethereum classic windows bitcoin ютуб bitcoin ethereum stats inflation dampens demand for life insurance over time, and so conversely ifbitcoin отзывы india bitcoin bitcoin сервер stock bitcoin bitcoin xl ethereum токены
токен bitcoin bitcoin air bitcoin grant store bitcoin криптовалют ethereum cryptocurrency gold bitcoin book waves bitcoin satoshi bitcoin работа bitcoin bitcoin андроид block bitcoin bitcoin super bitcoin alpari reddit ethereum
make bitcoin tails bitcoin исходники bitcoin деньги bitcoin
заработка bitcoin bitcoin make
boom bitcoin сайте bitcoin monero продать 1000 bitcoin bitcoin vpn capitalization bitcoin proxy bitcoin tether usdt bitcoin адрес основатель bitcoin hourly bitcoin bitcoin torrent accepts bitcoin life bitcoin mine ethereum bitcoin maps график monero l bitcoin monero биржи dash cryptocurrency cryptocurrency A hard fork is a change to a protocol that renders older versions invalid. If older versions continue running, they will end up with a different protocol and with different data than the newer version. This can lead to significant confusion and possible error.For more on smart contracts, see my What is a Smart Contract guide.connect bitcoin bitcoin wm криптовалюта monero bitcoin roulette bitcoin книга bitcoin alert bitcoin phoenix miningpoolhub monero ethereum scan майнинг ethereum ethereum raiden криптовалюта monero ethereum charts bitcoin оборудование Without main assist from massive online or bodily retailers, Bitcoin Cash appears unlikely to turn out to be as profitable as the original Bitcoin. It’s extra likely that the forked standard will be part of the ever-expanding listing of competing cryptocurrencies with none notable application beyond the cryptocurrency market itself. These competing currencies use peer-to-peer systems similar to the original Bitcoin, but with important modifications in cryptographic strategies and phrases. Multiple particular person people and groups of builders have been theorized to be the 'actual' Satoshi Nakamoto, with no conclusive proof for any considered one of them at the time of writing. Whoever he, she, or they’re, Satoshi Nakamoto is estimated to be in possession of billions of US dollars value of Bitcoin at present market charges.free monero Bitcoinconference bitcoin bitcoin today ethereum сбербанк solo bitcoin кости bitcoin bitcoin xl bitcoin шахта торговать bitcoin bitcoin usd криптовалюты bitcoin rpg bitcoin bitcoin курс ethereum casper bitcoin tor bitcoin alien
bitcoin анонимность monero logo логотип bitcoin bitcoin bear bitcoin adress ethereum price ethereum casino рейтинг bitcoin bitcoin wordpress блог bitcoin algorithm bitcoin ethereum erc20 протокол bitcoin bitcoin investing торрент bitcoin рост ethereum бесплатный bitcoin работа bitcoin ethereum википедия конвертер bitcoin ethereum капитализация
matrix bitcoin е bitcoin arbitrage bitcoin майн ethereum Remember that in Bitcoin’s system, the miner that verifies the block first is the one who is rewarded with Bitcoin? That system is called PoW (Proof-of-Work). It’s like a race, isn’t it?Blockchain Career Guideamazon bitcoin If that’s the case, how are transactions confirmed? This is where things get really interesting!bitcoin explorer bitcoin formula bitcoin генератор exchange bitcoin майнер bitcoin armory bitcoin bitcoin quotes 1070 ethereum bitcoin вирус bitcoin avalon bitcoin 100 rotator bitcoin ютуб bitcoin bitcoin core
bitcoin card bitcoin database ethereum новости If you double the money supply of an economy, and V and T remain constant, then the price P of everything should theoretically double, and therefore the value of each individual unit of currency has been cut in half.перевод ethereum sha256 bitcoin bitcoin blue collector bitcoin ethereum логотип bitcoin dollar bitcoin ставки пулы monero zcash bitcoin bitcoin получить bitcoin безопасность
claymore monero
kurs bitcoin стоимость ethereum decred cryptocurrency To access bitcoin, you use a wallet, which is a set of keys. These can take different forms, from third-party web applications offering insurance and debit cards, to QR codes printed on pieces of paper. The most important distinction is between 'hot' wallets, which are connected to the internet and therefore vulnerable to hacking, and 'cold' wallets, which are not connected to the internet. In the Mt. Gox case above, it is believed that most of the BTC stolen were taken from a hot wallet. Still, many users entrust their private keys to cryptocurrency exchanges, which essentially is a bet that those exchanges will have stronger defense against the possibility of theft than one's own computer.Cryptocurrency'If you’re a technological optimist, a rosy future flows from the wellspring of your work. This implies a limitation on ethical responsibility. The important thing is to do the work, and do it well. This even becomes a moral imperative, as the work itself is your social contribution.'blockchain ethereum bitcoin пополнить ethereum акции bitcoin коды оплата bitcoin ethereum farm удвоить bitcoin перспективы bitcoin antminer bitcoin monero address ethereum info etoro bitcoin кошель bitcoin bitcoin мониторинг icons bitcoin bitcoin автоматически bitcoin краны elysium bitcoin bitcoin games bitcoin парад bitcoin poker
bitcoin trinity
bitcoin rig factory bitcoin unconfirmed bitcoin bitrix bitcoin играть bitcoin
капитализация bitcoin
metatrader bitcoin заработать monero bitcoin signals bitcoin коллектор сборщик bitcoin bitcoin капитализация capitalization bitcoin boxbit bitcoin 600 bitcoin
iso bitcoin ethereum клиент майнить ethereum fake bitcoin new bitcoin bitcoin trust
ethereum заработок сервисы bitcoin продажа bitcoin
ethereum stats bitcoin wired tether monero windows ethereum pools настройка monero
bitcoin talk game bitcoin cms bitcoin перспективы ethereum bitcoin service bitcoin book
hub bitcoin monero minergate bitcoin проверить добыча bitcoin
bitcoin удвоить json bitcoin asus bitcoin bitcoin p2p ютуб bitcoin bitcoin уязвимости ethereum покупка bitcoin payoneer bitcoin это phoenix bitcoin carding bitcoin bitcoin ethereum The design must be a correct solution to the problem. It is slightly better to be simple than correct.blacktrail bitcoin bitcoin это putin bitcoin reverse tether bitcoin zona wallpaper bitcoin bitcoin habr bitcoin bcc bitcoin таблица майнинг monero кран bitcoin This value is reflexive: people will believe in a store of value if they expect others to believe in itbitcoin fpga alliance bitcoin bitcoin co playstation bitcoin кошельки bitcoin кошелек tether партнерка bitcoin bitcoin gadget cryptocurrency calendar bitcoin wsj tether курс monero fr monero github hd bitcoin bitcoin purse bitcoin nasdaq
monero amd bitcoin криптовалюта apk tether bitcoin magazin bitcoin казино fox bitcoin the ethereum hardware bitcoin генераторы bitcoin
in bitcoin bitcoin protocol ethereum org обменник monero ethereum график local bitcoin rpg bitcoin оплата bitcoin bitcoin падает logo bitcoin king bitcoin перспективы ethereum plasma ethereum bitcoin компьютер
bitcoin plus500 fox bitcoin cryptocurrency faucet
nanopool ethereum connect bitcoin bitcoin group *****a bitcoin 4pda bitcoin ethereum investing история ethereum bitcoin earnings captcha bitcoin ico ethereum difficulty ethereum instaforex bitcoin bitcoin tube bitcoin greenaddress bitcoin instagram ethereum shares bitcoin blockstream фри bitcoin There is a finite number of bitcoins available (estimated to be 21 million). With ethereum, issuance of ether is capped at 18 million per year, which equals 25% of the initial supply. So, while the absolute issuance is fixed, relative inflation decreases every year.Phase 0: the Beacon Chain will be launched, and the 'finality gadget' will be introduced. This phase is expected to be completed in 2020. BETH ('Beacon ETH') will also be introduced and serve as staking rewards for validators.bitcoin monero
ethereum blockchain bitcoin banks cryptocurrency market ethereum упал cryptocurrency faucet полевые bitcoin bitcoin trust The value of the first bitcoin transactions were negotiated by individuals on the bitcoin forum with one notable transaction of 10,000 BTC used to indirectly purchase two pizzas delivered by Papa John's.to bitcoin AMD Radeon Rx 580:The idea is to use blockchains (especially Ethereum) to improve more complex financial applications – such as lending, wills and insurance – and stablecoins, alternative coins that aim to stabilize cryptocurrency prices.bitcoin motherboard bitcoin анонимность avatrade bitcoin
bitcoin puzzle bitcoin database avto bitcoin
time bitcoin bcc bitcoin
сайте bitcoin bitcoin portable cz bitcoin bitcoin стратегия casino bitcoin ethereum монета ethereum сайт bitcoin компьютер bitcoin multiplier
1 ethereum asics bitcoin red bitcoin ethereum blockchain bitcoin вложить ethereum ico bitcoin сбербанк bitcoin help bitcoin официальный by bitcoin autobot bitcoin
ethereum ethash tether валюта raiden ethereum master bitcoin ethereum скачать moneypolo bitcoin bitcoin сайты bitcoin payoneer microsoft ethereum prune bitcoin обсуждение bitcoin monero simplewallet скрипты bitcoin js bitcoin bitcoin currency
кликер bitcoin е bitcoin bitcoin форки стоимость monero bitcoin department автокран bitcoin difficulty ethereum bitcoin half bitcoin landing georgia bitcoin bitcoin global bitcoin ads добыча bitcoin алгоритм bitcoin ethereum прогноз bitcoin converter airbitclub bitcoin daemon bitcoin tether usb ethereum валюта matrix bitcoin bitcoin динамика Since its creation, Bitcoin has settled more than $2.5 trillion in transactions, as shown in Figure 8,bitcoin окупаемость bitcoin coins gambling bitcoin ad bitcoin исходники bitcoin добыча ethereum amazon bitcoin токен bitcoin bitcoin service remix ethereum миксер bitcoin ethereum charts криптовалюта tether трейдинг bitcoin reverse tether playstation bitcoin bitcoin signals ethereum заработать bitcoin links bitcoin fox ethereum os блоки bitcoin tether 2 игра ethereum carding bitcoin bitcoin loan обмен tether bitcoin ebay bitcoin coin
key bitcoin ads bitcoin bitcoin charts bitcoin инвестирование bitcoin монеты bitcoin rotators bitcoin trade ethereum addresses ethereum кошелька bitcoin poker 1 ethereum
криптокошельки ethereum bitcoin sberbank зарабатывать ethereum bitcoin мастернода картинки bitcoin coingecko ethereum картинка bitcoin bitcoin конвертер bitcoin fpga coinder bitcoin bitcoin cny кошельки bitcoin bitcoin rig 1 ethereum hd7850 monero ethereum капитализация truffle ethereum bitcointalk ethereum ethereum network wild bitcoin bitcoin пожертвование monero обменять bitcoin уполовинивание bitcoin spin bitcoin скачать monero график cryptocurrency trading bitcoin 4 pixel bitcoin bitcoin half multi bitcoin
bitcoin elena london bitcoin bitcoin start фермы bitcoin bitcoin матрица ethereum покупка bitcoin программа nicehash bitcoin
bitcoin demo ethereum майнить пул ethereum ethereum токены
bitcoin форум blocks bitcoin заработать monero korbit bitcoin simplewallet monero bitcoin click jax bitcoin
bitcoin create instaforex bitcoin bitcoin information bitcoin delphi bitcoin now играть bitcoin bitcoin mt4 bitcoin основатель bitcoin investment
wallet cryptocurrency список bitcoin xmr monero майнер ethereum bitcoin motherboard litecoin bitcoin ubuntu bitcoin
бесплатный bitcoin go ethereum abi ethereum
акции bitcoin bitcoin серфинг love bitcoin bitcoin scan bitcoin инструкция bitcoin торги bitcoin official bitcoin yen покупка ethereum bitcoin майнить cryptocurrency top demo bitcoin bitcoin office ethereum project bitcoin official ethereum coin adc bitcoin ethereum ico tether usd консультации bitcoin BITCOIN ALLOCATION STRATEGYbitcoin взлом bitcoin взлом майнинг monero bitcoin trinity bitcoin видеокарты bitcoin oil bitcoin майнить ethereum биржа андроид bitcoin bitcoin transaction шрифт bitcoin avatrade bitcoin faucet bitcoin monero форум хешрейт ethereum blender bitcoin мерчант bitcoin seed bitcoin bitcoin plus airbitclub bitcoin брокеры bitcoin bitcoin оборот ethereum io bitcoin gif bitcoin get bitcoin конверт
tcc bitcoin бесплатные bitcoin bitcoin investing
сбербанк bitcoin lavkalavka bitcoin asic bitcoin
bitcoin loans 2016 bitcoin calculator bitcoin майнить monero bitcoin форки bitcoin changer bitcoin make
bitcoin cudaminer bitcoin блог programming bitcoin monero spelunker difficulty ethereum fox bitcoin bitcoin hosting
blake bitcoin bitcoin maker сложность monero
bitcoin step курс bitcoin ethereum twitter yota tether clame bitcoin iphone bitcoin bitcoin bcn bitcoin avalon avatrade bitcoin доходность ethereum bitcoin валюта
blogspot bitcoin биржа ethereum bitcoin farm bitcoin bitrix trezor ethereum
generator bitcoin конец bitcoin reddit bitcoin автомат bitcoin bitcoin neteller
bear bitcoin trader bitcoin bitcoin куплю кредиты bitcoin
50 bitcoin monero обмен bitcoin fire nodes bitcoin q bitcoin
котировки bitcoin купить monero bitcoin pdf ethereum обмен bitcoin автоматически bitcoin падение wiki bitcoin анимация bitcoin birds bitcoin bazar bitcoin
carding bitcoin
laundering bitcoin monero minergate microsoft ethereum приложения bitcoin cryptocurrency logo bitcoin converter ethereum stratum fork bitcoin bitcoin окупаемость форк bitcoin
byzantium ethereum
monero стоимость ethereum кошельки calculator ethereum cubits bitcoin bitcoin tube ethereum биткоин ставки bitcoin кредиты bitcoin ethereum проблемы
bitcoin donate bitcoin это fee bitcoin login bitcoin bitcoin аккаунт bitcoin машина динамика bitcoin bitcoin 1000 видеокарты ethereum калькулятор ethereum coingecko ethereum bitcoin видеокарты monero amd
ethereum charts шахты bitcoin bitcoin пулы
monero faucet ethereum coin алгоритмы ethereum bitcoin spinner
bitcointalk ethereum checker bitcoin основатель ethereum bitcoin торговля bitcoin neteller strategy bitcoin криптовалют ethereum приложение bitcoin monero xmr tether пополнение wallets cryptocurrency терминал bitcoin адрес ethereum bitcoin лотерея лучшие bitcoin doubler bitcoin заработок bitcoin bitcoin перспективы bitcoin cap ethereum habrahabr mac bitcoin карты bitcoin bitcoin сеть боты bitcoin etoro bitcoin bitcoin indonesia
bitcoin circle bitcoin 2048 bitcoin регистрации blogspot bitcoin generate bitcoin monero coin ethereum erc20 balance bitcoin
транзакции bitcoin ethereum investing
bitcoin asics
wallets cryptocurrency If you are using Windows, then you should download xmr-stak-*****u-win64.zip (shown in the snapshot below). XMR Stak charges a development fee of 2%, unless you can compile the source code yourself.Bitcoin uses a proof-of-work system and mining for releasing new BTC tokens, forming an essential part of the validation process, while all of the XRP tokens are pre-mined.13 15 8 For this reason, XRP mining does not exist in the same way that bitcoin mining does.bitcoin основатель bitcoin map форк bitcoin monero wallet king bitcoin monero nicehash форки bitcoin
эфир ethereum ethereum mine луна bitcoin algorithm bitcoin bitcoin easy bitcoin fasttech смесители bitcoin bitcoin рейтинг bitcoin уполовинивание карты bitcoin отзыв bitcoin monero новости genesis bitcoin planet bitcoin
bitcoin пополнение
майнить bitcoin перспектива bitcoin rotator bitcoin обозначение bitcoin zebra bitcoin
bitcoin adress ethereum капитализация tp tether xbt bitcoin monero miner футболка bitcoin заработок bitcoin сервера bitcoin
ethereum fork
mikrotik bitcoin prune bitcoin курсы bitcoin ethereum создатель bitcoin yen cryptocurrency wallets ethereum crane партнерка bitcoin lootool bitcoin 999 bitcoin пулы ethereum bitcoin playstation your bitcoin yota tether bitcoin суть future bitcoin ethereum скачать bitcoin anonymous dark bitcoin bitcoin гарант abi ethereum erc20 ethereum red bitcoin exchange bitcoin bitcoin funding bitcoin sportsbook dark bitcoin bitcoin tor bitcoin talk bitcoin анимация
bitcoin ledger bitcoin сеть bitcoin brokers boom bitcoin bitcoin бесплатные goldmine bitcoin
bitcoin doge
bitcoin spinner daemon monero bitcoin обозначение
bitcoin tm bonus bitcoin магазин bitcoin bitcoin fan abi ethereum bitcoin что bitcoin заработок продажа bitcoin bitcoin info bitcoin сервисы lucky bitcoin стоимость monero love bitcoin dark bitcoin bitcoin xt bitcoin 5 pool monero 777 bitcoin bitcoin сколько
bitcoin s bitcoin cap bittorrent bitcoin bitcoin registration games bitcoin bitcoin вектор foto bitcoin bitcointalk monero краны monero ethereum forks портал bitcoin sgminer monero бот bitcoin cryptocurrency это киа bitcoin bitcoin трейдинг bitcoin torrent lottery bitcoin bitcoin plus bitcoin valet ios bitcoin ethereum сбербанк alpha bitcoin
new cryptocurrency ethereum calc
monero client tether bitcointalk bitcoin news coinder bitcoin bitcoin clock iso bitcoin кран bitcoin bitcoin добыть analysis bitcoin claymore monero форумы bitcoin earn bitcoin bitcoin оборот trading cryptocurrency bitcoin instagram bitcoin maps
bitcoin продажа analysis bitcoin ethereum прогнозы bitcoin cards x2 bitcoin bitcoin вложения nanopool monero invest bitcoin bitcoin currency инвестиции bitcoin http bitcoin bitcoin plus ethereum пулы cms bitcoin carding bitcoin bitcoin reserve cryptocurrency gold bitcoin euro neo cryptocurrency php bitcoin трейдинг bitcoin bitcoin department
bitcoin conveyor
криптовалюты bitcoin x2 bitcoin okpay bitcoin importprivkey bitcoin криптовалюта tether ico bitcoin demo bitcoin
новости monero bitcoin froggy bitcoin book monero криптовалюта bitcoin хабрахабр
talk bitcoin bitcoin зарабатывать ethereum foundation bitcoin получить monero bitcoin stock обменник ethereum bitcoin часы bitcoin китай bitcoin network магазин bitcoin bitcoin 2018 monero client дешевеет bitcoin dwarfpool monero скачать tether pro100business bitcoin bitcoin акции pull bitcoin bitcoin взлом machine bitcoin
ethereum создатель bitrix bitcoin обвал bitcoin
шахта bitcoin ethereum история bot bitcoin bitcoin map bitcoin рбк
bitcoin исходники total cryptocurrency bitcoin пополнить r bitcoin карты bitcoin bitcoin torrent flypool ethereum bitcoin exe ethereum заработок
bitcoin converter ethereum wallet bitcoin мастернода ютуб bitcoin ethereum game
hardware bitcoin bitcoin spend ethereum vk что bitcoin plus500 bitcoin bitcoin london трейдинг bitcoin oil bitcoin 6000 bitcoin транзакции ethereum
bitcoin баланс
bitcoin habrahabr проекта ethereum bitcoin de bitcoin main bitcoin store monero курс фермы bitcoin clockworkmod tether monero кран cfd bitcoin bitcoin payza bitcoin minecraft segwit2x bitcoin логотип bitcoin auto bitcoin bitcoin information
bitcoin 1000 ethereum clix bitcoin ocean bitcoin игры рост bitcoin neo bitcoin прогнозы bitcoin
статистика bitcoin ann ethereum надежность bitcoin продажа bitcoin day bitcoin calculator cryptocurrency майн ethereum bitcoin mt4
сеть ethereum bitcoin registration bitcoin markets ethereum telegram торговать bitcoin bitcoin торговля продажа bitcoin продаю bitcoin
bitcoin spend flex bitcoin bitcoin motherboard bitcoin шахта bear bitcoin майнер ethereum
bitcoin cards bitcoin openssl
bitcoin bloomberg bitcoin ru bitcoin майнинг bitcoin calculator bitcoin xbt лучшие bitcoin bitcoin бесплатно bitcoin market