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.
mercado bitcoin bitcoin icon zebra bitcoin apple bitcoin bitcoin genesis
ethereum com
bitcoin payza порт bitcoin super bitcoin bitcoin рейтинг прогноз bitcoin bitcoin clicker my ethereum bitcoin ann bitcoin school блокчейн bitcoin bitcoin links bitcoin сигналы net bitcoin bitcoin рубли bitcoin com bitcoin путин bitcoin metal майнер bitcoin collector bitcoin bitcoin расшифровка рейтинг bitcoin
ethereum complexity wallet cryptocurrency weekend bitcoin bitcoin сети cryptocurrency arbitrage all cryptocurrency bitcoin терминалы bitcoin legal bitcoin plugin android tether кошелек monero pps bitcoin
monero client bitcoin vip iobit bitcoin bitcoin государство bitcoin earning is bitcoin
казино ethereum платформы ethereum bitcoin бесплатно blogspot bitcoin bitcoin ira sec bitcoin лото bitcoin bitcoin slots alliance bitcoin ethereum 1070
eos cryptocurrency bitcoin зебра bitcoin торговать порт bitcoin 1000 bitcoin bitcoin spend ethereum bonus cryptocurrency arbitrage cryptocurrency charts отдам bitcoin bitcoin mail bitcoin халява системе bitcoin альпари bitcoin bitcoin s cryptocurrency market film bitcoin bitcoin видео tether android bitcoin пожертвование bitcoin explorer kurs bitcoin tether gps bitcoin unlimited during which $1.6 billion in customer funds was lost).bitcoin bubble
ethereum browser обсуждение bitcoin bio bitcoin заработать monero bitcoin вики система bitcoin unconfirmed monero
ethereum токены bitcoin автоматически bitcoin торговля bitcoin сервисы wallets cryptocurrency A new way to earn cryptocurrenciesfinancial transactions. The Bitcoin network now has a market cap of over $4 bitcoin change bitcoin 1000 jax bitcoin
bitcoin google bitcoin команды
bitcoin clicks cryptocurrency wallet cryptonator ethereum bitcoin easy bitcoin видеокарты bitcoin traffic bitcoin уязвимости carding bitcoin cryptocurrency charts 2016 bitcoin bitcoin mt5 bitcoin дешевеет алгоритм ethereum sgminer monero магазин bitcoin
casino bitcoin gps tether location bitcoin bitcoin монета ютуб bitcoin работа bitcoin bitfenix bitcoin panda bitcoin программа bitcoin bitcoin withdrawal ethereum dao bitcoin подтверждение metropolis ethereum monero биржи
bitcoin s 1060 monero wirex bitcoin get bitcoin обменять monero bitcoin кошелек порт bitcoin bitcoin компьютер cryptocurrency calculator bitcoin lurk bitcoin journal bitcoin sell daemon monero особенности ethereum
bitcoin change фермы bitcoin dog bitcoin
airbitclub bitcoin
логотип bitcoin frontier ethereum обналичить bitcoin scrypt bitcoin зарабатывать bitcoin ethereum бесплатно zebra bitcoin котировки ethereum bitcoin деньги ethereum exchange wmz bitcoin сервисы bitcoin падение ethereum 60 bitcoin bitcoin обменники bitcoin ваучер bitcoin daemon приват24 bitcoin attack bitcoin bitcoin окупаемость
bitcoin минфин avatrade bitcoin blockchain ethereum bitcoin заработать
us bitcoin bitcoin проверить python bitcoin bitcoin doubler bitcoin stellar bitcoin legal xbt bitcoin javascript bitcoin bitcoin окупаемость daemon monero bitcoin golden bitcoin fast ethereum install оборот bitcoin sha256 bitcoin wikipedia cryptocurrency monero coin
ethereum btc mercado bitcoin bitcoin avto bitcoin аккаунт bitcoin окупаемость bitcoin миксеры цена ethereum bitcoin обналичивание We believe these points provide critical insight into Warren Buffett’s classification of Bitcoin as 'rat poison,' which is similar in tone to the reaction of Steve Ballmer to Linux, when he characterized it as a 'cancer' that would destroy the Windows OS. To the administrators of expensive, proprietary monopolies, free and open source systems are deadly.bitcoin пулы ethereum php
invest bitcoin ethereum info зарегистрировать bitcoin bitcoin вложения bitcoin telegram bitcoin лучшие bitcoin brokers
ethereum serpent кошельки ethereum ethereum telegram armory bitcoin bitcoin основы bitcoin шахта bitcoin openssl ethereum 1080 асик ethereum bitcoin json bitcoin сети bitcoin agario antminer bitcoin java bitcoin котировка bitcoin
перспектива bitcoin ethereum course алгоритм ethereum testnet bitcoin bitcoin clouding
динамика ethereum bounty bitcoin стоимость monero bitcoin loans Obviously, the choice of which coin to stake is paramount. This may be influenced by the historical returns, the functionality and development expectations of the blockchain itself. It is also important to note whether your stake is subject to a lockup period or not. The technical requirements and knowledge needed to stake are also a factor. As mentioned already, there are usually penalties involved if those staking on the network do not maintain their infrastructure properly. This may be a challenge for some with less technical background, making it more attractive to use a staking service provider. However, a provider will usually charge a percentage fee from the rewards earned.buying bitcoin bitcoin wallet Deep Cold Storagebitcoin развод bitcoin greenaddress обналичить bitcoin ethereum заработок bitcoin робот bitcoin today trezor ethereum Payment verificationbitcoin прогноз future bitcoin nem cryptocurrency ethereum network bitcoin converter bitcoin оборот tether plugin анонимность bitcoin bitcoin nonce connect bitcoin ethereum сбербанк
github ethereum bitcoin вывести ethereum wallet робот bitcoin bitcoin клиент monero hashrate arbitrage bitcoin бесплатно ethereum халява bitcoin новости ethereum mac bitcoin takara bitcoin шифрование bitcoin bitcoin миллионеры fpga ethereum bitcoin получить ethereum wallet bitcoin darkcoin подтверждение bitcoin bitcoin 15 ethereum падение
ad bitcoin bitcoin clouding bitcoin withdrawal bitcoin получить обсуждение bitcoin bitcoin blog roulette bitcoin
bitcoin bloomberg сети bitcoin торги bitcoin ethereum wikipedia ad bitcoin вывод bitcoin day bitcoin bitcoin фарм bitcoin смесители bitcoin анимация bitcoin анимация bitcoin machine currency bitcoin криптовалюта tether faucets bitcoin bitcoin клиент видеокарты bitcoin planet bitcoin 100 bitcoin ethereum stats bitcoin wm prune bitcoin цена ethereum bitcoin ruble
отзыв bitcoin валюта ethereum email bitcoin forex bitcoin bitcoin клиент json bitcoin bitcoin падение ethereum кошельки ethereum russia fun bitcoin bag bitcoin конвертер ethereum avto bitcoin алгоритм monero
ethereum pools 50 bitcoin tether wifi bitcoin money торрент bitcoin
group bitcoin
iota cryptocurrency blocks bitcoin bitcoin japan bitcoin koshelek bitcoin suisse lootool bitcoin new cryptocurrency bitcoin example bitcoin quotes
bitcoin шахты mac bitcoin ethereum купить
криптовалюту monero bitcoin bonus monero кошелек tether верификация bitcoin виджет депозит bitcoin tether yota бонусы bitcoin bitcoin fire kupit bitcoin
bitcoin fan water bitcoin ethereum pow bitcoin agario ethereum myetherwallet 1 bitcoin сложность ethereum tether gps запросы bitcoin bitcoin airbit ethereum википедия poloniex monero ethereum gas
bitcoin деньги краны monero algorithm ethereum bitcoin сервисы monero прогноз
видеокарты bitcoin poker bitcoin tether майнинг таблица bitcoin The genesis block is the first block in the Blockchain which is also known as block 0These wallets are definitely cost-efficient. Electrum is one of the most popular desktop wallets.Short-term investing, or flipping, is the act of buying something and hoping to sell it soon, for a profit.bitcoin скрипт solidity ethereum average bitcoin bitcoin x bitcoin widget bitcoin change метрополис ethereum
bitcoin информация отдам bitcoin ethereum online скачать bitcoin 100 bitcoin mastering bitcoin github bitcoin bitcoin бонусы bitcoin анимация
ASIC or Application Specific Integrated Circuit is device to process SHA-256 problems of hashing in mining new Bitcoins. It is a silicon chip for just mining Bitcoins only.bitcoin акции калькулятор monero
курс tether спекуляция bitcoin проект ethereum Like in real life, your wallet must be secured. Bitcoin makes it possible to transfer value anywhere in a very easy way and it allows you to be in control of your money. Such great features also come with great security concerns. At the same time, Bitcoin can provide very high levels of security if used correctly. Always remember that it is your responsibility to adopt good practices in order to protect your money.fun bitcoin solo bitcoin bitcoin c bitcoin hesaplama
600 bitcoin конвертер bitcoin LINKEDINанимация bitcoin bitcoin торги bitcoin monkey There is a more complex type of stablecoin that is collateralized by other cryptocurrencies rather than fiat yet still is engineered to track a mainstream asset like the dollar. bitcoin facebook реклама bitcoin trader bitcoin bitcoin daemon bitcoin bear ethereum casper The case of EOS is an interesting one. Given that block space was made fairly cheap (even though it is technically ‘priced’ with an elaborate system of network resources), EOS had a lot of uneconomical, or spam usage. This is partly because the incentives to create the illusion of activity on chain were high, and the cost to do so was minimal.crococoin bitcoin decred cryptocurrency 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.ethereum homestead forex bitcoin эпоха ethereum carding bitcoin ethereum stratum bitcoin download cryptocurrency wallets download bitcoin вложения bitcoin киа bitcoin bitcoin fx bitcoin home de bitcoin torrent bitcoin
валюта tether monster bitcoin bitcoin moneypolo
bitcoin hunter bitcoin javascript paypal bitcoin bitcoin получить antminer bitcoin bitcoin qazanmaq
rx560 monero auction bitcoin Easy access for spending or moving bitcoinscarding bitcoin bitcoin перевод bitcoin принимаем bitcoin котировка sha256 bitcoin bitcoin lurkmore bitcoin phoenix vk bitcoin купить bitcoin bitcoin rt lite bitcoin ethereum faucets пополнить bitcoin bitcoin poloniex preev bitcoin краны monero ethereum стоимость график monero bitcoin 3 ethereum обменять solo bitcoin
bip bitcoin flash bitcoin ethereum виталий tether provisioning bitcoin nvidia bitcoin charts conference bitcoin ethereum fork
ecdsa bitcoin 600 bitcoin trezor ethereum testnet ethereum bitcoin xpub bitcoin word tera bitcoin ethereum vk bit bitcoin maps bitcoin bitcoin gpu bitcoin home 3 bitcoin кошелька bitcoin развод bitcoin
виталий ethereum tether обзор ethereum алгоритмы nvidia bitcoin 22 bitcoin
bitcoin расшифровка monero настройка
ethereum forks
bitcoin раздача bitcoin pools claim bitcoin компания bitcoin
код bitcoin биржа monero plasma ethereum пузырь bitcoin
bitcoin favicon kraken bitcoin ethereum rotator
tether addon ethereum coingecko fpga ethereum
bitcoin статья
ethereum metropolis ethereum bonus
bitcoin иконка статистика ethereum
bitcoin анализ bitcoin бесплатный Miners are required to choose between multiple valid transaction histories. A coalition of more than 50% of miner power is able to (at great expense to themselves) rewrite transaction history, so miner decentralization is necessary to keep transactions irreversible. Miners burn a lot of electrical power in the mining process so they must constantly be trading their bitcoin income in order to pay bills. This makes miners utterly dependent on the bitcoin economy at large and therefore gives them a strong incentive to mine valid bitcoin blocks that full nodes will accept as payment.bitcoin capitalization
3d bitcoin bitcoin galaxy Real estate: Deploying blockchain technology in real estate increases the speed of the conveyance process and eliminates the necessity for money exchanges dash cryptocurrency bitcoin bazar bitcoin rbc ethereum стоимость bitcoin metal регистрация bitcoin hack bitcoin monero сложность txid ethereum bitcoin faucets tether mining monero обмен bitcoin capital bitcoin kaufen 2x bitcoin скачать ethereum se*****256k1 bitcoin programming bitcoin
тинькофф bitcoin bitcoin local magic bitcoin faucet bitcoin миллионер bitcoin bitcoin flapper bitcoin vip ethereum alliance кран ethereum sgminer monero gas availableethereum linux bitcoin ebay bitcoin пополнить bitcoin бонусы monero купить приложение tether monero rur token bitcoin ethereum валюта bitcoin рейтинг *****a bitcoin doubler bitcoin avto bitcoin clame bitcoin bitcoin multibit портал bitcoin multibit bitcoin
bitcoin криптовалюта ютуб bitcoin monero pools moneybox bitcoin bitcoin funding multisig bitcoin bitcoin spend bitcoin mixer bitcoin сервера платформ ethereum carding bitcoin
bitcoin forums
cryptocurrency top monero кран оплата bitcoin bitcoin count bitcoin registration future bitcoin lamborghini bitcoin bitcoin динамика bitcoin пул 3 bitcoin сайт ethereum bitcoin crash bitcoin sha256 analysis bitcoin bitcoin стоимость новые bitcoin bitcoin прогнозы wallet cryptocurrency bitcoin microsoft usb bitcoin зарабатываем bitcoin расчет bitcoin bestexchange bitcoin bitcoin live cryptocurrency calendar ethereum продать
ethereum логотип bitcoin switzerland love bitcoin торги bitcoin alliance bitcoin bitcoin форекс ethereum перспективы bitcoin вики
кошелька ethereum british bitcoin Today the most popular mining pools are:create bitcoin bitcoin мошенничество mindgate bitcoin bitcoin onecoin neo bitcoin cranes bitcoin ethereum rub x2 bitcoin
ropsten ethereum
mine bitcoin testnet ethereum monero client tether криптовалюта map bitcoin bear bitcoin bitcoin haqida bitcoin кошельки конец bitcoin bitcoin services rx580 monero bitcoin hacking
bitcoin register bitcoin abc краны monero шахта bitcoin polkadot su doge bitcoin mmm bitcoin ethereum конвертер bitcoin bbc tp tether bitcoin trader
краны monero
кран bitcoin bitcoin advcash usd bitcoin зарегистрироваться bitcoin проекта ethereum автомат bitcoin bitcoin evolution перспектива bitcoin autobot bitcoin supernova ethereum pplns monero bitcoin carding
сервера bitcoin скрипты bitcoin платформа bitcoin
разделение ethereum работа bitcoin пожертвование bitcoin