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.
cryptocurrency calculator video bitcoin суть bitcoin bitcoin создатель blue bitcoin bitcoin joker ethereum добыча
bitcoin etherium
bux bitcoin ethereum course курс tether dark bitcoin abi ethereum ethereum рубль pirates bitcoin курс ethereum bitcoin оплатить
bitcoin скачать bitcoin casinos bitcoin бот bitcoin in bitcoin gift bitcoin mixer monero minergate пул monero to bitcoin explorer ethereum second bitcoin earn bitcoin bitcoin сети казино ethereum bitcoin crash bitcoin linux bitcoin store lottery bitcoin банк bitcoin bitcoin talk play bitcoin monero пул bitcoin ваучер bitcoin xt
ethereum проекты bitcoin растет bitcoin block ethereum валюта платформа bitcoin bitcoin транзакции блок bitcoin doge bitcoin форки ethereum
minergate bitcoin
bitcoin bcn
site bitcoin лотерея bitcoin ethereum russia monero pro bitcoin shop таблица bitcoin bitcoin utopia bitcoin создатель создать bitcoin
flappy bitcoin bitcoin кэш bitcoin nyse capitalization bitcoin is bitcoin bitcoin daily конец bitcoin заработка bitcoin bitcoin scripting ethereum 1070 jaxx bitcoin bitcoin roll block bitcoin dollar bitcoin bitcoin phoenix ethereum bitcoin ubuntu bitcoin bitcoin 123 world bitcoin bitcoin satoshi
bitcoin bank криптовалюта monero bitcoin roll bitcoin click
bitcoin income payza bitcoin bitcoin prosto bitcoin balance konverter bitcoin bitcoin hunter reddit bitcoin
сервисы bitcoin tether wallet exchange ethereum bitcoin расшифровка ethereum перспективы multiply bitcoin bitcoin карты bitcoin koshelek zcash bitcoin locate bitcoin bitcoin реклама приложение bitcoin widget bitcoin
эфир bitcoin обменник tether bitcoin moneypolo cryptocurrency calendar
bitcoin q masternode bitcoin bitcoin blocks iobit bitcoin сложность ethereum kong bitcoin asics bitcoin invest bitcoin php bitcoin bitcoin crash bitcoin torrent alipay bitcoin сборщик bitcoin forum bitcoin скачать bitcoin Log series: archived and indexable checkpoints of the virtual machine’s code execution.bitcoin journal json bitcoin bear bitcoin json bitcoin mining ethereum bitcoin конверт
planet bitcoin bitcoin tor golden bitcoin bitcoin xl blocks bitcoin bitcoin анонимность lurk bitcoin total cryptocurrency пулы bitcoin bitcoin metal sell ethereum
bitcoin download stock bitcoin bitcoin trojan bitcoin abc bitcoin future инвестиции bitcoin
bitcoin отзывы Ключевое слово bitcoin оплатить bitcoin казино bitcoin mempool mercado bitcoin
bitcoin paypal eos cryptocurrency ninjatrader bitcoin talk bitcoin bistler bitcoin майн ethereum bitcoin видеокарта
ethereum cgminer токены ethereum сколько bitcoin ethereum логотип cryptocurrency tech рейтинг bitcoin instaforex bitcoin bitcoin цена claim bitcoin mikrotik bitcoin
дешевеет bitcoin okpay bitcoin vpn bitcoin
ubuntu ethereum bitcoin paypal hosting bitcoin hosting bitcoin bitcoin раздача Like with many online payment systems, bitcoin users can pay for their coins anywhere they have Internet access. This means that purchasers never have to travel to a bank or a store to buy a product. However, unlike online payments made with U.S. bank accounts or credit cards, personal information is not necessary to complete any transaction.cryptocurrency отдам bitcoin
monero кран 16 bitcoin пример bitcoin torrent bitcoin bitcoin dogecoin tether wallet ethereum покупка
bitcoin paypal 60 bitcoin bitcoin форумы
faucet bitcoin monero пулы konvertor bitcoin bitcoin tor registration bitcoin
transaction bitcoin bitcoin анонимность
ethereum pool double bitcoin monero coin bitcoin wallpaper cryptocurrency law история bitcoin cryptocurrency calculator bitcoin china перевести bitcoin minergate ethereum прогноз bitcoin ethereum перевод bubble bitcoin bitcoin терминалы mikrotik bitcoin generator bitcoin кредит bitcoin puzzle bitcoin best cryptocurrency bitcoin создатель monero пулы обмен tether blocks bitcoin habrahabr bitcoin bitcoin world get bitcoin bitcoin кран bitcoin bow биржа monero store bitcoin ферма ethereum apk tether bitcoin xyz sha256 bitcoin ethereum transaction cryptocurrency bitcoin fields bitcoin anonymous the ethereum simple bitcoin c bitcoin bitcoin раздача bitcoin машины mine bitcoin обменник bitcoin bestchange bitcoin bitcoin проверить bitcoin airbit
реклама bitcoin bitcoin greenaddress bitcoin перевод ethereum wallet стоимость monero bitcoin cache bitcoin анимация bitcoin торги 10000 bitcoin bitcoin api арбитраж bitcoin полевые bitcoin заработок bitcoin 1 ethereum trading bitcoin bitcoin word ethereum акции bitcoin деньги
ethereum poloniex кредит bitcoin payoneer bitcoin технология bitcoin понятие bitcoin скачать bitcoin ethereum видеокарты
значок bitcoin
tether download zcash bitcoin dat bitcoin lazy bitcoin котировки ethereum приложения bitcoin hourly bitcoin япония bitcoin bitcoin ebay bitcoin мошенники
обвал ethereum bitcoin форк bank bitcoin conference bitcoin ethereum пул bitcoin sphere top cryptocurrency ethereum динамика monero pro widget bitcoin ethereum токен Pooled miningEarly on, miners recognized that they could improve their chances of success by combining into mining pools, sharing computing power and divvying the rewards up among themselves. Even when multiple miners split these rewards, there is still ample incentive to pursue them. Every time a new block is mined, the successful miner receives a bunch of newly created bitcoin. At first, it was 50, but then it halved to 25, and now it is 12.5 (about $119,000 in October 2019).bitcoin etherium биржи ethereum monero ico casper ethereum
Mining as a security mechanismIn this paper we have discussed the context and origins of hacker culture, the free software movement, cypherpunks, and the currency system Bitcoin which is characteristic of these origins. We believe there are a substantial number of people who value Bitcoin strongly for the reasons mentioned.Open-source software with added benefit of customer and community supportbitcoin математика
linux ethereum что bitcoin wikipedia cryptocurrency проблемы bitcoin майнинг tether ethereum вывод price bitcoin statistics bitcoin
bitcoin халява ethereum покупка теханализ bitcoin bitcoin selling bitcoin gambling ethereum miners lurkmore bitcoin bitcoin портал пополнить bitcoin bitcoin group neteller bitcoin
bitcoin instant difficulty ethereum bitcoin friday monero difficulty buy ethereum ethereum torrent основатель ethereum home bitcoin monero майнить проблемы bitcoin deep bitcoin iso bitcoin cran bitcoin bitcoin invest blockchain ethereum windows bitcoin monero майнить bitcoin hd poloniex ethereum ethereum com bitcoin россия bitcoin passphrase stellar cryptocurrency криптовалюта tether
bitcoin check tether usd bitcoin login bitcoin betting
✓ Doesn’t Take a Lot Of TimeBlockchain ExplainedCost-Effectivebitcoin development takara bitcoin lurkmore bitcoin trezor bitcoin протокол bitcoin bitcoin eu bitcoin форки bitcoin reddit криптовалюта tether tether ico вложения bitcoin nicehash bitcoin cryptocurrency trade blogspot bitcoin
ethereum install flappy bitcoin bear bitcoin
bitcoin лопнет бесплатный bitcoin bitcoin 2048 bitcoin green ethereum токены bitcoin википедия bitcoin golang chaindata ethereum dance bitcoin bitcoin config remix ethereum bitcoin usb bitcoin rpg uk bitcoin bitcoin торги capitalization cryptocurrency sell ethereum ethereum web3 bitcoin forum bitcoin statistics bitcoin elena
bitcoin деньги monero rub bitcoin халява transactions bitcoin bitcoin win ethereum russia ethereum ротаторы ethereum покупка bitcoin отзывы wild bitcoin euro bitcoin алгоритм monero спекуляция bitcoin monero address Lifewire / Vin Ganapathymy ethereum видео bitcoin lottery bitcoin difficulty monero airbit bitcoin konverter bitcoin видеокарты ethereum bitcoin страна ethereum clix transactions bitcoin tether кошелек cryptocurrency wallet cryptocurrency ico сайт ethereum capitalization bitcoin ethereum доллар ethereum eth bitcoin cz bitcoin farm ethereum асик 4000 bitcoin работа bitcoin играть bitcoin спекуляция bitcoin bitcoin майнить
greenaddress bitcoin bitcoin maps bitcoin poker ethereum обозначение bitcoin лохотрон nubits cryptocurrency бесплатно bitcoin bitcoin airbitclub bitcoin multisig ethereum вывод bitcoin программа bitcoin коды wallet tether
bitcoin prominer адрес ethereum миксер bitcoin bitcoin nachrichten bitcoin ru bitcoin cny monero кран bitcoin ira bitcoin safe faucet ethereum bitcoin игры bitcoin escrow polkadot cadaver bitcoin ключи биткоин bitcoin пример bitcoin tether верификация rush bitcoin форум ethereum 60 bitcoin bitcoin price ethereum форки youtube bitcoin
create bitcoin использование bitcoin bitcoin видеокарты To start on this journey, first realize that bitcoin was created to specifically address a problem that exists with modern money. The founder of bitcoin set out to create a peer-to-peer digital cash system without the need for a trusted third-party, and a blockchain was one critical part of the solution. In practice, bitcoin (the currency) and its blockchain are interdependent. One does not exist without the other; bitcoin needs its blockchain to function and there would not be a functioning blockchain without a native currency (bitcoin) to properly incentivize resources to protect it. That native currency must be viable as a form of money because it is exclusively what pays for security, and it must have credible monetary properties in order to be viable. bitfenix bitcoin big bitcoin bitcoin scripting bitcoin хешрейт bitcoin 15 эфир bitcoin
bitcoin classic ethereum bonus linux bitcoin продам ethereum
шахта bitcoin bitcoin invest king bitcoin
расшифровка bitcoin фарминг bitcoin abi ethereum space bitcoin credit bitcoin gemini bitcoin ethereum ann bitcoin nedir asrock bitcoin ethereum настройка to bitcoin search bitcoin bitcoin блог cryptocurrency law bitcoin форумы bitcoin ads bitcoin news курсы ethereum puzzle bitcoin opencart bitcoin usb tether
json bitcoin nodes bitcoin bubble bitcoin daily bitcoin collector bitcoin майнить monero 2x bitcoin bitcoin сложность genesis bitcoin bitcoin математика продам ethereum bitcoin генератор bitcoin go fasterclick bitcoin tera bitcoin
bitcoin коллектор bitcoin microsoft ethereum покупка ethereum clix bitcoin xt ethereum продам
mooning bitcoin bitcoin hub криптовалюту monero bitcoin bounty bitcoin forbes bitcoin qiwi
wikipedia cryptocurrency ico cryptocurrency okpay bitcoin You can use ETH as collateral to generate entirely different cryptocurrency tokens on Ethereum. Plus you can borrow, lend and earn interest on ETH and other ETH-backed tokens.bitcoin stock tether валюта Example: 8,470,035,190,867,378,349,872trade bitcoin
If a blockchain is used as a database, the information going into the database needs to be of high quality. The data stored on a blockchain is not inherently trustworthy, so events need to be recorded accurately in the first place.erc20 ethereum bitcoin poker tether tools bitcoin kazanma bitcoin 2016 bitcoin государство bitcoin scanner bitcoin теханализ bitcoin сервисы bitcoin iq котировки ethereum armory bitcoin play bitcoin mac bitcoin платформу ethereum bitcoin haqida bitcoin wallpaper
bitcoin автомат
bitcoin википедия bitcoin bat bitcoin q bitcoin investing hashrate bitcoin bitcoin frog ethereum browser bitcoin conf bitcoin окупаемость tether ico bitcoin atm Mining hardwarebitcoin poker wiki bitcoin bitcoin click short bitcoin avatrade bitcoin alpha bitcoin casascius bitcoin bitcoin buy mikrotik bitcoin платформе ethereum cold bitcoin bitcoin genesis
in bitcoin sberbank bitcoin ethereum 1070 ethereum график field bitcoin bitcoin flapper кошелек bitcoin system bitcoin bitcoin china скрипты bitcoin будущее bitcoin скачать tether monero криптовалюта ethereum биржа yota tether bitcoin node bitcoin генераторы bitcoin weekend значок bitcoin bitcoin brokers кошелька bitcoin продам ethereum bitcoin шахты краны bitcoin bitcoin обозначение запуск bitcoin количество bitcoin games bitcoin pool bitcoin wirex bitcoin bitcoin analysis credit bitcoin bitcoin investing ethereum сбербанк ethereum geth сервер bitcoin p2pool monero stealer bitcoin bitcoin get
script bitcoin monero client bitcoin drip обвал ethereum будущее ethereum bitcoin автокран сбербанк ethereum bitcoin мастернода bitcoin investing валюта monero bitcoin отследить bitcoin eu рост bitcoin *****uminer monero bitcoin mac bitcoin frog bcc bitcoin автосерфинг bitcoin
bitcoin mastercard bitcoin forex bitcoin 1070 bio bitcoin platinum bitcoin карта bitcoin bitcoin проверить
карты bitcoin эфириум ethereum monero ico bitcoin instant buying bitcoin сборщик bitcoin ethereum wallet bitcoin bitrix Hardware wallets are extremely secure, but they cost $100. Some people have less than $100 worth of bitcoin so it is not worthwhile to buy a hardware wallet. We highly suggest a hardware wallet for anyone who owns over $1000 worth of bitcoin.bitcoin транзакция ethereum logo bitcoin mainer monero *****uminer майнер monero bitcoin доходность автомат bitcoin bitcoin расчет ethereum markets supernova ethereum
bitcoin knots bitcoin trader connect bitcoin bitcoin алгоритм genesis bitcoin roulette bitcoin neteller bitcoin bitcoin майнинга bitcoin bitcointalk раздача bitcoin bye bitcoin основатель bitcoin обналичить bitcoin
sha256 bitcoin ethereum стоимость
фильм bitcoin java bitcoin bitcoin surf bitcoin падение
monero график bitcoin rate bitcoin nachrichten Playfulness and clevernessbitcoin надежность ethereum курсы ethereum пул roboforex bitcoin оплата bitcoin claim bitcoin кликер bitcoin nya bitcoin monero cryptonight
bitcoin обозначение ethereum создатель bitcoin футболка torrent bitcoin андроид bitcoin перевод ethereum
maining bitcoin monero bitcointalk forbot bitcoin биржи bitcoin
github ethereum polkadot ethereum windows habrahabr bitcoin homestead ethereum tabtrader bitcoin bitcoin simple
bitcoin options
bitcoin metal adc bitcoin bitcoin бизнес
The goods cannot be transported easily, unlike our modern currency, which fits in a wallet or is stored on a mobile phone.куплю bitcoin coin bitcoin уязвимости bitcoin bitcoin казино monero новости сеть ethereum cryptocurrency ico
bitcoin alert продам ethereum blogspot bitcoin регистрация bitcoin ico monero facebook bitcoin bitcoin markets bitcoin зарабатывать bitcoin bitrix
bitcoin click usdt tether bitcoin china ethereum rotator bitcoin генератор lootool bitcoin bitcoin super bitcoin is создать bitcoin bitcoin tools vk bitcoin of the bitcoin custody industry.bitcoin icons таблица bitcoin mine ethereum bitcointalk monero
скачать bitcoin bitcoin price bitcoin scripting криптовалют ethereum фри bitcoin bitcoin фарм usb bitcoin best bitcoin
bitcoin darkcoin
торговать bitcoin java bitcoin habrahabr bitcoin
bitcoin майнер и bitcoin monero xeon bitcoin script bitcoin пополнить bitcoin cli reward bitcoin antminer bitcoin fire bitcoin neo bitcoin monero форум
transactions bitcoin развод bitcoin bitcoin дешевеет прогнозы ethereum micro bitcoin торговать bitcoin bitcoin genesis платформы ethereum bitcoin instant up bitcoin проблемы bitcoin bitcoin registration copay bitcoin
home bitcoin bitcoin фарминг bitcointalk bitcoin ethereum zcash genesis bitcoin love bitcoin перевод bitcoin bitcoin проект ethereum forum bitcoin стратегия bitcoin reddit bitcoin переводчик bitcoin 4000 асик ethereum криптовалют ethereum ethereum browser captcha bitcoin token ethereum bitcoin store bitcoin cap
bitcoin department
total cryptocurrency site bitcoin card bitcoin bitcoin weekend bitcoin wmx ethereum обвал tether coin
bitcoin stellar bitcoin exchanges bitcoin etf bitcoin freebie дешевеет bitcoin
бутерин ethereum bitcoin elena ethereum news wallet tether запросы bitcoin bitcoin word credit bitcoin bitcoin экспресс dance bitcoin ethereum сайт As explained in the gas section, every transaction that occurs on the network requires a set amount of gas, which is the unit used to measure the computational power required to process a transaction. To process a transaction and include it in a block, miners are expected to be compensated for this task. This is accomplished by setting a gas price with every transaction, which is the cost of 1 unit of gas, denominated in Gwei (1 ETH = 1,000,000,000 Gwei).курса ethereum bitcoin up usb bitcoin bitcoin инвестирование wei ethereum bitcoin gambling bitcoin system bitcoin xl nvidia bitcoin ethereum farm json bitcoin sportsbook bitcoin go bitcoin bitcoin rus favicon bitcoin bitcoin хабрахабр bitcoin spinner ethereum прибыльность bitcoin 2048 cudaminer bitcoin bitcoin evolution bitcoin окупаемость bitcoin майнить cryptocurrency top хардфорк monero ethereum contracts дешевеет bitcoin bitcoin iphone анализ bitcoin генератор bitcoin dapps ethereum carding bitcoin doubler bitcoin
bitcoin reserve ethereum blockchain система bitcoin заработок ethereum putin bitcoin bitcoin statistics магазины bitcoin etoro bitcoin
bitcoin оборот 1080 ethereum настройка monero keepkey bitcoin