The Ethereum blockchain is described as containing "ommer" blocks, usually called "uncle" blocks by the general public. What is an ommer/uncle block, and why are they needed?

up vote 42 down vote accepted

From the glossary

Uncle: a child of a parent of a parent of a block that is not the parent, or more generally a child of an ancestor that is not an ancestor. If A is an uncle of B, B is a nephew of A.

Why they are needed?

To help reward miners for when duplicate block solutions are found because of the shorter block times of Ethereum (compared to other cryptocurrency). An uncle is a smaller reward than a full block. (And if they are submitted later than the next block, the reward rapidly diminishes, ending at zero after seven blocks later.)

Uncles are stale blocks that contribute to the security of the main chain, but are not considered the canonical "truth" for that particular chain height.

In contrast to orphan blocks (which have no parent), uncle blocks are linked to the chain but are not part of the final selection.

Uncles are stale blocks which are not orphaned. Orphan blocks have no parent, therefore it is not possible to assign them a generation to be referenced as uncles in the next 7 generations. Only normal blocks and stale blocks have a path to the genesis block.

Due to advances in blockchain research, it was shown that significantly lower block times were possible and perhaps beneficial given the current connectivity of the Internet. One of the potential risks of a low block time is a higher rate of orphaned blocks (competing mined blocks that do not make it into the main chain). To counter this, a variation of the GHOST protocol is used which pays for these valid blocks, adding to the security of the main chain. Instead of the main chain being "longest", it is instead "heaviest".

Also "ommer" is sometimes used but is not an English word so "uncle" is used even if it's more gender oriented.

  • From your link: "Uncle validity requirements: uncles have to be valid headers, not valid blocks. This is done for simplicity [...]." Doesn't this lead to attacks where I simply mine headers and ignore blocks (blocks are heavy)? – Jus12 Sep 23 '16 at 17:50
  • 2
    Just a nit-pick: at present Ethereum doesn't actually count the POW weight of uncle/ommer blocks GHOST-style. It rewards them to reduce the risk of mining centralisation, but doesn't count them towards the metric of "heaviest chain". It just uses the longest. – Jeff Coleman Jun 14 '17 at 3:48
  • 2
    Hi Jeff, what is the source for Ethereum still considering longest chain because i am not really sure is it longest or heaviest at the moment? – MWH May 7 at 12:58
  • The answer here has a reference to the source code: ethereum.stackexchange.com/questions/13378/… – Lucas Saldanha Sep 13 at 4:09

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.