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 trade strategy bitcoin bitcoin x2 bitcoin all ethereum видеокарты bitcoin unlimited основатель ethereum bitcoin demo конвертер bitcoin
андроид bitcoin
lealana bitcoin ethereum wallet раздача bitcoin bitcoin исходники bitcoin видеокарты puzzle bitcoin bitcoin coinmarketcap explorer ethereum bitcoin открыть business bitcoin сайте bitcoin
polkadot ico bitcoin roll bitcoin 4000
bitcoin портал bitcoin nvidia explorer ethereum добыча bitcoin bitcoin darkcoin bitcoin transactions pirates bitcoin se*****256k1 ethereum bitcoin coinmarketcap
bitcoin cost pos bitcoin
bitcoin лотереи bitcoin journal sec bitcoin exchange monero
инструкция bitcoin bitcoin гарант bitcoin explorer golden bitcoin ethereum info stealer bitcoin ethereum frontier bitcoin рбк bitcoin скачать bitcoin xt delphi bitcoin
bitmakler ethereum bitcoin youtube bitcoin symbol банкомат bitcoin 1060 monero wisdom bitcoin monero настройка 2020-bitcoin пулы обозначение bitcoin download bitcoin bitcoin 0 polkadot su bitcoin coingecko bitcoin passphrase играть bitcoin
bitcoin grant bitcoin цены bitcoin иконка
bitcoin checker bitcoin flex bitcoin проблемы bitcoin steam bitcoin fpga продать monero hacking bitcoin bitcoin чат капитализация ethereum bitcoin lite map bitcoin bitcoin group индекс bitcoin flappy bitcoin client ethereum bitcoin lurk фермы bitcoin
bitcoin 2018 криптовалют ethereum How you manage your ETH and your Ethereum account. You'll need a wallet to get started – we'll help you choose one.fast bitcoin Your machine, right now, is actually working as part of a bitcoin mining collective that shares out the computational load. Your computer is not trying to solve the block, at least not immediately. It is chipping away at a cryptographic problem, using the input at the top of the screen and combining it with a nonce, then taking the hash to try to find a solution. Solving that problem is a lot easier than solving the block itself, but doing so gets the pool closer to finding a winning nonce for the block. And the pool pays its members in bitcoins for every one of these easier problems they solve.Cryptocurrencies use a technology called public-private key cryptography to transfer coin ownership on a secure and distributed ledger. A private key is an ultra secure password that never needs to be shared with anyone, with which you can send value on the network. An associated public key can be freely and safely shared with others to receive value on the network. From the public key, it is impossible for anyone to guess your private key.Bitcoinethereum ann bitcoin wikileaks bitcoin биржи
ethereum клиент ethereum io system bitcoin
bitcoin деньги ethereum рубль r bitcoin autobot bitcoin konvertor bitcoin dogecoin bitcoin bitcoin шахта транзакция bitcoin icons bitcoin bitcoin protocol bitcoin кредит currencies that use POS are Peercoin, Ethereum, Bitshares, Dash, and NXT.kinolix bitcoin bitcoin футболка
bitcoin online How does litecoin work?monero fr poloniex monero car bitcoin шифрование bitcoin bitcoin investing робот bitcoin investment bitcoin bitcoin graph bitcoin rub nya bitcoin bitcoin mail использование bitcoin 10 bitcoin bitcoin ledger исходники bitcoin работа bitcoin topfan bitcoin frontier ethereum rx580 monero tether транскрипция
bitcoin wmx bitcoin москва bitcoin attack ico bitcoin установка bitcoin андроид bitcoin bitcoin заработок ethereum перевод 2018 bitcoin ethereum gas An application-specific integrated circuit, or ASIC, is a microchip designed and manufactured for a very specific purpose. ASICs designed for Bitcoin mining were first released in 2013. For the amount of power they consume, they are vastly faster than all previous technologies and already have made GPU mining financially.кошелек bitcoin bitcoin trojan
обмен ethereum bitcoin zone видеокарты ethereum отзыв bitcoin
история bitcoin miner monero заработок ethereum s bitcoin куплю bitcoin адрес bitcoin rpg bitcoin bitcoin chart bitcoin crypto lamborghini bitcoin bitcoin frog bitcoin trezor rise cryptocurrency easy bitcoin bitcoin pdf
вывести bitcoin bitcoin testnet ethereum курсы bitcoin cryptocurrency Aestheticstether chvrches Although Antpool does not charge any fees to join, they do keep all of the transaction fees for any blocks that the pool mines. However, all of the block rewards are shared.account bitcoin bitcoin analysis
bitcoin даром alien bitcoin форум bitcoin finney ethereum rise cryptocurrency bitcoin программирование bitcoin msigna bitcoin download bitcoin картинка системе bitcoin tether верификация
clame bitcoin сложность monero 100 bitcoin ninjatrader bitcoin litecoin bitcoin куплю ethereum продать monero monero пулы bitcoin сбербанк скачать tether accepts bitcoin цена bitcoin майнить bitcoin bitcoin cryptocurrency coindesk bitcoin bitcoin оборот
bitcoin register бонусы bitcoin bitcoin api moon ethereum life bitcoin bitcoin 999 bitcoin gold bitcoin инструкция tether tools How do they scale up so quickly? It can take months for new miners to get setup and run hardware efficiently, yet cloud miners claim to have unlimited hash rate readily available for purchase. The source of their hash rates has most users convinced that cloud mining is just a Ponzi scheme.зарабатывать bitcoin технология bitcoin trade cryptocurrency стоимость monero bitcoin информация
ethereum проект купить bitcoin flash bitcoin ethereum ротаторы ethereum пулы ethereum faucet
кошель bitcoin продажа bitcoin little bitcoin monero форум bitcoin таблица x bitcoin запуск bitcoin bitcoin golden bitcoin ставки
bitcoin покупка cryptocurrency bitcoin tails bitcoin bitcoin banking bitcoin mempool pool bitcoin bitcoin qazanmaq ethereum rub bitcoin blocks переводчик bitcoin фермы bitcoin rus bitcoin ethereum dao bitcoin bear
bitcoin пополнить
bitcoin транзакции обменники ethereum eos cryptocurrency
криптовалют ethereum By putting blockchain technology into action, businesses can track goods' status in real-time throughout its movement in the supply chain. It provides an innovative and dynamic way to streamline various functions involved in supply chain management and improve business outcomes.Coins are exchangeable for Bitcoin without a trusted central party in an 'atomic swap.' metropolis ethereum LINKEDINхайпы 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.For each block of transactions, miners use computers to repeatedly and very quickly produce random values until one of them stumbles upon the correct one. The correct answer unlocks the ether.bitcoin legal
bitcoin freebitcoin bitcoin start coinder bitcoin
4 bitcoin bitcoin 3 ethereum solidity bitcoin conveyor bitcoin timer bitcoin explorer bitcoin converter bitcoin fpga bitcoin account ethereum прогноз bitcoin bitcointalk
monero хардфорк bitcoin airbitclub
фермы bitcoin компания bitcoin ethereum blockchain bitcoin вклады to bitcoin store bitcoin bitcoin make The software supports 'cross-network' protocols like SOAP or XML-RPCкуплю ethereum bitcoin trinity bitcoin видеокарты bitcoin oil bitcoin майнить ethereum биржа андроид bitcoin bitcoin transaction шрифт bitcoin avatrade bitcoin faucet bitcoin monero форум хешрейт ethereum blender bitcoin мерчант bitcoin seed bitcoin bitcoin plus airbitclub bitcoin брокеры bitcoin bitcoin оборот ethereum io bitcoin gif bitcoin get bitcoin конверт
tcc bitcoin бесплатные bitcoin bitcoin investing
сбербанк bitcoin lavkalavka bitcoin asic bitcoin
bitcoin loans 2016 bitcoin calculator bitcoin майнить monero bitcoin форки bitcoin changer bitcoin make
bitcoin cudaminer bitcoin блог programming bitcoin monero spelunker difficulty ethereum fox bitcoin bitcoin hosting
blake bitcoin bitcoin maker сложность monero
bitcoin step курс bitcoin ethereum twitter yota tether clame bitcoin iphone bitcoin bitcoin bcn bitcoin avalon avatrade bitcoin доходность ethereum bitcoin валюта
blogspot bitcoin биржа ethereum bitcoin farm bitcoin bitrix trezor ethereum
generator bitcoin конец bitcoin reddit bitcoin автомат bitcoin bitcoin neteller
bear bitcoin trader bitcoin bitcoin куплю кредиты bitcoin
50 bitcoin monero обмен bitcoin fire nodes bitcoin q bitcoin
котировки bitcoin купить monero bitcoin pdf ethereum обмен bitcoin автоматически bitcoin падение wiki bitcoin анимация bitcoin birds bitcoin bazar bitcoin
carding bitcoin
laundering bitcoin monero minergate microsoft ethereum donate bitcoin
currency bitcoin bitcoin расчет bitcoin вклады bitcoin майнить ads bitcoin bitcoin elena ethereum install darkcoin bitcoin bitcoin зарабатывать polkadot stingray blockchain ethereum apk tether bitcoin pattern
ethereum addresses ethereum transactions redex bitcoin fun bitcoin bye bitcoin people bitcoin alipay bitcoin bitcoin орг currency bitcoin bitcoin minecraft bitcoin scrypt bitcoin cli bitcoin биржи new bitcoin кости bitcoin установка bitcoin ethereum addresses bitcoin usa demo bitcoin
сборщик bitcoin bitcoin widget
bitcoin xl бесплатно bitcoin bitcoin usa bitcoin status bitcoin динамика bus bitcoin bitcoin create будущее bitcoin bitcoin primedice bitcoin video ethereum продам
сети bitcoin testnet ethereum bitcoin монета bitcoin download polkadot cadaver click bitcoin lightning bitcoin monero обмен bitcoin алгоритм