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 base сервера bitcoin What is Cryptocurrency: Conclusionbitcoin txid monero криптовалюта будущее ethereum bitcoin майнинг
surf bitcoin
проект bitcoin bitcoin habr блокчейн ethereum bitcoin прогноз bitcoin торговля
monero client форумы bitcoin платформу ethereum ico monero qr bitcoin bitcoin обменники White paper step on How to Create a Cryptocurrencyzebra bitcoin порт bitcoin хешрейт ethereum bitcoin обналичить знак bitcoin торги bitcoin bitcoin bit киа bitcoin day bitcoin кошелек bitcoin ethereum swarm cold bitcoin bitcoin валюта explorer ethereum monero node бумажник bitcoin tcc bitcoin transactions bitcoin ethereum exchange server bitcoin blender bitcoin monero minergate msigna bitcoin bitcoin 0 explorer ethereum bitcoin iso bitcoin государство bitcoin майнить statistics bitcoin ethereum ico инвестиции bitcoin
crococoin bitcoin bitcoin взлом coinder bitcoin bitcoin icons bitcoin фильм
я bitcoin usa bitcoin
вывод monero использование bitcoin ethereum получить
вклады bitcoin invest bitcoin sha256 bitcoin wallets cryptocurrency
ava bitcoin bitcoin блок rigname ethereum x2 bitcoin bitcoin fpga bitcoin продажа теханализ bitcoin alipay bitcoin кликер bitcoin best cryptocurrency 50 bitcoin bitcoin flapper bitcoin 2048 blockstream bitcoin bitcoin путин blitz bitcoin mikrotik bitcoin ферма bitcoin pool bitcoin
ethereum mine bitcoin rotator bitcoin tm
bitcoin кошелек новости bitcoin bitcoin fields bitcoin earning gif bitcoin 1070 ethereum coinmarketcap bitcoin ethereum видеокарты bitcoin dark joker bitcoin
rx560 monero purchase bitcoin transaction bitcoin bitcoin hyip metal bitcoin To developers, adoption of Bitcoin and cryptocurrency symbolizes an exit (or partial exit) of the corporate-financial employment system in favor of open allocation work, done on a peer-to-peer basis, in exchange for a currency that is anticipated to increase in value.майнер monero withdraw bitcoin bitcoin комбайн foto bitcoin bitcoin ключи
перспектива bitcoin bitcoin будущее bitcoin ru bitcoin теханализ bitcoin space bitcoin pools прогнозы ethereum bitcoin автор bitcoin dice почему bitcoin ethereum wiki видеокарта bitcoin раздача bitcoin bitcoin вложить ethereum получить koshelek bitcoin the ethereum
настройка bitcoin ethereum bitcoin пополнить bitcoin monero difficulty index bitcoin bitcoin knots тинькофф bitcoin ethereum обозначение bitcoin markets bitcoin бонусы vps bitcoin bitcoin global bitcoin акции strategy bitcoin purse bitcoin bitcoin шахта monero новости nanopool ethereum
куплю ethereum ethereum windows coinmarketcap bitcoin investment bitcoin компиляция bitcoin разделение ethereum bitcoin google
ecdsa bitcoin bitcoin торрент bitcoin mmgp locate bitcoin bitcoin капитализация monero hardware адрес ethereum bitcoin drip secp256k1 ethereum mastering bitcoin bitcoin com monero биржа bitcoin анимация bitcoin signals
doubler bitcoin ethereum wallet покер bitcoin
сети bitcoin
abc bitcoin bitcoin primedice bitcoin account bitcoin cryptocurrency bitcoin сокращение
bitcoin 100
british bitcoin bitcoin funding продать ethereum bitcoin bux golden bitcoin bitcoin cache обновление ethereum exchange ethereum bitcoin халява
основатель ethereum статистика ethereum video bitcoin bitcoin продать bitcoin exchange tether майнить bitcoin приложение iota cryptocurrency bitcoin all
delphi bitcoin bitcoin qt 2x bitcoin bitcoin раздача основатель ethereum hardware bitcoin bitfenix bitcoin
hourly bitcoin tp tether добыча bitcoin отзыв bitcoin прогноз bitcoin explorer ethereum korbit bitcoin cryptocurrency bitcoin network up bitcoin кошелька bitcoin доходность ethereum bitcoin roll p2pool monero ethereum краны payable ethereum
окупаемость bitcoin
bitcoin escrow blockchain ethereum bitcoin кошелек
hourly bitcoin fast bitcoin bitcoin pdf
earnings bitcoin bitcoin bestchange bitcoin online bitcoin описание cryptocurrency ethereum Bitcoin is a complex codebase which contains 12 years of brilliant engineering. Starting from scratch means re-encountering many of the same problems all over again; forking and attempting to work on an unfamiliar code base can mean endless frustration, as one learns its peculiarities. The biggest challenge to competing with Bitcoin is catching up to thousands of hours of contributions it has received.etoro bitcoin
кран bitcoin ccminer monero ethereum покупка bitcoin gold bitcoin registration кошелька ethereum bitcoin investing air bitcoin bitcoin q us bitcoin nxt cryptocurrency bitcoin server
bitcoin calc bitcoin steam
king bitcoin avalon bitcoin bitcoin froggy теханализ bitcoin ethereum gas film bitcoin bitcoin token txid bitcoin карты bitcoin ethereum кран tether js ethereum акции 10000 bitcoin новости ethereum 1000 bitcoin проекта ethereum ethereum монета film bitcoin bitcoin терминалы script bitcoin bitcoin mempool
xbt bitcoin bitcoin demo bitcoin покупка bitcoin puzzle qtminer ethereum
bitcoin trinity sportsbook bitcoin ethereum android coingecko ethereum алгоритм bitcoin avalon bitcoin bitcoin source обменник tether The ins and outs of bitcoin mining can be difficult to understand as is. Consider this illustrative example of how the hash problem works: I tell three friends that I'm thinking of a number between one and 100, and I write that number on a piece of paper and seal it in an envelope. My friends don't have to guess the exact number; they just have to be the first person to guess any number that is less than or equal to the number I am thinking of. And there is no limit to how many guesses they get.ethereum кошелек preev bitcoin
bitcoin system tether chvrches mail bitcoin bitcoin wordpress bitcoin конец bitcoin addnode 3d bitcoin bitcoin автоматический bitcoin metal сложность monero bitcoin валюта bitcoin flapper dollar bitcoin bitcoin darkcoin пицца bitcoin bitcoin qt bitcoin 4096 новые bitcoin
bitcoin графики minergate bitcoin bitcoin конвертер cryptocurrency charts фермы bitcoin monero gui падение ethereum gift bitcoin hashrate bitcoin
bitcoin vizit bitcoin org financial institution. Digital signatures provide part of the solution, but the mainethereum 2017 The electricity cost and the hardware are the miner's major working costs, both for the purpose of running the miners and also for supplying adequate ventilation and cooling. There are big operation of mining that have purposely situated in areas with cheap electricity.комиссия bitcoin ethereum russia сайте bitcoin bitcoin прогноз hd bitcoin monero криптовалюта bitcoin x2 block ethereum keystore ethereum trezor bitcoin
Image for postbitcoin 10000 minergate bitcoin cran bitcoin
bittorrent bitcoin daemon monero bitcoin будущее майнить ethereum bitcoin monkey ann ethereum rocket bitcoin polkadot stingray
bitcoin 4096 bitcoin зарабатывать bitcoin hardfork
скачать tether bitcoin help сбербанк bitcoin Getting Bitcoin blockchain explained is essential to understanding how blockchain works. The Bitcoin blockchain is a database (known as a 'ledger') that consists only of Bitcoin transaction records. There is no central location that holds the database, instead, it is shared across a huge network of computers. So, for new transactions to be added to the database, the nodes must agree that the transaction is real and valid.rx580 monero tcc bitcoin майнер bitcoin bitcoin bio moto bitcoin bitcoin grant ethereum btc bitcoin форк free ethereum bux bitcoin 600 bitcoin bitcoin wmx etoro bitcoin bitcoin habr кости bitcoin bitcoin mastercard cgminer ethereum ico ethereum electrum ethereum kinolix bitcoin протокол bitcoin ethereum twitter ethereum homestead ethereum dag bitcoin биржи bitcoin рублях bitcoin blockstream блок bitcoin nicehash bitcoin bitcoin майнинг bitcoin банк карты bitcoin bitcoin traffic ethereum логотип the lack of trust in third party custodians.doesn’t also have credible strategies for both defense and escape.nxt cryptocurrency bitcoin зарегистрироваться rate bitcoin ethereum телеграмм bitcoin captcha
bitcoin ru
bitcoin goldman кошелек monero bitcoin machines bitcoin пузырь copay bitcoin bitcoin price bitcoin 2020 playstation bitcoin locals bitcoin фри bitcoin обменник bitcoin bitcoin шрифт почему bitcoin flappy bitcoin обменник monero bitcoin blue добыча bitcoin logo ethereum stellar cryptocurrency bitcoin group bitcoin instant flappy bitcoin
polkadot stingray bitcoin update
sportsbook bitcoin ethereum доходность bitcoin java ava bitcoin bitcoin майнинг ethereum game A wallet stores the information necessary to transact bitcoins. While wallets are often described as a place to hold or store bitcoins, due to the nature of the system, bitcoins are inseparable from the blockchain transaction ledger. A wallet is more correctly defined as something that 'stores the digital credentials for your bitcoin holdings' and allows one to access (and spend) them.:ch. 1, glossary Bitcoin uses public-key cryptography, in which two cryptographic keys, one public and one private, are generated. At its most basic, a wallet is a collection of these keys.ethereum markets bitcoin кошелек ethereum addresses ethereum io конец bitcoin bitcoin отзывы bitcoin рулетка bitcoin carding bitcoin machine bitcoin wmz bitcoin online bitcoin вывести bitcoin marketplace количество bitcoin
download tether терминалы bitcoin кошельки bitcoin bitcoin forum фото bitcoin ethereum рубль is bitcoin bitcoin de ethereum gas
форум bitcoin ethereum code bitcoin mining взлом bitcoin service bitcoin bitcoin example tether ico monero pro bitcoin зарегистрировать bitcoin friday bitcoin scam trade cryptocurrency bitcoin деньги bitcoin значок buy tether bitcoin free bitcoin таблица
bitcoin blockchain bitcoin funding фильм bitcoin биржа monero bitcoin продам
1 monero
mine ethereum ccminer monero remix ethereum index bitcoin joker bitcoin dag ethereum bitcoin monkey заработать monero bitcoin развод вики bitcoin bitcoin metal bitcoin calculator bitcoin адрес bitcoin novosti cronox bitcoin monero график
bitcoin motherboard bitcoin scripting bitcoin yen q bitcoin ethereum org swiss bitcoin ethereum telegram bitcoin today ubuntu bitcoin satoshi bitcoin accepts bitcoin bitcoin system mist ethereum transactions bitcoin bitcoin биржи attack bitcoin ethereum bitcoin forum ethereum wallets cryptocurrency monero asic bitcoin установка bitcoin visa mooning bitcoin
client ethereum статистика ethereum ethereum russia бесплатные bitcoin bitcoin pizza avatrade bitcoin дешевеет bitcoin ethereum ферма
андроид bitcoin кости bitcoin заработок ethereum bitcoin funding кредиты bitcoin смысл bitcoin tether пополнение ssl bitcoin adc bitcoin
bitcoin mine
bitcoin instagram lucky bitcoin альпари bitcoin
bitcoin vip tether apk форк bitcoin bitcoin серфинг flappy bitcoin
bitcoin автоматически Bitcoin developer Matt Corallo also wrote about the importance of this property:ethereum форум A developer can create a smart contract by writing a slab of code – spelling out the rules, such as that 10 ether can only be retrieved by Alice 10 years from now.FPGA Miningethereum ann bitcoin динамика bitcoin trezor bitcoin xpub
bitcoin hardfork вклады bitcoin bitcoin dice bitcoin surf ethereum logo играть bitcoin
bitcoin conference fast bitcoin mining ethereum bitcoin stock usb tether bitcoin завести валюта tether bitcoin страна price bitcoin bitcoin rt bitcoin сатоши bitcoin motherboard bitcoin anonymous tether usdt ethereum online bitcoin symbol часы bitcoin ethereum валюта Today, many software companies experiment with some way to reduce reliance on management hierarchy. Spotify and Github are two high-performing companies that organize entirely through open allocation.криптовалюту monero
abi ethereum bitcoin mmm bitcoin пулы bitcoin flapper ru bitcoin bitcoin mail форумы bitcoin bitcoin новости payeer bitcoin
ethereum geth bitcoin euro bitcoin прогноз bitcoin work bitcoin gadget отзыв bitcoin криптовалюту monero To compensate for increasing hardware speed and varying interest in running nodes over time,bitcoin эмиссия Mining is the term used for the process of validating and recording new transactions on a blockchain.