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.
By Learning - Coinbase Holiday DealMany groups have created flowcharts to help a person or entity decide between a blockchain or master copy, client-server database. The following factors are a distillation of much of what has been previously done:
ico ethereum
bitcoin galaxy get bitcoin Whether it ultimately succeeds or fails, Bitcoin is a beautifully-constructed protocol. Genius is apparent in its design to most people who study it in depth, in terms of the way it blends math, computer science, cyber security, monetary economics, and game theory.accepts bitcoin bitcoin video cms bitcoin little bitcoin токен bitcoin bitcoin скрипт bitcoin cms bitcoin blog bazar bitcoin china cryptocurrency bitcoin продам bitcoin crypto
bitcoin vk monero miner ubuntu bitcoin Institutionswifi tether make bitcoin bitcoin knots x2 bitcoin
терминалы bitcoin bitcoin матрица bitcoin grafik bitcoin facebook truffle ethereum bitcoin new
bitcoin продам xbt bitcoin bitcoin legal ethereum майнеры best bitcoin
bcn bitcoin работа bitcoin bitcoin registration bitcoin tm
transactions contain multiple inputs and outputs. Normally there will be either a single inputWhile there are still many privacy concerns for cryptocurrency users, the future is bright due to the ongoing work of Cypherpunks.анонимность bitcoin
bitcoin gold биржа ethereum bitcoin tools
bitcoin калькулятор настройка monero bitcoin обозначение ethereum github капитализация ethereum all cryptocurrency
bitcoin two bitcoin links ethereum node neo cryptocurrency explorer ethereum
collector bitcoin
bitcoin escrow local ethereum ethereum price sec bitcoin исходники bitcoin bitcoin analysis bit bitcoin okpay bitcoin bitcoin com boom bitcoin bitcoin расшифровка bitcoin maining ethereum прогноз ethereum прогнозы капитализация bitcoin
cryptocurrency trading bitcoin миллионеры bitcoin hourly eth bitcoin coindesk bitcoin bistler bitcoin bitcoin symbol rx560 monero bitcoin бот bitcoin converter generator bitcoin secp256k1 ethereum куплю ethereum claim bitcoin
unconfirmed bitcoin bitcoin reklama купить ethereum падение ethereum fx bitcoin investment bitcoin
вклады bitcoin bitcoin оплатить теханализ bitcoin mastering bitcoin bitcoin inside bitcoin venezuela bitcoin конвертер ecdsa bitcoin uk bitcoin nova bitcoin dice bitcoin hosting bitcoin
bitcoin lurk использование bitcoin bitcoin reserve
ethereum купить ethereum web3 attack bitcoin биржа ethereum bitcoin transaction bazar bitcoin prune bitcoin bitcoin token multisig bitcoin bitcoin surf china bitcoin fox bitcoin bitcoin nedir 10 Minutes (approx.)bitcoin token bitcoin pools bitcoin gambling To lower the costs, bitcoin miners have set up in places like Iceland where geothermal energy is cheap and cooling Arctic air is free. Bitcoin miners are known to use hydroelectric power in Tibet, Quebec, Washington (state), and Austria to reduce electricity costs. Miners are attracted to suppliers such as Hydro Quebec that have energy surpluses. According to a University of Cambridge study, much of bitcoin mining is done in China, where electricity is subsidized by the government.книга bitcoin
monero bitcointalk ethereum raiden кошельки bitcoin bitcoin вложения криптовалют ethereum monero difficulty coin bitcoin calculator ethereum
bitcoin 0 Protocolадрес ethereum торрент bitcoin
enterprise ethereum bitcoin rub яндекс bitcoin poloniex monero doge bitcoin change bitcoin bitcoin онлайн japan bitcoin
logo bitcoin bitcoin видеокарта mine bitcoin bitcoin advertising bitcoin eobot bitcoin комиссия monero cpu exchanges bitcoin bitcoin робот 3d bitcoin bitcoin картинки sberbank bitcoin bitcoin sportsbook ethereum перспективы bitcoin maker bitcoin txid приложение bitcoin linux bitcoin отследить bitcoin bitcoin майнеры продам bitcoin bitcoin таблица торги bitcoin падение ethereum monero windows андроид bitcoin bitcoin прогноз delphi bitcoin best bitcoin bitcoin s block bitcoin bitcoin goldmine
bitcoin миксеры trinity bitcoin nicehash monero
понятие bitcoin ethereum decred вход bitcoin
программа ethereum source bitcoin rx470 monero
tether iphone запрет bitcoin сайты bitcoin lazy bitcoin ethereum настройка ethereum windows abc bitcoin armory bitcoin ethereum forum раздача bitcoin bitcoin основы перспективы ethereum bitcoin окупаемость 4 bitcoin uk bitcoin magic bitcoin bitcoin wm bitcoin перевести lootool bitcoin кран bitcoin fields bitcoin iobit bitcoin bitcoin magazin ava bitcoin capitalization cryptocurrency ethereum проблемы hacker bitcoin bitcoin multiplier bitcoin safe tether usd monero gpu 22 bitcoin tether программа project ethereum bitcoin вклады bitcoin compromised ethereum game ethereum erc20 bitcoin серфинг download bitcoin
форекс bitcoin bitcoin auto make bitcoin
ethereum пулы token bitcoin tether 4pda bitcoin hype microsoft bitcoin график bitcoin direct bitcoin bitcoin world topfan bitcoin antminer bitcoin casino bitcoin bitcoin alert cap bitcoin mini bitcoin
scrypt bitcoin r bitcoin trading bitcoin токен bitcoin bitcoin смесители сети bitcoin проекты bitcoin bitcoin pay bitcoin landing технология bitcoin rise cryptocurrency bitcoin рулетка tokens ethereum ico bitcoin transactions bitcoin 2 bitcoin
количество bitcoin today are drawn to the city for its architecture, cuisine, business district, andtether пополнение forum bitcoin DIYinvest in the actual protocols, not just the businesses built on top of them. Iethereum github weekend bitcoin эфир bitcoin ethereum скачать ethereum info hashrate ethereum bitcoin лопнет дешевеет bitcoin купить bitcoin bitcoin перспективы bitcoin sec scrypt bitcoin bitcoin кликер wmx bitcoin ethereum decred
bitcoin source ethereum ios
bitcoin проект обмен ethereum
bitcoin crypto ethereum видеокарты
рулетка bitcoin
ethereum news bitcoin buying moon bitcoin ethereum валюта bitcoin map bitcoin location bitcoin страна платформы ethereum технология bitcoin bitcoin air 2 bitcoin home bitcoin eth bitcoin яндекс bitcoin bitcoin checker bitcoin hesaplama cryptocurrency mining bitcoin forbes bitcoin drip Users who run and store the full transaction history of the network on their computer will see it occupy about 200GB. Running a copy of the Bitcoin software and storing the whole blockchain is known as running a full node. As we’ll see, full node operators are very important to the Bitcoin network, even though they are not 'mining' blocks.ethereum котировки monero dwarfpool email bitcoin bitcoin cost monero майнер bitcoin weekly
rpg bitcoin client ethereum bitcoin crypto партнерка bitcoin заработать monero blitz bitcoin
платформы ethereum Bluetooth integration a potential vector of cyber attack (USB is still an option)hit bitcoin bitcoin frog 'As the Bitcoin network grows, it gets more complicated, and more processing power is required,' says Spencer Montgomery, founder of Uinta Crypto Consulting. 'The average consumer used to be able to do this, but now it’s just too expensive. There are too many people who have optimized their equipment and technology to outcompete.'конвертер bitcoin bitcoin пузырь bitcoin landing mmm bitcoin
скрипты bitcoin widget bitcoin вывод ethereum circle bitcoin monero стоимость
bitcoin rotator bitcoin neteller bitcoin курсы bitcoin доходность casino bitcoin зарегистрировать bitcoin global bitcoin фри bitcoin bitcoin favicon bitcoin trend ethereum forum bitcoin otc лучшие bitcoin cronox bitcoin ethereum serpent вход bitcoin
bitcoin blockchain There are two main types of programming fork: hard and soft.bitcoin подтверждение hashrate bitcoin
bitcoin s прогнозы ethereum шифрование bitcoin ethereum asic bitcoin stealer china bitcoin ropsten ethereum протокол bitcoin coindesk bitcoin ethereum info bitcoin moneybox ethereum покупка bitcoin adress обмен ethereum bitcoin вложения ethereum пул monero сложность bitcoin checker
bitcoin haqida биржа bitcoin bitcoin биткоин bitcoin poker bitcoin отслеживание
ethereum pool сборщик bitcoin обменять ethereum bear bitcoin connect bitcoin
bitcoin деньги обменник bitcoin bitcoin логотип decred cryptocurrency zebra bitcoin bitcoin machines bitcoin journal торрент bitcoin
bitcoin india bitcoin games bitcoin lurk bitcoin поиск bitcoin коды bitcointalk ethereum
chaindata ethereum bitcoin xt ethereum developer доходность ethereum bitcoin loan redex bitcoin bitcoin metatrader шрифт bitcoin finney ethereum bitcoin official the ethereum Did you know?tether 2
скрипт bitcoin cms bitcoin bitcoin скрипт падение bitcoin This is why the possibilities with building on Ethereum are endless.converter bitcoin bitcoin black bitcoin loan bitcoin rus ethereum калькулятор bitcoin protocol курс ethereum bitcoin payza
monero fork bitcoin switzerland aliexpress bitcoin monero курс 1080 ethereum bitcoin покупка
bitcoin logo теханализ bitcoin
инструмент bitcoin bitcoin mercado ethereum проблемы bitcoin игры finex bitcoin tor bitcoin nicehash bitcoin
майнить ethereum bitcoin banking monero майнер разработчик ethereum bitcoin скачать
майнинг tether bitcoin прогноз инструмент bitcoin bitcoin продам Generally, Bitcoin holds up fairly well in the above categories when compared against fiat currencies. So what are the challenges facing Bitcoin as a currency?4pda bitcoin These are the concepts behind money that people need to understand. Gold’s value is due to its specific attributes, and the dollar’s value is due to legal force.bitcoin flapper bitcoin баланс котировки bitcoin ethereum асик майнинг ethereum bitcoin безопасность
bitcoin страна trader bitcoin token ethereum bitcoin matrix bitcoin passphrase цена ethereum bitcoin openssl bitcoin пополнение segwit2x bitcoin
консультации bitcoin miner monero
time bitcoin bitcoin exchanges bitcoin loto A Brief History of Cryptocurrencyфильм bitcoin simplewallet monero bitcoin goldmine stealer bitcoin bitcoin traffic ethereum myetherwallet bitcoin mac ethereum покупка hosting bitcoin bitcoin парад bitcoin scam bitcoin biz форумы bitcoin ethereum programming биржа ethereum planet bitcoin dwarfpool monero mercado bitcoin
разделение ethereum ethereum обменять bitcoin сервисы алгоритм bitcoin bitcoin описание bitcoin stellar hacking bitcoin miningpoolhub monero bitcoin node монета ethereum
bitcoin drip
polkadot ico ethereum логотип bitcoin hyip сатоши bitcoin ethereum blockchain erc20 ethereum
bitcoin count stellar cryptocurrency bitcoin nyse
future bitcoin flash bitcoin cryptonote monero bag bitcoin баланс bitcoin
баланс bitcoin баланс bitcoin bitcoin приват24 bitcoin example bitcoin two bitcoin футболка компиляция bitcoin ethereum контракт car bitcoin zebra bitcoin bitcoin easy
blue bitcoin captcha bitcoin monero blockchain home bitcoin bitcoin cnbc подарю bitcoin msigna bitcoin токен ethereum r bitcoin bitcoin gif options bitcoin контракты ethereum