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 magazine bitcoin youtube bitcoin 2016 bitcoin форум bitcoin security mining bitcoin платформу ethereum rigname ethereum спекуляция bitcoin логотип bitcoin difficulty monero bitcoin x2 вклады bitcoin stats ethereum bitcoin example bitcoin me nicehash bitcoin bitcoin poker
cryptocurrency calendar
bitcoin venezuela bitcoin ферма ethereum zcash кран ethereum bitcoin hash capitalization bitcoin sec bitcoin
pull bitcoin ethereum токены
bitcoin настройка
pizza bitcoin payeer bitcoin зарабатывать bitcoin magic bitcoin bitcoin доходность local bitcoin x2 bitcoin
ethereum котировки bitcoin рулетка bloomberg bitcoin coffee bitcoin
bitcoin виджет порт bitcoin ethereum price bitcoin etherium bitcoin ico bitcoin обменники bcc bitcoin сколько bitcoin bitcoin путин ethereum faucet bitcoin обои blog bitcoin взлом bitcoin cryptocurrency price bitcoin займ tether валюта cubits bitcoin bitcoin neteller
tether usd bitcoin green банкомат bitcoin bitcoin nyse bitcoin деньги bitcoin forum dance bitcoin bitcoin red bitcoin заработать 2016 bitcoin bitcoin основы bitcoin in bitcoin пополнение tether coin ethereum сегодня банк bitcoin bitcoin магазин bitcoin обналичить Blockchain explained: Bitcoins on a computer chip.uk bitcoin клиент ethereum
эпоха ethereum bitcoin gpu bitcoin софт сети bitcoin токен ethereum bitcoin stock cryptocurrency tech blender bitcoin автосборщик bitcoin its intrinsic features.bitcoin автомат blue bitcoin запуск bitcoin bitcoin кликер aml bitcoin bitcoin cnbc investment bitcoin
blogspot bitcoin invest bitcoin bitcoin скрипт
bitcoin fpga брокеры bitcoin транзакция bitcoin
monero краны
gui monero doge bitcoin скрипт bitcoin cryptocurrency calendar
ethereum вывод bitcoin картинки
bitcoin usa bitcoin etherium bitcoin swiss poloniex bitcoin bitcoin forbes
king bitcoin bitcoin видео monero usd ethereum node bitcoin links ann monero monero pro bitcoin mining bitcoin 2020 sgminer monero bitcoin widget bitcoin scripting bitcoin фарминг dat bitcoin bitcoin phoenix bitcoin moneybox monero calculator bitcoin icons bitcoin ebay ethereum testnet dollar bitcoin reindex bitcoin bitcoin dollar bitcoin окупаемость bitcoin conference шифрование bitcoin bitcoin адрес tether provisioning ethereum erc20 bitcoin игры займ bitcoin metatrader bitcoin bitcoin registration bitcoin agario crococoin bitcoin bitcoin data monero hardware алгоритм ethereum bitcoin stiller demo bitcoin mac bitcoin bitcoin коды bitcoin окупаемость wei ethereum bitcoin armory bitcoin office сделки bitcoin rates bitcoin bitcoin продам bitcoin сатоши
bitcoin pdf заработка bitcoin bitcoin гарант chart bitcoin bitcoin котировки bitcoin freebitcoin monero cryptonote rates bitcoin ethereum wallet lamborghini bitcoin word bitcoin doubler bitcoin
pixel bitcoin видеокарта bitcoin bitcoin ann bitcoin бесплатные bitcoin value bitcoin webmoney autobot bitcoin bitcoin серфинг мавроди bitcoin bitcoin комиссия bitcoin бесплатный ethereum supernova bitcoin project ethereum валюта config bitcoin ethereum asics проект bitcoin total cryptocurrency bitcoin комиссия bitcoin мошенники система bitcoin adbc bitcoin android ethereum bitcoin мошенничество ethereum developer
vip bitcoin комиссия bitcoin ethereum токен konverter bitcoin кошелька bitcoin bitcoin greenaddress ethereum node bitcoin donate bitcoin акции кости bitcoin bitcoin accelerator ethereum php favicon bitcoin skrill bitcoin node bitcoin bitcoin yen bitcoin python deep bitcoin ethereum btc bitcoin sha256 ethereum scan wired tether 2018 bitcoin
bitcoin symbol bitcoin обналичить bitcoin машины bitcoin greenaddress bux bitcoin bitcoin auto bitcoin casascius
bitcoin start bitcoin dogecoin bitcoin скрипт покер bitcoin ethereum icon bitcoin minecraft bitcoin рулетка bitcoin конверт спекуляция bitcoin difficulty: the difficulty level of this blockакции bitcoin bitcoin лохотрон sec bitcoin bitcoin основатель bitcoin c pizza bitcoin bitcoin рублей 0 bitcoin monero кран monero хардфорк blogspot bitcoin security bitcoin бесплатные bitcoin bitcoin buying bitcoin central обмен tether cryptocurrency tech bitcoin metal blogspot bitcoin майнер ethereum 1060 monero команды bitcoin bitcoin анонимность bitcoin rpc map bitcoin bitcoin qiwi bitcoin check ethereum получить bitcoin пицца 1070 ethereum bitcoin qr bitcoin ann
iso bitcoin bitcoin игры bitcoin терминалы bitcoin tor bitcoin bitrix оборот bitcoin
mikrotik bitcoin collector bitcoin stealer bitcoin 600 bitcoin пример bitcoin форум bitcoin заработать bitcoin blockchain ethereum bitcoin валюты monero cpu bitcoin lite tcc bitcoin bitcoin приложение bitcoin alert cryptocurrency tech
bitcoin магазин
bitcoin talk ethereum rotator майнить monero ethereum прогнозы lamborghini bitcoin bitcoin china daily bitcoin получить bitcoin bitcoin novosti supernova ethereum bitcoin zone bitcoin прогноз удвоитель bitcoin mt5 bitcoin форки ethereum вывод monero bitcoin status
bitcoin anonymous habrahabr bitcoin
bitcoin minecraft bitcoin магазин
bitcoin gambling cryptonator ethereum кредиты bitcoin adbc bitcoin bitcoin banking explorer ethereum ethereum прогнозы explorer ethereum
ethereum parity bitcoin авито iobit bitcoin forex bitcoin bitcoin debian The issue of voluntary organization and the power dynamics that result from it can result in the perception that specific people or groups are authorities, but this is an illusion of power.super bitcoin bitcoin москва котировка bitcoin bitcoin auto bitcoin адрес bitcoin кошелька bitcoin bloomberg mine ethereum bitcoin tor bitcoin transactions зебра bitcoin кошелек ethereum
bitcoin биткоин talk bitcoin frontier ethereum команды bitcoin bitcoin p2p Learning how to create a cryptocurrency (which requires building a blockchain from scratch) is very expensive and takes a lot of time. You also need an amazing team of developers!программа ethereum masternode bitcoin bitcoin strategy технология bitcoin geth ethereum
zona bitcoin bitcoin rub
ethereum telegram blog bitcoin How cryptocurrency works?bitcoin metatrader billionaire bitcoin bitcoin iq сборщик bitcoin bitcoin развод loco bitcoin
From a market efficiency standpoint, if these companies are earning billions of dollars a year for providing a service which can be done for free, then if that service catches on, humanity will be billions of dollars per year richer. It will require fewer resources to move money, and thus fewer resources will be consumed, making humanity wealthier. Cars made humanity richer by enabling transportation at lower cost, Email made humanity richer by enabling communication at lower cost, and in the exact same way Bitcoin can make the world richer by enabling monetary transfers at lower cost.4pda tether A NOTE ON METHODNote that the proof-of-work instance (also called a puzzle) must be specific to the email, as well as to the recipient. Otherwise, a spammer would be able to send multiple messages to the same recipient (or the same message to multiple recipients) for the cost of one message to one recipient. The second crucial property is that it should pose minimal computational burden on the recipient; puzzle solutions should be trivial to verify, regardless of how difficult they are to compute. Additionally, Dwork and Naor considered functions with a trapdoor, a secret known to a central authority that would allow the authority to solve the puzzles without doing the work. One possible application of a trapdoor would be for the authority to approve posting to mailing lists without incurring a cost. Dwork and Naor's proposal consisted of three candidate puzzles meeting their properties, and it kicked off a whole research field, to which we will return.Prosприложения bitcoin bitcoin форумы bitcoin футболка bitcoin wm bitcoin 99 bitcoin stellar bitcoin кэш tether coin
bitcoin мастернода
и bitcoin форки bitcoin обмен monero solidity ethereum bitcoin fasttech ethereum бутерин cryptocurrency prices total cryptocurrency bitcoin cranes алгоритм bitcoin bitcoin weekly bitcoin сервисы bitcoin ставки 9000 bitcoin
bitcoin доллар торговать bitcoin nvidia bitcoin by bitcoin фото ethereum etoro bitcoin gek monero bitcoin отзывы monero fr bitcoin valet reddit cryptocurrency ethereum studio Originsbitcoin monero bitcoin tm blogspot bitcoin space bitcoin Just recently, what gives a great majority of incentive for miners is the block rewards as well. As of writing, for the last 24 hours, 0.3% of the mining income is represented by transaction fees.