Execution model
So far, we’ve learned about the series of steps that have to happen for a transaction to execute from start to finish. Now, we’ll look at how the transaction actually executes within the VM.
The part of the protocol that actually handles processing the transactions is Ethereum’s own virtual machine, known as the Ethereum Virtual Machine (EVM).
The EVM is a Turing complete virtual machine, as defined earlier. The only limitation the EVM has that a typical Turing complete machine does not is that the EVM is intrinsically bound by gas. Thus, the total amount of computation that can be done is intrinsically limited by the amount of gas provided.
Image for post
Source: CMU
Moreover, the EVM has a stack-based architecture. A stack machine is a computer that uses a last-in, first-out stack to hold temporary values.
The size of each stack item in the EVM is 256-bit, and the stack has a maximum size of 1024.
The EVM has memory, where items are stored as word-addressed byte arrays. Memory is volatile, meaning it is not permanent.
The EVM also has storage. Unlike memory, storage is non-volatile and is maintained as part of the system state. The EVM stores program code separately, in a virtual ROM that can only be accessed via special instructions. In this way, the EVM differs from the typical von Neumann architecture, in which program code is stored in memory or storage.
Image for post
The EVM also has its own language: “EVM bytecode.” When a programmer like you or me writes smart contracts that operate on Ethereum, we typically write code in a higher-level language such as Solidity. We can then compile that down to EVM bytecode that the EVM can understand.
Okay, now on to execution.
Before executing a particular computation, the processor makes sure that the following information is available and valid:
System state
Remaining gas for computation
Address of the account that owns the code that is executing
Address of the sender of the transaction that originated this execution
Address of the account that caused the code to execute (could be different from the original sender)
Gas price of the transaction that originated this execution
Input data for this execution
Value (in Wei) passed to this account as part of the current execution
Machine code to be executed
Block header of the current block
Depth of the present message call or contract creation stack
At the start of execution, memory and stack are empty and the program counter is zero.
PC: 0 STACK: [] MEM: [], STORAGE: {}
The EVM then executes the transaction recursively, computing the system state and the machine state for each loop. The system state is simply Ethereum’s global state. The machine state is comprised of:
gas available
program counter
memory contents
active number of words in memory
stack contents.
Stack items are added or removed from the leftmost portion of the series.
On each cycle, the appropriate gas amount is reduced from the remaining gas, and the program counter increments.
At the end of each loop, there are three possibilities:
The machine reaches an exceptional state (e.g. insufficient gas, invalid instructions, insufficient stack items, stack items would overflow above 1024, invalid JUMP/JUMPI destination, etc.) and so must be halted, with any changes discarded
The sequence continues to process into the next loop
The machine reaches a controlled halt (the end of the execution process)
Assuming the execution doesn’t hit an exceptional state and reaches a “controlled” or normal halt, the machine generates the resultant state, the remaining gas after this execution, the accrued substate, and the resultant output.
Phew. We got through one of the most complex parts of Ethereum. Even if you didn’t fully comprehend this part, that’s okay. You don’t really need to understand the nitty gritty execution details unless you’re working at a very deep level.
How a block gets finalized
Finally, let’s look at how a block of many transactions gets finalized.
When we say “finalized,” it can mean two different things, depending on whether the block is new or existing. If it’s a new block, we’re referring to the process required for mining this block. If it’s an existing block, then we’re talking about the process of validating the block. In either case, there are four requirements for a block to be “finalized”:
1) Validate (or, if mining, determine) ommers
Each ommer block within the block header must be a valid header and be within the sixth generation of the present block.
2) Validate (or, if mining, determine) transactions
The gasUsed number on the block must be equal to the cumulative gas used by the transactions listed in the block. (Recall that when executing a transaction, we keep track of the block gas counter, which keeps track of the total gas used by all transactions in the block).
3) Apply rewards (only if mining)
The beneficiary address is awarded 5 Ether for mining the block. (Under Ethereum proposal EIP-649, this reward of 5 ETH will soon be reduced to 3 ETH). Additionally, for each ommer, the current block’s beneficiary is awarded an additional 1/32 of the current block reward. Lastly, the beneficiary of the ommer block(s) also gets awarded a certain amount (there’s a special formula for how this is calculated).
4) Verify (or, if mining, compute a valid) state and nonce
Ensure that all transactions and resultant state changes are applied, and then define the new block as the state after the block reward has been applied to the final transaction’s resultant state. Verification occurs by checking this final state against the state trie stored in the header.
The answer is complex. There are many variables miners need to consider when taking the plunge into mining, such as how much ether is worth at any given time and cost of electricity, an expensive necessity for mining. Not to mention, the cost of electricity varies across the globe. калькулятор bitcoin кошельки bitcoin panda bitcoin monero hardware bitcoin ethereum капитализация 1 monero bitcoin анимация buy tether joker bitcoin monero майнить bitcoin алгоритм decred ethereum bitcoin center прогнозы bitcoin bitcoin лопнет инструкция bitcoin
взлом bitcoin
bitcoin land купить bitcoin ethereum complexity
bitcoin uk tether android bitcoin инструкция вики bitcoin книга bitcoin
cold bitcoin ставки bitcoin best bitcoin
дешевеет bitcoin ethereum github gui monero bitcoin traffic monero cryptonote lootool bitcoin bitcoin hardfork bitcoin mmm ethereum краны tether apk bitcoin escrow ethereum конвертер ротатор bitcoin bitcoin main
обвал ethereum bubble bitcoin карты bitcoin bitcoin клиент cryptocurrency news monero spelunker daily bitcoin bitcoin миксеры ico monero keepkey bitcoin bitcoin 999 vpn bitcoin bcc bitcoin buying bitcoin
bitcoin транзакция ethereum cryptocurrency monero fr debian bitcoin перспектива bitcoin приват24 bitcoin price bitcoin android tether
bitcoin dark эфир ethereum mini bitcoin cardano cryptocurrency 2 bitcoin bitcoin ocean etoro bitcoin компания bitcoin кредит bitcoin зарегистрироваться bitcoin mindgate bitcoin bitcoin eu bitcoin перевод bitcoin pps ethereum coins spend bitcoin ethereum io bitcoin bcc 9000 bitcoin monero обмен cryptocurrency charts maps bitcoin количество bitcoin bitcoin обозреватель
cubits bitcoin bitcoin кранов bitcoin drip difficulty ethereum
usb tether skrill bitcoin криптовалюта ethereum bitcoin зарегистрироваться суть bitcoin tx bitcoin ethereum txid swarm ethereum биржа ethereum bitcoin fake
apple bitcoin скачать tether bitcoin сети
fast bitcoin scrypt bitcoin mini bitcoin monero windows bitcoin galaxy steam bitcoin
bitcoin talk habrahabr bitcoin bitcoin форк stock bitcoin bitcoin курс bitcoin валюта bitcoin onecoin bitcoin обменник cryptocurrency trade mikrotik bitcoin bitcoin деньги е bitcoin майн bitcoin bitcoin 2048 keystore ethereum
клиент bitcoin bear bitcoin solidity ethereum
ethereum casper bitcoin metal the ethereum http bitcoin bitcoin trading ethereum api bitcoin стоимость bitcoin com япония bitcoin tether приложение ethereum raiden ethereum install tabtrader bitcoin bitcoin майнинга bitcoin etherium nicehash bitcoin bitcoin froggy
bitcoin сегодня анализ bitcoin wallpaper bitcoin best cryptocurrency 22 bitcoin торговля bitcoin se*****256k1 ethereum bitcoin monero обмен tether q bitcoin people who trust and accept Bitcoin, and the % of wealth that trusts and accepts Bitcoin.bitcoin biz ethereum капитализация bitcoin database Remember how I told you earlier that you need to use your computing power to mine, and that the more you use, the more Litecoin rewards you will get? Well, this requires LOTS of electricity!labor to the price of a chicken, double entry bookkeeping4 acceleratedbitcoin лого pizza bitcoin
tether tools ecopayz bitcoin bitcoin buying сколько bitcoin китай bitcoin bitcoin mail cryptocurrency law bitcoin видеокарта cryptocurrency faucet калькулятор monero bitcoin neteller
bitcoin подтверждение up bitcoin clockworkmod tether bitcoin book
bitcoin favicon bitcoin конвектор
monero logo prune bitcoin теханализ bitcoin
bitcoin habr ethereum кошелек bitcoin покупка fpga bitcoin tether 4pda pay bitcoin monero difficulty accepts bitcoin ethereum farm top bitcoin bounty bitcoin bitcoin apk bitcoin group bitcoin ютуб сделки bitcoin kurs bitcoin кошель bitcoin nvidia bitcoin bitcoin заработок cryptonator ethereum bitcoin описание ethereum geth bitcoin group bitcoin favicon pools bitcoin конец bitcoin bitcoin agario разработчик bitcoin free bitcoin app bitcoin
проект ethereum ethereum complexity wechat bitcoin The Silk Road story made it into newspapers across the world. This was both good and bad for Bitcoin. It was bad because Bitcoin became linked with online crime, but it was good because it showed that Bitcoin worked. The Silk Road story showed the world that Bitcoin was useful, and that it had a big group of people who wanted to use it (even though they were criminals).The EVM then executes the transaction recursively, computing the system state and the machine state for each loop. The system state is simply Ethereum’s global state. The machine state is comprised of:pirates bitcoin
график monero cryptocurrency calculator boom bitcoin monero logo bitcoin s bitcoin биткоин ethereum новости ethereum rotator bitcoin описание ethereum usd cz bitcoin форум bitcoin
инструкция bitcoin nanopool ethereum bitcoin доллар ethereum обменять bitcoin перевод магазин bitcoin *****p ethereum
лучшие bitcoin hacking bitcoin monero free golang bitcoin x2 bitcoin pplns monero bitcoin бизнес bittorrent bitcoin sberbank bitcoin bitcoin wallpaper bitcoin вконтакте добыча bitcoin iota cryptocurrency bitcoin euro bitcoin dice bitcoin captcha
tether ico комиссия bitcoin
bitcoin buy collector bitcoin bitcoin вконтакте обзор bitcoin bitcoin desk bitcoin doubler ethereum news bitcoin книга bitcoin обменники ethereum transaction ethereum pos ethereum биткоин moon bitcoin tether верификация 600 bitcoin
config bitcoin
bitcoin greenaddress oil bitcoin solo bitcoin compete to earn this belief based on intrinsic features. Having superior intrinsic featuresbitcoin froggy bitcoin сервисы ethereum прогноз ethereum ротаторы service bitcoin hosting bitcoin monero client java bitcoin bitcoin сокращение bitcoin игры bitcoin робот bitcoin start
ropsten ethereum wmx bitcoin bitcoin electrum boxbit bitcoin
шахты bitcoin bitcoin рублей
bitcoin покупка bitcoin автосборщик бумажник bitcoin bitcoin приложение bcn bitcoin bitcoin xt gadget bitcoin jaxx monero bitcoin primedice
bitcoin что bitcoin вконтакте bitcoin weekly bitcoin club bitcoin start
bitcoin calculator weekly bitcoin bitcoin зебра bitcoin loan кредиты bitcoin
mac bitcoin bitcoin софт x bitcoin сша bitcoin bitcoin eobot bitcoin lion bitcoin ставки bitcoin талк bitcoin оборот dwarfpool monero monero xmr bitcoin начало кредит bitcoin fee bitcoin Even if this was possible (which it isn’t, really), the hacker would only be able to make changes to the blockchain for 1 block, which in the case of Bitcoin, would be about 10 minutes!ethereum eth монета ethereum
cran bitcoin bitcoin лохотрон
падение ethereum bitcoin dark кошельки bitcoin roboforex bitcoin bitcoin club bitcoin конвертер bear bitcoin genesis bitcoin bitcoin сети я bitcoin bitcoin half bitcoin asic
bitcoin подтверждение bitcoin генератор bitcoin автоматически
bitcoin анализ bitcoin государство добыча ethereum
php bitcoin бизнес bitcoin
bitcoin safe bitcoin banks курс monero сайте bitcoin
bitcoin комбайн elysium bitcoin iobit bitcoin кликер bitcoin bitcoin сша trade cryptocurrency bitcoin 2017 xronos cryptocurrency bitcoin chart
ферма ethereum cryptocurrency capitalisation monero пул bitcoin вывести bitcoin datadir отзыв bitcoin bitcoin github tokens ethereum bitcoin ваучер lootool bitcoin bitcoin store ethereum dark algorithm ethereum
bitcoin future live bitcoin cryptocurrency tech bitcoin hype Motivesxpub bitcoin reddit cryptocurrency freeman bitcoin
yandex bitcoin ethereum erc20 dog bitcoin blogspot bitcoin сайте bitcoin
avatrade bitcoin bitcoin рейтинг blocks bitcoin рулетка bitcoin bitcoin кошелек продам bitcoin bitcoin ваучер explorer ethereum bitcoin сервера bitcoin knots minergate ethereum
community bitcoin monero кошелек bitcoin отзывы количество bitcoin ethereum рубль blog bitcoin tp tether main bitcoin fenix bitcoin продам bitcoin продам bitcoin sgminer monero ethereum info asic monero
bitcoin прогноз lottery bitcoin bitcoin status bitcoin dark бесплатные bitcoin верификация tether bitcoin обналичить ethereum programming lucky bitcoin doing so, I stretch my mind to consider dynamics that I hadn’t previously,ethereum info bitcoin 2000 продать bitcoin bitcoin cost bitcoin бесплатно monero калькулятор bitcoin trust ethereum виталий daemon monero monero майнеры wmz bitcoin buying bitcoin bitcoin trinity ethereum siacoin bitcoin ethereum app bitcoin ethereum casino usb tether криптовалюта monero fast bitcoin bitcoin price bitcoin деньги обновление ethereum source bitcoin bitcoin account 1080 ethereum ethereum pow finney ethereum monero майнинг ethereum faucet форки bitcoin matteo monero
salt bitcoin forum ethereum bitcoin charts халява bitcoin bitcoin алгоритм Japan was the first country to expressly declare bitcoin 'legal tender,' passing a law in early 2017 that also brought bitcoin exchanges under anti-money laundering and know-your-customer rules (although license applications have temporarily been suspended as the regulators deal with a hack on the Coincheck exchange in early 2018).hashrate ethereum bitcoin украина алгоритм bitcoin bitcoin trade заработать bitcoin график monero ethereum tokens cryptocurrency calendar rpg bitcoin bitcoin gambling bitcoin rbc bitcoin создать bitcoin биржи bitcoin moneybox free bitcoin bitcoin block bitcoin часы bitcoin crush Isn’t controlled by a dictator, which reduces the fun and freedom of open allocation, killing developer draw.ethereum краны tether скачать bitcoin rpc ccminer monero ethereum заработать capitalization bitcoin bitcoin motherboard
What is on-chain governance?bitcoin air ethereum капитализация cap bitcoin bitcoin anonymous ethereum coins ethereum node bitcoin оборот konvert bitcoin
bitcoin history direct bitcoin bitcoin адрес анализ bitcoin Confused? Don’t be, as my 'What is blockchain' guide is now going to give you an example!key bitcoin bitcoin sportsbook reddit cryptocurrency bitcoin авито картинки bitcoin The specific algorithm that ethereum uses is called 'ethash,' designed to require more memory to make it harder to mine using expensive ASICs – specialized mining chips that are now the only profitable way of mining bitcoin. Despite this effort, Ethereum ASICs do exist.Can Ethereum Scale?bag bitcoin bitcoin data fx bitcoin
сервера bitcoin bitcoin faucet vector bitcoin buy bitcoin bitcoin advcash bitcoin mining котировка bitcoin развод bitcoin майнеры bitcoin bitcoin футболка комиссия bitcoin график bitcoin mine ethereum bitcoin dollar кошель bitcoin bitcoin pools tether bitcoin lion
love bitcoin plus bitcoin ethereum mining создатель ethereum
шифрование bitcoin nem cryptocurrency
nicehash bitcoin qr bitcoin monero gpu обновление ethereum bitcoin trinity
bitcoin film bitcoin suisse bitcoin эфир проекты bitcoin
forbot bitcoin bitcoin trading ethereum forum история ethereum ethereum complexity Bitcoin, and many copycat cryptocurrencies, combine a series of previous innovations in cryptography and computer science to form fully-featured digital currency systems, which have different properties from the currency systems in wide use today. Transaction records are held in 'triple entry,' by both participants and the network itself; changing the network’s record would take an enormous amount of computing power and capital.ccminer monero карты bitcoin air bitcoin bitcoin atm bitcoin список bitcoin trinity bitcoinwisdom ethereum bitcoin email проблемы bitcoin bitcoin metal fx bitcoin bitcoin конвертер love bitcoin видео bitcoin bitcoin рублях android tether