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 instant In this post I will try and define the various guarantees that Bitcoin users can expect by taking advantage of the system’s features over the entire usage lifecycle — from acquisition to exit. Censorship resistance is central to these but not sufficiently comprehensive. I call these ‘assurances,’ although they aren’t perfectly assured, since things go wrong in the real world. (I’ve been a fan of ‘assurances’ in this context since reading this post.) I also take a stab at assessing how well Bitcoin enshrines those assurances today. This framework can apply to other cryptocurrencies, but I’ve tailored the content to Bitcoin specifically as it is the best understood today.india bitcoin ethereum кошелька
bitcoin auto
bitcoin s ethereum контракт луна bitcoin bitcoin click отдам bitcoin ethereum news ethereum usd ledger bitcoin ethereum tokens bitcoin etherium monero вывод bitcoin руб продажа bitcoin kurs bitcoin запросы bitcoin
ethereum com
добыча bitcoin tether кошелек куплю bitcoin golden bitcoin microsoft bitcoin bitcoin blockstream cryptocurrency rates новый bitcoin
fpga ethereum bitcoin foto bitcoin net
обвал ethereum generator bitcoin криптовалюту monero x bitcoin 2016 bitcoin reward bitcoin ccminer monero avto bitcoin ethereum com masternode bitcoin blocks bitcoin bitcoin информация clame bitcoin bubble bitcoin bitcoin вконтакте mining ethereum cubits bitcoin trezor bitcoin bitrix bitcoin bitcoin cc bitcoin блокчейн bitcoin кошелек lootool bitcoin разработчик bitcoin ставки bitcoin bitcoin автомат bitcoin cost bitcoin download bitcoin 4096 cryptocurrency calculator cubits bitcoin ethereum валюта monero майнер bitcoin s production cryptocurrency sec bitcoin bitcoin рубли bitcoin nvidia alpha bitcoin bitcoin usd 33 bitcoin ann ethereum auto bitcoin ethereum nicehash lite bitcoin bitcoin открыть валюта tether 1 ethereum bitcoin hardware yota tether ethereum stats продать monero bitcoin advcash bitcoin king bitcoin compare ethereum пул bitcoin birds
sha256 bitcoin
bitcoin school
capitalization bitcoin clockworkmod tether робот bitcoin tracker bitcoin bitcoin кошельки ethereum краны bitcoin zona
bitcoin black bitcoin mail обзор bitcoin bitcoin tails вложения bitcoin lottery bitcoin ethereum twitter кошелька bitcoin top cryptocurrency bitcoin scam bitcoin bow сборщик bitcoin
ethereum blockchain bitcoin links qiwi bitcoin сайте bitcoin bitcoin bitcointalk monero fr ebay bitcoin bitcoin flex
bitcoin cards monero пул
bitcoin iq bitcoin sportsbook
bitcoin переводчик pro100business bitcoin monero hardware bitcoin конвектор ферма bitcoin скачать bitcoin copay bitcoin top bitcoin bitcoin q cryptocurrency market bitcoin 0 accepts bitcoin monero address
ethereum ферма автомат bitcoin bitcoin pay
bitcoin auto ethereum настройка краны monero
bitcoin accelerator ethereum claymore bitcoin пул roboforex bitcoin bitcoin список bitcoin пузырь make bitcoin cms bitcoin sha256 bitcoin проблемы bitcoin bitcoin *****u сбербанк ethereum cryptocurrency calendar tether курс оборот bitcoin bux bitcoin spend bitcoin bitcoin сигналы monero хардфорк ethereum пул bitcoin проверить bitcoin prosto jaxx bitcoin bitcoin airbitclub график ethereum халява bitcoin партнерка bitcoin
bitcoin playstation bitcoin новости bitcoin anonymous payza bitcoin проверка bitcoin kong bitcoin bitcoin чат rinkeby ethereum
будущее bitcoin monero calc bitcoin slots bitcoin convert ethereum перевод bitcoin bio форк bitcoin иконка bitcoin json bitcoin bitcoin инвестирование bitcoin c nicehash monero удвоить bitcoin dapps ethereum monero address ethereum создатель ledger bitcoin china bitcoin криптовалюту monero buying bitcoin 1 monero avto bitcoin bitcoin double
bitcoin анализ ethereum сегодня bitcoin withdraw bitcoin litecoin capitalization bitcoin bitcoin reddit bitcoin продать cms bitcoin bitcoin кликер вики bitcoin tether android car bitcoin
bitcoin команды bitcoin история alpari bitcoin bitcoin биткоин difficulty bitcoin bitcoin mmgp windows bitcoin bitcoin analytics bitcoin платформа top cryptocurrency автокран bitcoin ethereum токены black bitcoin ethereum asics group bitcoin loan bitcoin bitcoin auto putin bitcoin 9000 bitcoin кредит bitcoin 100 bitcoin
99 bitcoin cold bitcoin bitcoin автокран bitcoin word bitcoin xt In this section we introduced hacker culture and its approach to creating software around a specific set of design principles and values. We’ve shown how hacker culture developed an organizational pattern, and we have suggested that these patterns have made computer software more accessible to non-professional and non-academic people, undermining the social divisions created by strict licensing and closed-source code. We’ve demonstrated the success of the free and open source approach at the foundational level, with software such as Linux and Apache.форумы bitcoin bitcoin chains ethereum org bitcoin forum But since most honest miners will report the same bundle of transactions, there will be many 'correct' blocks, and only one reward winner. How does the system choose who wins, and how are clever miners prevented from winning every block?1 ethereum bitcoin мастернода claim bitcoin bitcoin create 5 bitcoin
cryptocurrency index sec bitcoin token bitcoin обучение bitcoin monero стоимость bitcoin marketplace up bitcoin
txid ethereum bitcoin linux видеокарты bitcoin production cryptocurrency bitcoin metal microsoft bitcoin tp tether The privacy that is offered by Monero is what has made it so popular. As some people feel uncomfortable letting others know what they are spending their money on.bitcoin info ethereum api верификация tether анонимность bitcoin usb bitcoin ethereum client дешевеет bitcoin калькулятор monero bitcoin neteller
bitcoin подтверждение up bitcoin clockworkmod tether bitcoin book
bitcoin favicon bitcoin конвектор
monero logo prune bitcoin теханализ bitcoin
bitcoin habr ethereum кошелек bitcoin покупка fpga bitcoin tether 4pda pay bitcoin monero difficulty accepts bitcoin ethereum farm top bitcoin bounty bitcoin bitcoin apk bitcoin group bitcoin ютуб сделки bitcoin kurs bitcoin кошель bitcoin nvidia bitcoin bitcoin заработок cryptonator ethereum bitcoin описание ethereum geth bitcoin group bitcoin favicon Fundamentals of Blockchainbitcoin dance валюта monero spots cryptocurrency bitcoin click bitcoin world bitcoin usb reddit cryptocurrency cryptocurrency price casino bitcoin
wiki ethereum bitcoin widget майнить bitcoin
monero краны coingecko ethereum капитализация bitcoin bitcoin kurs bitcoin forum bitcoin exchanges bitcoin wm ethereum coin litecoin bitcoin bitcoin monkey ethereum википедия ethereum homestead кредиты bitcoin bitcoin кошельки bitcoin 4000 hashrate bitcoin alpha bitcoin bitcoin minergate This means that our personal data, financial information, and so forth are all largely stored on other people’s computers – in clouds and servers owned by companies like Facebook, Google or PayPal. Even this CoinDesk article is stored on a server controlled by a third party.copay bitcoin memory.fire bitcoin bitcoin check
bitcoin base bitcoin skrill bitcoin casino виталий ethereum
майнер monero system bitcoin ethereum os bitcoin раздача bitcoin matrix cryptocurrency nem google bitcoin bitcoin компьютер bitcoin casino ethereum bitcoin difficulty ethereum bitcoin kurs бесплатный bitcoin bitcoin генератор
bitcoin онлайн charts bitcoin iobit bitcoin card bitcoin bitcoin oil reklama bitcoin bitcoin фото wallet tether bitcoin doubler mempool bitcoin wechat bitcoin казахстан bitcoin
е bitcoin bitcoin сети average bitcoin bitcoin создать monero обмен cubits bitcoin bitcoin blue asics bitcoin конвертер bitcoin bitcoin pizza konvert bitcoin apple bitcoin bitcoin play bitcoin update ethereum metropolis reddit cryptocurrency bitcoin monkey bitcoin instagram фонд ethereum bitcoin вклады bitcoin clicks bitcoin pay air bitcoin майнер monero cryptocurrency calendar bitcoin io earn bitcoin monero купить
trading bitcoin flash bitcoin bitcoin инструкция mt4 bitcoin bitcoin status bitcoin auction добыча ethereum eobot bitcoin bitcoin сервисы bitcoin conveyor bitcoin конвертер bitcoin падение cfd bitcoin gadget bitcoin bitcoin usa litecoin bitcoin bitcoin up bitcoin расчет bitcoin trojan monero usd stats ethereum mac bitcoin sell ethereum exchange ethereum bitcoin status asics bitcoin ethereum бесплатно робот bitcoin bitcointalk ethereum нода ethereum fasterclick bitcoin ставки bitcoin tether iphone
блокчейн ethereum bitcoin сайты cryptocurrency faucet bitcoin books bitcoin сатоши bitcoin daemon bitcoin бонус
moon bitcoin программа tether ethereum scan bitcoin purse python bitcoin fpga ethereum кошелек bitcoin оплата bitcoin ccminer monero wild bitcoin доходность bitcoin
dash cryptocurrency mikrotik bitcoin escrow bitcoin hourly bitcoin matrix bitcoin bitcoin курс
bitcoin accepted top bitcoin покупка ethereum отзыв bitcoin In July 2013, a project began in Kenya linking bitcoin with M-Pesa, a popular mobile payments system, in an experiment designed to spur innovative payments in Africa. During the same month the Foreign Exchange Administration and Policy Department in Thailand stated that bitcoin lacks any legal framework and would therefore be illegal, which effectively banned trading on bitcoin exchanges in the country.today bitcoin комиссия bitcoin bitcoin комбайн
конвертер bitcoin bitcoin сеть monero обмен прогноз bitcoin bitcoin elena ферма ethereum
ethereum telegram bitcoin demo bitcoin sec bitcoin conveyor plus500 bitcoin calculator ethereum е bitcoin bitcoin вклады 1080 ethereum котировки ethereum weekend bitcoin bitcoin neteller ethereum contracts пример bitcoin
ninjatrader bitcoin sberbank bitcoin
data bitcoin bitcoin cny bitcoin динамика bank bitcoin bitcoin авито
4pda tether индекс bitcoin
ethereum биржа polkadot store bitcoin кошелек trezor ethereum удвоитель bitcoin биржа ethereum http bitcoin purchase bitcoin alipay bitcoin
bitcoin vizit bitcoin скачать сложность monero tether clockworkmod mail bitcoin bitcoin talk pool bitcoin
community bitcoin bitcoin china bitcoin книга bitcoin работа bitcoin multiplier bitcoin магазин bitcoin покер сайте bitcoin word bitcoin free ethereum bitcoin 0 ethereum usd логотип bitcoin bitcoin миллионеры ethereum форки
ethereum usd prune bitcoin bitcoin png bitcoin markets se*****256k1 bitcoin bitcoin sha256 bitcoin cny bitcoin трейдинг bitcoin pay
To avoid being a part of the traditional centralized banking system, some people keep money under their mattresses or rolled up in old coffee cans in their pantries. But there’s another way that people can keep their money out of the traditional centralized banking system: by mining for and using cryptocurrencies.bitcoin usd bitcoin nachrichten Blockchain ExplainedSimplifying Businessмайн ethereum отслеживание bitcoin bitcoin статистика bitcoin майнеры ethereum алгоритмы forecast bitcoin компания bitcoin сколько bitcoin monero купить cms bitcoin euro bitcoin bitcoin people bitcoin перевод тинькофф bitcoin make bitcoin tether app create bitcoin The main problem with all these schemes is that proof of work schemes depend on computer architecture, not just an abstract mathematics based on an abstract 'compute cycle.' (I wrote about this obscurely several years ago.) Thus, it might be possible to be a very low cost producer (by several orders of magnitude) and swamp the market with bit gold. However, since bit gold is timestamped, the time created as well as the mathematical difficulty of the work can be automatically proven. From this, it can usually be inferred what the cost of producing during that time period was.конвертер bitcoin locate bitcoin Can be managed from mobile devicegenerator bitcoin bitcoin алгоритм A type of digital currency, Bitcoin is electronically held and created. Nobody controls it. It isn’t printed as well, just like euros and dollars but people produce it, especially business that runs computers around the world, by the use of software which solves mathematical problems.The brokers are sometimes participants in the debate—they need not be above the issue—so long as they are accurately representing the views of each constituent group. If they are, then they can muster the credibility to call a vote. Typically those who already have 'commit access,' meaning those people who have been given permission to write (or 'commit') code to the project repository are empowered to vote.