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 ann
аккаунт bitcoin bitcoin avalon games bitcoin bitcoin форк
отзыв bitcoin bitcoin деньги bitcoin sha256 получение bitcoin pps bitcoin rise cryptocurrency bitcoin s bitcoin roll miner monero bitcoin футболка ethereum pool
основатель ethereum bitcoin государство вложения bitcoin minergate ethereum bitcoin scam bitcoin bitrix bitcoin стратегия erc20 ethereum ферма ethereum bitcoin украина fork ethereum monero poloniex ethereum android ethereum проект кошелек ethereum
zebra bitcoin обменник bitcoin bitcoin rt bitcoin пирамиды polkadot блог обновление ethereum обмен tether bitcoin знак bitcoin 999 bitcoin 4096 bitcoin окупаемость обвал ethereum king bitcoin weather bitcoin cryptocurrency charts bitcoin проект dorks bitcoin bitcoin рухнул кошелек tether difficulty ethereum bitcoin онлайн bitcoin auto оплата bitcoin yota tether bitcoin fox кошелька bitcoin 1080 ethereum bitcoin favicon top bitcoin accepts bitcoin ethereum pool ethereum пулы bitcoin казахстан avto bitcoin 0 bitcoin bitcoin xpub source bitcoin пожертвование bitcoin сокращение bitcoin bitcoin algorithm bitcoin demo ethereum rotator использование bitcoin дешевеет bitcoin captcha bitcoin особенности ethereum ethereum pos The creation of coins must be limited for the currency to have any value.Prosbitcoin скрипт bitcoin государство bitcoin робот machine bitcoin bitcoin auto bitcoin доллар bitcoin generation bitcoin alliance monero dwarfpool msigna bitcoin
трейдинг bitcoin
tor bitcoin алгоритм ethereum bitcoin statistics bitcoin instant
block bitcoin криптовалюты bitcoin siiz bitcoin bitcoin миллионеры бутерин ethereum tether приложение транзакции bitcoin
генераторы bitcoin сбор bitcoin trezor ethereum xapo bitcoin ethereum usd краны monero joker bitcoin
Once a transaction is confirmed, it is stored on the ledger and protected using cryptography. It cannot be changed or deleted without a consensus (the group agreement), which makes the blockchain unbreakable. Pretty cool, eh?moto bitcoin bitcoin project bitcoin jp
monero logo windows bitcoin стоимость bitcoin bitcoin 100 бумажник bitcoin bitcoin рухнул эфир ethereum 10000 bitcoin monero cpuminer bitcoin scripting кран ethereum bitcoin hacker Other real-time gross settlement systems, such as the FedWire system operated by the Federal Reserve, transacting in Federal Reserve Notes, can be used as a basis for comparison (in terms of overhead costs, security, and flexibility) to the Bitcoin system, which uses bitcoins as the store of value, unit of account, and medium of exchange. Without the prospect of the improvement of the protocol, as compared to banking equivalents, there is little prospect of increasing the price of Bitcoin; in turn, a stagnant price reduces financial incentive for selfish individuals to keep contributing code and advancing the system.Computer or mobile device capable of browsing the internet.bitcoin froggy nanopool ethereum
bitcoin обмена обменники bitcoin joker bitcoin bitcoin multisig safe bitcoin
bitcoin страна bitcoin биржа accepts bitcoin home bitcoin electrum bitcoin bitcoin freebie bitcoin tm gadget bitcoin zcash bitcoin
bitcoin generate poloniex bitcoin количество bitcoin monero cpuminer халява bitcoin forecast bitcoin bitcoin fake cubits bitcoin cryptocurrency bitcoin token ethereum bitcoin 100 cryptocurrency faucet калькулятор bitcoin ethereum solidity mining monero wallet tether monero asic bitcoin script
bitcoin doge bitcoin инструкция bitcoin теория bitcoin обменять краны ethereum будущее bitcoin ico cryptocurrency 999 bitcoin рост bitcoin обмен monero
red bitcoin bitcoin antminer
project ethereum bitcoin journal bitcoin 100 electrodynamic tether ethereum coins
bitcoin футболка fasterclick bitcoin запрет bitcoin bitcoin forex bitcoin коды bitcoin инвестирование bitcoin surf bitcoin safe clicks bitcoin kinolix bitcoin bitcoin iq arbitrage bitcoin bitcoin markets bitcoin london bitcoin generate tether майнинг wmz bitcoin bitcoin pattern bitcoin украина bitcoin сложность история ethereum bitcoin script
бесплатный bitcoin bitcoin payeer ethereum forks сложность ethereum автосборщик bitcoin claim bitcoin
bitcoin calculator future bitcoin fee bitcoin bitcoin rpc ethereum падение bitcoin adress cubits bitcoin instaforex bitcoin pool bitcoin keepkey bitcoin
block bitcoin bitcoin market
bitcoin uk майн bitcoin cryptocurrency bitcoin prune explorer ethereum ethereum mine clame bitcoin ethereum course ethereum io вклады bitcoin facebook bitcoin ethereum dark bitcoin future будущее ethereum wisdom bitcoin алгоритм bitcoin ethereum контракт bitcoin safe cardano cryptocurrency bitcoin проект
платформу ethereum эфир bitcoin ethereum хардфорк ethereum rig bitcoin опционы ethereum crane ethereum график bitcoin заработок bitcoin server bitcoin links обменник tether bitcoin valet bitcoin capitalization книга bitcoin roulette bitcoin bitrix bitcoin рейтинг bitcoin
адрес ethereum bitcoin котировки
3d bitcoin apple bitcoin
продам bitcoin ethereum метрополис blockchain ethereum bitcoin trading bitcoin конвектор bitcoin описание fast bitcoin reward bitcoin cryptocurrency law bitcoin transaction bazar bitcoin bitcoin spinner bitcoin income ethereum dao blogspot bitcoin dice bitcoin ecopayz bitcoin ecdsa bitcoin tether перевод bitcoin play twitter bitcoin bitcoin market bitcoin 2017 eth ethereum bitcoin информация проекта ethereum casinos bitcoin ethereum core bitcoin 1000 bitcoin обвал flex bitcoin кошельки bitcoin лотерея bitcoin система bitcoin tether bitcointalk консультации bitcoin options bitcoin ферма ethereum bitcoin p2p
заработай bitcoin хардфорк monero bitcoin multibit курс ethereum cryptocurrency calendar bitcoin кэш bitcoin майнинг bitcoin mt5 bitcoin перспективы
rocket bitcoin bitcoin coins bitcoin xpub bitcoin бесплатно dogecoin bitcoin Because Ethereum is programmable, developers can shape ETH in countless ways.Blockchains are an extremely novel technology, and cryptocurrencies based on blockchain technology do have a lot of reputable applications as a means of global exchange and store of value. The technology itself is open source, though, so the only value that individual coins have is their network effect, which includes how well-designed the coin is. Bitcoin was the first one, and is beautifully designed.phoenix bitcoin eth ethereum
xmr monero bitcoin de kupit bitcoin ethereum buy
bitcoin etf ethereum contract KEY TAKEAWAYSинструкция bitcoin bitcoin protocol bitcoin coinwarz проекты bitcoin
ethereum бесплатно ethereum rig особенности ethereum bitcoin protocol the ethereum
tokens ethereum vpn bitcoin протокол bitcoin bitcoin grant bitcoin мавроди bitcoin доходность bitcoin hacker bitcoin login bitcoin капитализация ethereum алгоритм android tether clicker bitcoin android tether
bitcoin покер service bitcoin
explorer ethereum bitcoin проблемы bitcoin 15 ethereum биржа
collector bitcoin bitcoin google bitcoin black ethereum core ico bitcoin bitcoin cudaminer The Bottom Linebitcoin segwit2x (A general note: according to the Bitcoin Foundation, the word 'Bitcoin' is capitalized when it refers to the cryptocurrency as an entity, and it is given as 'bitcoin' when it refers to a quantity of the currency or the units themselves. Bitcoin is also abbreviated as 'BTC.' Throughout this article, we will alternate between these usages.)кошель bitcoin planet bitcoin
bitcoin neteller
ethereum обменять coingecko ethereum solidity ethereum alpha bitcoin blockchain ethereum plus bitcoin
cubits bitcoin бесплатно ethereum json bitcoin bitcoin обменять bitcoin greenaddress Bitcoin is made up of two words, ‘Bit’ %trump2% ‘Coin’. If you cut the information inside computers into smaller pieces, you will find 1s and 0s. These are called bits. You already know about coins.ethereum продать bitcoin регистрации
ethereum charts bitcoin box monero майнить cryptocurrency faucet пожертвование bitcoin bitcoin пополнение bitcoin kran bitcoin кошелька bitcoin эмиссия geth ethereum bitcoin login bitcoin оплатить bitcoin pools bitcoin арбитраж lamborghini bitcoin bitcoin 0 location bitcoin q bitcoin
bitcoin code bitcoin mainer By ADAM BARONE