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 roulette bitcoin видеокарты geth ethereum игра ethereum bitcoin 15 bitcoin png yota tether bitcoin 3d video bitcoin bitcoin отзывы bitcoin fork и bitcoin bitcoin часы bitcoin анимация фьючерсы bitcoin bitcoin обменять bitcoin спекуляция abc bitcoin bitcoin download исходники bitcoin получить bitcoin видео bitcoin nicehash monero bitcoin crypto bitcoin купить bitcoin дешевеет вложения bitcoin 'Perhaps the sentiments contained in the following pages, are not yet sufficiently fashionable to procure them general favor; a long habit of not thinking a thing wrong, gives it a superficial appearance of being right, and raises at first a formidable outcry in defense of custom. But the tumult soon subsides. Time makes more converts than reason.' – Thomas Paine, Common Sense (February 24, 1776).hourly bitcoin poloniex ethereum ethereum chart bitcoin payeer ethereum контракты
blacktrail bitcoin
баланс bitcoin
лото bitcoin twitter bitcoin poloniex monero price bitcoin перевод tether bitcoin analysis bitcoin send ethereum farm bitcoin 2020 life bitcoin валюта bitcoin usb bitcoin antminer bitcoin bitcoin film bio bitcoin
bitcoin количество cryptocurrency wallets 123 bitcoin cryptocurrency это взлом bitcoin криптовалюты bitcoin bitcoin cnbc The number of times you are successful in winning the mining reward can also be quite volatile, meaning that you could go a few days or even weeks without getting anything.bitcoin aliexpress bitcoin лучшие *****uminer monero
bitcoin php rx470 monero bitcoin обои land bitcoin bitcoin заработок tether курс описание bitcoin 99 bitcoin описание bitcoin accepts bitcoin bitcoin открыть bitcoin сеть bitcoin algorithm
bitcoin пулы bitcoin maps bitcoin продам addnode bitcoin bitcoin shop
символ bitcoin blue bitcoin bitcoin удвоитель bitcoin удвоитель ethereum ios
краны monero bitcoin mixer bitcoin de автоматический bitcoin cryptocurrency ico ethereum siacoin bitcoin переводчик bitcoin free capitalization bitcoin ethereum course вики bitcoin bitcoin chart токены ethereum калькулятор monero bitcoin python пример bitcoin магазины bitcoin bitcoin change bitcoin nonce q bitcoin
bitcoin dark The fact that cryptocurrencies are digital is not the only important difference between cryptocurrencies and traditional currencies like U.S. dollars.компания bitcoin It is not correct to say that Bitcoin is 'backed by' processing power. A currency being 'backed' means that it is pegged to something else via a central party at a certain exchange rate yet you cannot exchange bitcoins for the computing power that was used to create them. Bitcoin is in this sense not backed by anything. It is a currency in its own right. Just as gold is not backed by anything, the same applies to Bitcoin.фри bitcoin segwit bitcoin hashrate bitcoin bitcoin rate
bitcoin win bitcoin checker bitcoin доходность security bitcoin spin bitcoin monero купить bitcoin биржи exmo bitcoin
bitcoin mail Why ether is valuableбесплатные bitcoin greenaddress bitcoin bitcoin genesis платформа bitcoin tether download
ethereum pool ethereum обмен bitcoin куплю bitcoin redex bus bitcoin взлом bitcoin community bitcoin 15 bitcoin график bitcoin bitcoin usb контракты ethereum bitcoin суть
понятие bitcoin bitcoin заработок арбитраж bitcoin cryptocurrency chart uk bitcoin bitcoin эмиссия doge bitcoin monero blockchain joker bitcoin bitcoin серфинг bitcoin generate
покупка ethereum
bitcoin paypal ethereum torrent знак bitcoin poloniex monero bitcoin коллектор
bitcoin таблица Smart contracts program the transactions (which I will explain further in this guide);by bitcoin Compared with Bitcoin’s primitive scripting language, the code that can be deployed in Ethereum and run as smart contracts is more advanced and familiar to developers. Smart contract code is run by something called the Ethereum Virtual Machine, which runs on the computers of all participants on the network. If you are familiar with Microsoft Excel macros (pieces of code run by Excel), then similarly smart contracts are pieces of code run by Ethereum’s Virtual Machine.bistler bitcoin ethereum forum bitcoin minergate проекта ethereum запросы bitcoin bitcoin blocks bitcoin опционы
all cryptocurrency adbc bitcoin ethereum eth ethereum api stealer bitcoin арбитраж bitcoin андроид bitcoin 1000 bitcoin ethereum сайт bitcoin background ethereum динамика bitcoin check bitcoin fire
cryptocurrency ico blog bitcoin adbc bitcoin эпоха ethereum ethereum github ethereum dao autobot bitcoin ethereum фото ethereum news bank cryptocurrency заработка bitcoin bitcoin analysis bitcoin в ethereum investing виталик ethereum bitcoin github проверка bitcoin best bitcoin bitcoin map bitcoin обзор bitcoin preev bitcoin pizza antminer ethereum bitcoin parser
monero windows bitcoin crane ethereum difficulty bitcoin вывод bitcoin golden 3d bitcoin
обмен tether bitcoin online ethereum доллар ethereum форк bitcoin network продажа bitcoin short bitcoin приват24 bitcoin настройка ethereum tether android bitcoin anonymous *****p ethereum bitcoin scripting planet bitcoin проекта ethereum новости ethereum forecast bitcoin wallets cryptocurrency
новости ethereum bcc bitcoin bitcoin habr up bitcoin
monero xeon кошелька ethereum ethereum mining bitcoin блок tinkoff bitcoin For a quick comparison, consider Google Docs.Even recent entrants like Uber and Airbnb are threatened by blockchain. All you need to do is encode the transactional information for a car ride or an overnight stay, and again you have a perfectly safe way that disrupts the business model of the companies which have just begun to challenge the traditional economy. We are not just cutting out the fee-processing middle man, we are also eliminating the need for the match-making platform.bitcoin foto
bitcoin freebitcoin algorithm bitcoin ethereum ethash ethereum info рулетка bitcoin bitcoin курс статистика ethereum отзыв bitcoin bitcoin карта bitcoin generation
ютуб bitcoin bitcoin weekend bitcoin s bitcoin plugin monero ico bitcoin pay асик ethereum Bitcoin however has a significant percentage of it just being moved around by speculators, rather than people going down to their coffee shop and buying a cup of coffee with some Bitcoin fractions. There’s no way to know what percentage is moved around for spending compared to what percentage is moved around for trading/speculation.ethereum получить bitcoin mt4 bitcoin scripting
monero pro
bitcoin spin ann bitcoin сети bitcoin airbitclub bitcoin tether майнинг currency bitcoin bag bitcoin bitcoin 2020 bitcoin окупаемость биржа bitcoin bitcoin valet bitcoin hacker bitcoin monkey сервисы bitcoin bitcoin machine bitcoin перевести
Etherscan example explainedbitcoin зебра
Pile of litecoin coins on fabricbitcoin eobot bitcoin перевод ethereum bitcointalk шахта bitcoin bitcoin зебра
mac bitcoin ethereum проблемы bitcoin rt bitcoin лохотрон bitcoin server bitcoin сша bitcoin blockstream
bitcoin перевод депозит bitcoin пицца bitcoin bitcoin фермы bitcoin central habrahabr bitcoin explorer ethereum tether обменник bitcoin валюты bitcoin changer платформа bitcoin bitcoin market сети bitcoin 1080 ethereum From Bitcoin, this paradigm shift has spawned innumerable immitations and attempted improvements on the underlying technology, many of which now have market-caps significantly exceeding $1 billion USD. Bitcoin itself has a market cap of over $128 billion USD at time of writing (2018-05-27).bitcoin кошелька matteo monero monero blockchain scrypt bitcoin bitcoin теханализ bitcoin kz bitcoin take bitcoin 99
bitcointalk bitcoin технология bitcoin gui monero bitcoin автоматически bitcoin cryptocurrency tether yota machines bitcoin bitcoin дешевеет github ethereum
bitcoin lurk bitcoin traffic bitcoin автоматический
casinos bitcoin ethereum homestead box bitcoin ethereum network ethereum bitcointalk ethereum siacoin майнинг bitcoin портал bitcoin tether io биржи bitcoin
bitcoin лотерея bitcoin motherboard bitcoin ecdsa bitcoin регистрации bitcoin прогнозы
asrock bitcoin ethereum создатель boxbit bitcoin
эпоха ethereum
tether limited обновление ethereum bitcoin сервисы casper ethereum accepts bitcoin litecoin bitcoin bitcoin carding майнер ethereum wiki bitcoin майнить bitcoin 4pda bitcoin cryptocurrency gold bitcoin half flash bitcoin bitcoin investment bitcoin keywords cryptocurrency faucet demo bitcoin monero новости
matrix bitcoin bitcoin в обмен tether bitcoin greenaddress ethereum contract
gift bitcoin
ethereum клиент best cryptocurrency сайте bitcoin apk tether greenaddress bitcoin bitcoin python bitcoin apple weekend bitcoin сервисы bitcoin plus bitcoin
обменники ethereum bitcoin click ethereum russia
key bitcoin отзыв bitcoin bitcoin играть ютуб bitcoin рост ethereum bitcoin фильм ethereum картинки
bitcoin gift boom bitcoin bitcoin будущее bitcoin farm суть bitcoin портал bitcoin википедия ethereum bitcoin шахты bitcoin пирамида bitcoin trinity ethereum pool bitcoin china BITCOINS COMPLETELY BYPASS BANKSmonero кошелек monero ico
price bitcoin bitcoin two fire bitcoin bio bitcoin bitcoin кранов linux bitcoin poloniex bitcoin
bitcoin sberbank ethereum контракты bitcoin биткоин trade cryptocurrency символ bitcoin ethereum coingecko bitcoin сервера ethereum pow кран ethereum bitcoin ферма
bitcoin eu homestead ethereum
bitcoin индекс golden bitcoin сбор bitcoin ethereum miner порт bitcoin monero кошелек tether clockworkmod monero miner
bitcoin криптовалюта forex bitcoin bitcoin аналоги attack bitcoin nxt cryptocurrency bitcoin grafik использование bitcoin настройка monero programming bitcoin
avatrade bitcoin grayscale bitcoin
bitcoin фарминг bitcoin котировки monero fork bitcoin matrix claim bitcoin bitcoin книга earn bitcoin bitcoin amazon happy bitcoin bitcoin коды покупка ethereum история bitcoin bitcoin checker Summaryrpc bitcoin abi ethereum coinder bitcoin tether coinmarketcap кошельки bitcoin
lurkmore bitcoin bitcoin world 16 bitcoin bitcoin scripting bitcoin weekly Blockchains, which are organizational methods for ensuring the integrity of transactional data, is an essential component of many cryptocurrencies.пузырь bitcoin raiden ethereum россия bitcoin casascius bitcoin
bitcoin alien bitcoin price bitcoin *****u bitcoin debian monero gpu bitcoin bloomberg bitcoin xpub bitcoin plus500
buy tether криптовалюты bitcoin blocks bitcoin
кредиты bitcoin asus bitcoin bitcoin автоматически amd bitcoin Traders who want to take on that risk should use only a locally regulated forex brokerage.Investing in Bitcoin IRAs: Reading Into the Pros and Consbitcoin news bitcoin balance
carding bitcoin
ethereum node cryptocurrency magazine bitcoin бот криптовалюта ethereum разработчик ethereum bitcoin crush bitcoin автор bitcoin bloomberg доходность ethereum euro bitcoin расчет bitcoin bitcoin hashrate
bitcoin мавроди bitcoin новости bitcoin порт яндекс bitcoin bitcoin обменники bitcoin lucky bitcoin torrent moto bitcoin red bitcoin cubits bitcoin bitcoin review блог bitcoin ccminer monero pow bitcoin bitcoin ebay multisig bitcoin ethereum pools
Supply Chain Managementequihash bitcoin bitcoin asics
analysis bitcoin cryptocurrency calculator mining bitcoin пример bitcoin blog bitcoin bitcoin hardfork
bitcoin описание trader bitcoin андроид bitcoin ethereum пул bitcoin mac форум bitcoin bitcoin рубль bitcoin sha256 bitcoin сети 50 bitcoin bitcoin генераторы
For the last 50 years, technologists have been motivated to create a culture of software development that exists outside institutional boundaries. Out of this culture grew a movement towards robust, private, and self-organizing systems.ecopayz bitcoin сложность monero qr bitcoin
ethereum контракты верификация tether конвертер bitcoin bitcoin get Here are the top 5 prominent industries that will be disrupted by blockchain technology in the near future:bitcoin обменять трейдинг bitcoin карты bitcoin системе bitcoin
bitcoin переводчик
bitcoin магазины best bitcoin purchase bitcoin ethereum addresses bitcoin block simple bitcoin bitcoin official
bounty bitcoin local bitcoin bitcoin сборщик ethereum dark testnet bitcoin bitcoin деньги bitcoin com abi ethereum
bitcoin json txid bitcoin machine bitcoin калькулятор monero bitcoin видеокарты bitcoin минфин доходность bitcoin
bitcoin обои сайты bitcoin bitcoin mine site bitcoin bitcoin favicon bitcoin testnet адрес bitcoin bitcoin de bitcoin wsj tether курс monero fr monero github hd bitcoin bitcoin purse bitcoin nasdaq
monero amd bitcoin криптовалюта apk tether bitcoin magazin bitcoin казино fox bitcoin the ethereum hardware bitcoin генераторы bitcoin
in bitcoin bitcoin protocol ethereum org обменник monero ethereum график local bitcoin rpg bitcoin оплата bitcoin bitcoin падает logo bitcoin king bitcoin перспективы ethereum plasma ethereum bitcoin компьютер
bitcoin plus500 fox bitcoin cryptocurrency faucet
nanopool ethereum connect bitcoin bitcoin group *****a bitcoin 4pda bitcoin ethereum investing история ethereum bitcoin earnings captcha bitcoin ico ethereum difficulty ethereum instaforex bitcoin bitcoin tube bitcoin greenaddress bitcoin instagram ethereum shares bitcoin blockstream сложность monero bitcoin sec капитализация bitcoin tether обменник txid bitcoin bitcoin rpg перевести bitcoin продажа bitcoin кошельки bitcoin konvertor bitcoin bitcoin хабрахабр bitcoin green bitcoin hardware ethereum 1070 bitcoin магазины
777 bitcoin se*****256k1 bitcoin ann ethereum kurs bitcoin кости bitcoin
bitcoin рубли капитализация bitcoin bitcoin calculator abc bitcoin bitcoin escrow
bitcoin лучшие bitcoin coins bitcoin brokers rx470 monero bitcoin calc github bitcoin
описание bitcoin bitcoin wallpaper
avto bitcoin bcc bitcoin Bitcoin and Ethereum by the numbersmonero биржи However, as online casinos normally keep their gameplay data behind closed doors on their centralized server, there is never any guarantee that the casino is truly playing fair.The Speed of the Transactionsпожертвование bitcoin bitcoin motherboard bitcoin generator bitcoin кошелек trade cryptocurrency ethereum получить cryptocurrency bitcoin вектор bitcoin hyip xronos cryptocurrency cryptocurrency вход bitcoin
bitcoin вектор bitcoin зебра ethereum address 'Only buy something that you’d be perfectly happy to hold if the market shut down for ten years.'заработай bitcoin bitcoin отзывы monaco cryptocurrency
ethereum geth ethereum serpent dog bitcoin air bitcoin bitcoin лучшие rpg bitcoin bitcoin аккаунт
Growing communityeth bitcoin ethereum dag segwit2x bitcoin people bitcoin wallet tether withdraw bitcoin
bio bitcoin chain bitcoin bitcoin crypto особенности ethereum китай bitcoin monero ann bitcoin mine bitcoin virus captcha bitcoin status bitcoin ethereum падает wiki bitcoin express bitcoin segwit2x bitcoin monero калькулятор flypool monero ethereum pools сокращение bitcoin bitcoin бесплатный bitcoin 2x bitcoin вконтакте bitcoin calc vector bitcoin monero freebsd bitcoin переводчик half bitcoin monero настройка network bitcoin bitcoin лого платформа bitcoin bitcoin книга fpga bitcoin команды bitcoin bitcoin автокран epay bitcoin purse bitcoin bitcoin virus mine ethereum simple bitcoin bitcoin протокол bitcoin робот ethereum кошельки nanopool ethereum bitcoin мерчант bitcoin coingecko bitcoin форк bitcoin wikileaks frontier ethereum location bitcoin проект bitcoin ethereum myetherwallet обновление ethereum криптовалюты bitcoin
кошелек ethereum bitcoin работа forbot bitcoin bitcoin ocean
fields bitcoin bitcoin redex миксеры bitcoin bitcoin это monero xmr блог bitcoin platinum bitcoin валюты bitcoin ethereum хардфорк boxbit bitcoin bitcoin monkey bitcoin faucet
bitcoin in bitcoin poloniex tor bitcoin bitcoin neteller ethereum supernova ethereum gold эпоха ethereum bitcoin cranes ethereum asics
global bitcoin
bitcoin valet best bitcoin
monero прогноз котировки bitcoin продажа bitcoin
Hypothesizing about potential impact:In Blockchain, it is the only block that doesn’t refer to its previous block.On 3 March 2014, Flexcoin announced it was closing its doors because of a hack attack that took place the day before. In a statement that once occupied their homepage, they announced on 3 March 2014 that 'As Flexcoin does not have the resources, assets, or otherwise to come back from this loss , we are closing our doors immediately.' Users can no longer log into the site.For small businesses who would like a more advanced way to accept and track Bitcoin payments for website orders, there are a few good merchant solutions. Paysius.com is the best — it will plug into your site (using common shopping cart plugins) and enable your customers to select 'Bitcoin' as payment during checkout instead of credit card or PayPal, etc. (this doesn’t replace those methods, it merely gives your customers a new option). Further, because very few businesses can pay their salaries and suppliers in Bitcoin (yet), systems like Paysius give the business the ability to auto-convert incoming Bitcoins into normal USD and have that deposited in the company bank account. Fees are much lower than credit card processing, and Bitcoin payments have zero chargebacks or reversals (it’s impossible to reverse a Bitcoin payment) so merchants can securely accept payment from any country with no more risk of reversal, which should be a welcome relief to those who have been burned by PayPal or credit card fraud. Other than Paysius.com, Bit-pay.com is another good option for merchants to accept Bitcoin.wikileaks bitcoin конвертер bitcoin purse bitcoin twitter bitcoin x bitcoin tether coin bitcoin antminer bitcoin hardware криптовалют ethereum ethereum faucet ферма bitcoin bitcoin таблица monero free ann monero poloniex ethereum биржа monero planet bitcoin bitcoin captcha tether bitcointalk amazon bitcoin Here, there’s no singular centralized authority that maintains a single ledger (like there would be in a centralized system).bcc bitcoin ethereum dag bitcoin drip
monero algorithm шифрование bitcoin bitcoin change bitcoin символ bitcoin delphi Blockchain technology is secured with cryptographic techniques, making it near impossible for hackers to make changes to it. The only way to make changes would be to hack more than half of the nodes in the blockchain, which again, is why it is more secure to have more nodes/computers running the blockchain.bitcoin рухнул cryptocurrency tech bitcoin вложения
bitcoin новости ethereum android bitcoin torrent monero ann
windows bitcoin ethereum coins bitcoin кредит alpari bitcoin шахты bitcoin количество bitcoin покупка bitcoin conference bitcoin бесплатный bitcoin agario bitcoin полевые bitcoin
bitcoin poloniex ethereum форум ethereum block cryptocurrency trading bitcoin сбор bitcoin microsoft magic bitcoin bitcoin symbol bitcoin fpga cryptocurrency это neteller bitcoin kupit bitcoin покупка ethereum bitcoin venezuela ads bitcoin bitcoin андроид bitcoin usa reddit bitcoin компьютер bitcoin ethereum пулы bitcoin twitter bitcoin телефон bitcoin рублях bitcoin описание bitcoin go rocket bitcoin bitcoin scripting
bitcoin nodes cryptocurrency faucet bitcoin настройка
bitcoin mining eobot bitcoin расчет bitcoin withdraw bitcoin tether usb
tabtrader bitcoin bitcoin create обменники bitcoin trade bitcoin ethereum org
пополнить bitcoin
cryptocurrency calendar ethereum twitter кошелька ethereum
monero пул
currency bitcoin 3d bitcoin компьютер bitcoin перспектива bitcoin course bitcoin cryptocurrency gold wmx bitcoin теханализ bitcoin ethereum news ethereum farm zcash bitcoin bitcoin cryptocurrency перевод tether bitcoin заработок mine ethereum
bitcoin матрица bitcoin bitcointalk bestchange bitcoin таблица bitcoin ethereum android