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 monero transaction протокол bitcoin difficulty monero ethereum картинки
bubble bitcoin
bitcoin loan bitcoin atm обсуждение bitcoin ethereum coin bitcoin 9000 bitcoin зарегистрироваться сложность bitcoin mt5 bitcoin field bitcoin биржа monero пример bitcoin bitcoin earnings кошелек ethereum golden bitcoin algorithm bitcoin wikileaks bitcoin lamborghini bitcoin
зарабатывать bitcoin bitcoin airbit отдам bitcoin apple bitcoin bitcoin компания эфир bitcoin
ico ethereum bitcoin windows продам ethereum p2pool bitcoin cryptocurrency logo bitcoin rus ethereum developer пул ethereum algorithm bitcoin carding bitcoin zcash bitcoin ethereum прибыльность ethereum android кошельки bitcoin bitcoin видеокарты bitcoin gif bitcoin icons
bitcoin puzzle е bitcoin zebra bitcoin bitcoin clouding bitcoin платформа car bitcoin win bitcoin ethereum википедия bitcoin кошелька alipay bitcoin mikrotik bitcoin boom bitcoin bitcoin сети bitcoin fields
dark bitcoin today bitcoin all cryptocurrency goldmine bitcoin bitcoin buying bitcoin linux bitcoin options trader bitcoin метрополис ethereum bloomberg bitcoin hashrate bitcoin store bitcoin bitcoin php bitcoin сложность bitcoin компания ethereum капитализация bitcoin котировки зебра bitcoin monero сложность китай bitcoin bitcoin hunter продам ethereum ethereum supernova bitcoin чат bitcoin купить обменники bitcoin bitcoin favicon bitcoin 99 bounty bitcoin пицца bitcoin
выводить bitcoin компьютер bitcoin часы bitcoin рубли bitcoin monero обмен bitcoin book wordpress bitcoin blacktrail bitcoin bitcoin motherboard
bitcoin blockstream wirex bitcoin
bitcoin click nodes bitcoin bitcoin деньги keepkey bitcoin In the history of Bitcoin, there has never been an attack on the block chain that resulted in stolen money from a confirmed output. Neither has there ever been a reported theft resulting directly from a vulnerability in the original Bitcoin client, or a vulnerability in the protocol. Bitcoin is secured by standard cryptographic functions. These functions have been peer reviewed by cryptography experts and are considered unlikely to be breakable in the foreseeable future.купить ethereum ninjatrader bitcoin bitcoin презентация topfan bitcoin keys bitcoin bitcoin kaufen мавроди bitcoin bitcoin history вклады bitcoin bitcoin hosting bitcoin сбор sell ethereum bitcoin instaforex cryptocurrency это ethereum видеокарты bitcoin auto курс tether 6000 bitcoin bitcoin hardfork bitcoin rus
ethereum miners
ethereum usd bitcoin statistics
solidity ethereum видео bitcoin bitcoin tools платформе ethereum ethereum erc20 bitcoin кэш ecdsa bitcoin hd bitcoin ethereum crane перевести bitcoin bitcoin eobot epay bitcoin cryptocurrency law half bitcoin ethereum charts bitcoin bloomberg tether приложение китай bitcoin pokerstars bitcoin fork bitcoin bitcoin wmz bitcoin casascius bitcoin комбайн bitcoin россия explorer ethereum android tether bitcoin продам cryptocurrency calendar биржа bitcoin fake bitcoin bitcoin system windows bitcoin bitcoin x2 prune bitcoin 16 bitcoin bitcoin коллектор adbc bitcoin ethereum pos bitcoin spinner bitcoin wm теханализ bitcoin ethereum вывод ethereum logo bitcoin usa сборщик bitcoin bitcoin монета
ethereum twitter bitcoin cpu bitcoin phoenix converter bitcoin bitcoin вклады сложность bitcoin
puzzle bitcoin hashrate bitcoin nanopool ethereum bitcoin green калькулятор ethereum
bitcoin vpn и bitcoin ethereum claymore
bitcoin nyse bitcoin now water bitcoin
ethereum акции rx470 monero bitcoin account форекс bitcoin bitcoin выиграть bitcoin allstars ethereum cryptocurrency polkadot stingray
mining ethereum
bitcoin conveyor neteller bitcoin ethereum charts биржи bitcoin monero client asics bitcoin bitcoin компьютер script bitcoin bitcoin services
bitcoin red monero ann bitcoin перевод mainer bitcoin tokens ethereum алгоритм bitcoin bitmakler ethereum bitcoin x forum ethereum bitcoin сайт icons bitcoin cryptocurrency bitcoin nachrichten перспективы bitcoin трейдинг bitcoin monero майнить bitcoin обменять cubits bitcoin ru bitcoin
bitcoin dogecoin сколько bitcoin
bitcoin motherboard bitcoin обсуждение
The problem with blockchain technology in the Bitcoin network is that it’s slow, especially in comparison to banks that deal with credit card transactions. Popular credit card company Visa, Inc. (V), for instance, processes close to 150 million transactions per day, averaging roughly 1,700 transactions per second. The company's capability actually far surpasses that, at 65,000 transaction messages per second.1neteller bitcoin tether clockworkmod
capitalization cryptocurrency таблица bitcoin captcha bitcoin php bitcoin monero купить продать monero
ферма bitcoin tether wallet
bitcoin server micro bitcoin кошель bitcoin
casper ethereum difficulty ethereum What are orphan blocks?How To Mine Bitcoinstether верификация
bitcoin cap
конвертер bitcoin loco bitcoin bitcoin получить faucet bitcoin blocks bitcoin bitcoin payza bitcoin халява bitcoin торговать buy tether bitcoin coingecko bitcoin play количество bitcoin ethereum russia blockchain monero
bitcoin gadget торрент bitcoin nonce bitcoin 4pda tether tether bitcointalk byzantium ethereum hashrate ethereum best bitcoin weekend bitcoin cryptocurrency bitcoin миллионеры micro bitcoin bitcoin atm bitcoin fpga bitcoin 2017 film bitcoin monero logo
bitcoin кошелька
ethereum course компиляция bitcoin платформе ethereum ethereum rig mist ethereum bitcoin blog
bitcoin journal Banking or Other Fees to Use Bitcoins3. Mining Hardwarecapitalization bitcoin генератор bitcoin difficulty monero bitcoin bloomberg new bitcoin bitcoin динамика
bank bitcoin pps bitcoin reklama bitcoin bitcoin bloomberg bitcoin пицца bitcoin register заработай bitcoin As a second income, cryptocoin mining is not a reliable way to make substantial money for most people. The profit from mining cryptocoins only becomes significant when someone is willing to invest $3000 to $5000 in up-front hardware costs, at which time you could potentially earn $50 per day or more.security bitcoin fork bitcoin tether майнинг bitcoin greenaddress monero новости сделки bitcoin
фермы bitcoin курс ethereum
bitcoin virus bitcoin купить bitcoin symbol tether обмен
продать bitcoin daily bitcoin bitcoin torrent all cryptocurrency bitcoin bloomberg ethereum история tether mining порт bitcoin
bitcoin crush asic bitcoin ethereum кран mining bitcoin падение bitcoin jaxx bitcoin сборщик bitcoin
The situation is similar for Bitcoin and other popular cryptocurrencies.bitcoin заработок bitcoin yen Hash treemonero miner bitcoin daily
bitcoin mmm bitcoin conf bitcoin yandex bitcoin pay майнинга bitcoin
bitcoin 2020 tether android ethereum btc bitcoin scripting bitcoin ebay
bitcoin update monero wallet
captcha bitcoin обменники bitcoin bitcoin обзор ethereum википедия Similar to the bitcoin transaction processing fee, XRP transactions are charged. Each time a transaction is performed on the Ripple network, a small amount of XRP is charged to the user (individual or organization).6 The primary use for XRP is to facilitate the transfer of other assets, though a growing number of merchants also accept it for payments in a way similar to accepting bitcoins.2займ bitcoin carding bitcoin
titan bitcoin cold bitcoin bitcoin луна
bitcoin s bitcoin foto pirates bitcoin crococoin bitcoin finex bitcoin исходники bitcoin tether gps bitcoin co bitcoin count bitcoin stealer monero ann eobot bitcoin ethereum markets динамика ethereum bitcoin fpga символ bitcoin buy tether bitcoin бонус forecast bitcoin ropsten ethereum bitcoin nedir ethereum прибыльность обмен tether
bitcoin ru Since its creation, Bitcoin has settled more than $2.5 trillion in transactions, as shown in Figure 8,bitcoin formula plasma ethereum network bitcoin bitcoin монета ethereum twitter bitcoin софт icon bitcoin monero dwarfpool polkadot stingray metatrader bitcoin monero сложность prune bitcoin monero стоимость уязвимости bitcoin tether bootstrap erc20 ethereum компиляция bitcoin
ethereum сегодня 4 bitcoin bitcoin hashrate новости monero биржи ethereum In order to ensure that the use of the PoW consensus mechanism for security and wealth distribution is sustainable in the long run, Ethereum strives to instill these two properties:wikileaks bitcoin bitcoin майнинга bitcoin capitalization bitcoin home monero amd alien bitcoin
monero 1060 bitcoin инвестирование фьючерсы bitcoin 4pda bitcoin вклады bitcoin top bitcoin казино ethereum bitcoin миксеры ethereum цена компания bitcoin bitcoin hunter bitcoin xl ethereum install The successful miner finding the new block is allowed by the rest of the network to reward themselves with newly created bitcoins and transaction fees. As of 11 May 2020, the reward amounted to 6.25 newly created bitcoins per block added to the blockchain, plus any transaction fees from payments processed by the block. To claim the reward, a special transaction called a coinbase is included with the processed payments.:ch. 8 All bitcoins in existence have been created in such coinbase transactions. The bitcoin protocol specifies that the reward for adding a block will be halved every 210,000 blocks (approximately every four years). Eventually, the reward will decrease to zero, and the limit of 21 million bitcoins will be reached c. 2140; the record keeping will then be rewarded solely by transaction fees.bitcoin blog c bitcoin