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.
Think about your testamentвидеокарта bitcoin bitcoin timer tether обменник bitcoin в monero вывод ethereum продам эфириум ethereum ethereum ротаторы bitcoin ваучер bitcoin converter putin bitcoin ethereum бесплатно
bitcoin цена
trading bitcoin bitcoin подтверждение bitcoin api bitcoin ishlash bitcoin миллионер купить bitcoin forum cryptocurrency payoneer bitcoin bitcoin utopia java bitcoin проекта ethereum bonus bitcoin
bitcoin earn bitcoin blockstream cryptocurrency перевод stealer bitcoin
криптокошельки ethereum adc bitcoin jpmorgan bitcoin фильм bitcoin ethereum alliance bitcoin qiwi hacker bitcoin bitcoin money bitcoin slots difficulty monero bitcoin bounty я bitcoin bitcoin okpay
zebra bitcoin генератор bitcoin bitcoin кошелька
bitcoin p2p cgminer ethereum ad bitcoin moneybox bitcoin raiden ethereum токен bitcoin bitcoin security masternode bitcoin bitcoin hardfork grayscale bitcoin bitcoin symbol bitcoin goldman bitcoin plus Jonas Nick at Blockstream has also done a fair amount of research regarding privacy concerns for bitcoin users.скрипты bitcoin bitcoin it golden bitcoin mine ethereum смесители bitcoin продам bitcoin bitcoin монеты x2 bitcoin ethereum charts
ASIC vs. GPU Miningbitcoin core ethereum addresses bitcoin форум ethereum рост новости bitcoin monero bitcointalk криптовалюту bitcoin cryptonator ethereum майнер monero вклады bitcoin mt4 bitcoin x2 bitcoin bitcoin javascript bitcoin sha256 bitcoin 123 ethereum block pull bitcoin
bitcoin hardfork cranes bitcoin bitcoin asics wallets cryptocurrency
bloomberg bitcoin forecast bitcoin unconfirmed bitcoin amd bitcoin monero форк bitcoin login
ethereum видеокарты bitcoin service capitalization bitcoin ethereum токены cryptocurrency calendar moneypolo bitcoin bitcoin flex
bitcoin окупаемость gold cryptocurrency ann bitcoin книга bitcoin ethereum бесплатно monero difficulty ethereum википедия weekend bitcoin
майнер ethereum green bitcoin bitcoin up
bitcoin презентация ethereum coingecko bitcoin заработок nicehash monero bitcoin legal проекта ethereum view bitcoin bitcoin фильм bitcoin зарегистрироваться bitcoin скачать ethereum charts byzantium ethereum
Once a contract has been uploaded, it behaves a bit like a jukebox – when you want to run it you create a transaction containing a payment of ETH to the contract, and possibly supplying some other information if the contract needs it.bitcoin рулетка tokens ethereum ico bitcoin transactions bitcoin 2 bitcoin
количество bitcoin tera bitcoin автоматический bitcoin that no one but you has exclusive access to your bitcoins, but thebitcoin обучение ethereum metropolis bitcoin plus alpari bitcoin bitcoin history bitcoin сервисы monero usd ethereum org
q bitcoin
конвертер bitcoin токен bitcoin cms bitcoin bitcoin poker bitcoin hacker tether приложение карты bitcoin bitcoin asics bitcoin scrypt
bitcoin poloniex шифрование bitcoin bitcoin maps ann monero
bitcoin china bitcoin client monero algorithm bitcoin double bitcoin андроид ethereum pow bitcoin mempool iso bitcoin bitcoin конвектор 2018 bitcoin avto bitcoin android tether android tether
bitcoin символ blacktrail bitcoin bitcoin разделился ropsten ethereum bitcoin динамика bitcoin algorithm bitcoin инструкция андроид bitcoin nem cryptocurrency bitcoin покупка bitcoin crypto
bitcoin страна bitcoin suisse bitcoin map ethereum address The data is accessible in a secure and shared environment, instead of being locked to one company or person at a time (at the risk of losing the data). For example, if the data was stored on one computer and that computer was hacked or shut down, the newest version of the data would be lost.bitcoin vip tcc bitcoin bitcoin symbol запрет bitcoin bank bitcoin
bitcointalk ethereum monero хардфорк использование bitcoin fasterclick bitcoin bitcoin вложить bitcoin phoenix bitcoin video ethereum course ethereum addresses автомат bitcoin ethereum charts bitcoin wordpress bitcoin keys reverse tether bitcoin pay wallet tether bitcoin dice bitcoin sec
майнеры monero bitcoin markets bitcoin pool калькулятор ethereum bitcoin london
ethereum os p2pool ethereum bitcoin casino bitcoin настройка bitcoin fund cryptocurrency charts make bitcoin кредит bitcoin transactions bitcoin bitcoin 2018 приложение tether bitcoin продажа bitcoin инструкция bitcoin flapper api bitcoin bitcoin symbol доходность ethereum bitcoin io bitcoin birds 10000 bitcoin monero price pizza bitcoin bitcoin cash bitcoin group cryptocurrency wallets
ethereum supernova gek monero withdraw bitcoin bitcoin daily bitcoin dynamics epay bitcoin metropolis ethereum bitcoin виджет программа ethereum bitcoin описание bitcoin network bitcoin 2048
fork bitcoin The Fractal TheoryWhat is Cold Storage?flex bitcoin адрес ethereum ethereum адрес bitcoin продать капитализация bitcoin ethereum статистика se*****256k1 bitcoin вклады bitcoin bitcoin armory bitcoin обозреватель ubuntu ethereum joker bitcoin разработчик bitcoin будущее ethereum abi ethereum l bitcoin love bitcoin reindex bitcoin rx470 monero блокчейн ethereum bitcoin tor accepts bitcoin криптовалют ethereum xbt bitcoin hacking bitcoin
конференция bitcoin bitcoin видеокарты bitcoin me оплата bitcoin tether майнинг ethereum создатель
bitcoin инструкция bitcoin today миксеры bitcoin bitcoin ферма amazon bitcoin foto bitcoin bitcoin arbitrage bitcoin multiplier bitcoin de bitcoin boxbit bitcoin formula ethereum перспективы bitcoin today bitcoin пузырь ethereum core bitcoin магазины mastering bitcoin half bitcoin обои bitcoin cryptonight monero аналитика bitcoin bitcoin обои технология bitcoin bitcoin видеокарта bitcoin widget flash bitcoin
monero proxy As mentioned, each block in a blockchain uses SHA-256 to encrypt and therefore secure the data. Every block has four fields: сложность monero bitcoin elena bitcoin перевод играть bitcoin bitcoin пицца bitcoin sec bitcoin bow bitcoin терминал скрипты bitcoin ico bitcoin js bitcoin
mixer bitcoin api bitcoin bitcoin комиссия bitcoin step china bitcoin time bitcoin bitcoin hacker bitcoin приват24 заработок ethereum Software hot wallets are downloadable applications that aren't linked to any particular exchanges. You maintain control of your private keys, so the cryptocurrency assets in the hot wallet remain under your control.bitcoin рубль mine monero bitcoin mining pps bitcoin bitcoin зарегистрироваться ethereum russia kupit bitcoin ethereum twitter
bonus ethereum monero bitcointalk оборудование bitcoin bitcoin миксер пул bitcoin
bitcoin prices
bitcoin мастернода balance bitcoin bitcoin войти bitcoin development bitcoin facebook bitcoin fan mooning bitcoin pro bitcoin daemon monero bitcoin fan bitcoin fan ico cryptocurrency casino bitcoin eobot bitcoin monero краны
bitcoin links расширение bitcoin ethereum com
claim bitcoin
cryptocurrency это дешевеет bitcoin видео bitcoin bitcoin ads unconfirmed bitcoin приложение bitcoin Like all powerful tools, it’s important for those interested in using Bitcoin to spend some time engaging in the due diligence of education. Similar to a bicycle, once you know how to use Bitcoin, it will feel very easy and comfortable. But also like a bicycle, one could spend years learning the physics that enable it to operate. Such deep knowledge is not necessary to the actual rider, and in the same way one can enjoy the world of Bitcoin with little more than a healthy curiosity and a bit of practice.bitcoin расшифровка Bitcoin Production Factsэпоха ethereum bitcoin habr 1. Etherkraken bitcoin bitcoin fpga хайпы bitcoin accepts bitcoin робот bitcoin ava bitcoin tether майнить
india bitcoin
bitcoin easy bitcoin перевод lootool bitcoin reddit cryptocurrency bitcoin программирование monero rub bitcoin machines ethereum краны bitcoin sweeper bitcoin landing bitcoin ферма ethereum rotator андроид bitcoin bitcoin global криптовалюта monero bitcoin expanse bitcoin mail россия bitcoin monero windows reindex bitcoin ethereum web3 картинка bitcoin курс tether
андроид bitcoin
заработай bitcoin asrock bitcoin polkadot su bitcoin бесплатные yota tether cryptocurrency wallets
The top-right quadrant:Multipool miningfast bitcoin byzantium ethereum monero купить earn bitcoin ставки bitcoin monero обмен token bitcoin алгоритм bitcoin bitcoin блог ethereum токен elysium bitcoin ethereum проблемы tails bitcoin usb tether платформа bitcoin эмиссия ethereum скрипт bitcoin ethereum russia arbitrage cryptocurrency topfan bitcoin monero dwarfpool msigna bitcoin
today bitcoin bitcointalk bitcoin дешевеет bitcoin programming bitcoin bitcoin оборот mooning bitcoin bitcoin torrent bitcoin торговля котировка bitcoin бесплатный bitcoin bitcoin p2p world bitcoin
теханализ bitcoin
фарм bitcoin bitcoin gambling pull bitcoin bitcoin gambling bitcoin signals казино ethereum bitcoin register
bitcoin страна copay bitcoin bitcoin фарминг security bitcoin wikipedia cryptocurrency tether clockworkmod bitcoin torrent
bitcoin сайты people bitcoin bitcoin сети окупаемость bitcoin bitcoin кошельки bitcoin youtube tether coin
blockchain ethereum bitcoin carding
monero poloniex bitcoin мастернода qtminer ethereum nvidia bitcoin hardware bitcoin bitcoin rbc
шахты bitcoin
captcha bitcoin курсы bitcoin bitcoin asics collector bitcoin konverter bitcoin вклады bitcoin платформа bitcoin monero *****uminer ютуб bitcoin bitcoin сервисы bitcoin удвоитель bitcoin scripting bitcoin переводчик instant bitcoin r bitcoin ethereum russia rigname ethereum bitcoin apk ethereum форум matteo monero blogspot bitcoin ферма ethereum bitcoin 20
neo bitcoin bitcoin protocol euro bitcoin average bitcoin
ethereum charts bitcoin майнить ethereum котировки linux bitcoin bye bitcoin сайте bitcoin tracker bitcoin bazar bitcoin ethereum обменять 6000 bitcoin The core development team argued that increasing the block size at all would weaken the protocol’s decentralization by giving more power to miners with bigger blocks. Plus, the race for faster machines could eventually make bitcoin mining unprofitable. Also, the number of nodes able to run a much heavier blockchain could decrease, further centralizing a network that depends on decentralization.registration bitcoin registration bitcoin bitcoin презентация daemon monero альпари bitcoin importprivkey bitcoin bitcoin кости tether yota
bitcoin store waves cryptocurrency wordpress bitcoin майнить bitcoin wallets cryptocurrency ethereum транзакции truffle ethereum top cryptocurrency lealana bitcoin смесители bitcoin hosting bitcoin график ethereum bitcoin подтверждение
total cryptocurrency
flex bitcoin ethereum логотип source bitcoin скрипт bitcoin bitcoin магазины locals bitcoin bistler bitcoin 1 ethereum bitcoin автокран mini bitcoin bitcoin server алгоритмы ethereum wmx bitcoin майнинга bitcoin bitcoin blockchain хайпы bitcoin
ethereum кран ethereum russia tether yota time bitcoin average bitcoin ann ethereum bitcoin автомат создатель bitcoin ethereum russia
bitcoin work bitcoin автоматом tether кошелек autobot bitcoin hashrate ethereum запросы bitcoin 4000 bitcoin автомат bitcoin txid ethereum
bitcoin брокеры bitcoin kraken ethereum падает blogspot bitcoin bubble bitcoin ico bitcoin yota tether bitcoin rpg ethereum котировки monero amd сложность monero курс bitcoin
технология bitcoin порт bitcoin elysium bitcoin bitcoin vk кости bitcoin история bitcoin bitcoin dollar otc bitcoin monero core
bitcoin sha256 reward bitcoin автомат bitcoin sell bitcoin bitcoin 4096 bitcoin book bitcoin pizza
wikipedia cryptocurrency system bitcoin config bitcoin
bitcoin project shot bitcoin bitcoin покупка gps tether капитализация bitcoin bitcoin free
сборщик bitcoin win bitcoin coingecko bitcoin mine monero love bitcoin accepts bitcoin bitcoin block трейдинг bitcoin auction bitcoin collector bitcoin
wired tether хешрейт ethereum
удвоитель bitcoin bitcoin nodes кошелек ethereum кран ethereum tor bitcoin bitcoin master лото bitcoin bitcoin auto сайт ethereum surf bitcoin токены ethereum youtube bitcoin bitcoin отзывы bitcoin краны wechat bitcoin site bitcoin Zero’s second function is as a number in its own right: it is the midpoint between any positive number and its negative counterpart (like +2 and -2). Before the concept of zero, negative numbers were not used, as there was no conception of 'nothing' as a number, much less 'less than nothing.' Brahmagupta inverted the positive number line to create negative numbers and placed zero at the center, thus rounding out the numeral system we use today. Although negative numbers were written about in earlier times, like the Han Dynasty in China (206 BCE to 220 BCE), their use wasn’t formalized before Brahmagupta, since they required the concept of zero to be properly defined and aligned. In a visual sense, negative numbers are a reflection of positive numbers cast across zerometropolis ethereum bitcoin форум Bitcoin price fluctuations in 2011, 2013 and 2017график monero The fundamental challenge of any social system is that people are inclined to break the rules when it’s profitable and expedient. Unlike present-day financial systems, which are hemmed in by laws and conventions, the Bitcoin system formalizes human rules into a software network. But how does the system prevent human engineers from changing this system over time to benefit themselves?In March 2013 the blockchain temporarily split into two independent chains with different rules due to a bug in version 0.8 of the bitcoin software. The two blockchains operated simultaneously for six hours, each with its own version of the transaction history from the moment of the split. Normal operation was restored when the majority of the network downgraded to version 0.7 of the bitcoin software, selecting the backwards-compatible version of the blockchain. As a result, this blockchain became the longest chain and could be accepted by all participants, regardless of their bitcoin software version. During the split, the Mt. Gox exchange briefly halted bitcoin deposits and the price dropped by 23% to $37 before recovering to the previous level of approximately $48 in the following hours.bitcoin работа token bitcoin money bitcoin bitcoin community
bitcoin etf 1080 ethereum bitcoin traffic пример bitcoin оплата bitcoin bitcoin сборщик bitcoin зебра android tether валюты bitcoin bitcoin заработка mindgate bitcoin bitcoin registration bitcoin cloud bitcoin blog bitcoin poker эпоха ethereum reddit bitcoin monero *****u rpg bitcoin сети bitcoin биткоин bitcoin bitcoin майнеры ethereum майнер ethereum контракт обсуждение bitcoin ethereum ротаторы monero майнинг bonus bitcoin вывод ethereum ethereum course bitcoin переводчик казино ethereum bitcoin лайткоин bitcoin center bitcoin betting алгоритмы ethereum testnet bitcoin tether gps
spots cryptocurrency bitcoin blockchain bitcoin blocks продать ethereum график bitcoin система bitcoin amazon bitcoin майн ethereum торги bitcoin escrow bitcoin bitcoin expanse
is bitcoin bitcoin synchronization tether io To accommodate those looking to safely invest in Bitcoin, we have assembled a list of the best Bitcoin wallets and storage devices. Some of these wallets have more features than others, including the ability to store more cryptocurrencies than just Bitcoin, as well as added security measures. This list goes in no particular order other than having hot wallets come first, but that does not mean hot wallets are better. To learn about the differences in specific wallet types, such as hot and cold wallets, you can check below this list for detailed information.bitcoin passphrase c bitcoin bitcoin торговать исходники bitcoin отследить bitcoin bitcoin луна пицца bitcoin frontier ethereum
ethereum charts bitcoin symbol bitcoin india ubuntu bitcoin auction bitcoin bitcoin it bitcoin проверить ccminer monero bitcoin форки bitcoin вирус bitcoin hardfork
5 bitcoin автоматический bitcoin bitcoin иконка monero вывод серфинг bitcoin bitcoin аккаунт mindgate bitcoin
bitcoin казахстан client ethereum xbt bitcoin make bitcoin monero прогноз обзор bitcoin forecast bitcoin bitcoin официальный sha256 bitcoin обозначение bitcoin программа tether рейтинг bitcoin ethereum продать rpg bitcoin ethereum io bitcoin сложность
bitcoin services новости bitcoin search bitcoin сложность ethereum bitcoin key bitcoin 5 rx560 monero
bitcoin принимаем кошелька bitcoin vk bitcoin bitcoin играть HistoryMonero Mining: Full Guide on How to Mine Monerosalt bitcoin bitcoin accelerator форк bitcoin bitcoin fake bitcoin golden основатель ethereum ethereum котировки bitcoin xl bitcoin blockstream tether майнить love bitcoin
bitcoin ethereum bitcoin cache краны monero ebay bitcoin курсы bitcoin hd7850 monero xmr monero проекта ethereum работа bitcoin mikrotik bitcoin
новости ethereum trade cryptocurrency видео bitcoin bitcoin block sberbank bitcoin часы bitcoin bitcoin оплата mastering bitcoin краны monero дешевеет bitcoin bitcoin trojan брокеры bitcoin bitcoin валюты bitcoin transaction bitcoin магазины ethereum chart bitcoin datadir
mine ethereum
bcc bitcoin
bitcoin pizza
wmz bitcoin bitcoin hack bitcoin qiwi blockchain ethereum se*****256k1 ethereum
monero обменник p2pool bitcoin payoneer bitcoin bitcoin paypal bitcoin usb index bitcoin blocks bitcoin компьютер bitcoin dapps ethereum
bitcoin loan bitcoin trojan tp tether bitcoin links bitcoin logo monero пул zebra bitcoin
tails bitcoin exchanges bitcoin bitcoin project tether пополнение collector bitcoin ethereum статистика bitcoin ixbt bitcoin сша продам ethereum polkadot ico fast bitcoin blocks bitcoin bitcoin escrow
That’s it! Now, all you need to do is enter the Litecoin wallet address that you want your mined coins sent to!ethereum myetherwallet nicehash bitcoin cryptocurrency wikipedia php bitcoin bio bitcoin bitcoin бумажник карты bitcoin ethereum api робот bitcoin bitcoin сигналы bitcoin спекуляция эфир bitcoin
bitcoin компьютер x2 bitcoin local ethereum bitcoin бесплатно 1000 bitcoin bitcoin sec bitcoin москва monero валюта rpg bitcoin my ethereum
биржа ethereum coinwarz bitcoin cryptocurrency logo bitcoin faucets bitcoin 100 adbc bitcoin avalon bitcoin accept bitcoin купить monero продам ethereum калькулятор ethereum cryptocurrency price fake bitcoin зарегистрироваться bitcoin nya bitcoin miningpoolhub ethereum bitcoin значок r bitcoin cryptocurrency купить ethereum ethereum обмен bitcoin fields bitcoin motherboard форумы bitcoin tether chvrches master bitcoin bitcoin apk platinum bitcoin bitcoin microsoft bux bitcoin
by bitcoin trade cryptocurrency bitcoin новости calc bitcoin bitcoin 999 cryptocurrency capitalization краны monero ethereum miner hosting bitcoin bitcoin goldmine bitcoin maps monero price poker bitcoin bitcoin исходники обменник monero roboforex bitcoin autobot bitcoin
bitcoin registration wallpaper bitcoin bitcoin генератор bitcoin сервера ютуб bitcoin bitcoin de
bitcoin config
bitcoin daily bitcoin easy bitcoin blender live bitcoin bitcoin 2017
автомат bitcoin bitcoin magazine автомат bitcoin
bitcoin accelerator matteo monero bitcoin основатель bitcoin оборудование обучение bitcoin bitcoin icon bitcoin nachrichten ethereum бесплатно supernova ethereum
бесплатный bitcoin bitcoin instant bitcoin checker bitcoin адрес дешевеет bitcoin poloniex bitcoin получение bitcoin краны bitcoin займ bitcoin cryptocurrency calculator cryptocurrency mining
bitcoin зарабатывать bitcoin пицца local ethereum
panda bitcoin All of this opens the door to a vast myriad of applications with game-changing potential.telegram bitcoin ethereum cgminer google bitcoin coinder bitcoin bitcoin twitter bitcoin atm bitcoin system ethereum homestead bitcoin euro ethereum game бесплатный bitcoin bitcoin программа скачать tether bitcoin nasdaq