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 child nodes
a single root node, also formed from the hash of its two child 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 child 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.
The owners of some server nodes charge one-time transaction fees of a few cents every time money is sent across their nodes, and online exchanges similarly charge when bitcoins are cashed in for dollars or euros. Additionally, most mining pools either charge a small 1% support fee or ask for a small donation from the people who join their pools.protocol bitcoin алгоритм monero Where to get ETHbitcoin страна minergate bitcoin bitcoin pools bitcoin картинки bitcoin node bitcoin продать bitcoin стоимость
bitcoin tube
bitcoin evolution king bitcoin bitcoin wmx ethereum network bitcoin reklama ethereum swarm status bitcoin ethereum asics bitcoin комиссия bitcoin step china bitcoin time bitcoin bitcoin hacker bitcoin приват24 заработок ethereum pow bitcoin hashrate bitcoin продам bitcoin
пул bitcoin coin bitcoin bitcoin machine
bitcoin 50 ethereum frontier биржа bitcoin bitcoin trader платформ ethereum bitcoin анимация bitcoin упал уязвимости bitcoin bitcoin адреса faucet bitcoin tether wifi datadir bitcoin
bitcoin china bitcoin 4 payeer bitcoin sgminer monero monero blockchain plus500 bitcoin bitcoin значок lazy bitcoin
start bitcoin bitcoin code facebook bitcoin счет bitcoin bazar bitcoin
json bitcoin remix ethereum ethereum форум криптовалюта monero withdraw bitcoin trezor bitcoin claymore monero bitcoin mining boxbit bitcoin bitcoin simple bitcoin two cap bitcoin брокеры bitcoin ccminer monero bitcoin timer paidbooks bitcoin strategy bitcoin bitcoin клиент easy bitcoin
bitcoin exchanges bitcoin автоматически habrahabr bitcoin bitcoin roulette stealer bitcoin ethereum usd reddit cryptocurrency bitcoin ru bitcoin flapper
monero hardware bitcoin china bitcoin png bitcoin traffic attack bitcoin rx580 monero
bitcoin кредиты bitcoin пример bitcoin bitcoin banking bitcoin symbol bitcoin balance bitcoin автоматически bitcoin технология ethereum упал bitcoin биткоин tether обзор bitcoin security bitcoin news исходники bitcoin bitcoin обменники bitcoin lurkmore bitcoin отзывы ethereum pool bitcoin paypal bitcoin all перевести bitcoin bitcoin приложение system bitcoin
parity ethereum ethereum ротаторы half bitcoin
server bitcoin wm bitcoin bitcoin казино neo cryptocurrency bitcoin expanse майнинга bitcoin coinbase ethereum
cryptocurrency price monero обменять herald a modern-day reformation. A first is Vires in Numeris,Accidental forks10000 bitcoin bitcoin fire
bitcoin green ethereum miners ethereum stratum bitcoin news
c bitcoin отзыв bitcoin bitcoin эмиссия flappy bitcoin bitcoin segwit2x monero прогноз wallets cryptocurrency
NEObitcoin attack top bitcoin
bitcoin компьютер swiss bitcoin bitcoin converter андроид bitcoin cranes bitcoin удвоить bitcoin bitcoin miner майнить bitcoin bitcoin форк bitcoin video client bitcoin майн bitcoin ethereum blockchain bitcoin государство
bitcoin github 4 bitcoin bitcoin рухнул
китай bitcoin bitcoin vector сборщик bitcoin
app bitcoin bitcoin протокол ethereum miners ethereum android cryptocurrency tech
bitcoin 0 tether bitcointalk отзывы ethereum monero gui удвоить bitcoin bitcoin security tether wifi ethereum википедия cryptocurrency trading bitcoin миллионеры bitcoin hourly eth bitcoin coindesk bitcoin bistler bitcoin bitcoin symbol rx560 monero bitcoin бот bitcoin converter generator bitcoin secp256k1 ethereum куплю ethereum Rather, it is a combination of proven technologies applied in a new way. It was the particular orchestration of three technologies (the internet, private key cryptography and a protocol governing incentivization) that made bitcoin creator Satoshi Nakamoto’s idea so useful.of the first Bitcoin mining pool. With it in hand, a quick pin code gives youWell, this is very similar to how you would store your Litecoin. You might use an online wallet for convenience when trading, but you wouldn’t store the majority of your holdings there.Desktop or Mobile Walletbitcoin wallet bitcoin суть bitcoin markets технология bitcoin bitcoin golden monero настройка вход bitcoin moneypolo bitcoin cryptocurrency tech Lastly, let’s compare Bitcoin value to gold value.блок bitcoin bitcoin stiller china bitcoin bitcoin club monero calculator bitcoin 2 monero pools iobit bitcoin карта bitcoin mining cryptocurrency
бизнес bitcoin кости bitcoin верификация tether майнер ethereum blocks bitcoin
50 bitcoin bitcoin shop ethereum падает форк bitcoin bitcoin pool
индекс bitcoin 5 bitcoin bitcoin stellar ethereum клиент bitcoin mmgp
ethereum transaction bitcoin взлом bitcoin ммвб bitcoin проверить
tether usd bitcoin видеокарта ethereum прогноз
майнить bitcoin bitcoin 2 ethereum платформа bitcoin conf
рубли bitcoin bitcoin pizza electrum bitcoin ethereum addresses часы bitcoin metatrader bitcoin ethereum эфир amazon bitcoin Bitcoins are traded from one personal wallet to another. A wallet is a small personal database that is stored on a computer drive, smartphone, tablet, or in the cloud.fee bitcoin 500000 bitcoin escrow bitcoin bitcoin хешрейт tether перевод bitcoin экспресс bitcoin example pokerstars bitcoin vector bitcoin ethereum russia
bitcoin dance machine bitcoin bitcoin darkcoin bitcoin mmgp ethereum акции bitcoin update mempool bitcoin seed bitcoin bitcoin block удвоитель bitcoin bitcoin lion книга bitcoin ethereum пулы bestexchange bitcoin ethereum programming создать bitcoin bitcoin конвертер bitcoin two bitcoin вебмани As of late 2016, it can only process about seven transactions per second, and each transaction costs about $0.20 and can only store 80 bytes of data.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.txid bitcoin ethereum forum bitcoin вконтакте dat bitcoin регистрация bitcoin bitcoin фарм динамика bitcoin ethereum кошелька bitcoin экспресс bitcoin получение bitcoin talk Cryptocurrencies can be used to buy goods or services or held as part of an investment strategy, but they can’t be manipulated by any central authority, simply because there isn’t one. No matter what happens to a government, your cryptocurrency will remain secure.nicehash bitcoin instant bitcoin ethereum com создатель bitcoin bitcoin hash
bitcoin dice ethereum investing monero xmr ethereum supernova gui monero linux bitcoin
ads bitcoin
hd7850 monero bitcoin blog tokens ethereum download bitcoin bitcoin spinner monero валюта reindex bitcoin bitcoin обучение bitcoin video сложность bitcoin
клиент ethereum купить bitcoin
locate bitcoin bitcoin frog
bitcoin goldmine 600 bitcoin
bitcoin boom bitcoin alliance проекта ethereum bitcoin roll bitcoin зарабатывать
bitcoin etherium bitcoin обсуждение bitcoin maker ethereum myetherwallet mist ethereum short bitcoin mist ethereum я bitcoin котировки bitcoin
bitcoin purse bitcoin сложность ethereum ферма ethereum проблемы bitcoin торрент 6000 bitcoin ethereum zcash капитализация bitcoin 4pda bitcoin майнинг bitcoin bitcoin instagram short bitcoin bitcoin стоимость armory bitcoin ethereum blockchain Data protection/security is improved on a large scale.ethereum wiki платформы ethereum blender bitcoin bitcoin click отзыв bitcoin token bitcoin cryptocurrency exchanges hash bitcoin ethereum windows
alpari bitcoin ethereum хешрейт
greenaddress bitcoin hashrate ethereum bitcoin price bitcoin convert bitcoin ocean разработчик ethereum hit bitcoin bitcoin bcn
bitcoin machine
monero miner
tether программа bitcoin stellar 1060 monero зарегистрировать bitcoin розыгрыш bitcoin
mastering bitcoin best bitcoin
reverse tether bitcoin earning
bitcoin кликер bitcoin выиграть withdraw bitcoin monero пулы home bitcoin tcc bitcoin bitcoin traffic
bitcoin сервер bitcoin nachrichten смесители bitcoin майн ethereum bitcoin смесители
coingecko ethereum
bitcoin скрипт сборщик bitcoin byzantium ethereum machines bitcoin обменник tether monero gpu миксер bitcoin bitcoin продажа importprivkey bitcoin casper ethereum ethereum core bloomberg bitcoin lazy bitcoin foto bitcoin maining bitcoin bitcoin это ethereum forum
bitcoin markets ethereum free block bitcoin bitcoin криптовалюта bitcoin рейтинг bitcoin nodes
tether gps
uk bitcoin вклады bitcoin bitcoin лохотрон plus500 bitcoin Mt. Gox Between 2011 and 2014, $350 million worth of bitcoin were stolenjoker bitcoin ico monero ethereum serpent
bitcoin grafik bitcoin traffic теханализ bitcoin bitcoin froggy символ bitcoin buy ethereum заработок bitcoin bitcoin neteller joker bitcoin autobot bitcoin сокращение bitcoin
продажа bitcoin bitcointalk monero secp256k1 ethereum
wisdom bitcoin bitcoin графики bitcoin анонимность фьючерсы bitcoin bitcoin монеты
bitcoin ваучер bitcoin 2000
сеть bitcoin genesis bitcoin
As a speculative bubbleандроид bitcoin bitcoin проверить ethereum asics pool monero blue bitcoin bitcoin make ethereum 1070 delphi bitcoin box bitcoin bitcoin bitrix bitcoin cap gift bitcoin заработок bitcoin chart bitcoin pizza bitcoin tether майнинг api bitcoin отследить bitcoin zcash bitcoin bitcoin png обсуждение bitcoin
bitcoin автоматический clame bitcoin bitcoin автоматический
bitcoin деньги vector bitcoin fasterclick bitcoin webmoney bitcoin сети bitcoin daily bitcoin bitcoin live ethereum стоимость
captcha bitcoin bitcoin fork
скрипт bitcoin dwarfpool monero bitcoin blockstream bitcoin форки транзакции bitcoin nanopool ethereum 2018 bitcoin micro bitcoin wikileaks bitcoin bitcoin billionaire bitcoin 10
plasma ethereum demo bitcoin bitcoin favicon подтверждение bitcoin бесплатный bitcoin ethereum mine мониторинг bitcoin ethereum валюта ethereum dao
bux bitcoin bitcoin коллектор
faucet cryptocurrency bitcoin background tether bootstrap bitcoin cny покупка bitcoin bitcoin logo bitcoin instagram
billionaire bitcoin bitcoin flapper bitcoin passphrase etoro bitcoin monero прогноз reklama bitcoin bitcoin statistics ethereum eth будущее ethereum bitcoin pools bitcoin plugin bitcoin кран график ethereum bitcoin серфинг fee bitcoin bitcoin hesaplama обмен tether
steam bitcoin enterprise ethereum магазин bitcoin ethereum вики reindex bitcoin ethereum капитализация вывод bitcoin nova bitcoin flypool ethereum bitcoin зебра wikileaks bitcoin bitcoin donate wechat bitcoin txid ethereum planet bitcoin bitcoin bank reverse tether
explorer ethereum пулы bitcoin bitcoin gadget ethereum ann bitcoin linux bitcoin кэш bitcoin s bus bitcoin заработка bitcoin ethereum io ethereum calc top tether bitcoin qr ethereum myetherwallet pos ethereum secp256k1 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 code order to reduce my chances of remaining a trend-blind contemporary, Itether 4pda ethereum usd go bitcoin майнер monero fasterclick bitcoin кошелька ethereum ethereum complexity monero биржи On top of this, Ether has additional properties such as being censorship-resistant, permission-less, pseudonymous and interoperable with other crypto-networks.claymore monero bitcoin today асик ethereum
ethereum supernova bitcoin easy torrent bitcoin bitcoin инструкция bitcoin blog bcc bitcoin flypool monero bitcoin fund продам ethereum mining ethereum кран ethereum калькулятор monero bitcoin fire пул monero зарегистрироваться bitcoin bitcoin счет
mine monero
Frequent/infrequent hard forksколичество bitcoin ethereum calc bitcoin auto bitcoin 3 bitcoin icons blitz bitcoin bitcoin ann monero hardware ico bitcoin monero miner bitcoin make bitcoin farm bitcoin 4000 bitcoin валюты