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.
accept bitcoin
bitcoin index
bitcoin x ethereum markets
адрес bitcoin bitcoin cgminer exchange bitcoin monero обмен биткоин bitcoin транзакции monero segwit2x bitcoin
bestexchange bitcoin fork ethereum теханализ bitcoin ethereum coin bitcoin roulette digi bitcoin
расчет bitcoin покер bitcoin bitcoin check комиссия bitcoin ethereum supernova окупаемость bitcoin github ethereum addnode bitcoin bitcoin charts 4 bitcoin bitcoin background
описание ethereum bitcoin address bitcoin сети tether верификация mastercard bitcoin bitcoin бонусы bitcoin rub bitcoin de keystore ethereum monero client bitcoin установка nova bitcoin monero hardware tether tools bitcoin legal bitcoin machine amazon bitcoin micro bitcoin bitcoin cap bitcoin вконтакте блоки bitcoin AdvantagesInvesting money into Bitcoin in any of its many guises is not for the risk-averse. Bitcoins are a rival to government currency and may be used for black market transactions, money laundering, illegal activities or tax evasion. As a result, governments may seek to regulate, restrict or ban the use and sale of bitcoins, and some already have. Others are coming up with various rules. For example, in 2015, the New York State Department of Financial Services finalized regulations that would require companies dealing with the buy, sell, transfer or storage of bitcoins to record the identity of customers, have a compliance officer and maintain capital reserves. The transactions worth $10,000 or more will have to be recorded and reported.10Due to some technical mumbo-jumbo involving the Scrypt algorithm, which is used for mining Litecoin, it’s faster and easier to mine alone than its older brother, Bitcoin.кошельки bitcoin ethereum core system bitcoin ethereum coingecko
ethereum доходность ethereum studio добыча ethereum ethereum валюта
collector bitcoin wired tether prune bitcoin магазин bitcoin раздача bitcoin
algorithm ethereum to bitcoin cryptocurrency market bitcoin sec
clame bitcoin aml bitcoin moneybox bitcoin claymore ethereum bitcoin форк planet bitcoin get bitcoin claim bitcoin fast bitcoin bitcoin mixer explorer ethereum bitcoin reserve история ethereum bitcoin рухнул
search bitcoin bitcoin 1000 bitcoin qt 600 bitcoin окупаемость bitcoin cryptonight monero zebra bitcoin окупаемость bitcoin bitcoin cgminer
cryptocurrency trading bitcoin fun pirates bitcoin bitcoin investing биржи monero short bitcoin протокол bitcoin ethereum видеокарты bitcoin center bitcoin nodes bitcoin microsoft обменять ethereum forum ethereum ethereum blockchain bitcoin заработок bitcoin asic счет bitcoin робот bitcoin capitalization bitcoin ethereum cryptocurrency биржи monero хардфорк bitcoin monero майнить bitcoin bubble 2018 bitcoin dorks bitcoin Argentinaplus500 bitcoin
Bitcoin transactions are grouped together and stored in blocks. These blocks are linked back to one another in a series. This is why it is called a blockchain.рубли bitcoin
инструмент bitcoin bitcoin double
6000 bitcoin bitcoin qiwi
download bitcoin bitcoin phoenix hd7850 monero bestchange bitcoin cryptocurrency magazine майнер ethereum bitcoin ticker
bitcoin видео Miners are constantly in a race with each other to find the next puzzle solution; each miner solves a slightly different variant of the puzzle so that the chance of success is proportional to the fraction of global mining power that the miner controls. A miner who solves a puzzle gets to contribute the next batch, or block, of transactions to the ledger, which is based on linked timestamping. In exchange for the service of maintaining the ledger, a miner who contributes a block is rewarded with newly minted units of the currency. With high likelihood, if a miner contributes an invalid transaction or block, it will be rejected by the majority of other miners who contribute the following blocks, and this will also invalidate the block reward for the bad block. In this way, because of the monetary incentives, miners ensure each other's compliance with the protocol.cryptocurrency trade сборщик bitcoin habrahabr bitcoin bitcoin asic china bitcoin bitcoin вектор difficulty ethereum bitcoin форекс transactions bitcoin by bitcoin bitcoin free технология bitcoin loans bitcoin платформу ethereum joker bitcoin p2pool monero mine ethereum bitcoin крах bitcoin безопасность bitcoin goldmine logo bitcoin отзывы ethereum community bitcoin miner bitcoin
ethereum майнить
mac bitcoin cryptocurrency converter currency bitcoin ethereum wallet bio bitcoin bitcoin сша bitcoin main bitcoin робот tether limited boxbit bitcoin bitcoin habr bitcoin freebitcoin tabtrader bitcoin pull bitcoin часы bitcoin надежность bitcoin bitcoin casino bitcoin etf ethereum pow agario bitcoin bitcoin pump daily bitcoin safe bitcoin rotator bitcoin bitcoin earnings проверить bitcoin cryptocurrency price
рост bitcoin bitcoin okpay bitcoin сбербанк start bitcoin bitcoin phoenix bitcoin roll bitcoin switzerland ico monero life bitcoin bitcoin адреса bitcoin портал bitcoin в monero алгоритм bitcoin abc blockchain ethereum blitz bitcoin site bitcoin bitcoin address block ethereum падение ethereum рост bitcoin wmx bitcoin bitcoin арбитраж bitcoin plus cryptocurrency arbitrage bitcoin купить
работа bitcoin ethereum перевод ethereum dao seed bitcoin
bitcoin бесплатные
ethereum биржа bitcoin chart bitcoin вход форк ethereum ethereum bonus альпари bitcoin bitcoin trading
bitcoin casino bitcoin конвертер bitcoin приложение лото bitcoin продам ethereum bitcoin system биржи monero avto bitcoin mikrotik bitcoin sell bitcoin 16 bitcoin auto bitcoin alpha bitcoin форк bitcoin bitcoin книга android tether bitcoin транзакции de bitcoin ethereum видеокарты платформ ethereum bitcoin betting bitcoin neteller bitcoin sberbank ethereum io security bitcoin bitcoin suisse masternode bitcoin баланс bitcoin ethereum coins Ethereum vs Bitcoin: The Conclusionsbitcoin hash ethereum charts вложения bitcoin bitcoin автокран java bitcoin bitcoin nodes bitcoin fpga
bitcoin шахты
майнинг monero bitcoin de ethereum ann
bitcoin сокращение bitcoin server bitcoin key fx bitcoin bitcoin mempool поиск bitcoin stock bitcoin bitcoin prominer *****a bitcoin monero github курсы bitcoin bitcoin порт
ethereum 4pda tether wallet часы bitcoin bitcoin вконтакте mine ethereum earn bitcoin bitcoin doge ethereum txid ethereum exchange
bitcoin перевести c bitcoin bitcoin rotator bitcoin flapper bitcoin видеокарта bitcoin background ethereum майнить
хайпы bitcoin bitcoin 33 шифрование bitcoin bitcoin playstation bitcoin neteller tabtrader bitcoin поиск bitcoin galaxy bitcoin монета ethereum battle bitcoin
bitcoin fan bitcoin торги сложность bitcoin теханализ bitcoin monero minergate bitcoin grant ethereum client bitcoin blog обменники bitcoin ethereum купить buy tether майн ethereum ethereum parity
ethereum криптовалюта
технология bitcoin bitcoin hardfork 1 monero bitcoin rotator фото bitcoin bitcoin purchase auction bitcoin bitcoin инструкция
site bitcoin лотерея bitcoin ethereum russia monero pro bitcoin shop таблица bitcoin bitcoin utopia bitcoin создатель создать bitcoin
flappy bitcoin bitcoin кэш bitcoin nyse capitalization bitcoin is bitcoin half bitcoin bitcoin earn bitcoin markets ethereum упал эфир ethereum капитализация bitcoin
заработка bitcoin An important reason why annuities were popular so much earlier thanbitcoin cap ethereum получить ethereum токены monero купить ethereum контракты bitcoin игры bitcoin fan bitcoin hardfork bitcoin lucky bitcoin steam bitcoin bubble bitcoin prices сбербанк bitcoin monero ico
microsoft bitcoin розыгрыш bitcoin обзор bitcoin connect bitcoin
micro bitcoin monero amd вложения bitcoin cryptocurrency calendar
bitcoin trade торги bitcoin maining bitcoin виталий ethereum bitcoin kran kraken bitcoin bitcoin стоимость hack bitcoin
bitcoin пирамида
stats ethereum lavkalavka bitcoin iso bitcoin bitcoin бесплатные
оплатить bitcoin
стоимость bitcoin
ethereum blockchain bitcoin дешевеет bitcoin трейдинг bitcoin half что bitcoin rx470 monero bitcoin государство cfd bitcoin ethereum история bitcoin 3 bitcoin rig tether coinmarketcap casinos bitcoin accepts bitcoin виталик ethereum bitcoin обсуждение monero usd click bitcoin bitcoin community oil bitcoin monero free forum ethereum bitcoin смесители monero 1070 bitcoin proxy nicehash bitcoin bitcoin china
top tether использование bitcoin captcha bitcoin транзакции ethereum adc bitcoin The deleted wallet, and crypto within it, can still be seen in Ledger Live, but the wallet will not be seen on the Ledger device itself. This means that if you would like to send or receive to the wallet you have deleted, you may have to delete another wallet to make more room.bitcoin онлайн
программа bitcoin kong bitcoin токен ethereum laundering bitcoin bitcoin удвоитель bitcoin роботы nodes bitcoin эпоха ethereum пул monero ava bitcoin ethereum programming bitcoin telegram bitcoin hype история ethereum ethereum com bitcoin funding динамика ethereum bitcoin weekend bitcoin 4096
bitcoin fpga оплатить bitcoin майн ethereum
prune bitcoin bitcoin stiller bitcoin torrent bitcoin миксер bitcoin valet расшифровка bitcoin withdraw bitcoin протокол bitcoin coinder bitcoin ethereum котировки ethereum addresses
скрипт bitcoin bitcoin эмиссия bitcoin бонусы bitcoin государство фильм bitcoin bitcoin base
BTC Keychain / Flickr / CC by 2.0bitcoin litecoin bitcoin шрифт обмена bitcoin фермы bitcoin ethereum описание курс bitcoin
акции ethereum bitcoin grafik love bitcoin
autobot bitcoin проекта ethereum bitcoin accelerator bitcoin development to bitcoin скрипты bitcoin scrypt bitcoin tp tether p2pool bitcoin dog bitcoin ethereum calc bitcoin бонусы However, the container is ready to depart for its next destination. Every new or old box (transactions) that the container (block) carries will also be available to view on the public blockchain. This is the same for every single transaction. As soon as it is confirmed, the transaction data is clear for everybody to see, which is why it is called a 'chain' of transactions!How are Transactions Confirmed on the Blockchain?ethereum supernova xapo bitcoin bitcoin математика обмен ethereum bitcoin обналичить bitcoin страна
bitcoin лучшие ethereum myetherwallet tether майнинг
dag ethereum
new cryptocurrency bitcoin paper multiplier bitcoin bitcoin purse ethereum описание ethereum org mine monero casino bitcoin bitcoin cranes alien bitcoin порт bitcoin 600 bitcoin purse bitcoin *****a bitcoin neo cryptocurrency майнинг ethereum
сборщик bitcoin battle bitcoin water bitcoin bitcoin captcha zebra bitcoin bitcoin black bitcoin pools bitcoin система bitcoin server bitcoin loto cryptocurrency wallets bitcoin unlimited удвоитель bitcoin tp tether bitcoin run е bitcoin карты bitcoin bitcoin магазин bitcoin кошелек калькулятор ethereum bitcoin торги
deep bitcoin
bitcoin roulette bitcoin capital ethereum видеокарты tokens ethereum bitcoin ann bitcoin machine