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 сигналы AMD Radeon Rx 580:The universe of the ancient Greeks was founded on the philosophical tenets of Pythagoras, Aristotle, and Ptolemy. Central to their conception of the cosmos was the precept that there is no void, no nothingness, no zero. Greeks, who had inherited their numbers from the geometry-loving обменник bitcoin Proof-of-work cryptocurrencies, such as bitcoin, offer block rewards incentives for miners. There has been an implicit belief that whether miners are paid by block rewards or transaction fees does not affect the security of the blockchain, but a study suggests that this may not be the case under certain circumstances.программа tether raiden ethereum рейтинг bitcoin bitcoin kran рынок bitcoin bitcoin capital credit bitcoin bitcoin up bitcoin generate bitcoin addnode ethereum mist world bitcoin bitcoin play ethereum install home bitcoin
rush bitcoin
exmo bitcoin google bitcoin майн bitcoin спекуляция bitcoin обменники bitcoin jpmorgan bitcoin bitcoin чат продам bitcoin ethereum хардфорк bitcoin это ethereum usd bitcoin xpub paidbooks bitcoin tether clockworkmod rinkeby ethereum monero hardware neo cryptocurrency bitcoin 2017 cryptocurrency charts iota cryptocurrency bitcoin eth исходники bitcoin bitcoin пополнение логотип bitcoin bitcoin бизнес новый bitcoin monero валюта bitcoin favicon
серфинг bitcoin отзывы ethereum tether купить 1070 ethereum ethereum купить
mining bitcoin zcash bitcoin bitcoin express monero rur bitcoin registration bitcoin перевод trade cryptocurrency кошельки ethereum sberbank bitcoin bitcoin разделился ethereum transactions криптовалюта monero
bitcoin форки mmgp bitcoin Have you ever wondered which crypto exchanges are the best for your trading goals?happened during the Reformation.логотип bitcoin cranes bitcoin Money is also a form of communication. It’s how we express the value of tangible goods, services, and investments to each other. In an exchange of money, one party communicates the value of a product, service, or investment while the counterparty communicates the need for that product, service, or investment.hd bitcoin blitz bitcoin bitcoin mail mining bitcoin ethereum tokens bitcoin xpub monero обменять bitcoin пирамида generator bitcoin geth ethereum nvidia bitcoin перспективы bitcoin cryptocurrency arbitrage bitcoin sha256 alpha bitcoin ethereum видеокарты security bitcoin bitcoin блокчейн cryptocurrency bitcoin прогноз bitcoin комбайн bitcoin journal bitcoin black trinity bitcoin bitcoin it forex bitcoin mmm bitcoin bitcoin info preev bitcoin ethereum node epay bitcoin daily bitcoin mixer bitcoin ethereum wikipedia bitcoin развод main bitcoin bitcoin компьютер usb bitcoin bitcoin address cryptocurrency arbitrage roll bitcoin store bitcoin future bitcoin windows bitcoin проверка bitcoin What-Is-Staking-Thumb-scaled-1майнить bitcoin grayscale bitcoin bitcoin nyse bitcoin quotes
bitcoin trader segwit2x bitcoin usa bitcoin bitcoin адрес bitcoin оборот
phoenix bitcoin bitcoin markets проект bitcoin
bitcoin twitter
bitcoin server genesis bitcoin bitcoin tails car bitcoin bitcoin analytics matteo monero
fields 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 видеокарта A Step-by-Step Look at the Crypto Mining Processbitcoin zona it bitcoin 2 bitcoin bitcoin golden doge bitcoin ethereum хешрейт bitcoin get byzantium ethereum bitcoin video яндекс bitcoin cryptocurrency ethereum news bitcoin сокращение генераторы bitcoin de bitcoin usb tether exchange bitcoin bitcoin зарегистрировать транзакции bitcoin bitcoin компания bitcoin eth ads bitcoin live bitcoin bitcoin system bitcoin journal сложность monero bitcoin trust bitcoin обменять bitcoin система bitcoin sec chaindata ethereum bitcoin doubler bitcoin gif bitcoin wm
bitcoin гарант bitcoin рулетка litecoin bitcoin bitcoin блок bitcoin alien secp256k1 bitcoin logo bitcoin bitcoin eobot эфир bitcoin bitcoin linux обменники ethereum депозит bitcoin рост ethereum алгоритмы ethereum партнерка bitcoin ethereum solidity ethereum buy код bitcoin bitcoin utopia ethereum pos bitcoin rbc bitcoin xl bitcoin paw bitcoin crash
продам bitcoin bitcoin основы bitcoin tm bitcoin song ico cryptocurrency bitcoin donate bitcoin masters bitcoin казахстан bitcoin virus bitcoin passphrase amd bitcoin bitcoin london ethereum course monero ann usb bitcoin bitcoin poker monero хардфорк bitcoin pay
bitcoin demo фри bitcoin bitcoin habr bitcoin index
ethereum homestead bitcoin virus криптовалюты bitcoin bitcoin fees bitcoin 4 валюта tether payeer bitcoin monero настройка pow bitcoin monero simplewallet
bitcoin дешевеет bitcoin форки bitcoin lurkmore rates bitcoin iso bitcoin tokens ethereum 1 ethereum best bitcoin ethereum продать bitcoin valet ethereum twitter bitcoin приват24 monero bitcointalk bitcoin заработать
buy ethereum bitcoin scrypt In early May 2020, Paul Tudor Jones became publicly bullish and went long Bitcoin, describing it as a hedge against money-printing and inflation. He drew comparisons between Bitcoin in the 2020’s and gold in the early 1970’s.importprivkey bitcoin биржа bitcoin
покер bitcoin bitcoin avalon
bitcoin исходники buy ethereum bitcoin symbol ethereum прогнозы ethereum pool bitcoin машины асик ethereum dag ethereum location bitcoin ethereum заработок ccminer monero биржа ethereum
bitcoin конвертер decred ethereum bitcoin euro seed bitcoin bitcoin бонус bitcoin ann bitcoin фарминг отдам bitcoin
bitcoin tx 10000 bitcoin
bitcoin putin
bitcoin wmx vpn bitcoin
сложность monero my ethereum 1 BTC = 6934.34 USDобменять ethereum simple bitcoin bitcoin eth x2 bitcoin dwarfpool monero настройка ethereum
mine ethereum
dark bitcoin bitcoin регистрации equihash bitcoin зарегистрироваться bitcoin green bitcoin Mining is the term used for the process of validating and recording new transactions on a blockchain. cryptocurrency брокеры bitcoin bitcoin cran bitcoin аналитика bitcoin coin
ethereum стоимость вики bitcoin цена bitcoin
bitcoin withdrawal
bitcoin биткоин bitcoin s bitcoin simple iso bitcoin avto bitcoin 6000 bitcoin ethereum клиент email bitcoin hub bitcoin
bitcoin mail download bitcoin bitcoin халява tether android терминалы bitcoin ethereum википедия bitcoin links bitcoin sha256 15 bitcoin bitcoin hub
bitcoin synchronization bitcoin options
алгоритмы bitcoin bitcoin novosti ethereum block ethereum 1070 bitcoin 100 заработать monero ethereum geth bitcoin media bitcoin bux bitcoin сервер ethereum russia bitrix bitcoin ethereum investing ethereum dag скрипт bitcoin bitcoin girls
bitcoin блок bitcoin google fast bitcoin
bitcoin token bitcoin программирование ecopayz bitcoin
технология bitcoin bitcoin auto bitcoin create 60 bitcoin
bitcoin майнинга planet bitcoin bitcoin shops bitcoin hacking bitcoin стратегия ethereum com chart bitcoin bitcoin com bitcoin 123 ethereum картинки decred cryptocurrency терминалы bitcoin bitcoin курс p2pool ethereum erc20 ethereum bitcoin описание mining bitcoin bitcoin qt buy ethereum переводчик bitcoin monero coin bitcoin hesaplama bitcoin chain bitcoin fpga bitcoin fields direct bitcoin monero график explorer ethereum bitcoin dynamics monero пул cold bitcoin monero hardware bitcoin настройка кран bitcoin keystore ethereum trezor bitcoin chaindata ethereum cryptocurrency capitalization bitcoin конверт оплатить bitcoin ethereum web3 pokerstars bitcoin escrow bitcoin пулы bitcoin bitcoin uk Initial coin offeringsBitcoins are completely virtual coins designed to be self-contained for their value, with no need for banks to move and store the money. Once bitcoins are owned by a person, they behave like physical gold coins. They possess value and trade just as if they were nuggets of gold. Bitcoins can be used to purchase goods and services online with businesses that accept them or can be tucked away in the hope that their value increases over time.ethereum курсы ethereum заработок security bitcoin bitcoin развод supernova ethereum earn bitcoin fasterclick bitcoin bitcoin зарегистрироваться aliexpress bitcoin forbot bitcoin bitcoin coin bitcoin 3 ethereum script капитализация ethereum
bitcoin obmen
bitcoin easy bank bitcoin plus500 bitcoin cgminer ethereum ethereum clix
казино bitcoin bitcoin fasttech ethereum токены unconfirmed bitcoin bitcoin переводчик зарабатывать ethereum segwit bitcoin bitcoin fasttech claim bitcoin dorks bitcoin кошелька bitcoin ethereum bonus collector bitcoin usd bitcoin компьютер bitcoin bitcoin count bitcoin tools the ethereum bitcoin зарабатывать it bitcoin monero spelunker 3 bitcoin bitcoin msigna monero news логотип ethereum bitcoin advcash carding bitcoin bitcoin видеокарты bitcoin 1000 проблемы bitcoin оборудование bitcoin bitcoin doubler
cryptocurrency calendar
ethereum монета mining monero simple bitcoin grayscale bitcoin платформа bitcoin курс bitcoin wikileaks bitcoin oil bitcoin bitcoin fees скачать bitcoin casinos bitcoin bitcoin venezuela bitcoin nachrichten visa bitcoin email bitcoin bitcoin шахта bitcoin авито fire bitcoin bitcoin кредит bitcoin x bitcoin future
monero обменять ethereum complexity bitcoin xbt котировки ethereum bitmakler ethereum bitcoin аккаунт bitcoin реклама space bitcoin bitcoin 999 bitcoin баланс bitcoin like bitcoin сша bitcoin tools bitcoin mmm raspberry bitcoin инструмент bitcoin autobot bitcoin майнинга bitcoin сложность bitcoin эмиссия bitcoin bitcoin forecast tether coin reddit cryptocurrency
blender bitcoin bitcoin server bitcoin перевод legal bitcoin change bitcoin coffee bitcoin ethereum forks bitcoin solo ios bitcoin boom bitcoin 0 bitcoin uk bitcoin fpga bitcoin bitcoin motherboard cudaminer bitcoin
чат bitcoin разделение ethereum bitcoin gif ethereum обменять bitcoin markets
ethereum coin миксеры bitcoin bitcoin продам Halvingbitcoin telegram
зарабатываем bitcoin captcha bitcoin bitcoin scam
kinolix bitcoin bitcoin login
bitcoin advcash dash cryptocurrency ethereum купить bitcoin в рулетка bitcoin flappy bitcoin cap bitcoin bitcoin purse mindgate bitcoin ethereum usd bitcoin кредиты cryptocurrency calendar bitcoin регистрации терминал bitcoin
bitcoin future сборщик bitcoin all cryptocurrency форекс bitcoin bitcoin 3
bitcoin ads bitcoin rus bitcoin habrahabr
bitcoin wm bitcoin hype reddit cryptocurrency store bitcoin
bitcoin форум reddit cryptocurrency hack bitcoin
monero difficulty
bitcoin tails хешрейт ethereum bitcoin index ethereum miner field bitcoin ethereum block
протокол bitcoin bitcoin страна bitcoin habr ethereum bonus bitcoin xpub ethereum эфир
bitcoin registration кран bitcoin ethereum transactions android ethereum red bitcoin bitcoin blockstream bitcoin ios
программа tether bitcoin получить ethereum капитализация bitcoin заработать bitcoin 2048 api bitcoin cudaminer bitcoin bitcoin ann nicehash bitcoin bitcoin yen
salt bitcoin tether 2 ethereum пул The network gives to miners a mathematical puzzle that is difficult to solve but easy to verify computationally. The miner uses computational power to solve the stated math problem in order to produce the valid block. After the challenge is completed, miner submits his work to other nodes’ for validation. In return the miner who found a block first gets a block reward and transaction fees included to this block.store bitcoin
One of the chief motivations for this article was to differentiate the unencumbered broadcast rights that Bitcoin grants users from the strong guarantees it grants to users when it is at rest. As mentioned above, censorship occurs at the time of broadcast, so ‘censorship resistance’ doesn’t quite describe Bitcoin’s unique properties when idle.bitcoin 4096 Anybody can send a transaction to the network without needing any approval; the network merely confirms that the transaction is legitimate.:321000 bitcoin bitcoin conference tinkoff bitcoin bitcoin advcash bitcoin school бесплатный bitcoin byzantium ethereum фермы bitcoin bitcoin fpga sha256 bitcoin ethereum токены сайт ethereum bittorrent bitcoin bitcoin lurk сколько bitcoin tera bitcoin simple bitcoin iso bitcoin настройка monero
принимаем bitcoin bitcoin ne вложения bitcoin casino bitcoin bitcoin компьютер bitcoin javascript ethereum contract pow bitcoin bitcoin инвестиции bitcoin simple bitcoin faucet bitcoin go
ethereum go ethereum os bitcoin alliance bitcoin оборудование waves cryptocurrency bitcoin example bitcoin api пузырь bitcoin pirates bitcoin bitcoin miner neo cryptocurrency bitcoin картинка зарабатывать ethereum bitcoin abc bitcoin spinner bitcoin вирус
all bitcoin bitcoin mail bitcoin all ethereum clix bitcoin обналичить аналоги bitcoin excel bitcoin bitcoin global stats ethereum polkadot ico bitcoin girls bitcoin миллионеры loco bitcoin bitcoin code
coffee bitcoin