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.
logo bitcoin bitcoin получить bitcoin playstation monero pro konvertor bitcoin vk bitcoin monero 1070 программа tether 1080 ethereum bitcoin xl bitcoin shop cryptocurrency nem bittorrent bitcoin ethereum стоимость bitcoin virus пирамида bitcoin matrix bitcoin windows bitcoin ethereum fork ethereum вывод
бесплатный bitcoin
проблемы bitcoin логотип bitcoin курс ethereum bitcoin electrum ethereum статистика bitcoin motherboard bitcoin fun simplewallet monero bitcoin conf monero simplewallet king bitcoin box bitcoin ethereum transaction ethereum контракты ethereum курсы
bitcoin 2017 bitcoin knots ethereum картинки bitcoin vpn
Here is a slightly more technical description of how mining works. The network of miners, who are scattered across the globe and not bound to each other by personal or professional ties, receives the latest batch of transaction data. They run the data through a cryptographic algorithm that generates a 'hash,' a string of numbers and letters that verifies the information's validity but does not reveal the information itself. (In reality, this ideal vision of decentralized mining is no longer accurate, with industrial-scale mining farms and powerful mining pools forming an oligopoly. More on that below.)1 ethereum 999 bitcoin casinos bitcoin bitcoin приват24 bitcoin fund bitcoin конвектор смесители bitcoin invest bitcoin nya bitcoin nova bitcoin bitcoin kurs Spread betting and CFDs allow you to trade on both rising and falling prices. You don’t have to own litecoin in order to sell it (go short), which is not possible on cryptocurrency exchanges.bitcoin обвал bitcoin биржи bitcoin принимаем bitcoin кошельки tether программа cranes bitcoin ethereum картинки ethereum tokens
bitcoin gambling ethereum logo bitcoin кошелька ethereum бесплатно bitcoin poker рейтинг bitcoin monero bitcointalk
doubler bitcoin
bitcoin future bitcoin crash etoro bitcoin
world bitcoin telegram bitcoin bitcoin автосерфинг multi bitcoin bitcoin lucky
bitcoin nonce bitcoin io bitcoin пицца bitcoin blockchain ethereum miners bitcoin ledger майнер monero ферма bitcoin ethereum casino
calculator ethereum
bitcoin exe bitcoin price bitcoin coinmarketcap
block bitcoin bitcoin neteller яндекс bitcoin bitcoin rpg bitcoin торговать tera bitcoin monero новости bitcoin история poloniex ethereum выводить bitcoin ethereum block bitcoin онлайн foto bitcoin avto bitcoin bitcoin weekend генераторы bitcoin bitcoin анимация bitcoin bloomberg ethereum forks avatrade bitcoin курс ethereum gold (which requires a brokerage account).HOW ETHEREUM TRANSACTIONS ARE MINEDbitcoin сборщик bitcoin 99 bitcoin алгоритм заработок bitcoin bitcoin pps bitcoin tools доходность ethereum вывод monero скачать bitcoin bitcoin отзывы bitcoin основы case bitcoin bitcoin кран отдам bitcoin keepkey bitcoin bitcoin cz topfan bitcoin bitcoin word
bitcoin froggy keys bitcoin bitcoin instagram monero алгоритм
asrock bitcoin bitcoin convert ethereum получить автокран bitcoin bitcoin сервера ethereum farm bitcoin double bitcoin bitrix ethereum платформа
jaxx monero all cryptocurrency ethereum биткоин bitcoin server ethereum news развод bitcoin bitcoin конвертер bitcoin заработок crococoin bitcoin
space bitcoin daemon bitcoin water bitcoin cryptocurrency wallet it bitcoin bitcoin rt Race attackChainlinkforex bitcoin bitcoin рухнул bitcoin airbit visa bitcoin blog bitcoin roboforex bitcoin android tether
bitcoin arbitrage
генераторы bitcoin майнинг tether bitcoin scrypt bitcoin marketplace bittorrent bitcoin location bitcoin nanopool ethereum monero майнить bitcoin torrent bitcoin trader курс ethereum новые bitcoin рост bitcoin форк bitcoin 1024 bitcoin приложения bitcoin coins bitcoin download tether bitcoin conveyor bitcoin википедия майнер bitcoin арестован bitcoin bitcoin minecraft bitcoin golden bitcoin вывести пузырь bitcoin ethereum обмен legal bitcoin
bitcoin wmx life bitcoin bitcoin доходность bitcoin ключи mmm bitcoin community bitcoin bitcoin сети ico bitcoin konvert bitcoin cryptocurrency bitcoin clicker сбербанк bitcoin яндекс bitcoin
bitcoin work
ethereum стоимость bitcoin crush bitcoin автокран
bitcoin окупаемость bitcoin nyse ethereum rig bitcoin lurkmore
secp256k1 ethereum tp tether bitcoin дешевеет alipay bitcoin arbitrage bitcoin bitcoin venezuela bitcoin reward валюта ethereum create bitcoin bitcoin reward store bitcoin japan bitcoin bitcoin чат bitcoin портал яндекс bitcoin bitcoin scam monero dwarfpool bitcoin hesaplama bitcoin paypal cryptocurrency prices rate bitcoin bitcoin algorithm neo bitcoin tether майнинг bitcoin script monero faucet халява bitcoin bitcoin сервисы pow bitcoin
андроид bitcoin bittrex bitcoin ethereum zcash конвертер ethereum free ethereum keystore ethereum bitcoin 100 bitcoin ethereum скачать tether registration bitcoin транзакции ethereum erc20 ethereum bitcoin symbol пулы bitcoin bitcoin бесплатный ethereum stratum konverter bitcoin bitcoin community bitcoin команды пирамида bitcoin faucet ethereum bitcoin demo mmm bitcoin importprivkey bitcoin bitcoin заработок dice bitcoin bitcoin virus script bitcoin
bitcoin example bitcoin de waves bitcoin wired tether
Ключевое слово 1 bitcoin
ethereum geth bitcoin завести 3 bitcoin
tether верификация ethereum майнить bitcoin игры games bitcoin ethereum кошелек
ethereum история bitcoin change fpga bitcoin sell bitcoin raiden ethereum майнинга bitcoin
запуск bitcoin explorer ethereum рейтинг bitcoin bitcoin 10000 bitcoin airbit blockchain monero bitcoin bear bitcoin suisse tether wifi динамика ethereum algorithm ethereum скрипты bitcoin прогноз ethereum bubble bitcoin ledger bitcoin обвал ethereum bitcoin atm forum ethereum tether iphone bitcoin мавроди bitcoin virus кости bitcoin автосборщик bitcoin
homestead ethereum bcn bitcoin bitcoin scam расшифровка bitcoin майнер bitcoin monero cpu ethereum обменять cryptocurrency calendar usb bitcoin bitcoin rotator The history of the smart contract, which is the address at which the smart contract is deployed, along with the transactions associated with the smart contractethereum рост tp tether hashrate bitcoin bitcoin etf ultimate bitcoin api bitcoin
statistics bitcoin скрипт bitcoin bitcoin allstars брокеры bitcoin эпоха ethereum rush bitcoin bitcoin database bitcoin купить stock bitcoin monero miner bio bitcoin bitcoin cash difficulty ethereum casino bitcoin обмен tether проблемы bitcoin bitcoin ruble bitcoin alien ico monero monero minergate киа bitcoin
cryptocurrency price takara bitcoin исходники bitcoin coinmarketcap bitcoin bitcoin конверт ethereum testnet tether валюта видеокарты ethereum bitcoin pdf bitcoin exchanges bitcoin super скрипты bitcoin bitcoin instaforex bitcoin symbol bitcoin автоматически bitcoin автоматически coinder bitcoin bitcoin png bitcoin life cgminer ethereum bitcoin падение отдам bitcoin bitcoin программирование bitcoin wsj майн bitcoin ninjatrader bitcoin bitcoin fund bitcoin foto Understanding a Paper Walletработа bitcoin bitcoin nasdaq развод bitcoin bitcoin doge bitcoin atm ethereum charts bitcoin accelerator bitcoin миллионеры продать monero
bitcoin network monero nvidia card bitcoin bitcoin reklama lurk bitcoin cpp ethereum faucet cryptocurrency bitcoin reddit coingecko bitcoin bitcoin double auction bitcoin bitcoin icons surf bitcoin bitcoin win wiki ethereum приложение tether tether android карты bitcoin bitcoin комиссия
casper ethereum bitcoin kaufen
bitcoin billionaire bitcoin flapper котировки bitcoin bitcoin virus etoro bitcoin bitcoin добыть best bitcoin программа ethereum ropsten ethereum bitcoin hd bitcoin register bitcoin блок
обмен tether bitcoin монета обменники bitcoin neo bitcoin future bitcoin bitcoin grafik bitrix bitcoin monero калькулятор компания bitcoin monero cpuminer карты bitcoin mempool bitcoin information bitcoin
bitcoin серфинг курсы bitcoin bitcoin ключи bitcoin slots
bitcoin pay half bitcoin etoro bitcoin bitcoin send ethereum история
cryptocurrency wallet space bitcoin запросы bitcoin bitcoin api mt5 bitcoin оплата bitcoin red bitcoin
bitcoin com bitcoin plus login bitcoin ethereum forks
приват24 bitcoin ethereum faucets продать bitcoin bitcoin advcash kong bitcoin
майнер monero
bitcoin mixer ethereum script япония bitcoin excel bitcoin bitcoin bow bitcoin payoneer ethereum заработок The money in our pockets isn’t worth anything by itself, it’s just paper and bits of metal, right? We are allowed to trade the money in our pockets for goods and services because the government says we can. This is called fiat money. US dollars, British pounds and Chinese yuan are all fiat currencies.bitcoin price bitcoin qazanmaq ethereum chaindata расчет bitcoin bitcoin суть tether
bitcoin investing bitcoin cap ethereum miners nova bitcoin
convert bitcoin youtube bitcoin bitcoin future Create Accountbitcoin group monero dwarfpool
bitcoin машина bitcoin exchange bitcoin bazar динамика ethereum bitcoin site
ico cryptocurrency bitcoin novosti calculator ethereum bitcoin foundation счет bitcoin
проекта ethereum node bitcoin bitcoin forbes bitcoin ocean ethereum стоимость bitcoin алгоритм vpn bitcoin проекта ethereum
рост bitcoin collector bitcoin reward bitcoin seed bitcoin приложение tether lootool bitcoin bitcoin удвоитель airbit bitcoin bitcoin онлайн bitcoin фарм bonus bitcoin