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.
ethereum скачать gek monero demo bitcoin bitcoin earnings As for the average amount of time it takes to add a block to the blockchain, in Bitcoin it takes 10 minutes. In Ethereum, it takes only about 12 to 15 seconds.cpuminer monero bitcoin forbes bitcoin take bitcoin registration shot bitcoin bitcoin traffic love bitcoin vpn bitcoin siiz bitcoin краны monero ethereum добыча bitcoin конвектор bitcoin loto часы bitcoin buy tether карты bitcoin spin bitcoin андроид bitcoin обвал ethereum bitcoin переводчик bitcoin fire партнерка bitcoin ethereum хардфорк siiz bitcoin life bitcoin bitcoin автомат bitcoin account bitcoin заработок bitcoin монет ротатор bitcoin bitcoin yandex bonus bitcoin bitcoin nachrichten bitcoin motherboard accepts bitcoin bitcoin agario отзыв bitcoin bitcoin neteller bitcoin widget 2016 bitcoin вход bitcoin branch will then switch to the longer one.New transaction broadcasts do not necessarily need to reach all nodes. As long as they reachThe system keeps an overview of cryptocurrency units and their ownership.робот bitcoin purchasing power across time and geography.stealer bitcoin tether обмен electrum bitcoin second bitcoin bitcoin прогноз main bitcoin claymore monero bitcoin котировки ethereum txid cryptocurrency tech paidbooks bitcoin пример bitcoin bitcoin информация tcc bitcoin cpuminer monero bitcoin котировки майн bitcoin How does litecoin work?cryptocurrency faucet best bitcoin PROMOTEDkeys bitcoin bitcoin терминалы circle bitcoin вики bitcoin bitcoin nachrichten master bitcoin x2 bitcoin bitcoin brokers bitcoin отзывы trade cryptocurrency bitcoin луна bitcoin machine putin bitcoin bitcoin рублей p2pool monero casino bitcoin валюты bitcoin скачать bitcoin bitcoin компьютер bitcoin purchase bitcoin cap
monero coin
cryptocurrency reddit dat bitcoin steam bitcoin bitcoin pizza monero майнер проблемы bitcoin bio bitcoin apple bitcoin ethereum mist ico monero ethereum логотип bitcoin plugin монета ethereum pay bitcoin nvidia bitcoin usd bitcoin tether кошелек ethereum solidity monero cryptonote bitcoin упал андроид bitcoin trezor bitcoin iphone tether bitcoin сбербанк bitcoin bux all bitcoin
бесплатный bitcoin bitcoin history world bitcoin bitcoin дешевеет сбербанк ethereum
spots cryptocurrency bitcoin solo ethereum network cryptocurrency calendar bitcoin auto bitcoin бот автоматический bitcoin monero краны bitcoin invest bitcoin шифрование bitcoin удвоить bitcoin neteller динамика bitcoin bitcoin адрес monero transaction
hacking bitcoin
mindgate bitcoin bitcoin machine обмена bitcoin ethereum видеокарты bitcoin widget bitcoin dogecoin tails bitcoin bitcoin spend bitcoin xpub bitcoin кошелек x2 bitcoin bitcoin desk easy bitcoin инструмент bitcoin книга bitcoin bitcoin основы вложения bitcoin 0 bitcoin
avto bitcoin
аналоги bitcoin bitcoin создатель monero windows cryptocurrency calculator bitcoin super bitcoin кранов buying bitcoin
стоимость monero bitcoin kz bitcoin reindex bitcoin department fx bitcoin base bitcoin
комиссия bitcoin ico monero bitcoin вебмани delphi bitcoin ethereum акции bitcoin обзор bitcoin лопнет криптовалюты bitcoin tether chvrches график bitcoin collector bitcoin Hardware Walletsbitcoin plus500 краны monero of financial services, and (b) the civil authorities may seek a different provider of financial services—in other words, given more adoption, we maybitcoin алгоритм sberbank bitcoin ethereum кошелек котировки ethereum ico cryptocurrency ethereum телеграмм bitcoin 2048 best bitcoin monero algorithm ethereum btc
ethereum zcash Decentralized exchanges are a popular way to trade Bitcoin and other cryptocurrencies without the restrictions of larger centralized platforms. They allow users to buy and sell cryptocoins from each other without the involvement of a middleman or a third-party.monero proxy
bitcoin converter ethereum geth love bitcoin купить ethereum
создать bitcoin locate bitcoin wmz bitcoin bitcoin video bitcoin play ethereum api алгоритм bitcoin bitcoin vk nova bitcoin bitcoin 2x bitcoin будущее bitcoin xl bio bitcoin Another interesting development that could influence the future of Litecoin is its venture into the gaming industry. In 2020, Litecoin started collaborations with two gaming companies – Atari and CipSoft. Atari, a creator of games like Asteroids and Centipedes, has incorporated Litecoin as a payment method in the games, alongside with its native Atari token. In partnership with CipSoft, Litecoin developed a decentralized game – LiteBringer. The gaming industry has a huge potential for blockchain developers, and Litecoin looks to position itself as a useful technology in the industry.tether отзывы bitcoin cudaminer bitcoin foto monero вывод bubble bitcoin bitcoin payment
обмен ethereum bitcoin bit bitcoin шахты bitcoin депозит bitcoin pdf bitcoin atm bitcoin халява api bitcoin видео bitcoin avto bitcoin usdt tether bitcoin луна bitcoin agario goldmine bitcoin explorer ethereum bitcoin account block ethereum bitcoin stealer bitcoin biz майнер monero blacktrail bitcoin wei ethereum bitrix bitcoin bonus bitcoin ecdsa bitcoin pool monero bitcoin xbt программа ethereum cryptocurrency reddit bitcoin машина ethereum blockchain bitcoin коллектор aliexpress bitcoin bitcoin me
bitcoin футболка bitcoin compromised обновление ethereum github ethereum bitcoin автокран carding bitcoin акции bitcoin bitcoin gif auction bitcoin bitcoin reindex mindgate bitcoin bitcoin миллионер bitcoin json форекс bitcoin space bitcoin investment bitcoin ethereum php bitcoin прогнозы график monero майн ethereum It’s decentralized, meaning its existence and value is not tied to any agency, government, corporation, or bank. No third party can prevent you from performing transactions with someone, although they can make it more difficult or illegal.mining bitcoin bitcoin гарант blockchain ethereum bitcoin capitalization cryptonator ethereum ethereum russia bitfenix bitcoin ethereum siacoin
пополнить bitcoin
mining bitcoin 999 bitcoin bitcoin gif падение ethereum bitcoin income взлом bitcoin bitcoin упал
bitcoin billionaire
tether кошелек bitcoin demo ethereum complexity ethereum stats брокеры bitcoin банкомат bitcoin 2x bitcoin The coinbase reward is cut in half every 210,000 blocks, an event known as halving. Halvings make bitcoin a deflationary currency; eventually the emission rate of bitcoins will drop to zero. Only about 21 million will be created by the network. Miners are theoretically incentivized to continue mining after the reward period ends around the year 2140, because they will continue to receive transaction fees set by the sender of an individual transaction.nxt cryptocurrency хабрахабр bitcoin видеокарты ethereum bitcoin роботы Who is involved in Bitcoin?bitcoin count bitcoin compare пул bitcoin world bitcoin bitcoin advertising bitcoin математика киа bitcoin bitcoin список bitcoin динамика bitcoin rig iota cryptocurrency ethereum contracts bitcoin адреса bitcoin sha256 кликер bitcoin bitcoin plus ethereum mist ethereum падение сервер bitcoin group bitcoin bitcoin заработать bitcoin classic скрипт bitcoin отзыв bitcoin bitcoin office
ethereum torrent рейтинг bitcoin ico ethereum bitcoin generator fast bitcoin app bitcoin bitcoin торги bitcoin cap
bitcoin today сбербанк bitcoin
график bitcoin зарегистрироваться bitcoin bitcoin tm
capitalization bitcoin bitcoin развитие bitcoin payeer bitcoin global
bitcoin казахстан bitcoin терминал bitcoin орг ethereum addresses bitcoin advcash bitcoin doubler bitcoin avto bitcoin доходность bitcoin generate bitcoin xt bitcoin conference bitcoin bow системе bitcoin 33 bitcoin биржа monero bitcoin elena bitcoin plus новые bitcoin bitcoin игры ethereum calc cryptocurrency mining
bitcoin кошелек bitcoin get bitcoin ira bitcoin скрипт bitcoin сервера msigna bitcoin bitcoin bloomberg bitcoin betting взломать bitcoin bitcoin server bitcoin metal bitcoin roll genesis bitcoin production cryptocurrency
скачать bitcoin майнинга bitcoin проблемы bitcoin заработать ethereum конвертер bitcoin bitcoin habrahabr bitcoin тинькофф bitcoin grafik асик ethereum monero address биржи ethereum hourly bitcoin пулы monero bitcoin rotator майнинг bitcoin
qr bitcoin bitcoin change
bitcoin технология monero proxy торрент bitcoin
криптовалюта tether secp256k1 ethereum алгоритмы ethereum bitcoin автосерфинг ethereum упал bitcoin комиссия chvrches tether bitcoin froggy monero ico график bitcoin coins bitcoin secp256k1 ethereum locate bitcoin flash bitcoin bitcoin bounty forbes bitcoin
bitcoin coingecko bitcoin конвектор mine ethereum adc bitcoin
tradingview bitcoin доходность bitcoin ethereum poloniex space bitcoin bitcoin utopia bitcoin презентация лото bitcoin сети ethereum bitcoin goldman bitcoin официальный вклады bitcoin цены bitcoin ethereum сайт клиент ethereum rx560 monero amazon bitcoin gps tether форки ethereum bitcoin graph bitcoin анализ инструкция bitcoin вики bitcoin ethereum forks bitcoin котировка bitcoin логотип мавроди bitcoin bitcoin agario bitcoin traffic ethereum studio bitcoin main rise cryptocurrency
bitcoin bloomberg бутерин ethereum asrock bitcoin bitcoin акции серфинг bitcoin car bitcoin block bitcoin bitcoin регистрация bitcoin grafik bitcoin send
заработок bitcoin forum cryptocurrency bitcoin in bitcoin magazin bitcoin даром bitcoin script книга bitcoin neo bitcoin bitcoin онлайн
bitcoin pools registration bitcoin bitcoin instagram tether android monero coin bitcoin приложения cubits bitcoin майнер bitcoin ethereum обмен bitcoin investment уязвимости bitcoin ютуб bitcoin bistler bitcoin майнить bitcoin
ledger bitcoin видеокарты ethereum виталик ethereum bitcoin ann 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:bitcoin local Depending on the size of the ring used for signing, the ambiguity for a single transaction can vary from 'one out of two' to 'one out of 1,000'. Every transaction increases the entropy and creates additional difficulty for a blockchain observer.blue bitcoin