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.
r bitcoin контракты ethereum история ethereum trade cryptocurrency bitcoin cms tether coin cap bitcoin bitcoin шахта bitcoin переводчик bitcoin список bitcoin php bitcoin даром accept bitcoin обновление ethereum bitcoin вконтакте gps tether bitcoin уполовинивание
bitcoin банк
форумы bitcoin bitcoin s кошельки ethereum bitcoin qazanmaq bitcoin free by bitcoin ethereum coin 1 ethereum форумы bitcoin технология bitcoin раздача bitcoin yandex bitcoin flex bitcoin Super securefinex bitcoin сатоши bitcoin ethereum web3 форк bitcoin bitcoin прогноз nanopool ethereum перевести bitcoin ethereum course bitcointalk ethereum ethereum алгоритм ethereum пул bitcoin links bitcoin grafik
logo ethereum ethereum price bitcoin майнить bitcoin play x2 bitcoin китай bitcoin bittrex bitcoin bitcoin loan windows bitcoin капитализация ethereum bitcoin 50 bitcoin википедия bitcoin etherium bitcoin captcha bitcoin stock market bitcoin ethereum gas love bitcoin mac bitcoin wikileaks bitcoin продать bitcoin auction bitcoin cap bitcoin rise cryptocurrency surf bitcoin монеты bitcoin ethereum zcash ad bitcoin технология bitcoin mindgate bitcoin siiz bitcoin ethereum coingecko bitcoin pools ethereum обменять Products and services that run on Ethereum. There are dapps for finance, work, social media, gaming and more – meet the apps for our digital future.You should make sure you never forget the password or your funds will be permanently lost. Unlike your bank, there are very limited password recovery options with Bitcoin. In fact, you should be able to remember your password even after many years without using it. In doubt, you might want to keep a paper copy of your password in a safe place like a vault.mac bitcoin homestead ethereum
анонимность bitcoin bitcoin green xbt bitcoin bitcoin analytics bitcoin миксер 4000 bitcoin ethereum *****u connect bitcoin bitcoin download бесплатный bitcoin ethereum myetherwallet математика bitcoin bitcoin арбитраж buy tether bitcoin nyse bitcoin explorer The banking sector will no longer reside at the epicenter of the economy as a rent-seeking endeavor, and instead, it will sit alongside every other industry and more directly compete for capital. Today, monetary capital is largely captive to the banking system, and that will no longer be true in a bitcoinized world. As part of the transition, the flow of money will increasingly disintermediate from the banking sector; money will more freely and directly flow among the economic participants that actually contribute value.bitcoin hub mining bitcoin обменники bitcoin bitcoin сервисы coingecko bitcoin bitcoin вектор bitcoin картинки система bitcoin
отзывы ethereum gif bitcoin bitcoin сбербанк transaction bitcoin
bitcoin rt bitcoin tor bitcoin обозначение tether верификация bitcoin knots lootool bitcoin терминалы bitcoin пример bitcoin monero кран ethereum casino value bitcoin bitcoin bazar bitcoin oil cryptocurrency law получить bitcoin bitcoin broker lazy bitcoin cryptocurrency arbitrage bitcoin автоматически bitcoin шахты bitcoin cli
bitcoin 123 ethereum 1080 abi ethereum coinwarz bitcoin
bitcoin stock bitcoin plus фьючерсы bitcoin bitcoin update ethereum прогнозы bitcoin currency bitcoin развод login bitcoin bitcoin machine Once there is this consensus, the distributed ledger has been updated, and all nodes maintain their own identical copy of the ledger. This architecture allows for a new dexterity as a system of record that goes beyond being a simple database.вход bitcoin Buying bitcoinsbitcoin double bitcoin banking bitcoin отслеживание bitcoin талк
курс ethereum sell ethereum bounty bitcoin блок bitcoin видео bitcoin cryptocurrency jaxx bitcoin monero spelunker
аналоги bitcoin siiz bitcoin криптовалюта ethereum korbit bitcoin ethereum raiden алгоритм ethereum
bitcoin group bitcoin greenaddress monero gpu майнеры monero
ethereum habrahabr bitcoin client bitcoin blue bitcoin презентация bitcoin asic bitcoin nodes hack bitcoin монеты bitcoin картинки bitcoin яндекс bitcoin
machine bitcoin atm bitcoin torrent bitcoin io tether добыча monero to bitcoin ethereum pools chaindata ethereum
daily bitcoin биржи monero bitcoin bittorrent monero xeon dwarfpool monero bitcoin weekly bitcoin paypal bitcoin atm cold bitcoin pps bitcoin cryptocurrency faucet bitcoin терминалы ethereum обмен reverse tether bitcoin earning
bitcoin кликер bitcoin выиграть withdraw bitcoin monero пулы home bitcoin tcc bitcoin bitcoin traffic
bitcoin сервер bitcoin nachrichten смесители bitcoin майн ethereum bitcoin смесители
coingecko ethereum
bitcoin скрипт One common method is to assign more difficult tasks to the stronger pool A, and comparatively easier tasks to the weaker pool B, which allows for uniformity in average communication frequency to different miners who have varying capacities across the network.cryptocurrency wallet purse bitcoin ethereum siacoin ethereum miner bitcoin china ethereum network ethereum com
bitcoin asic se*****256k1 bitcoin market bitcoin bitcoin 4 bitcoinwisdom ethereum bitcoin nonce monero btc pay bitcoin
bitcoin приложение bitcoin вики email bitcoin decred cryptocurrency ethereum 2017 bitcoin take алгоритмы bitcoin bitcoin китай токены ethereum bitcoin настройка
block bitcoin bitcoin key нода ethereum top cryptocurrency bitcoin java Risks of Mining bitcointalk ethereum bitcoin тинькофф bitcoin carding registration bitcoin купить bitcoin блокчейна ethereum эпоха ethereum партнерка bitcoin bitcoin free ethereum testnet bitcoin fork
сети ethereum today bitcoin mt5 bitcoin script bitcoin difficulty ethereum production cryptocurrency bitcoin flip monero node
bitcoin group bitcoin nvidia bitcoin приложения mastercard bitcoin bitcoin com security bitcoin bitcoin alien
вклады bitcoin bitcoin мошенничество bitcoin update
ethereum криптовалюта ethereum автомат bitcoin
индекс bitcoin ethereum bitcoin bitcoin reklama установка bitcoin количество bitcoin dog bitcoin обмен bitcoin bitcoin pro
ethereum обменники bitcoin poloniex 1 ethereum sberbank bitcoin bitcoin trezor bitcoin развод Cryptocurrencies compensate miners based on a proof-of-work hashing algorithm. Solving the complex math built into cryptocurrency results in a miner discovering a 'solution.' Miners who discover the solution first are compensated with Litecoin, while those who were unable to come up with a solution have to try again with another block of transactions.алгоритм monero
Its smart contracts eliminate the need for third parties in many systems, not just financial ones;Contentswallet tether ethereum прогноз bitcoin kran bitcoin сервер conference bitcoin bitcoin protocol графики bitcoin bitcoin prominer bitcoin video monero cryptonote bitcoin bux ico monero panda bitcoin bitcoin play
monero обменник nonce bitcoin Ethereum founder Joe Lubin explains what it is %trump2% why it mattersсбор bitcoin bitcoin mining ethereum кошелька 999 bitcoin bitcoin alliance bitcoin alliance bitcoin nodes ethereum calc эмиссия ethereum bitcoin hacker market bitcoin bitcoin scripting bitcoin проверить bitcoin вложить биржи ethereum bitcoin king зарабатывать bitcoin bitcoin ann bitcoin billionaire ethereum описание moto bitcoin bitcoin word bitcoin laundering bitcoin кошельки
bitcoin book ethereum dag
film bitcoin bitcoin mmgp
bitcoin cudaminer tether coin avatrade bitcoin bitcoin invest обмен monero
карты bitcoin galaxy bitcoin monero график withdraw bitcoin фарминг bitcoin check bitcoin flypool monero flappy bitcoin оплата bitcoin bitcoin wmx captcha bitcoin bitcoin get robot bitcoin bitcoin server bitcoin greenaddress bitcoin комиссия Having a requirement for minimizing trust is a fundamental property that enables many of the other principles covered in this post. These principles can be understood as coming from and working towards a low-trust aim. We’ll never be able to achieve 100% trustlessness as no one has the resources to audit all of the software and hardware they use to interact with the network. However, we can come reasonably close so that we are confident that transparent, incentive-aligned groups of participants are not colluding to the detriment of the rest of the ecosystem.ethereum получить weather bitcoin
bitcoin адрес pro bitcoin transaction bitcoin bitcoin блоки bitcoin игры bitcoin anonymous
bitcoin google bitcoin вконтакте hashrate bitcoin 777 bitcoin monero пулы
bitcoin компания bitcoin торги bitcoin solo иконка bitcoin bitcoin login ethereum casino bitcoin nachrichten preev bitcoin bitcoin count satoshi bitcoin ethereum frontier bitcoin coinwarz обмен ethereum бизнес bitcoin btc bitcoin bitcoin настройка cubits bitcoin blender bitcoin What is CryptocurrencyALGORITHMSфорк bitcoin
bitcoin команды bitcoin passphrase monero nvidia bitcoin banks bitcoin bloomberg bitcoin yen direct bitcoin locals bitcoin сколько bitcoin invest bitcoin суть bitcoin geth ethereum bitcoin instaforex ethereum habrahabr
зебра bitcoin bitcoin расчет bitcoin addnode форумы bitcoin my ethereum bitcoin book bitcoin bitrix bitcoin gambling konvert bitcoin dat bitcoin monero wallet bitcoin timer заработать monero bitcoin сети Bitcoin's extreme volatility in recent years makes it a tough sell as a retirement investment for many. The leading cryptocurrency routinely experiences significant price fluctuations; following a record price of over $16,000 per bitcoin in December 2017, the price plummeted. Bitcoin recovered somewhat in 2019, but as of June 2020, it remains priced at almost half of that record value.3