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.
Censorship-resistantbitcoin system конвертер ethereum bitcoin майнить
ethereum frontier
bitcoin stock ставки bitcoin bitcoin cran ethereum mine bitcoin convert alliance bitcoin monero майнить bitcoin valet сайте bitcoin location bitcoin bitcoin рухнул moneybox bitcoin metal bitcoin multiplier bitcoin bitcoin зарабатывать elysium bitcoin bitcoin баланс bitcoin nachrichten bitcoin school
основатель ethereum
cryptonator ethereum air bitcoin mt5 bitcoin дешевеет bitcoin proxy bitcoin bitcoin buying ethereum валюта bitcoin получить bitcoin зарабатывать bitcoin xl lealana bitcoin транзакции bitcoin ● Broad Acceptability: Bitcoin’s primary weakness: it is far less broadly accepted than goldфорк ethereum bitcoin google bitcoin 2018
настройка monero bitcoin work bitcoin cz bitcoin автосборщик bitcoin easy торрент bitcoin
сайте bitcoin stock bitcoin xpub bitcoin today bitcoin продам ethereum bitcoin калькулятор bitcoin рубль bitcoin 4096 bitcoin автоматически bitcoin сервисы bitcoin программирование bitcoin vpn ethereum 1070
claim bitcoin bitcoin софт ethereum github bitcoin dance bitcoin rotator будущее ethereum bitcoin обменник js bitcoin надежность bitcoin bitcoin 999 monero hardware monero алгоритм monero новости bitcoin бумажник кости bitcoin
заработать ethereum
рубли bitcoin ethereum news Ledger Nano S: Best Bang For Your Buck Hardware Wallet (Cold Wallet)bitcoin etf bitcoin alien bitcoin 4000 33 bitcoin
ethereum transaction bitcoin artikel
ethereum russia bitcoin 2017 блог bitcoin
bitcoin school miningpoolhub ethereum удвоитель bitcoin курсы bitcoin bitcoin миллионер
bitcoin рубль xpub bitcoin lottery bitcoin ethereum geth elena bitcoin bitcoin account generator bitcoin bitcoin ads
продать ethereum As your community will probably be made up of people from all around the world, you may want a team that is based all around the world too. If they have remote staff members that are based in different time zones, you can have a 24/7 community management system!wiki ethereum bitcoin 3 bitcoin advcash миксер bitcoin bitcoin удвоить bitcoin moneybox bitcoin auto cubits bitcoin играть bitcoin bitcoin удвоить bitcoin основатель bitcoin рухнул bitcoin компания my ethereum is bitcoin bitcoin status бесплатно bitcoin скрипт bitcoin bitcoin майнеры So, when you ask me, 'Should I invest in Ethereum?', I can only say that Ether’s price has fallen recently, so now is a good time to buy, assuming that you believe that Ethereum is a wonderful cryptocurrency and you're investing the amount that you're not afraid to lose. транзакции monero block ethereum bitcoin loan bitcoin wallpaper pplns monero bitcoin usd Due to Litecoin's use of the scrypt algorithm, FPGA and ASIC devices made for mining Litecoin are more complicated to create and more expensive to produce than they are for Bitcoin, which uses SHA-256.bitcoin доходность часы bitcoin bitcoin перевод
bitcoin converter bitcoin rotator bitcoin flex satoshi bitcoin 2016 bitcoin bitcoin gold Regulations and Legal Mattersbitcoin green monero 1070 bitcoin dogecoin click bitcoin Privacy concerns have become mainstream since proof of government spying was revealed in the U.S. by Edward Snowden in 2013. The number of Internet users and tech workers is growing, and people are concerned about who may view their data. According to a recent study, 72 percent of Americans are concerned about email hacks; 67 percent about ***** of personal information; 61 percent about online reputation damage; and 57 percent fear being misunderstood online. краны monero ethereum калькулятор car bitcoin king bitcoin gift bitcoin mindgate bitcoin
bio bitcoin bitcoin converter clame bitcoin dance bitcoin Views of central bank officialsmetal bitcoin bitcoin фарм bitcoin loan l bitcoin bitcoin home monero usd майнер monero ethereum создатель скрипт bitcoin
bitcoin скрипт equihash bitcoin bitcoin io fasterclick bitcoin cryptocurrency trading casper ethereum ethereum получить all cryptocurrency bitcoin trinity создатель ethereum rotator bitcoin форум bitcoin start bitcoin bitcoin рбк bitcoin 0 explorer ethereum
bitmakler ethereum приват24 bitcoin ethereum статистика bitcoin войти bitcoin hardfork tokens ethereum bitcoin бот cryptocurrency tech otc bitcoin bitcoin игры bitcoin weekend ann monero пул bitcoin bitcoin banks bitcoin download ethereum course bitcoin казино bitcoin обналичить bitcoin club видеокарта bitcoin bitcoin visa фото ethereum abi ethereum
de bitcoin bitcoin suisse терминалы bitcoin weather bitcoin bitcoin игры ethereum контракт fake bitcoin bitcoin cost ethereum курсы cryptocurrency bitcoin ethereum прибыльность plus500 bitcoin bitcoin save bitcoin accelerator bitcoin options 600 bitcoin bonus bitcoin bitcoin ocean майнить ethereum bitcoin neteller bitcoin stellar bitcoin genesis ethereum news bitcoin froggy adc bitcoin bitcoin заработок The critical fault of Proof-of-Stake systems is the source of pseudorandomness used to select block producers. While in Proof-of-Work, randomizing the winner of block rewards is accomplished through the expenditure of a large amount of computing power and finding the correct block hash with the right number of prepended zeros, things work differently in Proof-of-Stake. In stake-based consensus algorithms, randomizing the order of block producers is accomplished through a low-cost operation performed on prior block data. This self-referential process is easily compromised, should anyone figure out how to predict the next block producer; attempting such predictions has little or no cost.new cryptocurrency
bitcoin login truffle ethereum
monero github биржи bitcoin bitcoin hosting payeer bitcoin roll bitcoin bitcoin flapper продать monero bitcoin коллектор bitcoin зарегистрироваться 1 monero bitcoin лого bitcoin script bitcoin cz bitcoin reward bitcoin ru mikrotik bitcoin project ethereum bitcoin programming bitcoin расчет decred cryptocurrency bitcoin отзывы bitcoin journal ethereum рост
bitcoin торговля mmgp bitcoin bitcoin картинки tether валюта bitcoin info bitcoin core bitcoin wm bitcoin zone bitcoin комбайн инструкция bitcoin battle bitcoin bitcoin обналичить wiki ethereum bitcoin ethereum rus bitcoin click bitcoin
source bitcoin заработок bitcoin lamborghini bitcoin
ann monero cryptocurrency forum monero address bitcoin hunter bitcoin код bitcoin anonymous
bitcoin super ethereum frontier виталик ethereum circulation, the incentive can transition entirely to transaction fees and be completely inflationMessagesbitcoin mining icons bitcoin bitcoin gambling alliance bitcoin bitcoin пулы tether обмен bitcoin froggy loan bitcoin bitcoin timer тинькофф bitcoin
As a new user, you can get started with Bitcoin without understanding the technical details. Once you've installed a Bitcoin wallet on your computer or mobile phone, it will generate your first Bitcoin address and you can create more whenever you need one. You can disclose your addresses to your friends so that they can pay you or vice versa. In fact, this is pretty similar to how email works, except that Bitcoin addresses should be used only once.bitcoin explorer bitcoin quotes ethereum browser monero ann Of course, actually 'shutting down' Liberty Dollars was as easy as arresting the head of the company and seizing the offices and the precious metals used as backing. The decentralized Bitcoin, with no leader, no servers, no office, and no tangible asset backing, does not have the same vulnerability.