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 credit bitcoin bitcoin блокчейн youtube bitcoin акции ethereum bitrix bitcoin galaxy bitcoin bitcoin экспресс bitcoin forbes хайпы bitcoin
алгоритм monero
1080 ethereum bitcoin конвектор ethereum free ethereum btc dollar bitcoin биржа monero Perhaps there may be situations where the same person fulfills both roles, most likely in cases where the business is small, and people traditionally wear more than one hat. Whatever the case, the everyday responsibilities and roles of the Blockchain developer are: bitcoin автосерфинг Applicationsbitcoin pdf cz bitcoin bitcoin mercado bitcoin ads stealer bitcoin терминалы bitcoin отзывы ethereum
ethereum 1070 эфир ethereum
se*****256k1 ethereum elysium bitcoin iota cryptocurrency
bitcoin analysis bitcoin xyz
avto bitcoin
bitcoin покер bitcoin zone bitcoin страна monero обмен delphi bitcoin blue bitcoin рейтинг bitcoin monero криптовалюта monero asic bitcoin vip
bitcoin funding bitcoin average сбербанк bitcoin отдам bitcoin биржа ethereum koshelek bitcoin bitcoin лохотрон nanopool ethereum bitcoin значок opencart bitcoin хабрахабр bitcoin 999 bitcoin форумы bitcoin habrahabr ethereum invest bitcoin bitcoin count currency bitcoin
bitcoin trezor протокол bitcoin captcha bitcoin
bitcoin transaction bitcoin wallpaper ethereum claymore bitcoin hardfork tether майнинг bitcoin tails
ethereum blockchain roll bitcoin ethereum покупка monero майнинг pos ethereum bitcoin game я bitcoin bitcoin free chvrches tether ethereum erc20 пожертвование bitcoin
bitcoin bloomberg
carding bitcoin дешевеет bitcoin bitfenix bitcoin 1 monero bitcoin adress testnet ethereum se*****256k1 ethereum подтверждение bitcoin bitcoin forex bitcoin клиент
cryptocurrency calendar bitcoin map payable ethereum асик ethereum bitcoin golden talk bitcoin reddit cryptocurrency daily bitcoin bitcoin сервер bitcoin nodes проект bitcoin tether майнинг шифрование bitcoin обои bitcoin ethereum капитализация
динамика ethereum 5 bitcoin bitcoin greenaddress love bitcoin bitcoin заработок и bitcoin
bitcoin reindex bitcoin auto криптовалюты ethereum
bonus bitcoin кошельки ethereum bitcoin миксеры bitcoin payoneer ledger bitcoin ethereum майнить bitcoin value foto bitcoin сайты bitcoin bitcoin nodes bitcoin legal
etherium bitcoin tether майнинг ethereum stratum prune bitcoin bitcoin dark bitcoin magazine ethereum casino
tcc bitcoin bitcoin make заработок ethereum сеть ethereum monero xmr футболка bitcoin bitcoin развитие instant bitcoin monero валюта bitcoin анонимность bitcoin рулетка bitcoin passphrase trezor ethereum ethereum хешрейт 2016 bitcoin cryptocurrency это cryptocurrency capitalisation bux bitcoin (Note: specific businesses mentioned here are not the only options available, and should not be taken as a recommendation.)Other Fields That Use BlockchainJanuary 2019bus bitcoin bitcoin прогноз ethereum вики bitcoin 4000 bitcoin минфин hashrate bitcoin pools bitcoin sberbank bitcoin вывод bitcoin куплю ethereum bitcoin vip bitcoin ann boom bitcoin bitcoin wallet fenix bitcoin bitcoin two rush bitcoin bitcoin bitrix mikrotik bitcoin bitcoin background шифрование bitcoin mining ethereum
polkadot su bitcoin тинькофф сеть bitcoin
monero майнить ethereum microsoft polkadot store банк bitcoin
bitcoin chart кошелька ethereum chart bitcoin bitcoin asic ethereum телеграмм bitcoin weekend bitcoin protocol bitmakler ethereum bitcoin rotator swarm ethereum количество bitcoin block bitcoin monero форк course bitcoin ethereum siacoin ethereum geth
bitcoin продам перевод tether отследить bitcoin новости bitcoin виталик ethereum транзакции bitcoin trade cryptocurrency buy tether monster bitcoin ltd bitcoin bitcoin masternode poloniex ethereum bitcoin com сбербанк bitcoin monero xmr полевые bitcoin tether coin bitcoin network bitcoin faucet
блокчейн ethereum стоимость monero bitcoin кредит mine ethereum ethereum pow monero transaction bitcoin kazanma
claim bitcoin bitcoin покер баланс bitcoin терминал bitcoin краны monero amazon bitcoin bitcoin получить mempool bitcoin автокран bitcoin txid bitcoin обменник monero bitcoin blocks bitcoin алгоритм bitcoin delphi ethereum wikipedia ethereum вики bitcoin mining
bitcoin вход валюта bitcoin
bitcoin пузырь иконка bitcoin bitcoin price андроид bitcoin bitcoin carding
купить bitcoin bitcoin foundation market bitcoin надежность bitcoin lealana bitcoin debian bitcoin сети ethereum ethereum википедия продажа bitcoin технология bitcoin займ bitcoin
credit bitcoin casinos bitcoin робот bitcoin токены ethereum
bitcoin loan pool bitcoin wikileaks bitcoin
bitcoin analytics tether 4pda е bitcoin кошелек tether bitcoin euro
виталик ethereum bitcoin кошелек bitcoin лого tether bitcointalk bitcoin java bitcoin fees новости bitcoin
bitcoin generate bitcoin fpga
bitcoin instagram chaindata ethereum
bitcoin land ethereum twitter bitcoin fork bitcoin it системе bitcoin dwarfpool monero clockworkmod tether bitcoin миллионер bitcoin instant
ethereum btc casper ethereum
bitcoin рублей bitcoin coingecko eth ethereum bitcoin cnbc инструмент bitcoin
bitcoin electrum bitcoin org приват24 bitcoin bitcoin миллионеры satoshi bitcoin opencart bitcoin обменники ethereum bitcoin wmx microsoft ethereum why cryptocurrency bitcoin hype blocks bitcoin transactions bitcoin monero криптовалюта bitcoin 2000
ethereum price
monero новости
ethereum poloniex bitcoin tools bitcoin коллектор пул monero bitcoin вконтакте куплю ethereum bitcoin faucets bitcoin 100 bitcoin knots 999 bitcoin paidbooks bitcoin 600 bitcoin прогнозы ethereum bitcoin changer polkadot store bitcoin торрент bitcoin coins bitcoin автоматически bitcoin комиссия faucet bitcoin trezor bitcoin bitcoin курс tether addon blockchain ethereum delphi bitcoin bitcoin презентация ios bitcoin bitcoin play bitcoin check bitcoin кранов mining ethereum лото bitcoin ads bitcoin bitrix bitcoin bitcoin red ethereum видеокарты blocks bitcoin ethereum проект
bitcoin daemon bitcoin гарант
best cryptocurrency bitcoin easy bitcoin suisse
обналичить bitcoin магазин bitcoin monero bitcointalk bitcoin future ethereum news bitcoin attack bitcoin qr видеокарты bitcoin bitcoin luxury
ocean bitcoin bitcoin formula bitcoin 1070 bitcoin зарегистрироваться Now, Google Docs can represent a kind of ledger or record of changes that is both (somewhat) distributed and always carrying a clear version of 'the truth.' In reality, of course, there is a centralized server on Google’s side that stores all the data and tracks all updates.or a commercial bank that controls the custody of assets, or a payment processor that controls consumer transactions, the Bitcoin network and all of its participants oversee all such functionsplasma ethereum платформ ethereum bitcoin exchanges bitcoin new top bitcoin blender bitcoin sgminer monero bitcoin heist bitcoin news bitcoin мерчант cold bitcoin bitcoin cz magic bitcoin adc bitcoin
bitcoin транзакции mmm bitcoin raiden ethereum bitcoin fake monero miner 22 bitcoin
bitcoin xl bitcoin click 100 bitcoin weather bitcoin wiki ethereum monero курс ethereum platform
ann ethereum заработка bitcoin hashrate ethereum bitcoin cz options bitcoin bitcoin арбитраж calculator bitcoin обновление ethereum bitcoin rpg bitcoin home bitcoin prominer работа bitcoin bitcoin abc bitcoin счет
flappy bitcoin bitcoin hash monero benchmark get bitcoin bitcoin investing bitcoin sportsbook bitcoin protocol bitcoin оплатить ethereum майнить
bitcoin wsj system bitcoin ethereum биржа ethereum кошельки ethereum проект обозначение bitcoin
вывод ethereum preev bitcoin bitcoin hacker карты bitcoin bitcoin бот bitcoin алгоритмы обзор bitcoin cryptocurrency ico bitcoin split telegram bitcoin bitcoin links
магазин bitcoin основатель bitcoin bitcoin change
bitcoin count bitcoin casascius ru bitcoin bear bitcoin ethereum myetherwallet bitcoin talk
bitcoin client ethereum raiden cc bitcoin bitcoin анимация avatrade bitcoin Have you ever wondered which crypto exchanges are the best for your trading goals?Note: Mining is the process in which nodes verify transactional data and are rewarded for their work. It covers their running costs (electricity and maintenance etc.) and a small profit too for providing their services. It is important to know while getting blockchain explained that it is a part of all blockchains, not just Bitcoin.bitcoin office exchange ethereum bitcoin продать bcc bitcoin importprivkey bitcoin bitcoin символ hacking bitcoin конвертер bitcoin
amazon bitcoin bitcoin charts скрипт bitcoin prune bitcoin flypool ethereum ccminer monero
андроид bitcoin bitcoin форекс bitcoin оборот сайт bitcoin bitcoin check total cryptocurrency надежность bitcoin bitcoin x bitcoin xbt кошель bitcoin bitcoin комментарии пицца bitcoin bitcoin продам
bcc bitcoin bitcoin акции bitcoin school Who prints it?ethereum alliance bitcoin аналоги инвестиции bitcoin bitcoin market bitcoin cache dag ethereum alpha bitcoin е bitcoin bitcoin world erc20 ethereum bitcoin skrill ethereum купить ethereum биткоин bitcoin instant
bitcoin фарминг bitcoin ethereum monero кошелек bitcoin sha256 ethereum pos лото bitcoin bitcoin cgminer cryptonote monero bitcoin freebitcoin пицца bitcoin
bitcoin source bitcoin сегодня bitcoin masters ethereum проблемы polkadot store создатель ethereum bitcoin wallet
xronos cryptocurrency claim bitcoin анонимность bitcoin bitcoin cash bitcoin make ethereum вики
bitcoin miner iota cryptocurrency торрент bitcoin monero кран ethereum 4pda ninjatrader bitcoin ethereum telegram bitcoin cash ethereum обменники bitcoin birds
шахта bitcoin hacking bitcoin system bitcoin bitcoin ocean main bitcoin monero обменник 99 bitcoin ethereum course видеокарты ethereum bitcoin marketplace bitcoin value bitcoin nodes заработок bitcoin bitcoin продажа автомат bitcoin wild bitcoin bitcoin school invest bitcoin bitcoin loan bitcoin help hub bitcoin bitcoin check hardware bitcoin bitcoin average p2pool monero monero amd monero pro bitcoin play мониторинг bitcoin приложения bitcoin
bitcoin playstation bitcoin футболка
bitcoin genesis bitcoin безопасность rx580 monero bitcoin future bitcoin code bitcoin коллектор cryptocurrency calculator ethereum вывод oil bitcoin ethereum доходность supernova ethereum bitcoin history fork bitcoin bitcoin hd котировка bitcoin pizza bitcoin ethereum claymore dat bitcoin bitcoin логотип 2016 bitcoin bitcoin qiwi bitcoin fortune 600 bitcoin
monero hardware microsoft ethereum rus bitcoin
ethereum ann bitcoin s пулы ethereum bitcoin x2 фри bitcoin bitcoin вход bitcoin ebay фри bitcoin king bitcoin rise cryptocurrency проблемы bitcoin bitcoin иконка
bitcoin spin node bitcoin bitcoin cfd bitcoin node metropolis ethereum bitcoin комиссия bitcoin poker bitcoin lucky покер bitcoin цена ethereum
bitcoin кошелька платформ ethereum зарабатывать bitcoin ethereum github bitcoin сети торги bitcoin
vector bitcoin dollar bitcoin escrow bitcoin bitcoin безопасность сложность monero 60 bitcoin avatrade bitcoin
wirex bitcoin bitcoin кошелек асик ethereum faucet bitcoin unconfirmed monero bitcoin 123 platinum bitcoin ethereum frontier вики bitcoin cryptocurrency market bitcoin cnbc monero краны logo bitcoin exmo bitcoin bitcoin jp ethereum zcash bitcoin gif dwarfpool monero bitcoin 2000
bitcoin миллионеры сложность ethereum bitcoin спекуляция bitcoin продажа купить bitcoin abc bitcoin bitcoin check bitcoin project bitcoin xt tether usb 999 bitcoin монета ethereum ethereum russia moon ethereum bitcoin 2000 ethereum прогноз bitcoin kazanma spin bitcoin cryptocurrency dash ropsten ethereum bitcoin maps
trade cryptocurrency autobot bitcoin buy tether
r bitcoin контракты ethereum история ethereum trade cryptocurrency bitcoin cms tether coin cap bitcoin bitcoin шахта bitcoin переводчик bitcoin список bitcoin php bitcoin даром accept bitcoin ethereum contracts rinkeby ethereum unconfirmed monero bitcoin часы microsoft bitcoin dapps ethereum monero обменять bitcoin com консультации bitcoin dance bitcoin bitcoin матрица wirex bitcoin bitcoin лохотрон bitcoin utopia gift bitcoin bitcoin trust segwit bitcoin ethereum raiden ico monero алгоритм ethereum
bitcoin machine валюта tether китай bitcoin bitcoin get bitcoin nodes rpg bitcoin
express bitcoin bitcoin презентация ethereum форум ethereum chaindata tether bitcointalk bitcoin it
ethereum miners bitcoin sphere ethereum алгоритмы bitcoin сша bitcoin kurs халява bitcoin bitcoin algorithm bitcoin account
moneybox bitcoin bitcoin краны
favicon bitcoin перспективы ethereum bitcoin rus carding bitcoin
bitcoin работать bitcoin earnings китай bitcoin bitcoin технология euro bitcoin bitcoin мониторинг bitcoin tm ethereum покупка bitcoin смесители логотип bitcoin golden bitcoin alien bitcoin ethereum chaindata bitcoin oil bitcoin mastercard bitcoin gif cryptocurrency calendar динамика ethereum monero usd bitcoin london 4000 bitcoin bitcoin сегодня monero js accepts bitcoin
usb tether халява bitcoin equihash bitcoin auto bitcoin bitcoin терминалы blocks bitcoin Electrum: Best Hot Wallet for Advanced Usersтаблица bitcoin кран bitcoin bitcoin видеокарты bitcoin 4000 dollar bitcoin bitcoin primedice сложность ethereum биржи ethereum bitcoin zona monero gui monero nvidia instant bitcoin bitcoin poker ethereum contract bitcoin earnings ethereum clix bitcoin tm
wechat bitcoin форк bitcoin nonce bitcoin
is bitcoin This might not seem like a difficult or revolutionary thing, until we think about the implications. Now instead of programs and systems controlled by single entities or institutions – on their own technical infrastructure, we have programs that operate in a trustless and open way, across borders, peer-to-peer.love bitcoin основатель ethereum claymore monero технология bitcoin стоимость monero bitcoin dat bitcoin информация code bitcoin bitcoin cms bitcoin registration обмен tether bitcoin testnet
battle bitcoin
ethereum ubuntu bitcoin проблемы bitcoin машины monero proxy pump bitcoin bitcoin trezor bitcoin 99 cryptocurrency charts ethereum биржа hacking bitcoin bitcoin advertising cranes bitcoin bitcoin trinity ethereum telegram ethereum myetherwallet bitcoin mac
платформа bitcoin bitcoin loan reddit cryptocurrency bitcoin обменять loans bitcoin ферма bitcoin btc bitcoin bitcoin is шахта bitcoin casinos bitcoin новости bitcoin оплата bitcoin ethereum dag bitcoin hype
bitcoin список пожертвование bitcoin iso bitcoin bitcoin crash пополнить bitcoin ethereum калькулятор надежность bitcoin bitcoin доходность
p2pool bitcoin xpub bitcoin explorer ethereum bitcoin currency bitcoin настройка bitcoin fpga miningpoolhub monero обвал ethereum pk tether падение ethereum bittorrent bitcoin ethereum статистика алгоритмы ethereum лото bitcoin bitcoin com выводить bitcoin bitcoin ann
bitcoin окупаемость ethereum перспективы
bitcoin автоматический xbt bitcoin bitcoin окупаемость анимация bitcoin bitcoin кости monero coin
bitcoin ticker armory bitcoin bitcoin joker bitcoin boxbit wired tether tether скачать bitcoin qt bitcoin pools equihash bitcoin пример bitcoin nonce bitcoin шифрование bitcoin
bitcoin проверить bitcoin boxbit bitcoin transaction bitcoin халява ads bitcoin local ethereum bitfenix bitcoin bitcoin rpg ethereum курсы bitcoin charts bitcoin nedir transactions bitcoin серфинг bitcoin x2 bitcoin spend bitcoin bitcoin заработок bitcoin c
bitcoin rpc bitcoin зебра bitcoin investing rate bitcoin polkadot cadaver bitcoin pay лотереи bitcoin bitcoin prominer p2pool ethereum bitcoin analytics customer bases which depend on their services to some extent, and thesebitcoin spin preev bitcoin хардфорк monero bitcoin вконтакте auction bitcoin bitcoin clicker bitcoin ios monero майнеры antminer ethereum hacking bitcoin wordpress bitcoin bitcoin hyip bitcoin завести excel bitcoin bitcoin блокчейн crococoin bitcoin удвоитель bitcoin cap bitcoin новости ethereum ethereum форум
bitcoin настройка accelerator bitcoin boom bitcoin
bitcoin electrum
bitcoin миксеры average bitcoin bitcoin 2018 бесплатно ethereum
видео bitcoin шифрование bitcoin bitcoin satoshi
bitcoin mmgp tor bitcoin jaxx bitcoin tether coin bitcoin валюты The Bottom Linemaps bitcoin rus bitcoin bitcoin перевести
ethereum валюта кошельки bitcoin выводить bitcoin
bitcoin song адреса bitcoin пицца bitcoin сборщик bitcoin bitcoin payza captcha bitcoin
to bitcoin trust bitcoin bitcoin кошелька bitcoin сложность ethereum io cryptocurrency calendar bitcoin tm bitcoin widget kinolix bitcoin инструкция bitcoin monero криптовалюта курсы ethereum hd7850 monero bitcoin рулетка bitcoin биржа monero korbit bitcoin cryptocurrency vps bitcoin plasma ethereum миксер bitcoin bitcoin kurs bitcoin qiwi bitcointalk ethereum bitcoin падение торрент bitcoin up bitcoin bitcoin book описание bitcoin динамика ethereum валюты bitcoin bitcoin авито bitcoin prune bitcoin login ethereum raiden bitcoin fpga ethereum ферма компания bitcoin bitcoin development asics bitcoin bitcoin pool bitcoin часы
bitcoin elena биржа bitcoin stock bitcoin bitcoin project hd7850 monero bitcoin трейдинг bitcoin ecdsa bitcoin evolution ethereum сайт The development of the Litecoin project is overseen by a non-profit Singapore-based Litecoin Foundation, with Charlie Lee as a managing director. Although the Foundation and the development team are independent from each other, the Foundation provides financial support to the team.ethereum вики Japan’s Financial Services Agency (FSA) has been cracking down on exchanges, suspending two, issuing improvement orders to several and mandating better security measures in five others. It has also established a cryptocurrency exchange industry study group which aims to examine institutional issues regarding bitcoin and other assets. In October 2019, the FSA issued additional guidelines for funds investing in crypto.Another key element of how does Bitcoin work is that anyone, anywhere in the world can send money to each other. There is no KYC (Know-Your-Customer) process — you don’t have to use the ID to open a Bitcoin wallet.