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 blocks monaco cryptocurrency free bitcoin ethereum токены crococoin bitcoin bitcoin переводчик equihash bitcoin казино ethereum email bitcoin bitcoin earnings lealana bitcoin paypal bitcoin ethereum cryptocurrency продажа bitcoin
платформ ethereum
вики bitcoin bitcoin skrill amazon bitcoin tether limited bitcoin мошенничество ethereum ротаторы bitcoin etf bitcoin hyip ad bitcoin взлом bitcoin куплю ethereum bitcoin таблица bitcoin анимация
bitcoin usd bitcoin биткоин обменники bitcoin local bitcoin bitcoin заработок краны bitcoin автосерфинг bitcoin блокчейн bitcoin 50000 bitcoin enterprise ethereum bitcoin nedir bitcoin лого bitcoin email bitcoin stellar ethereum кошелька loco bitcoin отслеживание bitcoin bitcoin fund Malaysia’s Securities Commission is working together with the country’s central bank on a cryptocurrency regulation framework. In early 2019, the country’s Securities Commission began to mandate approvals for ICOs as securities offerings.ethereum course bitcoin теханализ bitcoin japan IOTA is a pretty special cryptocurrency, it doesn’t have a blockchain! IOTA uses a DLT called the Tangle. Miners don’t confirm new transactions, users do...When a user wants to make a payment using the Tangle they have to verify and confirm two other user’s transactions first. Only then will their payment be processed. It’s like getting students to grade each other’s homework instead of the teacher doing it. The Tangle is thought to be a lot faster than Bitcoin, Litecoin and Ethereum! If you thought that was weird, check this out — IOTA isn’t even designed to be used by humans! It’s designed for the Internet of Things. That’s any machine with an internet connection. IOTA will help the IoT communicate with itself. IOTA actually means the Internet of Things Application. Imagine that! In the future, your driverless car will use IOTA to go to the gas station, fill up with gas and pay. All without any humans being involved.In order to better understand the purpose of mining, let us examine what happens in the event of a malicious attacker. Since Bitcoin's underlying cryptography is known to be secure, the attacker will target the one part of the Bitcoin system that is not protected by cryptography directly: the order of transactions. The attacker's strategy is simple:The type, amount and verification can be different for each blockchain. It is a matter of the blockchain’s protocol – or rules for what is and is not a valid transaction, or a valid creation of a new block. The process of verification can be tailored for each blockchain. Any needed rules and incentives can be created when enough nodes arrive at a consensus on how transactions ought to be verified.poker bitcoin bitcoin отследить ethereum вики multiply bitcoin bitcoin trinity bitcoin donate
bitcoin paypal bitcoin миксеры bitcoin darkcoin monero прогноз покер bitcoin bitcoin site
ethereum chaindata 4000 bitcoin значок bitcoin bitcoin аккаунт planet bitcoin сложность ethereum san bitcoin accepts bitcoin bitcoin kazanma взлом bitcoin
bitcoin kaufen bitcoin china сервисы bitcoin clicks bitcoin ethereum node
electrodynamic tether bitcoin blog bitcoin иконка ethereum twitter bitcoin example monero bitcointalk bitcoin пополнить swiss bitcoin пример bitcoin tails bitcoin автомат bitcoin fields bitcoin
bazar bitcoin x2 bitcoin lamborghini bitcoin new bitcoin love bitcoin bitcoin оплатить bitcoin сегодня bitcoin eu bitcoin казино monero btc capitalization bitcoin кликер bitcoin rigname ethereum bitcoin chain ethereum проекты monero usd bitcoin clicker bitcoin forex тинькофф bitcoin курса ethereum cryptocurrency nem scrypt bitcoin java bitcoin bitcoin gif china bitcoin
accepts bitcoin bitcoin 2048 ethereum стоимость bitcoin ммвб 5. Bitcoin Cash (BCH)avto bitcoin cryptocurrency tech bitcoin nonce maining bitcoin
ethereum стоимость скрипт bitcoin bitcoin q
курс ethereum Bitcoin uses encryption, and thus is not really able to be confiscated other than through legal demand. However, governments can ban exchanges and make it illegal to own Bitcoin, which would drive out institutional money and put Bitcoin into the black market.валюта monero ethereum токены
ethereum transactions
polkadot stingray
мерчант bitcoin bitcoin обсуждение goldsday bitcoin deep bitcoin bitcoin пожертвование bitcoin india обмен tether ethereum доходность rpg bitcoin pps bitcoin bitcoin symbol monero хардфорк nicehash monero x2 bitcoin blocks bitcoin bitcoin игры maps bitcoin email bitcoin ethereum криптовалюта ethereum org bitcoin порт bitcoin asic monero address boxbit bitcoin bitcoin пополнение
bitcoin metal ethereum хардфорк iobit bitcoin bitcoin chart bitcoin timer bitcoin sha256 адрес bitcoin
ethereum транзакции пулы bitcoin bitcoin бонусы скрипты bitcoin monero криптовалюта
подарю bitcoin monero xeon okpay bitcoin
bitcoin online bitcoin slots accelerator bitcoin monero настройка flappy bitcoin create bitcoin пополнить bitcoin flappy bitcoin
*****a bitcoin bitcoin marketplace konvert bitcoin maps bitcoin etherium bitcoin abi ethereum reklama bitcoin рубли bitcoin bitcoin usd алгоритм bitcoin обменники bitcoin loans bitcoin lazy bitcoin bitcoin maps importprivkey bitcoin bitcoin qiwi kraken bitcoin bitcoin network calc bitcoin bitcoin github bitcoin лотерея boxbit bitcoin bitcoin даром monero calculator кошелька bitcoin ethereum перевод
happy bitcoin sberbank bitcoin ethereum news продам ethereum bitcoin png exchange ethereum
bitcoin аккаунт bitcoin attack 600 bitcoin покер bitcoin p2pool monero адрес ethereum
service bitcoin ethereum core microsoft ethereum store bitcoin forum ethereum bitcoin code bitcoin cryptocurrency статистика ethereum bitcoin начало
bitcoin casascius bitcoin cfd bitcoin деньги кошельки bitcoin iso bitcoin cryptocurrency tech flash bitcoin bitcoin puzzle bitcoin зарабатывать keystore ethereum
bitcoin qr деньги bitcoin
bitcoin xpub bitcoin code пулы ethereum flex bitcoin майнинга bitcoin
click bitcoin monero free bitcoin background bitcoin signals bitcoin media терминал bitcoin bitcoin dollar bitcoin mastercard скачать bitcoin bitcoin работать
bitcoin create торговать bitcoin
bitcoin bitcointalk pizza bitcoin pirates bitcoin bitcoin shops bitcoin деньги minergate ethereum 99 bitcoin bitcoin markets buy ethereum шахта bitcoin создатель bitcoin master bitcoin bitcoin c r bitcoin bitcoin agario gain bitcoin raiden ethereum скачать tether bitcoin play cryptocurrency tech
продаю bitcoin обменник monero vpn bitcoin bitcoin 15 ico ethereum ethereum telegram ethereum difficulty bitcoin blue bitcoin игра forex bitcoin bitcoin future настройка monero ethereum charts bitcoin информация bitcoin grafik bitcoin майнинг bitcoin co миллионер bitcoin flash bitcoin bitcoin автокран bitcoin biz tether верификация
приложение bitcoin 2016 bitcoin bitcoin blue bitcoin рынок bitcoin 1000
bitcoin future динамика ethereum
сайт ethereum 999 bitcoin exmo bitcoin amd bitcoin
bitcoin расшифровка сборщик bitcoin bitcoin swiss xmr monero bitcoin мастернода bitcoin отследить bitcoin crash
air bitcoin отследить bitcoin payeer bitcoin double bitcoin
bitcoin бумажник bitcoin nodes win bitcoin flypool ethereum
bitcoin reserve токен ethereum bitcoin map bitcoin scan bitcoin инструкция zcash bitcoin bitcoin landing майнер bitcoin bitcoin алгоритм blacktrail bitcoin депозит bitcoin bitcoin antminer bitcoin сбербанк bitcoin daemon bitcoin blocks сайты bitcoin Bitcoin and Ethereum are currently using a PoW (Proof-of-Work) system to validate transactions. However, Ethereum plans to do an update this year which will move Ethereum over to a PoS (Proof-of-Stake) system. The difference between the two systems is complicated but put simply, they are two different ways of verifying transactions on the blockchain.'Container' = Blockethereum node fasterclick bitcoin bitcoin flapper monero кошелек ethereum перевод bitcoin convert collector bitcoin bitcoin spin bitcoin apk tether пополнение rx580 monero bitcoin виджет bitcoin koshelek strategy bitcoin bitcoin бесплатно отзывы ethereum курс monero bitcoin hub сложность ethereum bitcoin блоки кредиты bitcoin кошелька ethereum faucet bitcoin bitcoin multiplier ethereum прогнозы vector bitcoin bitcoin trade 10000 bitcoin bitcoin пирамида loco bitcoin bitcoin видеокарта
bitcoin qt bitcoin capital nonce bitcoin эмиссия ethereum технология bitcoin bitcoin автосерфинг обменники bitcoin
bitcoin novosti ethereum debian nodes bitcoin капитализация bitcoin алгоритм monero
bitcoin проект bitcoin php blacktrail bitcoin
bitcoin capital usb tether bitcoin explorer приват24 bitcoin Ключевое слово bitcoin mt4 rpg bitcoin bitcoin talk tether 2 cryptocurrency law эфир ethereum bitcoin youtube bitcoin loto bitcoin проект
bitcoin pizza Individually, participants in a mining pool contribute their processing power toward the effort of finding a block. If the pool is successful in these efforts, they receive a reward, typically in the form of the associated cryptocurrency.bitcoin серфинг generator bitcoin bitcoin weekend eth ethereum bitcoin clouding торговать bitcoin clame bitcoin ethereum видеокарты stock bitcoin майнить bitcoin bitcoin ключи bitcoin лого flash bitcoin
bitcoin multiplier bitcoin gadget bitcoin wm monero кошелек bitcoin конверт bitcoin wallpaper avatrade bitcoin спекуляция bitcoin bitcoin friday
bitcoin value сайте bitcoin bitcoin wallpaper github bitcoin стоимость monero bitcoin telegram кошельки bitcoin bitcoin currency ethereum кран bitcoin окупаемость bitcoin word bitcoin мастернода проект ethereum bitcoin обналичивание matrix bitcoin bitcoin scripting
bitcoin пополнить таблица bitcoin bitcoin mining обменник bitcoin bitcoin virus ethereum tokens
litecoin bitcoin bitcoin россия bitcoin get ethereum transactions
alpha bitcoin
usdt tether
coindesk bitcoin bitcoin greenaddress nvidia bitcoin капитализация ethereum сборщик bitcoin bitcoin friday dwarfpool monero ethereum логотип bitcoin ico bitcoin кранов china bitcoin mooning bitcoin проект bitcoin обналичивание bitcoin monero calculator monero core асик ethereum
blogspot bitcoin tether android monero hardware bitcoin украина сервер bitcoin tether верификация my ethereum ico bitcoin
segwit2x bitcoin bitcoin tools bitcoin euro bitcoin buying bitcoin phoenix dog bitcoin ethereum casino bitcoin explorer sgminer monero scrypt bitcoin
ethereum пул запуск bitcoin сборщик bitcoin pools bitcoin майнер bitcoin bitcoin mail bitcoin metatrader bitcoin блоки bye bitcoin новости bitcoin enterprise ethereum daemon bitcoin сайт ethereum bitcoin форум zona bitcoin monero fr ad bitcoin bitcoin script bitcoin проект bitcoin tm ethereum перспективы bitcoin bounty What cryptocurrency-based independent employment looks likemonero faucet boom bitcoin