Accounts
The global “shared-state” of Ethereum is comprised of many small objects (“accounts”) that are able to interact with one another through a message-passing framework. Each account has a state associated with it and a 20-byte address. An address in Ethereum is a 160-bit identifier that is used to identify any account.
There are two types of accounts:
Externally owned accounts, which are controlled by private keys and have no code associated with them.
Contract accounts, which are controlled by their contract code and have code associated with them.
Image for post
Externally owned accounts vs. contract accounts
It’s important to understand a fundamental difference between externally owned accounts and contract accounts. An externally owned account can send messages to other externally owned accounts OR to other contract accounts by creating and signing a transaction using its private key. A message between two externally owned accounts is simply a value transfer. But a message from an externally owned account to a contract account activates the contract account’s code, allowing it to perform various actions (e.g. transfer tokens, write to internal storage, mint new tokens, perform some calculation, create new contracts, etc.).
Unlike externally owned accounts, contract accounts can’t initiate new transactions on their own. Instead, contract accounts can only fire transactions in response to other transactions they have received (from an externally owned account or from another contract account). We’ll learn more about contract-to-contract calls in the “Transactions and Messages” section.
Image for post
Therefore, any action that occurs on the Ethereum blockchain is always set in motion by transactions fired from externally controlled accounts.
Image for post
Account state
The account state consists of four components, which are present regardless of the type of account:
nonce: If the account is an externally owned account, this number represents the number of transactions sent from the account’s address. If the account is a contract account, the nonce is the number of contracts created by the account.
balance: The number of Wei owned by this address. There are 1e+18 Wei per Ether.
storageRoot: A hash of the root node of a Merkle Patricia tree (we’ll explain Merkle trees later on). This tree encodes the hash of the storage contents of this account, and is empty by default.
codeHash: The hash of the EVM (Ethereum Virtual Machine — more on this later) code of this account. For contract accounts, this is the code that gets hashed and stored as the codeHash. For externally owned accounts, the codeHash field is the hash of the empty string.
Image for post
World state
Okay, so we know that Ethereum’s global state consists of a mapping between account addresses and the account states. This mapping is stored in a data structure known as a Merkle Patricia tree.
A Merkle tree (or also referred as “Merkle trie”) is a type of binary tree composed of a set of nodes with:
a large number of leaf nodes at the bottom of the tree that contain the underlying data
a set of intermediate nodes, where each node is the hash of its two ***** nodes
a single root node, also formed from the hash of its two ***** node, representing the top of the tree
Image for post
The data at the bottom of the tree is generated by splitting the data that we want to store into chunks, then splitting the chunks into buckets, and then taking the hash of each bucket and repeating the same process until the total number of hashes remaining becomes only one: the root hash.
Image for post
This tree is required to have a key for every value stored inside it. Beginning from the root node of the tree, the key should tell you which ***** node to follow to get to the corresponding value, which is stored in the leaf nodes. In Ethereum’s case, the key/value mapping for the state tree is between addresses and their associated accounts, including the balance, nonce, codeHash, and storageRoot for each account (where the storageRoot is itself a tree).
Image for post
Source: Ethereum whitepaper
This same trie structure is used also to store transactions and receipts. More specifically, every block has a “header” which stores the hash of the root node of three different Merkle trie structures, including:
State trie
Transactions trie
Receipts trie
Image for post
The ability to store all this information efficiently in Merkle tries is incredibly useful in Ethereum for what we call “light clients” or “light nodes.” Remember that a blockchain is maintained by a bunch of nodes. Broadly speaking, there are two types of nodes: full nodes and light nodes.
A full archive node synchronizes the blockchain by downloading the full chain, from the genesis block to the current head block, executing all of the transactions contained within. Typically, miners store the full archive node, because they are required to do so for the mining process. It is also possible to download a full node without executing every transaction. Regardless, any full node contains the entire chain.
But unless a node needs to execute every transaction or easily query historical data, there’s really no need to store the entire chain. This is where the concept of a light node comes in. Instead of downloading and storing the full chain and executing all of the transactions, light nodes download only the chain of headers, from the genesis block to the current head, without executing any transactions or retrieving any associated state. Because light nodes have access to block headers, which contain hashes of three tries, they can still easily generate and receive verifiable answers about transactions, events, balances, etc.
The reason this works is because hashes in the Merkle tree propagate upward — if a malicious user attempts to swap a fake transaction into the bottom of a Merkle tree, this change will cause a change in the hash of the node above, which will change the hash of the node above that, and so on, until it eventually changes the root of the tree.
Image for post
Any node that wants to verify a piece of data can use something called a “Merkle proof” to do so. A Merkle proof consists of:
A chunk of data to be verified and its hash
The root hash of the tree
The “branch” (all of the partner hashes going up along the path from the chunk to the root)
Image for post
Anyone reading the proof can verify that the hashing for that branch is consistent all the way up the tree, and therefore that the given chunk is actually at that position in the tree.
In summary, the benefit of using a Merkle Patricia tree is that the root node of this structure is cryptographically dependent on the data stored in the tree, and so the hash of the root node can be used as a secure identity for this data. Since the block header includes the root hash of the state, transactions, and receipts trees, any node can validate a small part of state of Ethereum without needing to store the entire state, which can be potentially unbounded in size.
bitcoin banking double bitcoin bitcoin unlimited брокеры bitcoin avalon bitcoin bitcoin china разработчик bitcoin bitcoin иконка bitcoin кошелек bitcoin sweeper scrypt bitcoin фото ethereum bitcoin faucets вход bitcoin bitcoin loans vector bitcoin block ethereum
bitcoin com
ethereum casper ethereum os курсы ethereum lurkmore bitcoin finney ethereum партнерка bitcoin ethereum twitter bitcoin com майнер monero bitcoin earnings javascript bitcoin geth ethereum your bitcoin account bitcoin адрес ethereum bitcoin antminer ethereum pools bitcoin bounty claim bitcoin
bitcoin youtube bitcoin history logo ethereum анализ bitcoin ethereum алгоритм обучение bitcoin ethereum сбербанк bitcoin перевод
криптовалюту bitcoin bitcoin blender пулы bitcoin donate bitcoin bitcoin рейтинг bitcoin обмен client ethereum laundering bitcoin вклады bitcoin monero price
gek monero wifi tether calculator ethereum bitcoin microsoft майнер monero bitcoin pizza
bitcoin torrent php bitcoin flypool monero ethereum пулы bitcoin развитие bitcoin ads bitcoin hunter bitcoin фильм bitcoin crush nanopool ethereum kong bitcoin bitcoin swiss bitcoin passphrase bitcoin проверка bitcoin прогнозы bitcoin будущее alpari bitcoin ethereum coin
bitcoin вложения 22 bitcoin bitcoin start майнить bitcoin seed bitcoin get bitcoin bitcoin 2020 bitcoin комментарии bitcoin компания динамика ethereum ethereum асик bitcoin usd ethereum alliance
bitcoin обвал bitcoin testnet calculator cryptocurrency bitcoin journal asics bitcoin bitcoin конвектор ethereum видеокарты кошелька bitcoin bitcoin monkey bitcoin create monero краны
получить ethereum transactions bitcoin bitcoin paypal equihash bitcoin ethereum *****u bitcoin monkey bitcoin segwit bitcoin рынок bitcoin motherboard bitcoin чат unconfirmed bitcoin 4000 bitcoin flash bitcoin What are Bitcoin’s characteristics?For example, a cryptocurrency application called Abra provides peer-to-peer money transfers. With Abra, users can store, transfer, and receive digital money on their PCs, tablets or smartphones. A recipient can withdraw cash via an Abra teller. Users don’t need to have a bank account!миллионер bitcoin blog bitcoin credit bitcoin
bitcoin лайткоин Academic research published in the Journal of Monetary Economics concluded that price manipulation occurred during the Mt Gox bitcoin theft and that the market remains vulnerable to manipulation. The history of hacks, fraud and theft involving bitcoin dates back to at least 2011.Think about how you would store your money in the real world. Storing some USD in your leather wallet is great for convenience as you can spend them easily, but you wouldn’t want to store your entire life savings in there, would you? You would probably feel more comfortable storing them in a huge safe or vault — or in the bank.This lack of novelty is part of the appeal—the fewer new parts of a cryptosystem, the less danger9. All that was lacking was a Satoshi to start a Bitcoin.разработчик bitcoin
монета ethereum bitcoin мастернода film bitcoin алгоритм bitcoin bitcoin make ethereum pools bitcoin logo
clame bitcoin bitcoin зарабатывать dollar bitcoin ethereum dag monero криптовалюта сбербанк bitcoin bitcoin qr bitcoin widget bitcoin новости alpha bitcoin ethereum homestead cryptocurrency capitalisation bitcoin проблемы
payable ethereum invest bitcoin hack bitcoin bitcoin mixer
ethereum проекты установка bitcoin monero новости
bitcoin bit 2x bitcoin ethereum android bitcoin раздача bitcoin падает bitcoin математика
bitcoin ocean bitcointalk ethereum hashrate ethereum new bitcoin pos ethereum se*****256k1 ethereum
форумы bitcoin ethereum капитализация фри bitcoin reverse tether
ethereum stats
talk bitcoin bitcoin сеть ann bitcoin ethereum parity data bitcoin
bitcoin trader bitcoin joker ethereum описание
dash cryptocurrency king bitcoin monero майнер новости monero
bank bitcoin
bitcoin testnet бесплатные bitcoin ethereum usd майнер ethereum bitcoin обналичивание games bitcoin bitcoin сша доходность bitcoin cryptocurrency calendar ethereum blockchain bitcoin lucky monero node blogspot bitcoin ethereum platform bitcoin png bitcoin carding bitcoin регистрации bitcoin price eos cryptocurrency bitcoin trust кран bitcoin bitcoin vps is bitcoin ethereum asic cryptocurrency tech monero miner bitcoin аккаунт bitcoin blue ethereum сложность python bitcoin bitcoin пополнить blake bitcoin dag ethereum bitcoin anonymous ethereum бутерин nicehash monero bitcoin config remix ethereum bitcoin usb bitcoin rpg uk bitcoin bitcoin торги capitalization cryptocurrency sell ethereum ethereum web3 bitcoin protocol polkadot stingray ethereum blockchain обмен monero курсы ethereum mmm bitcoin
кошелек tether tether пополнить monero криптовалюта
bitcoin foto bitcoin рейтинг monero proxy bitcoin перевести cryptocurrency price проект bitcoin bitcoin реклама bitcoin ebay email bitcoin iobit bitcoin code bitcoin pokerstars bitcoin криптовалюты bitcoin alpha bitcoin monero криптовалюта
bitcoin casascius
bitcoin rus maps bitcoin алгоритм bitcoin обмен tether free ethereum
bitcoin доходность monero калькулятор bitcoin instagram bitcoin golang bitcoin utopia
обменники bitcoin bitcoin casino майнеры monero people bitcoin
ethereum обменять ethereum investing bestexchange bitcoin okpay bitcoin
ethereum telegram bitcoin прогнозы payable ethereum bitcoin проверить bitcoin 123 bitcoin conveyor теханализ bitcoin bitcoin play курса ethereum новости monero bitcoin генератор bitcoin roulette bitcoin cny ethereum ротаторы виталий ethereum
tether пополнение
ethereum картинки bitcoin mercado
tether wallet bitcoin mmm ethereum telegram bitcoin expanse zcash bitcoin bitcoin click
metropolis ethereum blake bitcoin bonus bitcoin bitcoin banking
киа bitcoin и bitcoin bitcoin транзакции bitcoin оплатить If you want to use bitcoin to buy presents, the most obvious solution is gift cards, via Gyft or eGifter. The recipient will then be able to spend the gift card at one of a wide range of retailers.bitcoin free ethereum видеокарты hosting bitcoin ethereum geth майнеры ethereum купить ethereum bitcoin today maining bitcoin bitcoin today
сети bitcoin foto bitcoin
пул monero the ethereum купить ethereum uk bitcoin кошелька ethereum magic bitcoin
electrum bitcoin ethereum game *****p ethereum ethereum nicehash armory bitcoin difficulty bitcoin cryptocurrency dash bitcoin maining bitcoin кранов youtube bitcoin
андроид bitcoin start bitcoin bitcoin banking monero nicehash bitcoin agario bitcoin stealer ethereum core This article relies too much on references to primary sources. (October 2019)bitcoin india bitcoin shops ethereum биткоин litecoin bitcoin carding bitcoin bitcoin 100
bitcoin магазины
blocks bitcoin bitcoin lion lucky bitcoin
weather bitcoin bitcoin прогноз steam bitcoin dog bitcoin bitcoin org dark bitcoin bitcoin заработка world bitcoin bitcoin луна сложность ethereum bitcoin coin ethereum usd tether usd wei ethereum
ann ethereum ethereum заработок bitcoin arbitrage 1080 ethereum обвал ethereum panda bitcoin пул bitcoin Paper walletsцена ethereum monero форум ethereum contract ethereum forum erc20 ethereum mempool bitcoin ethereum charts
bitcoin investment best cryptocurrency bitcoin вклады
ethereum проблемы bitcoin keywords bitcoin брокеры bitcoin терминалы валюты bitcoin кости bitcoin ethereum org bitcoin сети bye bitcoin 999 bitcoin pool bitcoin steam bitcoin monero майнить bitcoin project bitcoin go simple bitcoin forecast bitcoin перспектива bitcoin goldmine bitcoin txid bitcoin
bitcoin surf ethereum ethash daily bitcoin bitcoin compare monero dwarfpool bitcoin com download bitcoin buy tether it bitcoin bitcoin ether r bitcoin monero wallet wisdom bitcoin сложность ethereum bitcoin usa мастернода bitcoin bitcoin trader gold cryptocurrency фонд ethereum
bitcoin 33 bitcoin 2020 rx580 monero bitcoin banks
love bitcoin faucet ethereum bitcoin today testnet bitcoin
ethereum plasma иконка bitcoin ethereum online bitcoin бонусы bitcoin миллионеры doge bitcoin
кликер bitcoin эфириум ethereum
platinum bitcoin обмен bitcoin
кран bitcoin
byzantium ethereum bubble bitcoin скачать bitcoin bitcoin drip кошельки ethereum claymore monero cryptocurrency magazine currency bitcoin monero форк casino bitcoin bitcoin de monero fr bitcoin ru minergate bitcoin
bitcoin банк
bitcoin ставки bitcoin расчет bitcoin 99 bitcoin example
bitcoin indonesia bitcoin metal bitcoin доходность часы bitcoin bitcoin legal bitcoin swiss ethereum график bitcoin кэш
bitcoin kraken bitcoin start стоимость monero развод bitcoin life bitcoin bitcoin selling machine bitcoin bitcoin virus bitcoin регистрация асик ethereum bitcoin blog 4pda tether addnode bitcoin se*****256k1 bitcoin приложение bitcoin
gemini bitcoin bitcoin get bitcoin statistic сложность monero bitcoin example ethereum frontier
ethereum online ethereum пулы ethereum купить футболка bitcoin
pool bitcoin
удвоитель bitcoin bitcoin коллектор ethereum chart global bitcoin bitcoin dance
hashrate bitcoin There are lots of things to consider when picking Bitcoin mining hardware. It’s important to judge each unit based on their hashing power, their electricity consumption, their ambient temperature, and their initial cost to buy.How Bitcoins Are TrackedRevolutionary Propertiesbitcoin poloniex анализ bitcoin блок bitcoin ethereum акции удвоитель bitcoin bitcoin робот bitcoin взлом bitcoin торги робот bitcoin
комиссия bitcoin bitcoin addnode криптовалют ethereum bitcoin теханализ bitcoin заработок ethereum сбербанк иконка bitcoin ethereum classic logo ethereum bitcoin аналоги bitcoin artikel byzantium ethereum bitcoin play
bitcoin wikipedia store bitcoin bitcoin торрент tether app 8 bitcoin
bitcoin видеокарта bitcoin fan micro bitcoin bitcoin тинькофф
bitcoin бесплатные партнерка bitcoin bitcoin knots вклады bitcoin
why cryptocurrency bitcoin mt4 unconfirmed bitcoin blocks bitcoin ethereum blockchain bitcoin hardfork time bitcoin microsoft bitcoin bitcoin оплатить bitcoin trade bitcoin бонусы обменник ethereum bitcoin legal green bitcoin bitcoin перспективы video bitcoin калькулятор bitcoin сайты bitcoin bitcoin gif bitcoin серфинг bitcoin php перспектива bitcoin txid bitcoin bitcoin lurkmore сбербанк ethereum card bitcoin
bitcoin fx email bitcoin калькулятор monero bitcoin site bitcoin sha256 фото bitcoin No centralized controlbitcoin count monero биржи bitcoin 9000
*****a bitcoin bitcoin token криптовалюта monero япония bitcoin japan bitcoin
bitcoin org bitcoin nachrichten 600 bitcoin bitcoin now nubits cryptocurrency ethereum bonus bitcoin trade bitcoin фото tether limited ethereum addresses freeman bitcoin бесплатно bitcoin mine ethereum bitcoin protocol bitcoin symbol truffle ethereum tether coinmarketcap bitcoin masternode ethereum обменники tether clockworkmod
ethereum пулы пулы bitcoin прогноз bitcoin bitcoin daemon bitcoin алгоритм ethereum addresses bitcoin принцип форумы bitcoin top bitcoin bitcoin cryptocurrency прогноз ethereum генераторы bitcoin адрес ethereum bitcoin бизнес 2 bitcoin bitcoin mail cap bitcoin webmoney bitcoin bitcoin акции carding bitcoin
reward bitcoin bitcoin запрет monero coin
bitcoin converter приложение tether bitcoin ставки
bubble bitcoin bitcoin office bitcoin sha256 tether программа bitcoin динамика in bitcoin stock bitcoin bitcoin frog сколько bitcoin bitcoin прогноз pro100business bitcoin bitcoin reindex bitcoin отслеживание асик ethereum bitcoin скачать bitcoin cny bitcointalk bitcoin
bitcoin video Switching to Bitcoin, which charges no or very low fees, for these remittance payments will therefore raise the quality of life of migrant workers and their families significantly. In fact, it is hard to think of any one thing that would have a faster and more positive effect on so many people in the world’s poorest countries.ethereum токены bestexchange bitcoin 99 bitcoin bitcoin vip
bonus bitcoin amazon bitcoin ethereum faucet vizit bitcoin bitcoin суть рост bitcoin bitcoin clouding