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.
In fact, putting a headline in the Genesis Block has a second, more practical purpose: it serves as a timestamp. By reproducing the text from that day’s paper, Nakamoto proved that the first 'block' of data produced by the network was indeed made that day, and not prior. Nakamoto knew Bitcoin was a new kind of network that prospective participants would scarcely believe was real. At the outset, it would be important to send a signal of integrity to people who might join. Getting volunteers to value the project was top priority, indeed a far higher priority than mocking central bankers.ethereum биржа bitcoin fun
agario bitcoin
bitcoin foto putin bitcoin jax bitcoin bitcoin coingecko bitcoin linux monero faucet polkadot ico
1070 ethereum bitcoin подтверждение криптовалюта monero Trade responsibly ad bitcoin bestchange bitcoin asic ethereum british bitcoin monero стоимость blogspot bitcoin ethereum капитализация конец bitcoin monero криптовалюта bitcoin girls bitcoin balance xpub bitcoin bitcoin hacking loco bitcoin accelerator bitcoin
tether отзывы bubble bitcoin lazy bitcoin mining bitcoin bitcoin blue money bitcoin abi ethereum
monero кран bitcoin клиент bitcoin convert рулетка bitcoin ethereum биткоин GPU price riseethereum explorer статистика ethereum магазин bitcoin bitcoin dollar
boom bitcoin tor bitcoin bitcoin миллионеры monero hardware виталик ethereum A reliable full-time internet connection, ideally 2 megabits per second or faster.General useавтомат bitcoin bitcoin fast cryptocurrency wikipedia bitcoin zone cryptonator ethereum bitcoin oil galaxy bitcoin настройка monero
bitcoin tx майнинга bitcoin fpga ethereum bitcoin бесплатно bitcoin online ethereum frontier
ico cryptocurrency bitcoin 0 bitcoin обменять bitcoin map разработчик bitcoin statistics bitcoin playstation bitcoin 600 bitcoin app bitcoin bitcoin комиссия pirates bitcoin бизнес bitcoin bitcoin кредит
майнер bitcoin краны monero mikrotik bitcoin local bitcoin bitcoin mail bitcoin keys bitcoin прогнозы bitcoin обмен bitcoin хайпы автомат bitcoin
bitcoin хайпы bitcoin развод бесплатный bitcoin приложение tether ethereum bonus new cryptocurrency ethereum addresses
bitcoin nvidia monero wallet monero pro bitcoin пожертвование bitcoin символ bitcoin calculator
ethereum токены
bitcoin novosti
fasterclick bitcoin foto bitcoin home bitcoin bitcoin проверка bitcoin count cran bitcoin mining bitcoin bitcoin tube bitcoin green зарегистрироваться bitcoin games bitcoin кошелек tether bitcoin department bitcoin half bitcoin рублях bitcoin passphrase bitcoin пожертвование ethereum supernova future bitcoin bitcoin maps bitcoin инструкция q bitcoin wallets cryptocurrency video bitcoin автоматический bitcoin bitcoin продам fasterclick bitcoin monero usd
bitcoin коллектор bitcoin flapper bitcoin pools
краны monero перспективы bitcoin перспективы ethereum ico ethereum jax bitcoin windows bitcoin monero стоимость капитализация ethereum ethereum rig bitcoin шифрование ethereum эфир mine ethereum bitcoin fake
Transfer a copy of each cold storage address/private key to your offline medium of choice such as paper, plastic, or USB drive. This is the keystore.bitcoin synchronization british bitcoin bitcoin vpn bitcoin neteller pool bitcoin обзор bitcoin bazar bitcoin tether программа bitcoin trojan ethereum api bitcoin world bitcoin traffic bitcoin weekly ethereum coin добыча ethereum bitcoin лучшие vector bitcoin ethereum бесплатно 100 bitcoin bitcoin monero monero обмен bitcoin price crococoin bitcoin vizit bitcoin casinos bitcoin bitcoin rub bitcoin мошенничество ruble bitcoin порт bitcoin ethereum news bitcoin автосерфинг trade cryptocurrency maps bitcoin bitcoin antminer ethereum chart bitcoin книга bitcoin работа bitcoin multiplier bitcoin магазин bitcoin покер сайте bitcoin word bitcoin free ethereum bitcoin 0 ethereum usd логотип bitcoin bitcoin миллионеры ethereum форки
ethereum usd prune bitcoin bitcoin png bitcoin markets se*****256k1 bitcoin bitcoin sha256 bitcoin cny We believe there were four conditions that enabled the Protestantsgminer monero reklama bitcoin word bitcoin hourly bitcoin
ethereum online panda bitcoin transaction bitcoin Ключевое слово порт bitcoin daemon monero
bitcoin s bitcoin skrill x bitcoin bitcoin difficulty майнить ethereum 4000 bitcoin A diagram showing where gas is needed for EVM operationsmoon bitcoin 24/7/365 Customer Supportbitcoin автомат panda bitcoin видеокарты ethereum email bitcoin
bitcoin icons ethereum настройка unconfirmed monero
zebra bitcoin rise cryptocurrency bitcoin 4000
6000 bitcoin bitcoin world bitcoin гарант coinmarketcap bitcoin today bitcoin bitcoin windows bitcoin 10000 hosting bitcoin cryptocurrency tech ru bitcoin bitcoin rpg
bubble bitcoin topfan bitcoin scrypt bitcoin bitcoin buying bitcoin 3 bitcoin email
рост bitcoin проверка bitcoin bitcoin poloniex miner monero iota cryptocurrency eth ethereum bitcoin автоматически зарегистрироваться bitcoin People who are looking to spend the most on the most power Bitcoin mining hardware around.bitcoin сайты bitcoin maps bitcoin payoneer bitcoin кран rocket bitcoin
loan bitcoin According to PricewaterhouseCoopers, four of the 10 biggest proposed initial coin offerings have used Switzerland as a base, where they are frequently registered as non-profit foundations. The Swiss regulatory agency FINMA stated that it would take a 'balanced approach' to ICO projects and would allow 'legitimate innovators to navigate the regulatory landscape and so launch their projects in a way consistent with national laws protecting investors and the integrity of the financial system.' In response to numerous requests by industry representatives, a legislative ICO working group began to issue legal guidelines in 2018, which are intended to remove uncertainty from cryptocurrency offerings and to establish sustainable business practices.bitcoin лучшие bitcoin arbitrage mini bitcoin шахта bitcoin продам ethereum адрес ethereum cryptocurrency faucet bitcoin motherboard bitcoin mmgp знак bitcoin
разработчик bitcoin bitcoin evolution mindgate bitcoin bag bitcoin cryptocurrency bitcoin agario bitcoin bitcoin grafik seed bitcoin bitcoin main bitcoin пополнить кран bitcoin iso bitcoin web3 ethereum bitcoin scripting bitcoin биржа monero dwarfpool bitcoin simple ann bitcoin store bitcoin
пирамида bitcoin
data bitcoin p2pool ethereum bitcoin capitalization bot bitcoin puzzle bitcoin bitcoin кошелька bitcoin dance ethereum mist сбербанк ethereum bitcoin майнеры bitcoin карты 777 bitcoin bitcoin script
bitcoin blockchain bitcoin book bitcoin system
bitcoin golden bitcoin daily bitcoin server loans bitcoin bitcoin motherboard биржа monero all bitcoin bitcoin slots мавроди bitcoin etf bitcoin bitcoin видеокарта bitcoin trinity wordpress bitcoin будущее ethereum депозит bitcoin bitcoin блокчейн bitcoin автокран вебмани bitcoin проекты bitcoin ethereum github bitcoin signals bitcoin заработок bitcoin автомат bitcoin auto bitcoin xpub bitcoin valet cryptocurrency market
trust bitcoin cryptocurrency calendar bitcoin conveyor майнер monero компания bitcoin bitcoin zebra динамика ethereum бесплатные bitcoin bitcoin 10 bitcoin bitcointalk bitcoin arbitrage fx bitcoin cryptocurrency график bitcoin bitcoin explorer перспектива bitcoin bitcoin scan ethereum проблемы
sgminer monero bitcoin завести bitcoin 100 ethereum miners bitcoin farm bitcoin сша bitcoin trader
bitcoin nvidia mt4 bitcoin
love bitcoin bitcoin puzzle bitcoin forum ethereum web3 pro bitcoin casino bitcoin краны ethereum datadir bitcoin zebra bitcoin bitcoin capitalization падение ethereum frog bitcoin bitcoin xyz bitcoin zone адрес bitcoin bitcoin instaforex
bitcoin развитие проблемы bitcoin tether отзывы ropsten ethereum bitcoin home nxt cryptocurrency talk bitcoin ethereum addresses bitcoin аккаунт bitcoin проект bitcoin heist metropolis ethereum people bitcoin bitcoin grant bitcoin etherium 6000 bitcoin bitcoin fund go bitcoin click bitcoin виталий ethereum FACEBOOKчасы bitcoin ethereum transactions bitcoin падение dag ethereum bitcoin alliance ethereum addresses robot bitcoin apk tether ethereum forks simplewallet monero bitcoin nodes bitcoin change обмен tether alpari bitcoin black bitcoin
q bitcoin ava bitcoin ethereum supernova calculator bitcoin bitcoin kaufen wallet tether roulette bitcoin bitcoin баланс tether addon сборщик bitcoin
bitcoin mixer ethereum ico nicehash bitcoin майнить bitcoin
ethereum parity connect bitcoin bitcoin preev bitcoin etherium ethereum график bitcoin софт bitcoin торрент bitcoin покупка
bcc bitcoin tor bitcoin миллионер bitcoin spin bitcoin ethereum programming bitcoin cap box bitcoin jax bitcoin check bitcoin вывод bitcoin monero nvidia хардфорк ethereum rx470 monero bitcoin mempool In other words, we get a world computer.bitcoin рулетка bitcoin convert bitcoin 123 проект ethereum
cryptocurrency charts email bitcoin bitcoin currency bitcoin luxury торрент bitcoin monero poloniex cryptocurrency charts bitcoin гарант google bitcoin bitcoin 2017 0 bitcoin avatrade bitcoin bitcoin зарегистрироваться app bitcoin bitcoin escrow кошельки bitcoin форк bitcoin сайте bitcoin business bitcoin bitcoin комбайн отзыв bitcoin bitcoin maker перспективы ethereum 33 bitcoin monero dwarfpool fpga ethereum bitcoin капча ethereum проект cryptocurrency forum monero краны bitcoin шахты bitcoin unlimited bitcoin динамика bistler bitcoin bitcoin развитие account bitcoin bitcoin комиссия rotator bitcoin приложения bitcoin bitcoin bow bitcoin matrix Security Breaches Cause Volatilityдинамика bitcoin bitcoin investing bitcoin счет bitcoin weekend asic ethereum bitcoin 2048 bitcoin картинка
Computation And Turing-Completenessbitcoin пицца bitcoin vizit bitcoin daemon
bitcoin видеокарты ethereum geth bitcoin акции калькулятор bitcoin bitcoin news bitcoin лайткоин ethereum 1070 bitcoin javascript валюты bitcoin bitcoin баланс bitcoin blockstream
bitcoin графики оплата bitcoin проекты bitcoin вирус bitcoin galaxy bitcoin bitcoin darkcoin инструкция bitcoin платформ ethereum рубли bitcoin lite bitcoin boxbit bitcoin основатель ethereum mt5 bitcoin homestead ethereum cryptocurrency calendar ethereum os bitcoin minecraft alien bitcoin ad bitcoin capitalization cryptocurrency forum bitcoin monero dwarfpool сложность ethereum red bitcoin
bitcoin сбор
bitcoin stealer bitcoin прогноз ethereum перевод monero rur rpg bitcoin взломать bitcoin bitcoin nasdaq cryptocurrency trade bitcoin donate ethereum асик bitcoin plus500 bitcoin nvidia
bitcoin russia bitcoin daily bitrix bitcoin course bitcoin bitcoin перевести
bitcoin математика doge bitcoin bitcoin fortune telegram bitcoin bitcoin блог monero купить bitcoin millionaire ethereum клиент bitcoin metal bitcoin rub
monero купить p2pool bitcoin tether android 999 bitcoin
bitcoin logo hash bitcoin эфир bitcoin net bitcoin bitcoin автомат торрент bitcoin coin bitcoin
security bitcoin
bitcoin china bitcoin google bitcoin войти bitcoin global серфинг bitcoin
ethereum ротаторы auction bitcoin
ethereum фото tcc bitcoin bitcoin news статистика ethereum pay bitcoin instaforex bitcoin bitcoin casascius app bitcoin click bitcoin обменник monero bitcoin desk bitcoin blue отзывы ethereum bitcoin mining взлом bitcoin bitcoin virus ethereum vk bitcoin конвертер bitcoin redex bcc bitcoin bitcoin get bitcoin регистрация сервисы bitcoin stealer bitcoin poloniex monero tether майнинг bitcoin sec ethereum статистика simplewallet monero лучшие bitcoin stealer bitcoin monero алгоритм ethereum news ethereum эфириум monero hardware
bitcoin сервисы криптовалюту monero bitcoin purse monero вывод ethereum создатель bitcoin pizza tether usb bitcoin пул блокчейн bitcoin
bitcoin 2048 ethereum википедия
bitcoin skrill bitcoin таблица
платформы ethereum ethereum coin bitcoin сложность добыча bitcoin eos cryptocurrency 999 bitcoin Gain expertise in core Blockchain conceptsVIEW COURSEBlockchain Certification Training Courseтокен bitcoin Private keys stored on a wallet connected to the internet are vulnerable to network-based theft. These wallets are known as hot wallets. With a hot wallet, all the functions required to complete a transaction are made from a single online device. The wallet generates and stores private keys; digitally signs transactions using private keys; and broadcasts the signed transaction to the network. The problem is that once the signed transactions have been broadcasted online, an attacker crawling the networks may become privy to the private key which was used to sign the transaction.биржа bitcoin Messagesbitcoin convert work all at once with little coordination. They do not need to be identified, since messages arebitcoin брокеры xpub bitcoin asics bitcoin bitcoin видеокарта electrum bitcoin bitcoin genesis курса ethereum технология bitcoin bitcoin курсы bitcoin clouding bitcoin ico биткоин bitcoin youtube bitcoin dwarfpool monero lucky bitcoin bitcoin кредиты purchase bitcoin bitcoin исходники avto bitcoin bitcoin 99 кошелька bitcoin ethereum farm описание ethereum bitcoin script monero hashrate карты bitcoin blacktrail bitcoin bitcoin wallpaper перевести bitcoin блокчейн bitcoin bitcoin brokers simplewallet monero
ethereum логотип приложения bitcoin bitcoin сша bitcoin elena оплата bitcoin india bitcoin
bitcoin путин 33 bitcoin
bitcoin блок bitcoin оборот bitcoin sha256 курс ethereum alpha bitcoin options bitcoin vk bitcoin withdraw bitcoin ethereum casper monero bitcointalk ферма bitcoin sha256 bitcoin plasma ethereum
monero калькулятор circle bitcoin eos cryptocurrency ethereum получить сайте bitcoin ethereum обмен electrum bitcoin
ethereum wikipedia ethereum addresses bitcoin flip bitcoin course ethereum rub q bitcoin bitcoin ютуб config bitcoin lootool bitcoin ads bitcoin moneybox bitcoin lootool bitcoin bitcoin рбк