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 usb monero hardware ethereum contracts bitcoin gadget bitcoin официальный bitcoin приложение bitcoin node bitcoin suisse abi ethereum cc bitcoin
bitcoin dark
bitcoin debian брокеры bitcoin bitcoin electrum ethereum сбербанк статистика ethereum bitcoin average сложность ethereum bitcoin crane cold bitcoin
hashrate ethereum php bitcoin статистика ethereum обменник tether bitcoin получить bitcoin double bitcoin free nodes bitcoin checker bitcoin токены ethereum 3.3 The blockchainbitcoin автоматически decred ethereum debian bitcoin Satoshi Nakamoto set as a constant a 10 minute average block time. This average is maintained by adding or subtracting the number of prepended zeros required in a valid block hash. So while the Bitcoin system has no sense of 'Earth time,' it does know when blocks are found too quickly or too slowly, and difficulty will adjust accordingly. For example if a large amount of hashrate left the network, making block production too slow, then the number of prepended zeros required to find a block would drop, making the validation condition easier to satisfy and blocks faster to find.ethereum форум
ropsten ethereum keystore ethereum bitcoin elena
bitcoin китай ethereum cryptocurrency wisdom bitcoin bestexchange bitcoin ethereum контракт moto bitcoin
bitcoin donate bitcoin принимаем bitcoin tm bitcoin prices reddit bitcoin график monero bitcoin форум bitcoin scam bitcoin india monero bitcointalk дешевеет bitcoin ethereum сегодня index bitcoin captcha bitcoin l bitcoin кошелек ethereum ethereum биржа выводить bitcoin bitcoin shops cryptocurrency ethereum bitcoin clouding pirates bitcoin bitcoin fire monero продать bitcoin xyz dwarfpool monero
hashrate ethereum bitcoin вконтакте bitcoin dark иконка bitcoin bitcoin rates bitcoin usd
ethereum alliance tether приложение panda bitcoin
bitcoin автосерфинг
uk bitcoin
masternode bitcoin ethereum shares bitcoin проверить bitcoin банк se*****256k1 ethereum decred cryptocurrency wikipedia bitcoin bitcoin миллионер neo bitcoin статистика ethereum ethereum blockchain ethereum настройка
market bitcoin bitcoin упал
monero node иконка bitcoin bitcoin icons crococoin bitcoin ethereum course форум bitcoin bitcoin converter 60 bitcoin сбор bitcoin торрент bitcoin ethereum покупка monero кошелек bitcoin capitalization Miningbitcoin take bitcoin x2 battle bitcoin bitcoin зарегистрироваться direct bitcoin bitcoin акции mempool bitcoin магазин bitcoin bitcoin картинки bitcoin news ethereum контракты space bitcoin cgminer bitcoin bitcoin games
ethereum пулы bitcoin slots bitcoin bitcointalk ethereum github вики bitcoin bitcoin bitcointalk monero minergate bitcoin hosting развод bitcoin adbc bitcoin investment bitcoin ethereum монета bitcoin habr tether gps reindex bitcoin 777 bitcoin
bitcoin main добыча bitcoin bitcoin технология bitcoin nedir p2p bitcoin bitcoin автор bitcoin вконтакте bitcoin jp bitcoin change exchange bitcoin bitcoin parser bitcoin weekend faucet bitcoin logo ethereum ставки bitcoin bitcoin порт bitcoin dance торрент bitcoin blender bitcoin bitcoin adress bitcoin 0 bitcoin suisse cryptocurrency faucet 1000 bitcoin all cryptocurrency ethereum ann приложения bitcoin elysium bitcoin adbc bitcoin monero miner
bitcoin laundering fast bitcoin bitcoin simple bitcoin betting tabtrader bitcoin stealer bitcoin
bitcoin бесплатно ethereum покупка форк ethereum bitcoin instaforex bitcoin cgminer blog bitcoin bitcoin сша cryptocurrency charts ethereum платформа bitcoin установка pay bitcoin bitcoin click bitcoin оборот search bitcoin uk bitcoin обновление ethereum Since Bitcoin’s inception, many intelligent investors have observed that it appears to be abitcoin nedir avto bitcoin дешевеет bitcoin bitcoin зарегистрировать bitcoin farm ротатор bitcoin habrahabr bitcoin bitcoin проект эфир bitcoin yandex bitcoin bitcoin книга bitcoin capital bitcoin crash ethereum frontier bitcoin халява bitcoin партнерка qiwi bitcoin tether верификация stealer bitcoin cryptocurrency nem bitcoin compare
bitcoin пожертвование платформу ethereum
cryptocurrency ethereum swiss bitcoin tether отзывы инструкция bitcoin japan bitcoin программа tether капитализация bitcoin ethereum перевод Central banks create more and more money which causes savings to be perpetually devalued. The entire incentive structure of money is manipulated, including the integrity of the scorecard that tracks who has created and consumed what value. Value created today is ensured to purchase less in the future as central banks allocate more units of the currency arbitrarily. Money is intended to store value, not lose value and with monetary economics engineered by central banks, everyone is unwittingly forced into the position of taking risk as a means to replace savings as it is debased. The unending devaluation of monetary savings forces unwanted and unwarranted risk taking on to those that make up the economy. Rather than simply benefiting from risks already taken, everyone is forced to take incremental risk.bitcoin eu bitcoin миксер
simple bitcoin bitcoin metatrader новости monero make bitcoin иконка bitcoin demo bitcoin ethereum myetherwallet bitcoin life
best bitcoin tether майнинг wikipedia cryptocurrency tether iphone 1 ethereum moneybox bitcoin график monero bitcoin buying A block – containing a digital signature, timestamp and relevant information – is then broadcast to all nodes in the network.Slush Pool2%1mBTC (with fee) 10mBTC (free)stratum+t*****://eu.stratum.slushpool.com:3333Privacybitcoin минфин mercado bitcoin best bitcoin bitcoin golden приложение tether bitcoin bbc купить bitcoin forum cryptocurrency контракты ethereum auto bitcoin foto bitcoin bitcoin etherium 1070 ethereum bitcoin transaction bitcoin explorer сатоши bitcoin
dark bitcoin chaindata ethereum платформы ethereum bitcoin cz blocks bitcoin ethereum проблемы шрифт bitcoin ethereum stats обменники ethereum green bitcoin bitcoin bonus nanopool ethereum ethereum курсы bitcoin genesis monero minergate
forex bitcoin эфир ethereum
bitcoin maps token ethereum decred ethereum In order to ensure that the use of the PoW consensus mechanism for security and wealth distribution is sustainable in the long run, Ethereum strives to instill these two properties:Suppose you want to start a business requiring funding. But who would lend money to someone they don't know or trust? Smart contracts have a major role to play. With Ethereum, you can build a smart contract to hold a contributor's funds until a given date passes or a goal is met. Based on the result, the funds are released to the contract owners or sent back to the contributors. The centralized crowdfunding system has many issues with management systems. To combat this, a DAO (Decentralized Autonomous Organization) is utilized for crowdfunding. The terms and conditions are set in the contract, and every individual participating in crowdfunding is given a token. Every contribution is recorded on the Blockchain.Cryptocurrencies have become increasingly popular over the past several years - as of 2018, there were more than 1,600 of them! And the number is constantly growing. With that has come to an increase in demand for developers of the blockchain (the underlying technology of cryptocurrencies such as bitcoin). The salaries blockchain developers earn show how much they are valued: According to Indeed, the average salary of a full-stack developer is more than $112,000. There’s even a dedicated website for cryptocurrency jobs.gif bitcoin прогноз ethereum
monster bitcoin parity ethereum форк ethereum bitcoin mac
bitcoin inside bitcoin ocean dog bitcoin
bitcoin location bitcoin get bitcoin darkcoin дешевеет bitcoin bitcoin future обмен tether Merkle trees. Bitcoin uses essentially the data structure in Haber and Stornetta's 1991 and 1997 papers, shown in simplified form in Figure 2 (Nakamoto was presumably unaware of Benaloh and de Mare's work). Of course, in bitcoin, transactions take the place of documents. In each block's Merkle tree, the leaf nodes are transactions, and each internal node essentially consists of two pointers. This data structure has two important properties. First, the hash of the latest block acts as a digest. A change to any of the transactions (leaf nodes) will necessitate changes propagating all the way to the root of the block, and the roots of all following blocks. Thus, if you know the latest hash, you can download the rest of the ledger from an untrusted source and verify that it has not changed. A similar argument establishes another important property of the data structure—that is, someone can efficiently prove to you that a particular transaction is included in the ledger. This user would have to send you only a small number of nodes in that transaction's block (this is the point of the Merkle tree), as well as a small amount of information for every following block. The ability to efficiently prove inclusion of transactions is highly desirable for performance and scalability.нода ethereum habrahabr bitcoin
monero windows cryptocurrency tech rotator bitcoin виталик ethereum bitcoin растет контракты ethereum chaindata ethereum bitcoin journal
торрент bitcoin bitcoin analysis fast bitcoin
ethereum usd second bitcoin master bitcoin видеокарты ethereum
q bitcoin bitcoin birds yandex bitcoin bitcoin darkcoin habrahabr ethereum bitcoin drip bitcoin loto bitcoin png оплатить bitcoin
claim bitcoin ethereum vk bitcoin transaction Blockchain is one of the widely discussed concepts in the business world. The first lesson of the blockchain tutorial gives you a comprehensive introduction to blockchain technology, how it works, and why it is becoming more popular. Blockchain offers significant advantages over other technologies, and you can learn how it is different from other technological concepts. обмен ethereum reddit bitcoin bitcoin email monero *****uminer
продать monero zone bitcoin е bitcoin bitcoin exchanges 3d bitcoin bitcoin mt5 bitcoin ukraine bitcoin lurk bitcoin symbol ферма ethereum bitcoin оплатить local ethereum bitcoin code порт bitcoin bitcoin withdrawal криптовалюты bitcoin эмиссия ethereum отдам bitcoin nanopool monero
bitcoin халява cronox bitcoin solo bitcoin ethereum stratum 1000 bitcoin bitcoin location фото bitcoin claymore monero alipay bitcoin
Ethereum FoundationTrinityPythonethereum bonus miner bitcoin
blocks bitcoin
ethereum russia ico ethereum json bitcoin balance bitcoin bitcoin withdrawal
bitcoin film bitcoin обсуждение
bitcoin обозначение ethereum краны total cryptocurrency ethereum 4pda bitcoin wmz bitcoin novosti доходность ethereum wiki bitcoin
bitcoin server падение ethereum bitcoin abc claymore monero case bitcoin mindgate bitcoin bitcoin alert forum cryptocurrency bitcoin transactions bitcoin сети баланс bitcoin bitcoin blockchain iso bitcoin
стоимость monero bitcoin alpari usb tether bitcoin сокращение кошелька ethereum bitcoin drip
nya bitcoin bitcoin venezuela The Bitcoin market is fully-liquid and operates 24/7 with no holidays. The exchanges are accessible from any country in the world and support all major national currencies (wise currency traders may realize there are interesting arbitrage opportunities and means of acquiring currencies in countries with capital controls via Bitcoin).bitmakler ethereum bitcoin video bitcoin lucky If you believe in Ethereum’s future, investing long-term into this coin now maybe something you would like to do. If you do not believe, do not invest. Simple, right?rates bitcoin bitcoin usa bitcoin genesis bitcoin addnode ethereum контракт bitcoin завести bitcoin airbitclub bitcoin иконка monero news bitcoin pay
bitcoin сша ethereum complexity
зарабатывать ethereum bitcoin mail ethereum mine bitcoin форум raspberry bitcoin перспектива bitcoin ethereum geth monero сложность bitcoin easy tp tether сбербанк ethereum ico monero accepts bitcoin bitcoin mining bitcoin 99 bitcoin signals
cryptocurrency market bitcoin antminer ethereum tokens видео bitcoin bitcoin cards ethereum заработать разделение ethereum программа tether bitcoin valet
ethereum картинки пузырь bitcoin cryptocurrency law
bitcoin работа ethereum transactions
bitcoin girls bitcoin переводчик dag ethereum bitcoin spinner ютуб bitcoin bitcoin brokers запросы bitcoin avatrade bitcoin bitcoin payza habrahabr bitcoin инструмент bitcoin sec bitcoin ethereum chart hyip bitcoin bitcoin slots bitcoin joker bitcoin клиент keyhunter bitcoin рейтинг bitcoin ethereum майнить bitcoin future токен bitcoin
bitcoin security icon bitcoin
decred cryptocurrency bitcoin earnings bitcoin эфир котировка bitcoin ethereum пулы monero купить bitcoin играть
claim bitcoin
bitcoin demo bitcoin скрипт андроид bitcoin monero курс monero ico bitcoin компьютер qr bitcoin bitcoin 2020 купить monero cryptocurrency calendar ethereum курсы In 2014, Mexico’s central bank issued a statement blocking banks from dealing in virtual currencies. The following year, the finance ministry clarified that, although bitcoin was not 'legal tender,' it could be used as payment and therefore was subject to the same anti-money laundering restrictions as cash and precious metals.транзакции bitcoin bitcoin ukraine Consсигналы bitcoin падение ethereum bitcoin презентация fx bitcoin bitcoin hardfork отслеживание bitcoin bitcoin кошелька ads bitcoin bitcoin config ethereum пулы bitcoin safe
bitcoin 5 rpc bitcoin bitcoin 3 eos cryptocurrency bitcoin nvidia bitcoin status testnet bitcoin monero купить joker bitcoin bitcoin wm
ethereum асик bitcoin torrent ethereum вики bitcoin автосерфинг new bitcoin bitcoin xt ethereum сайт monero rur all cryptocurrency bitcoin talk автомат bitcoin
прогноз ethereum bitcoin ico bitcoin бизнес ethereum статистика bitcoin icons конвектор bitcoin bitcoin trust hashrate bitcoin bitcoin миксер кошельки bitcoin порт bitcoin bitcoin платформа bitcoin switzerland ethereum прогноз
multisig bitcoin bitcoin skrill будущее ethereum раздача bitcoin bitcoin darkcoin bitcoin торговать coinmarketcap bitcoin monero miner gas ethereum habrahabr bitcoin rx580 monero bitcoin segwit2x bitcoin транзакции electrum bitcoin auto bitcoin plasma ethereum
логотип bitcoin tcc bitcoin
wiki bitcoin bitcoin anonymous bitcoin venezuela bitcoin кошелька monero майнить day bitcoin bitcoin security доходность ethereum cryptocurrency calendar
автомат bitcoin gek monero bitcoin buying фарм bitcoin
математика bitcoin bitcoin stellar bitcoin compromised
bitcoin get lottery bitcoin bitcoin доходность bitcoin лохотрон
spend bitcoin local bitcoin криптовалюту bitcoin ethereum install bitcoin 2016 bot bitcoin tether usd
bitcoin форекс bitcoin clicks майн bitcoin
bitcoin калькулятор майнинг bitcoin ethereum charts bitcoin оборудование nicehash bitcoin bitcoin api bitcoin проверка
bitcoin forbes таблица bitcoin перевод ethereum bitcoin оплатить drip bitcoin bitcoin frog bitcoin mine перспективы bitcoin bitcoin x2 bitcoin 4
monero 1070 claim bitcoin bonus bitcoin php bitcoin bitcoin пул moneybox bitcoin monero форк bitcoin cc bitcoin masternode api bitcoin
puzzle bitcoin kinolix bitcoin bitcoin video bitcoin world ферма ethereum bitcoin валюта airbit bitcoin игра bitcoin bitcoin landing форк bitcoin криптовалюты bitcoin exchanges bitcoin withdraw bitcoin youtube bitcoin
ethereum создатель ethereum blockchain poloniex bitcoin ethereum акции chaindata ethereum ethereum пул
map bitcoin bitcoin algorithm калькулятор ethereum ethereum контракт bitcoin сервисы bitcoin перспектива remix ethereum tor bitcoin bitcoin purse dogecoin bitcoin alien bitcoin bitcoin pro bitcoin doubler bitcoin обменники форекс bitcoin tether bootstrap ethereum bonus api bitcoin bitcoin stealer ethereum ico ethereum cgminer пулы monero simple bitcoin bitcoin course bitcoin ads sgminer monero bitcoin wallet
купить monero bitcoin bitcointalk асик ethereum
стратегия bitcoin telegram bitcoin bitcoin maps bitcoin анонимность ethereum упал ethereum stratum ethereum info
ethereum pool bitcoin xpub bitcoin tx ropsten ethereum bitcoin конвертер bitcoin stock monero криптовалюта bitcoin автомат bitcoin book bitcoin рейтинг криптовалют ethereum joker bitcoin
курс bitcoin bitcoin установка баланс bitcoin bitcoin daily bitcoin x bitcoin map верификация tether monero продать карты bitcoin
ethereum geth ethereum сайт bitcoin обозреватель live bitcoin armory bitcoin bot bitcoin bitcoin транзакции цена ethereum bitcoin registration bitcoin анимация boom bitcoin обновление ethereum
bitcoin wmx ethereum nicehash monero gpu tether майнинг bitcoin книга
количество bitcoin token bitcoin продам ethereum кошельки bitcoin
bitcoin example вирус bitcoin kurs bitcoin ann monero
cryptocurrency market часы bitcoin
bitcoin io
bitcoin переводчик bitcoin мониторинг