Understanding Ethereum’s Uncles

Understanding Ethereum’s Uncles

SHARE

This article will provide insight and information helping you understand Ethereum’s uncles, why they exist, and how their existence benefits the safety of the network. It contains some crypto-heavy language, but I’ve tried to keep it as simple as possible, clearly defining new words as we go along.

Everything is perceived from the perspective of the current block being mined on the blockchain. This is the way most of these terms were created because of the importance of the main chain and the block being worked on right now. Let me know if any words remain unclear in the comment section.

What are the uncles in Ethereum?

Naturally, the Ethereum blockchain consists of blocks. These blocks are produced by miners, and they also contain the identifying information from the previous block.

In Ethereum’s family tree, this previous block is considered to be the parent of the current block. Just like in a real family, our parents don’t always have one kid, and the same is true for our parent’s parents. Any children (blocks) they may have had would be our uncles.

In terms of cryptocurrency i.e. blockchain platforms, these uncles i.e. blocks created from a shared ancestor (parent) block (after the network has carried on and started the work of the child) are often considered stale blocks. Stale meaning, they were late, they did not get included in the main chain, and the effort invested into creating these otherwise valid blocks (except the fact they were late) often goes unrewarded.

Unlike other blockchains (looking at you, Bitcoin) Ethereum does not disregard the work of miners whose blocks don’t get to be the first ones propagated to the network. We can’t expect (as miners) to win the block-race every time, and Vitalik Buterin came up with a solution to this problem (together with the research of two amazing data scientists) back in 2004, when ETH was just a baby.

In this article, he explains how uncles work in great detail, with various calculations regarding the different possible outcomes. His goal? To improve the security of the network, and lower centralization risks. He performs calculations where one powerful mining pool is found in the midst of 7000 small ones. He spends a lot of time explaining why uncles are important and how the actual risk of a 51 attack is actually only 49%.

The hypothesis is that would-be attackers do not need to mine the stale blocks, they can just pick up from where they left off to generate their parallel chain, effectively gaining an upper hand over the main chain. This is still rather unlikely because it requires a significant amount of hidden mining power to operate and is in itself a questionable decision in terms of profitability.

To address this issue Vitalik comes up with a solution that would give uncles, i.e. stale blocks a reward, and also reward miners to include uncles in their nephew blocks (the current blocks being mined) up to the 7th level. This means that the block height difference (the position of a block on the blockchain) must be less than 5 in order for them to have the opportunity to be included in the blockchain.

Illustration from Vitalik Buterin’s article linked above which clearly shows the generation of uncles as a commonplace in blockchains, and how reintroducing them to the main chain is helping secure the network.

When included as an uncle blocks gain a significant reward which is as close to 1 as possible and represents 15/16 from the total reward claimed by regular blocks. At first, this doesn’t make sense, but considering the fact that it does add to network security it’s quite logical for this to be a real thing.

The reason why this actually provides security because the principle of leveraging the proof of work is fundamentally different when compared to Bitcoin. In Bitcoin, it is the longest chain that is considered the main chain, while in Ethereum it is the heaviest chain. The one chain that has the most amount of work and leads back to Genesis is the main chain.

Conclusion

Uncles are important for Ethereum’s network security and accepting them helps eliminate network latency problems and mitigates some of the centralization risks that are naturally associated with fast block time blockchains like Ethereum.

Accepting and rewarding the acceptance of uncles is providing Ethereum with a means to balance out the game when big players can dominate the system. Decentralization is the goal and without uncles, it’s a total dictatorship.

 

Sources:

  • https://blog.ethereum.org/2014/07/11/toward-a-12-second-block-time/
  • https://nulltx.com/what-are-ethereum-uncles/
  • https://eprint.iacr.org/2013/881.pdf
  • https://github.com/ethereum/wiki/wiki/Design-Rationale#uncle-incentivization

NO COMMENTS