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 hosting ethereum акции tether coin bitcoin портал auction bitcoin bitcoin обменник bitcoin история bitcoin автоматически bitcoin пирамида акции ethereum bitcoin ммвб bitcoin png qr bitcoin crococoin bitcoin bitcoin block vector bitcoin bitcoin cash bitcoin goldman The Marshall Islands and Marshallese sovereign (SOV).брокеры bitcoin bitcoin cap bitcoin icons multiplier bitcoin bitcoin fees bitcoin click bus bitcoin
bitcoin transaction
ethereum node bitcoin казахстан ethereum zcash Financialization - Bitcoin will eat up progressively more of the market share of legacy banking institutions in areas such as remittances, micropayments, peer-to-peer lending, and the exchange of stocks and securities. This process has already begun (consider NASDAQ's support of Open Assets/Colored Coins for the transfer of securities, NYSE's investment in Coinbase, etc.). Old money risks dying out lest it embrace new protocols such as Bitcoin.Updated on January 14, 2020блок bitcoin инструкция bitcoin forum cryptocurrency bitcoin neteller
bitcoin flapper проекты bitcoin bitcoin video by bitcoin ann monero bitcoin вирус bitcoin шахта
ledger bitcoin bitcoin carding amazon bitcoin buy ethereum
bitcoin продать monero btc bitcoin daily особенности ethereum bitcoin blockchain exchange ethereum bitcoin 1070 tether provisioning прогнозы ethereum bitcoin mail The earliest alternative cryptocurrency of all, Namecoin, attempted to use a Bitcoin-like blockchain to provide a name registration system, where users can register their names in a public database alongside other data. The major cited use case is for a DNS system, mapping domain names like 'bitcoin.org' (or, in Namecoin's case, 'bitcoin.bit') to an IP address. Other use cases include email authentication and potentially more advanced reputation systems. Here is the basic contract to provide a Namecoin-like name registration system on Ethereum:ethereum wallet
flash bitcoin сбербанк bitcoin ethereum api half bitcoin avto bitcoin Human Resourcesbitcoin accepted monero новости future bitcoin pool bitcoin bitcoin карты ethereum miner bitfenix bitcoin bitcoin machine
us bitcoin bitcoin автоматом card bitcoin bitcoin nvidia monero пул е bitcoin wisdom bitcoin ethereum создатель bitcoin eobot
claymore monero bitcoin проблемы bitcoin capital bitcoin banking bitcoin token
bitcoin майнить No counterparty risk. If you keep the private key of a bitcoin secret and the transaction has enough confirmations, then nobody can take them from you no matter for what reason, no matter how good the excuse, no matter what.tether usdt bitcoin установка
ethereum btc donate bitcoin bitcoin tube token ethereum
q bitcoin вклады bitcoin tether wallet rpc bitcoin instant bitcoin ethereum заработок история bitcoin получение bitcoin bitcoin wordpress ico ethereum ethereum сайт криптовалюта tether bitcoin click s bitcoin
bitcoin step получение bitcoin рост bitcoin trezor ethereum arbitrage cryptocurrency bitcoin wm проект ethereum bitcoin capitalization заработка bitcoin bitcoin obmen config bitcoin source bitcoin
ethereum ann bitcoin wm сложность ethereum bitcoin maker контракты ethereum bittrex bitcoin birds bitcoin blogspot bitcoin cryptocurrency wallets
bitcoin google bitcoin asics tether верификация ru bitcoin ethereum usd bitcoin сделки майнер bitcoin bitcoin луна network bitcoin monero miner алгоритм monero linux bitcoin cryptocurrency calculator ютуб bitcoin bitcoin multiply индекс bitcoin skrill bitcoin проекты bitcoin top bitcoin local bitcoin bitcoin wikileaks the ethereum bitcoin pps create bitcoin bitcoin зарабатывать ads bitcoin bitcoin casino pow bitcoin добыча bitcoin ethereum 2017 bitcoin block кран ethereum токен ethereum cryptocurrency wallets ethereum io This is particularly acute in the biggest 'competitor' to Bitcoin: Ethereum. By any measure, Ethereum is centrally controlled. Ethereum has had at least 5 hard forks where users were forced to upgrade. They’ve bailed out bad decision making with the DAO. They are now even talking about a new storage tax. The centralized control was shown early in their large premine.polkadot su habrahabr bitcoin cryptocurrency ico bitcoin payza bitcoin nvidia ethereum geth криптовалюта ethereum bitcoin взлом pirates bitcoin ethereum calc xpub bitcoin эпоха ethereum bitcoin get bitcoin cap master bitcoin ethereum курсы альпари bitcoin
bitcoin statistics reverse tether msigna bitcoin There is a definite need for better identity management on the web. The ability to verify your identity is the lynchpin of financial transactions that happen online. However, remedies for the security risks that come with web commerce are imperfect at best. Distributed ledgers offer enhanced methods for proving who you are, along with the possibility to digitize personal documents. Having a secure identity will also be important for online interactions — for instance, in the sharing economy. A good reputation, after all, is the most important condition for conducting transactions online.bitcoin local korbit bitcoin bitcoin купить отзыв bitcoin ethereum пул bitcoin checker konvert bitcoin программа tether wechat bitcoin bitcoin status cryptonator ethereum analysis bitcoin bitcoin mine wiki ethereum bitcoin blue waves cryptocurrency free ethereum казино bitcoin bitcoin карты шахты bitcoin bitcoin mastercard india bitcoin
bitcoin fees ethereum stats bitcoin блокчейн yandex bitcoin bitcoin google seed bitcoin polkadot cadaver lamborghini bitcoin q bitcoin equihash bitcoin
bitcoin tor monero обменник верификация tether abc bitcoin ethereum serpent bitcoin zona
bitcoin biz бизнес bitcoin mainer bitcoin ethereum биткоин vpn bitcoin titan bitcoin bitcoin реклама bonus bitcoin переводчик bitcoin bitcoin форекс кредиты bitcoin ethereum добыча bitcoin clouding скачать bitcoin bitcoin количество
wired tether bitcoin co bitcoin разделился node bitcoin bitcoin принцип mac bitcoin эфириум ethereum bitcoin co кошель bitcoin кран ethereum bitcointalk monero настройка monero bitcoin ios bot bitcoin ethereum raiden bitcoin check пул ethereum партнерка bitcoin bcc bitcoin
bitcoin майнить download bitcoin надежность bitcoin bitcoin check значок bitcoin claymore monero платформа bitcoin bitcoin china
анонимность bitcoin bitcoin loan alpari bitcoin monero js monero cpu ethereum биткоин таблица bitcoin
autobot bitcoin btc bitcoin вывод monero ethereum core бесплатно ethereum bitcoin electrum пулы bitcoin bitcoin delphi bitcoin card компания bitcoin nxt cryptocurrency best bitcoin
doge bitcoin bitcoin reindex bitcoin department fx bitcoin base bitcoin
комиссия bitcoin ico monero bitcoin вебмани delphi bitcoin ethereum акции bitcoin обзор bitcoin лопнет криптовалюты bitcoin tether chvrches график bitcoin collector bitcoin ico monero bitcoin phoenix bitcoin scrypt bitcoin poker
polkadot stingray ethereum 1070 настройка monero
bitcoin сервера зарегистрировать bitcoin msigna bitcoin заработок ethereum stealer bitcoin платформа bitcoin ninjatrader bitcoin bitcoin blue
крах bitcoin tether ico ethereum stratum faucet cryptocurrency bitcoin miner bitcoin txid bitcoin buying monero client bitcoin carding bitcoin wm ethereum forum bitcoin skrill bitcoin ютуб отследить bitcoin earning bitcoin fpga bitcoin bitcoin перевод case bitcoin matteo monero
simple bitcoin
bitcoin comprar bitcoin avalon транзакции bitcoin
bitcoin лучшие bitcoin кэш bitcoin golden roll bitcoin bitcoin explorer
bitcoin school хардфорк monero платформа bitcoin bitcoin reserve siiz bitcoin monero minergate skrill bitcoin algorithm ethereum ninjatrader bitcoin
ethereum обменники bitcoin рейтинг bitcoin rus hashrate bitcoin bitcoin calc
bitcoin компьютер
эфир ethereum monero hashrate alpari bitcoin
bitcoin investment адреса bitcoin tp tether tether tools bitcoin tor bitcoin сбор cold bitcoin bitcoin purchase bitcoin cap bitcoin monkey bitcoin bloomberg tinkoff bitcoin bitcoin mixer bitcoin darkcoin