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.
конвертер ethereum bitcoin ico CRYPTObitcoin income bitcoin x логотип ethereum bitcoin регистрации bitcoin index land bitcoin bitcoin mixer wallets cryptocurrency coin bitcoin bitcoin деньги difficulty ethereum world bitcoin яндекс bitcoin
bitcoin laundering
mastering bitcoin config bitcoin etherium bitcoin
ethereum bitcointalk moneybox bitcoin отследить bitcoin bitcoin wikileaks майнить bitcoin ethereum dark bitcoin экспресс bitcoin конференция credit bitcoin bitcoin broker neo bitcoin валюта tether bitcoin people bitcoin конвектор bitcoin habrahabr ethereum usd bitcoin автомат bitcoin change bitcoin advertising bitcoin адрес
bitcoin price биржа bitcoin locate bitcoin bitcoin nonce bitcoin продать ethereum nicehash cryptocurrency mining bitcoin fees котировки ethereum bitcoin synchronization bitcoin ethereum tether wallet андроид bitcoin buying bitcoin bitcoin average ethereum forks ethereum виталий
bitcoin favicon bitcoin golden ethereum address bitcoin blog bitcoin команды click bitcoin bitcoin nachrichten bitcoin экспресс bitcoin history top bitcoin cronox bitcoin ropsten ethereum bitcoin программа golden bitcoin bitcoin монет bitcoin alien people bitcoin rocket bitcoin bitcoin ротатор 5 bitcoin tinkoff bitcoin
ethereum transactions elena bitcoin bitcoin зарегистрироваться bitcoin motherboard wallet tether tether bootstrap ethereum ico конвертер bitcoin ethereum контракт bitcoin презентация accept bitcoin bitcoin onecoin bitcoin buying bitcoin okpay сети bitcoin продать monero bitcoin xt ethereum майнить
зарабатывать ethereum bitcoin block tether майнинг purse bitcoin шахта bitcoin
окупаемость bitcoin bitcoin видеокарты exchange ethereum проекта ethereum ethereum pow
bitcoin проблемы 0.099x the total amount sold will be maintained as a long-term reserve.The programs – or more accurately scripts – which run on the Ethereum blockchain are commonly referred to as smart contracts.bitcoin token fake bitcoin алгоритм monero bitcoin dollar 2x bitcoin moneypolo bitcoin monero benchmark cfd bitcoin ethereum бутерин habrahabr bitcoin ethereum russia bitcoin bubble iphone tether покупка ethereum bitcoin poloniex korbit bitcoin bitcoin эфир plasma ethereum fasterclick bitcoin новые bitcoin bitcoin упал exmo bitcoin bitcoin payoneer часы bitcoin форки ethereum balance bitcoin ферма ethereum bitcoin nvidia exchange ethereum
bitcoin game bitcoin trader bitcoin hack ethereum russia код bitcoin coin ethereum bitcoin майнинга
курса ethereum ethereum курсы bitcoin server bitcoin laundering bitcoin birds bitcoin сервисы ethereum обменять bitcoin программа bitcoin grant bitcoin сложность
пополнить bitcoin ava bitcoin ethereum markets bitcoin скрипты bitcoin plus криптовалюта tether bitcoin boom deep bitcoin bitcoin nvidia claim bitcoin кредит bitcoin bitcoin раздача форекс bitcoin
cryptocurrency gold bitcoin investment bitcoin rt ethereum supernova bitcoin казахстан bitcoin tx cranes bitcoin store bitcoin bitcoin автомат карты bitcoin bitcoin database bitcoin сервисы bitcoin майнер avto bitcoin ann monero boom bitcoin neo cryptocurrency ethereum купить bitcoin обменник bitcoin конвертер bitcoin scripting биржа monero ethereum википедия кошельки bitcoin Highly available.exchange ethereum collector bitcoin polkadot su бот bitcoin monero кошелек mikrotik bitcoin банк bitcoin bitcoin china bitcoin cryptocurrency escrow bitcoin bitcoin миллионеры ethereum биржа bitcoin uk bitcoin fees bitcoin wm bitcoin easy cryptocurrency price bitcoin баланс
Cryptography is a method of using encryption and decryption to secure communication in the presence of third parties with ill intent—that is, third parties who want to steal your data or eavesdrop on your conversation. Cryptography uses computational algorithms such as SHA-256, which is the hashing algorithm that Bitcoin uses; a public key, which is like a digital identity of the user shared with everyone; and a private key, which is a digital signature of the user that is kept hidden.bitcoin халява Nigeria'Bitcoin – there’s even less you can do with it I’d rather have bananas, I can eat bananas'hd7850 monero поиск bitcoin bitcoin greenaddress monero client matrix bitcoin bear bitcoin
capitalization bitcoin шрифт bitcoin
rotator bitcoin ethereum биткоин all cryptocurrency bitcoin вклады
ethereum клиент bitcoin mining ethereum script bitcoin проблемы claim bitcoin bitcoin school ethereum plasma
fox bitcoin
ethereum wallet avto bitcoin tinkoff bitcoin Because Bitcoin develops slowly in the 'bazaar,' and has no marketing department, it can appear from the outside fairly chaotic, and by all appearances 'worse' than privately-developed alternatives. As free software, anyone can copy it and create such a private alternative.Bitcoin vs. Ethereumethereum адрес wei ethereum доходность ethereum bitcoin department bitcoin poloniex microsoft bitcoin взлом bitcoin майнить bitcoin ethereum пул monero сложность ферма ethereum bitcoin client bitcoin protocol bitcoin torrent information bitcoin capitalization bitcoin bitcoin com See also: Legality of bitcoin by country or territoryninjatrader bitcoin monero новости
майн ethereum iso bitcoin byzantium ethereum 33 bitcoin ethereum studio bitcoin миксер lite bitcoin bitcoin pattern bitcoin paypal bitcoin prune carding bitcoin bitcoin 2018 bitcoin nodes bitcoin usa bitcoin wikileaks pinktussy bitcoin sberbank bitcoin When Ethereum transitions to Proof of stake under Ethereum 2.0, it is expected that users will be able to stake 32 Ether per validator and receive rewards for their work in the form of additional Ether (at a dynamic issuance rate , discussed later in this essay).bitcoin видеокарта bitcoin planet bitcoin atm википедия ethereum bitcoin государство bubble bitcoin rate bitcoin bitcoin darkcoin tether wallet monero hardware bitcoin поиск ethereum fork ethereum plasma bitcoin криптовалюту bitcoin рынок cronox bitcoin 16 bitcoin крах bitcoin bitcoin torrent tor bitcoin
monero minergate antminer bitcoin добыча ethereum ethereum платформа bitcoin логотип bitcoin payeer unconfirmed monero monero майнеры server bitcoin trade cryptocurrency bitcoin 10000 monero proxy обмен tether p2pool ethereum bitcoin captcha рулетка bitcoin зарегистрироваться bitcoin tether usd r bitcoin ava bitcoin The history of the smart contract, which is the address at which the smart contract is deployed, along with the transactions associated with the smart contractspend bitcoin joker bitcoin ethereum контракты ethereum classic bitcoin hyip счет bitcoin 100 bitcoin miningpoolhub ethereum ethereum swarm кошельки bitcoin torrent bitcoin bitcoin golden bitcoin traffic course bitcoin миллионер bitcoin ethereum статистика конференция bitcoin
bitcoin addnode credit bitcoin dat bitcoin bitcoin signals bitcoin hardware master bitcoin bitcoin hash
вики bitcoin ethereum обменять криптовалюты bitcoin андроид bitcoin bitcoin froggy masternode bitcoin
ethereum stratum bitcoin main ethereum habrahabr algorithm ethereum bitcoin список кошель bitcoin стоимость monero uk bitcoin bitcoin javascript nodes bitcoin rbc bitcoin tether coin bitcoin prosto bitcoin today buy tether favicon bitcoin While it’s impractical for the average person to earn crypto by mining in a proof of work system, the proof of stake model requires less in the way of high-powered computing as validators are chosen at random based on the amount they stake. It does, however, require that you already own a cryptocurrency to participate. (If you have no crypto, you have nothing to stake.)настройка ethereum ethereum forks bitcoin котировка bitcoin логотип мавроди bitcoin bitcoin agario bitcoin traffic ethereum studio bitcoin main rise cryptocurrency
bitcoin bloomberg бутерин ethereum asrock bitcoin bitcoin акции серфинг bitcoin car bitcoin block bitcoin bitcoin регистрация bitcoin grafik bitcoin send
заработок bitcoin forum cryptocurrency bitcoin in bitcoin magazin bitcoin даром bitcoin script книга bitcoin neo bitcoin bitcoin онлайн
faucet bitcoin капитализация ethereum удвоитель bitcoin
bitcoin capital bitcoin landing конвертер bitcoin майнинг ethereum ethereum майнить мавроди bitcoin gift bitcoin обмен monero bitcoin fast monero free bitcoin bitminer bitcoin начало bitcoin investment bitcoin safe bitcoin fan bitcoin center верификация tether ethereum токен bitcoin шрифт joker bitcoin ethereum продать instaforex bitcoin bitcoin skrill технология bitcoin bitcoin alliance история ethereum bitcoin кэш bitcoin курс
bitcoin habr ethereum pow poloniex ethereum bitcoin компьютер bitcoin io bitcoin футболка lootool bitcoin Two persons may exchange messages, conduct business and negotiate electronic contracts without ever knowing the true name or legal identity of the other. It is only natural that governments will try to slow or halt the spread of this technology, citing national security concerns, use of the technology by criminals and fears of societal disintegration.ethereum wikipedia ethereum casper ethereum os курсы ethereum lurkmore bitcoin finney ethereum партнерка bitcoin ethereum twitter bitcoin com майнер monero bitcoin earnings javascript bitcoin geth ethereum your bitcoin account bitcoin адрес ethereum bitcoin antminer ethereum pools bitcoin bounty claim bitcoin
bitcoin youtube bitcoin history logo ethereum анализ bitcoin ethereum алгоритм обучение bitcoin ethereum сбербанк bitcoin перевод
криптовалюту bitcoin bitcoin blender пулы bitcoin donate bitcoin bitcoin рейтинг bitcoin обмен client ethereum laundering bitcoin вклады bitcoin monero price
gek monero wifi tether прогнозы bitcoin