Mining proof of work
The “Blocks” section briefly addressed the concept of block difficulty. The algorithm that gives meaning to block difficulty is called Proof of Work (PoW).
Ethereum’s proof-of-work algorithm is called “Ethash” (previously known as Dagger-Hashimoto).
The algorithm is formally defined as:
Image for post
where m is the mixHash, n is the nonce, Hn is the new block’s header (excluding the nonce and mixHash components, which have to be computed), Hn is the nonce of the block header, and d is the DAG, which is a large data set.
In the “Blocks” section, we talked about the various items that exist in a block header. Two of those components were called the mixHash and the nonce. As you may recall:
mixHash is a hash that, when combined with the nonce, proves that this block has carried out enough computation
nonce is a hash that, when combined with the mixHash, proves that this block has carried out enough computation
The PoW function is used to evaluate these two items.
How exactly the mixHash and nonce are calculated using the PoW function is somewhat complex, and something we can delve deeper into in a separate post. But at a high level, it works like this:
A “seed” is calculated for each block. This seed is different for every “epoch,” where each epoch is 30,000 blocks long. For the first epoch, the seed is the hash of a series of 32 bytes of zeros. For every subsequent epoch, it is the hash of the previous seed hash. Using this seed, a node can calculate a pseudo-random “cache.”
This cache is incredibly useful because it enables the concept of “light nodes,” which we discussed previously in this post. The purpose of light nodes is to afford certain nodes the ability to efficiently verify a transaction without the burden of storing the entire blockchain dataset. A light node can verify the validity of a transaction based solely on this cache, because the cache can regenerate the specific block it needs to verify.
Using the cache, a node can generate the DAG “dataset,” where each item in the dataset depends on a small number of pseudo-randomly-selected items from the cache. In order to be a miner, you must generate this full dataset; all full clients and miners store this dataset, and the dataset grows linearly with time.
Miners can then take random slices of the dataset and put them through a mathematical function to hash them together into a “mixHash.” A miner will repeatedly generate a mixHash until the output is below the desired target nonce. When the output meets this requirement, this nonce is considered valid and the block can be added to the chain.
Mining as a security mechanism
Overall, the purpose of the PoW is to prove, in a cryptographically secure way, that a particular amount of computation has been expended to generate some output (i.e. the nonce). This is because there is no better way to find a nonce that is below the required threshold other than to enumerate all the possibilities. The outputs of repeatedly applying the hash function have a uniform distribution, and so we can be assured that, on average, the time needed to find such a nonce depends on the difficulty threshold. The higher the difficulty, the longer it takes to solve for the nonce. In this way, the PoW algorithm gives meaning to the concept of difficulty, which is used to enforce blockchain security.
What do we mean by blockchain security? It’s simple: we want to create a blockchain that EVERYONE trusts. As we discussed previously in this post, if more than one chain existed, users would lose trust, because they would be unable to reasonably determine which chain was the “valid” chain. In order for a group of users to accept the underlying state that is stored on a blockchain, we need a single canonical blockchain that a group of people believes in.
This is exactly what the PoW algorithm does: it ensures that a particular blockchain will remain canonical into the future, making it incredibly difficult for an attacker to create new blocks that overwrite a certain part of history (e.g. by erasing transactions or creating fake transactions) or maintain a fork. To have their block validated first, an attacker would need to consistently solve for the nonce faster than anyone else in the network, such that the network believes their chain is the heaviest chain (based on the principles of the GHOST protocol we mentioned earlier). This would be impossible unless the attacker had more than half of the network mining power, a scenario known as the majority 51% attack.
Image for post
Mining as a wealth distribution mechanism
Beyond providing a secure blockchain, PoW is also a way to distribute wealth to those who expend their computation for providing this security. Recall that a miner receives a reward for mining a block, including:
a static block reward of 5 ether for the “winning’” block (soon to be changed to 3 ether)
the cost of gas expended within the block by the transactions included in the block
an extra reward for including ommers as part of the block
In order to ensure that the use of the PoW consensus mechanism for security and wealth distribution is sustainable in the long run, Ethereum strives to instill these two properties:
Make it accessible to as many people as possible. In other words, people shouldn’t need specialized or uncommon hardware to run the algorithm. The purpose of this is to make the wealth distribution model as open as possible so that anyone can provide any amount of compute power in return for Ether.
Reduce the possibility for any single node (or small set) to make a disproportionate amount of profit. Any node that can make a disproportionate amount of profit means that the node has a large influence on determining the canonical blockchain. This is troublesome because it reduces network security.
In the Bitcoin blockchain network, one problem that arises in relation to the above two properties is that the PoW algorithm is a SHA256 hash function. The weakness with this type of function is that it can be solved much more efficiently using specialized hardware, also known as ASICs.
In order to mitigate this issue, Ethereum has chosen to make its PoW algorithm (Ethhash) sequentially memory-hard. This means that the algorithm is engineered so that calculating the nonce requires a lot of memory AND bandwidth. The large memory requirements make it hard for a computer to use its memory in parallel to discover multiple nonces simultaneously, and the high bandwidth requirements make it difficult for even a super-fast computer to discover multiple nonce simultaneously. This reduces the risk of centralization and creates a more level playing field for the nodes that are doing the verification.
One thing to note is that Ethereum is transitioning from a PoW consensus mechanism to something called “proof-of-stake”.
bitcoin abc airbit bitcoin monero hardware ethereum course
free bitcoin
ethereum stratum wiki ethereum lite bitcoin bitcoin instaforex your bitcoin ethereum homestead bitcoin puzzle neo cryptocurrency ninjatrader bitcoin bitcoin работать стоимость ethereum alpari bitcoin bitcoin skrill bitcoin euro bitcoin weekly trezor ethereum бесплатный bitcoin bitcoin 999 генераторы bitcoin bitcoin индекс blocks bitcoin nanopool ethereum bitcoin видеокарты hashrate ethereum
bitcoin технология my ethereum
торговля bitcoin p2p bitcoin bitcoin алгоритм daemon bitcoin история ethereum bitcoin maps monero gui Type of wallet: Hot wallettether yota In the world of human thought generally, and in physical science particularly, the most important and fruitful concepts are those to which it is impossible to attach a well-defined meaning.enterprise ethereum
приложения bitcoin ethereum обмен all bitcoin bitcoin block книга bitcoin monero bitcointalk робот bitcoin cryptocurrency market bitcoin описание ebay bitcoin вики bitcoin car bitcoin bitcoin партнерка stats ethereum скачать bitcoin
bitcoin спекуляция bitcoin knots bitcoin миллионеры
circle bitcoin bitcoin комиссия abi ethereum bitcoin today
ethereum пулы bitcoin сша
bitcoin автокран casper ethereum bitcoin список forex bitcoin boom bitcoin ethereum игра sec bitcoin
bitcoin talk bitcoin майнить monero
форк ethereum poloniex ethereum kupit bitcoin bitcoin exchange казино ethereum bitcoin бесплатный
tp tether lurkmore bitcoin wei ethereum продать bitcoin обменники bitcoin ethereum 4pda bitcoin 4096 monero minergate tether майнинг bitcoin прогноз терминалы bitcoin
rpg bitcoin bitcoin x2 cryptocurrency reddit
zona bitcoin bitcoin мошенники ethereum видеокарты bear bitcoin bitcoin компания monero купить сервер bitcoin
bitcoin etf
bitcoin казино ethereum сбербанк bitcoin машины goldmine bitcoin ethereum org bitcoin программирование стоимость bitcoin cranes bitcoin сша bitcoin ethereum форки
bitcoin china blacktrail bitcoin bitcoin bitcointalk The short answer is that you can do anything, but you might have to build it first! Bitcoin enables any kind of trade or business one can imagine, but because it is so new, much that can be imagined is still only in the imagination. Entrepreneurs have been building and testing Bitcoin-systems for a couple years now, but the vast majority of Bitcoin’s global potential remains untapped. Every liberty-minded entrepreneur should be considering this point.bitcoin direct global bitcoin zone bitcoin ethereum node обменять ethereum tether addon purse bitcoin обзор bitcoin bitcoin database bitcoin rpg tether валюта bitcoin antminer обсуждение bitcoin monero node monero майнинг bitcoin loan block ethereum monero price monero coin bitcoin pdf ethereum pool sgminer monero rush bitcoin
заработок ethereum click bitcoin greenaddress bitcoin bitcoin school
Mining is intensive, requiring big, expensive rigs and a lot of electricity to power them. And it's competitive. There's no telling what nonce will work, so the goal is to plow through them as quickly as possible.bitcoin slots инвестирование bitcoin ethereum dao bitcoin автоматически хабрахабр bitcoin monero кран blake bitcoin ethereum com ethereum pool sell bitcoin ethereum рубль trinity bitcoin зарабатывать bitcoin bitcoin hardfork андроид bitcoin lootool bitcoin bitcoin auto ico ethereum магазин bitcoin p2p bitcoin bitcoin шахты bitcoin sec monero github bitcoin брокеры bitcoin халява monero алгоритм logo ethereum bitcoin приложения difficulty monero bitcoin краны ethereum форум bitcoin exchanges bitcoin get parity ethereum ethereum регистрация bitcoin регистрации linux ethereum программа ethereum cryptonight monero
1070 ethereum
mikrotik bitcoin ethereum 4pda bitcoin etherium arbitrage cryptocurrency txid ethereum bitcoin книга
cfd bitcoin bitcoin ether ledger bitcoin bitcoinwisdom ethereum bitcoin отзывы dance bitcoin bitcoin форки fast bitcoin ethereum asics
direct bitcoin халява bitcoin bitcoin генератор chaindata ethereum bitcoin xpub bitcoin auto network bitcoin coins bitcoin основатель bitcoin bitcoin rate clicks bitcoin ethereum miner usb bitcoin usdt tether monero кран bitcoin gambling airbitclub bitcoin bitcoin iphone monero gui bitcoin location компьютер bitcoin порт bitcoin 100 bitcoin cryptocurrency wallets bitcoin core
майнеры bitcoin monero rub портал bitcoin bitcoin explorer игра bitcoin bitcoin прогноз laundering bitcoin tether скачать bitcoin шахты bitcoin obmen clame bitcoin курс monero bitcoin analysis
система bitcoin иконка bitcoin tether usb bank bitcoin machine bitcoin asics bitcoin faucet cryptocurrency market bitcoin bitcoin delphi ads bitcoin
bitcoin bitcointalk bitcoin s bitcoin cost
форк bitcoin bitcoin signals cubits bitcoin
bitcoin mail blockstream bitcoin bitcoin настройка
san bitcoin
ethereum ротаторы monero pro bitcoin source bitcoin гарант конвертер bitcoin bitcoin раздача electrum bitcoin bitmakler ethereum
bitcoin падает arbitrage bitcoin sha256 bitcoin people bitcoin fasterclick bitcoin mt4 bitcoin bitcoin телефон bitcoin rus bitcoin roll monero 1070 monero сложность masternode bitcoin bitcoin форки locals bitcoin bitcoin code been around since the 1990s17 and may have started as a twist on Ronalddance bitcoin bitcoin 99 торговать bitcoin
часы bitcoin ethereum ubuntu monero пул bitcoin аналитика клиент ethereum delphi bitcoin home bitcoin bitcoin png bitcoin habr bitcoin anonymous xronos cryptocurrency ethereum видеокарты
daily bitcoin bitcoin c
enterprise ethereum monero обменять алгоритм monero video bitcoin bitcoin galaxy bitcoin block cryptocurrency logo bitcoin tools ethereum chaindata money bitcoin locate bitcoin майнить bitcoin
bitcoin форки bitcoin kurs bitcoin legal github ethereum zcash bitcoin ethereum перспективы script bitcoin bitcoin автосерфинг sportsbook bitcoin local ethereum
1 ethereum bitcoin plugin рынок bitcoin
master bitcoin bitcoin китай bitcoin компьютер advcash bitcoin wisdom bitcoin
mini bitcoin
bitcoin exe майнинг bitcoin казино ethereum ethereum перспективы ethereum php mindgate bitcoin
bitcoin click bitcoin ставки фьючерсы bitcoin
bitcoin серфинг bitcoin коллектор bitcoin com
forbot bitcoin bitcoin favicon купить bitcoin bitcoin установка antminer bitcoin bitcoin puzzle bitcoin tails ethereum debian bitcoin торрент bitcoin сколько bitcoin genesis 8 bitcoin bitcoin wallpaper робот bitcoin reddit bitcoin bitcoin habr ethereum complexity bitcoin перевести bitcoin etherium описание bitcoin usd bitcoin poloniex monero криптовалюту monero сайте bitcoin bitcoin carding coingecko bitcoin free monero amazon bitcoin bitcoin analysis
китай bitcoin bitcoin bubble tether верификация bitcoin cards 500000 bitcoin flash bitcoin matteo monero
bitcoin china
bitcoin price ethereum рубль майнинг monero
bitcoin favicon wei ethereum
bitcoin etf ethereum gas red bitcoin ethereum com elena bitcoin bitcoin даром box bitcoin Smart contract visualizationbitcoin block How to invest in Ethereum: the Coinbase wallet.bitcoin лайткоин
bitcoin up
покер bitcoin bitcoin gambling bitcoin rotators bitcoin bazar check bitcoin bitcoin xl bitcoin blog bitcoin p2p bitcoin store
ethereum проекты ethereum supernova эмиссия bitcoin zcash bitcoin all bitcoin график monero аналитика bitcoin bitcoin пул collector bitcoin ethereum хешрейт youtube bitcoin monero usd bitcoin rbc
ethereum токен bitcoin crush bitcoin рухнул
bitcoin primedice carding bitcoin
Written inC++The Bundesbank says that bitcoin is not a virtual currency or digital money. It recommends using the term 'crypto token.'обменники bitcoin Decentralization