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 принцип decred ethereum ethereum покупка
bitcoin перевод
bitcoin видеокарта waves bitcoin ethereum сбербанк
доходность bitcoin 1070 ethereum bitcoin legal bitcoin видеокарта
обналичить bitcoin x2 bitcoin nicehash monero tether addon пожертвование bitcoin
bitcoin кошельки окупаемость bitcoin
bitcoin fund цена ethereum bitcoin rotator bitcoin сложность основатель ethereum трейдинг bitcoin keystore ethereum bitcoin ваучер ninjatrader bitcoin
рулетка bitcoin ethereum blockchain coffee bitcoin bitcoin команды кран bitcoin bitcoin реклама gambling bitcoin ethereum info fork bitcoin foto bitcoin video bitcoin ann bitcoin
bitcoin drip bitcoin boom
alien bitcoin bitcoin database loan bitcoin фонд ethereum bitcoin qiwi bitcoin instaforex bitcoin trojan bitcoin yen bitcoin bank bitcoin paper проблемы bitcoin удвоитель bitcoin hashrate bitcoin forex bitcoin ethereum проблемы скрипт bitcoin bitcoin пирамиды бот bitcoin bitcoin ether opencart bitcoin bitcoin course bitcoin вклады bitcoin раздача tcc bitcoin alipay bitcoin bitcoin сервера bitcoin форумы clockworkmod tether bitcoin продам ethereum алгоритм ethereum charts bitcoin rpg jaxx bitcoin ethereum script alien bitcoin
bitcoin joker bitcoin cloud
daemon bitcoin blitz bitcoin pool bitcoin wallet cryptocurrency бесплатные bitcoin bitcoin мошенники bitcoin перевод There are a lot of similarities between Ethereum and Bitcoin. Both platforms are supported by an open-source P2P network that isn't regulated by any government or organization. Because the network is decentralized, it can never go offline. Ether and Bitcoins are cryptocurrencies that have real-world value and can be used to transfer money across the globe. There are no banks or other payment processing platforms involved.The Bitcoin Effectsell bitcoin bitcoin utopia форк ethereum bitcoin capital tether bootstrap create bitcoin bitcoin yen bitcoin обзор сатоши bitcoin bitcoin bow bitcoin miner bitcoin mastercard why cryptocurrency платформ ethereum store bitcoin instant bitcoin bitcoin get ethereum chaindata bitcoin froggy make bitcoin bitcoin gpu microsoft bitcoin monero dwarfpool ethereum clix trade bitcoin check bitcoin rpg bitcoin bitcoin aliens bitcoin mail bitcoin 1000 bitcoin service euro bitcoin capitalization bitcoin bitcoin динамика
ethereum монета bitcoin ставки bitcoin atm nonce bitcoin ethereum 4pda bitcoin tools
tether комиссии получить ethereum bitcoin accelerator
ethereum обвал сборщик bitcoin bitcoin surf usb bitcoin логотип bitcoin autobot bitcoin bitcoin gambling claim bitcoin A free private database called a coin wallet. It's a password-protected container that stores your earnings and keeps a network-wide ledger of transactions.A signature identifying the senderbitcoin login #6 File storagebitcoin vip bitcoin bitcointalk ethereum прогнозы bitcoin шифрование bitcoin mining анализ bitcoin bitcoin ann bitcoin genesis инвестирование bitcoin bitcoin click jaxx bitcoin ethereum stratum bitcoin broker ethereum io
bitcoin genesis We have a public distributed ledger, which works using a hashing encryption.The sheer number of middlemen and intermediate layers involved in the execution of a traditional contract slows the process, often taking days or even weeks.bitcoin 3 captcha bitcoin bitcoin currency
bitcoin testnet check bitcoin
plasma ethereum bitcoin scam bitmakler ethereum reverse tether bitcoin видео продам bitcoin ethereum обменять importprivkey bitcoin оплата bitcoin bitcoin usb продам bitcoin There are three key variables in any bitcoin transaction: an amount, an input and an output. An input is the address from which the money is sent, and an output is the address that receives the funds. Since a wallet can contain several input addresses, you can send money from one or more inputs to one or more outputs. There is also a data storage portion on each transaction, a sort of note, that allows you to record data to the blockchain immutably.nicehash bitcoin форумы bitcoin best cryptocurrency bitcoin daemon
bitcoin динамика стоимость bitcoin bitcoin hd ethereum org эпоха ethereum bitcoin оплатить
average bitcoin фермы bitcoin bitcoin биржа rocket bitcoin instaforex bitcoin register bitcoin ethereum coin auto bitcoin skrill bitcoin bitcoin create Bitcoin mining can still make sense and be profitable for some individuals. Equipment is more easily obtained, although competitive ASICs cost anywhere from a few hundred dollars up to about $10,000. In an effort to stay competitive, some machines have adapted. For example, some hardware allows users to alter settings to lower energy requirements, thus lowering overall costs. Prospective miners should perform a cost/benefit analysis to understand their breakeven price before making the fixed-cost purchases of the equipment. The variables needed to make this calculation are:wisdom bitcoin Many marketplaces called 'bitcoin exchanges' allow people to buy or sell bitcoins using different currencies. Coinbase is a leading exchange, along with Bitstamp and Bitfinex. But security can be a concern: bitcoins worth tens of millions of dollars were stolen from Bitfinex when it was hacked in 2016.bitcoin attack magic bitcoin tether 4pda tether скачать депозит bitcoin bounty bitcoin bitcoin change bitcoin путин bitcoin euro bitcoin msigna bitcoin анализ
check bitcoin алгоритм bitcoin криптовалюта tether flypool ethereum game bitcoin monero обменник bitcoin skrill bio bitcoin биткоин bitcoin ru bitcoin bitcoin pay bitcoin paper faucet bitcoin ethereum online 6000 bitcoin decred cryptocurrency bitcoin ann bitcoin россия mining cryptocurrency bitcoin alert
Even with superior economics on his side, and with significant wealth, a citizen will be a lot less tempted to oppose a domineering status quo if heCross-Border Paymentsethereum studio amd bitcoin bitcoin motherboard future bitcoin bitcoin xl alpari bitcoin hashrate bitcoin tether bootstrap bitcoin payza bitcoin cgminer flappy bitcoin
bitcoin selling usa bitcoin github bitcoin alpari bitcoin bitcoin коды форумы bitcoin bitcoin перевод Upskilling is the process of teaching an employee new skills. This process is particularly useful when it comes to creating new Blockchain developers from other, similar positions in the business. Some companies, keenly aware of the growing importance of the Blockchain technology, will upskill individual employees, empowering them to handle the new tech.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 arbitrage bitcoin вложить ethereum получить koshelek bitcoin the ethereum
настройка bitcoin ethereum bitcoin пополнить bitcoin monero difficulty index bitcoin bitcoin knots тинькофф bitcoin ethereum обозначение bitcoin markets bitcoin бонусы bitcoin asic iphone tether cryptocurrency calendar bitcoin utopia bitcoin вконтакте ethereum contract bitcoin btc
bitcoin script bitcoin pay bitcoin зарегистрироваться tether криптовалюта проект ethereum новости monero bitcoin spinner monero dwarfpool bitcoin андроид приложение tether tether limited iphone tether monero pool эпоха ethereum баланс bitcoin cryptocurrency $6.2 billionbitcoin расшифровка hub bitcoin monero график bitcoin script bitcoin вклады conference bitcoin boom bitcoin monero форк bitcoin buying ферма bitcoin криптовалюта monero bitcointalk bitcoin bitcoin 1000 bitcoin ethereum korbit bitcoin bitcoin nasdaq bitcoin phoenix bitcoin аккаунт bitcoin play бот bitcoin bitcoin валюты
bitcoin php datadir bitcoin
pokerstars bitcoin tether приложения donate bitcoin fox bitcoin bitcoin conference bitcoin ocean 1060 monero
monero proxy описание bitcoin конференция bitcoin kupit bitcoin erc20 ethereum обвал ethereum bitcoin проверка
cryptocurrency это bitcoin nasdaq bitcoin транзакция xbt bitcoin tether plugin
новые bitcoin bitcoin telegram верификация tether rbc bitcoin crococoin bitcoin carding bitcoin your bitcoin
xmr monero loan bitcoin
bitcoin desk widget bitcoin dark bitcoin Sharecryptocurrency bitcoin decred cryptocurrency ethereum txid Launched in 2018, USD Coin is a stablecoin managed jointly by the cryptocurrency firms Circle and Coinbase through the Centre consortium. Based on the fact Ethereum has more use cases than Bitcoin — and, therefore, serves a bigger purpose — I can say that it is indeed an overall better Bitcoin alternative.bitcoin биткоин golden bitcoin bitcoin example обменник bitcoin bitcoin de
bitcoin автокран создать bitcoin
ethereum stratum bitcoin euro bitcoin обменники 100 bitcoin биржа bitcoin wirex bitcoin фри bitcoin
новости monero
bitcoin мастернода
кредиты bitcoin мастернода bitcoin Electricity Costethereum 1070 The block is verified by mining software and made visible to any 'miner' who wants to see it. Once a miner verifies it, the next block enters the chain, which is a record of every litecoin transaction ever made.криптовалюты bitcoin
bitcoin auction
покер bitcoin ютуб bitcoin
bitcoin expanse stock bitcoin bitcoin database bitcoin оплатить bitcoin миллионеры bitcoin life отзыв bitcoin bistler bitcoin продам ethereum hit bitcoin bitcoin pps bitcoin cryptocurrency bitcoin bat addnode bitcoin dwarfpool monero bitcoin cranes bitcoin txid bitcoin x2 importprivkey bitcoin
GETTYbitcoin like asics bitcoin takara bitcoin
icons bitcoin talk bitcoin
bitcoin доллар
bitcoin nodes вклады bitcoin ethereum конвертер nem cryptocurrency
сборщик bitcoin bitcoin 999 Trading Litecoinbitcoin bcc cryptocurrency tech iota cryptocurrency cryptocurrency tech sell ethereum
знак bitcoin cz bitcoin bitcoin mmgp yandex bitcoin
maining bitcoin arbitrage cryptocurrency альпари bitcoin ethereum os
перспективы ethereum cryptocurrency price half bitcoin xmr monero One of the main uses of the peer-to-peer network is file sharing, also called torrenting. If you are to use a client-server model for downloading, then it is usually extremely slow and entirely dependent on the health of the server. Plus, as we said, it is prone to censorship.bitcoin motherboard torrent bitcoin trade cryptocurrency обменники bitcoin life bitcoin market bitcoin 1000 bitcoin падение ethereum bitcoin news bitcoin 3d all bitcoin bitcoin blocks bitcoin roll
vps bitcoin bitcoin cryptocurrency abc bitcoin bitcoin pps
maining bitcoin теханализ bitcoin ethereum ethash bitcoin analysis кошелька ethereum bitcoin торги unconfirmed bitcoin котировки bitcoin bitcoin bcc ethereum client криптовалюта tether TABLE OF CONTENTSblocks bitcoin
проблемы bitcoin bitcoin onecoin работа bitcoin фильм bitcoin 99 bitcoin bitcoin keywords хабрахабр bitcoin
blogspot bitcoin 60 bitcoin bitcoin отзывы monero rur tera bitcoin bitcoin автосерфинг blacktrail bitcoin bitcoin carding
bitcoin swiss bitcoin sha256 txid ethereum валюта tether bitcoin example
security bitcoin
автомат bitcoin cryptocurrency gold kong bitcoin bitcoin airbit cms bitcoin tether mining продать monero bitcoin reddit bitcoin монета bitcoin fork bitcoin комиссия android tether bitcoin transaction стоимость bitcoin ethereum pool ethereum прогноз bitcoin cnbc reddit bitcoin продажа bitcoin monero стоимость торрент bitcoin bitcoin foto
bitcoin convert программа bitcoin
chart bitcoin
bitcoin laundering people bitcoin tether верификация bitcoin skrill bitcoin capitalization bitcoin оплата zebra bitcoin
bitcoin miner проверить bitcoin bitcoin торги
monero биржи ethereum pools bitcoin фирмы bitcoin linux ethereum github bitcoin cli polkadot stingray masternode bitcoin miningpoolhub ethereum monero криптовалюта bitcoin ukraine monero china cryptocurrency purchase bitcoin bitcoin slots bitcoin пул сервера bitcoin обзор bitcoin вложить bitcoin сети ethereum bitcoin форк pool bitcoin майнер bitcoin bitcoin knots банк bitcoin
sec bitcoin bitcoin анонимность hosting bitcoin escrow bitcoin bitcoin видеокарты заработок ethereum monero калькулятор config bitcoin bubble bitcoin bitcoin accepted calculator ethereum weather bitcoin нода ethereum bitcoin future
bitcoin calculator
bitcoin лого bank bitcoin dash cryptocurrency monero алгоритм bitcoin trust monero майнинг bitcoin аккаунт bitcoin стоимость foto bitcoin bitcoin доходность bitcoin футболка bitcoin 33 p2pool monero выводить bitcoin автосборщик bitcoin bitcoin video monero coin bitcoin cryptocurrency bitcoin conveyor bitcoin создатель ethereum serpent bitcoin card fpga bitcoin bitcoin cost 33 bitcoin tether clockworkmod mindgate bitcoin получить ethereum bitcoin лохотрон
bitcoin crash bitcoin вклады wechat bitcoin ethereum com
bitcoin c платформа bitcoin