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.
Protection against physical damagewallet tether bitcoin banking ethereum метрополис ico bitcoin monero майнеры программа ethereum segwit bitcoin bitcoin boxbit
trade cryptocurrency
bitcoin department bitcoin генераторы
bitcoin etherium bitcoin symbol bitcoin wmz
nodes bitcoin transaction bitcoin bitcoin cny foto bitcoin ubuntu bitcoin keyhunter bitcoin ethereum транзакции новые bitcoin заработок ethereum bitcoin код добыча bitcoin bitcoin account ethereum info проверка bitcoin 1000 bitcoin
ethereum ротаторы bitcoin demo bitcoin gif зарабатывать bitcoin
сайте bitcoin bitcoin adress шифрование bitcoin биржа bitcoin bitcoin stellar For blockchains, this begins with a distributed network.ethereum twitter
bitcoin сбербанк okpay bitcoin bitcoin трейдинг
bitcoin vk
forum bitcoin мавроди bitcoin 1 ethereum bitcoin doge ethereum github ethereum github bitcoin testnet обменник tether ethereum игра tether курс pokerstars bitcoin bitcoin book master bitcoin anomayzer bitcoin pps bitcoin эмиссия bitcoin ethereum кошелек теханализ bitcoin win bitcoin auction bitcoin
прогнозы ethereum monero gui bitcoin store bitcoin node faucets bitcoin bitcoin это bitcoin save byzantium ethereum bitcoin start развод bitcoin windows bitcoin ethereum монета monero node миксер bitcoin bitcoin golang я bitcoin bitcoin explorer hacking bitcoin проверка bitcoin ethereum pool locals bitcoin bitcoin баланс и bitcoin rus bitcoin bitcoin block bitcoin doubler ethereum майнеры bitcoin nvidia bitcoin froggy bitcoin change coin ethereum bitcoin machine bitcoin capitalization ethereum кошелька boxbit bitcoin продам ethereum tether usd blogspot bitcoin dogecoin bitcoin ethereum форки cryptocurrency law pokerstars bitcoin
обменник tether
bitcoin торги nova bitcoin fenix bitcoin конференция bitcoin bitcoin capital компания bitcoin андроид bitcoin coinmarketcap bitcoin monero новости flappy bitcoin bitcoin alert
yandex bitcoin bitcoin описание эпоха ethereum bitcoin adress monero freebsd bitcoin майнер bitcoin vip рост bitcoin разработчик bitcoin получить bitcoin inside bitcoin tether майнить ethereum транзакции bitcoin dice daemon monero bitcoin ukraine
arbitrage cryptocurrency foto bitcoin генераторы bitcoin bitcoin sha256 decred cryptocurrency 50 bitcoin bitcoin symbol clockworkmod tether платформе ethereum кредиты bitcoin status bitcoin bitcoin antminer форк ethereum monero free stealer bitcoin bitcoin bow обзор bitcoin bitcoin signals trezor bitcoin lite bitcoin habrahabr bitcoin Each investor has their own risk tolerance, conviction, knowledge, and financial goals. A key way to manage Bitcoin’s volatility is to manage your position size, rather than try to trade it too frequently. If Bitcoin’s price volatility keeps you up at night, your position is probably too big. If you have an appropriately-sized position, it’s the type of asset to let run for a while, rather than to take profits as soon as it’s slightly popular and doing well.Final Thoughts on Cryptocurrency Miningbitcoin make
claymore monero будущее bitcoin difficulty monero bitcoin traffic bitcoin hashrate erc20 ethereum bitcoin падение se*****256k1 bitcoin litecoin bitcoin monero usd legal bitcoin играть bitcoin 2 bitcoin получить ethereum bitcoin paypal bitcoin virus bitcoin рынок cranes bitcoin bitcoin prominer transactions bitcoin All of you who are involved in this, right now, are making history.cubits bitcoin bitcoin cloud bitcoin flapper bitcoin приложение bitcoin zone порт bitcoin ethereum exchange monero calculator xapo bitcoin ethereum mist jax bitcoin tether верификация
ninjatrader bitcoin
weekend bitcoin dark bitcoin конференция bitcoin значок bitcoin алгоритм monero ethereum info earning bitcoin ethereum web3
адрес ethereum cold bitcoin bitcoin india forbot bitcoin получение bitcoin bitcoin scripting bitcoin click
express bitcoin okpay bitcoin
python bitcoin monero *****u bitcoin rotator amazon bitcoin
casper ethereum bitcoin обучение сбербанк bitcoin ethereum faucet email bitcoin ethereum programming surf bitcoin bitcoin торрент bitcoin лохотрон график bitcoin
777 bitcoin блокчейн bitcoin r bitcoin краны monero
майнер ethereum bitcoin lion bitcoin blog 3d bitcoin bitcoin графики 600 bitcoin bitcoin webmoney tails bitcoin инструкция bitcoin
bitcoin etherium bitcoin майнить
платформ ethereum ubuntu bitcoin ethereum faucet bitcoin zebra github ethereum bitcoin poker bitcoin forecast bitcoin example rigname ethereum ethereum rub ethereum poloniex bitcoin calculator coindesk bitcoin boxbit bitcoin monero windows блок bitcoin seed bitcoin хардфорк ethereum bitcoin registration bitcoin работа gemini bitcoin r bitcoin space bitcoin reward bitcoin joker bitcoin bitcoin options bitcoin etf bitcoin evolution stealer bitcoin rpc bitcoin bonus bitcoin bitcoin цена ethereum mining zcash bitcoin ethereum farm
bitcoin доллар проект bitcoin amazon bitcoin the ethereum pool bitcoin
love bitcoin bitcoin википедия abc bitcoin total cryptocurrency ethereum логотип взлом bitcoin ethereum ios Of Bitcoin’s many properties, trustlessness, or the ability to use Bitcoin without trusting anything but the open-source software you run, is, by far, king. More specifically, interest in Bitcoin appears to almost exclusively derive from a desire to avoid needing to trust some third party or combination of third parties. This should hardly be news to anyone, but an understanding of exactly why this trustlessness is so important (and what forms it takes) is critical to building and upgrading Bitcoin technology.Bitcoin ATM were located on any part of the continent and it is a physical machine aiming to provide services for Bitcoin users to purchase Bitcoins using cash.Ethereum Whitepaperbitcoin onecoin jaxx bitcoin cgminer monero bitcoin pdf
cgminer ethereum monero hardware blocks bitcoin аналоги bitcoin bitcoin slots прогноз ethereum ethereum eth ethereum картинки bitcoin bitcoin книга транзакции monero currency bitcoin trezor bitcoin ethereum stats casino bitcoin etoro bitcoin connect bitcoin account bitcoin bitcoin xt cryptonight monero alien bitcoin excel bitcoin bitcoin книга gadget bitcoin monero майнить bitcoin hacking cryptocurrency calendar auto bitcoin bitcoin start capitalization bitcoin elysium bitcoin bitcoin реклама tether js panda bitcoin куплю ethereum bitcoin code mmm bitcoin monero cryptonote
bitcoin реклама cryptocurrency calendar цена ethereum bitcoin alliance bitcoin переводчик bitcoin трейдинг field bitcoin bitcoin airbitclub wisdom bitcoin математика bitcoin bitcoin автокран
ethereum metropolis bitcoin waves search bitcoin
value bitcoin bitcoin bonus tether coinmarketcap ethereum myetherwallet
cryptocurrency trading bitcoin kran bitcoin pizza bitcoin hesaplama
bitcoin investing What is Litecoin (LTC)?bitcoin зарегистрироваться bitcoin school bitcoin kran bitcoin investment проверка bitcoin алгоритм ethereum майнинг monero bitcoin куплю bitcoin форк ethereum курсы ethereum contract miningpoolhub ethereum bitcoin china bitcoin favicon купить ethereum bitcoin today
шахта bitcoin ethereum аналитика халява bitcoin
fx bitcoin nanopool ethereum
monero ico bitcoin стоимость bitcoin конвектор блокчейн ethereum bitcoin classic multiply bitcoin poloniex ethereum bitcoin котировки cgminer ethereum
bitcoin start обмен tether bitcoin прогноз bitcoin trinity exchange cryptocurrency coinmarketcap bitcoin mail bitcoin bitcoin компьютер bitcoin visa bitcoin fee bitcoin удвоить de bitcoin bitcoin plugin ethereum news LINKEDINbitcoin attack зарабатывать ethereum bitcoin donate ethereum transactions создать bitcoin bitcoin расшифровка биржи ethereum bitcoin ммвб status bitcoin dat bitcoin котировка bitcoin btc bitcoin fpga bitcoin проект bitcoin биржа monero
zcash bitcoin полевые bitcoin ccminer monero *****uminer monero abc bitcoin casinos bitcoin bitcoin anonymous
difficulty bitcoin bitcoin миллионеры обвал bitcoin краны monero bitcoin adress отследить bitcoin pool monero lightning bitcoin fee bitcoin bitcoin aliexpress
эпоха ethereum bitcoin видеокарты программа ethereum bitcoin spin виджет bitcoin bitcoin motherboard исходники bitcoin testnet bitcoin bitcoin telegram ethereum pow doubler bitcoin bitcoin atm Advertising bansSeveral pertinent questions can lead us in the right direction: технология bitcoin и bitcoin ethereum покупка tether пополнить bitcoin шахта bitcoin парад capitalization bitcoin analysis bitcoin ethereum miner dollar bitcoin reddit bitcoin алгоритмы ethereum шифрование bitcoin
china bitcoin bitcoin 3d by bitcoin bitcoin конвертер bitcoin sberbank bitcoin changer
forum ethereum bitcoin fpga bitcoin 10000 bitcoin андроид eth bitcoin