1

I have been learning about ethereum but now am stuck with conflicting thoughts about block times and stale blocks. Here is what I understood, please correct me if I am wrong.

Block time for bitcoin - 10 minutes -
Which is kept so that the probability of wasted computed hashes are around 10%, which claimed are manageable.

Block time for ethereum - 15 to 19 seconds - Now, even though stale blocks occur in this time period, they are demarcated as uncle blocks which can be accepted uptil seven generations.

So, for bitcoin, only the first accepted block gets rewarded and all the rest stale blocks are then discarded.

However, for ethereum, I am not able to wrap my head around this. Even if stale blocks are added every 15 seconds, doesn't this add unnecessary non functional blocks to the blockchain? Hereby, hampering it's performance in any way? Or are these uncle blocks do provide some functionality?

For example if 5 blocks are added, and every block has 7 generations of uncles, doesn't this mean 5*( 7 generations ) quantity of stale blocks. Isn't this bad?

Are the thoughts correct?

  • Where did you read this claim? "Which is kept so that the probability of wasted computed hashes are around 10%, which claimed are manageable" – Briomkez Sep 03 '18 at 16:01
  • @Briomkez https://medium.facilelogin.com/the-mystery-behind-block-time-63351e35603a – Aseem Upadhyay Sep 04 '18 at 10:41

1 Answers1

2

In Ethereum, the ommers (i.e. the uncles until 6th generation before that are "included in the main block") get a reward. According to the Ethereum protocol specification (yellow paper), it is possible to include at most two ommers' headers in the block.

It is worth to mention that the bodies of the ommers (i.e. their transactions and their ommers) are not included in the block, so their transactions are not considered.

Indeed, to check if a block is valid (wrt the ommers) you have to check that the headers are valid, but not their transaction nor the state they computed.

So, ommers are a way to give a reward to other members of the network who were able to create a block "concurrently". The creators of new blocks are incentivized to include ommers headers.

To get more details you can have a look to the yellow paper (in particular, Section 11.1 and 11.3). In addition you may take a look at this intersting answer.

Let me know, if something is unclear, I will try to improve the answer.

Briomkez
  • 1,894
  • 1
  • 11
  • 33
  • So, where do the ommers live if not at the main blockchain? Is there a separate space for uncle blocks? – Aseem Upadhyay Sep 04 '18 at 10:58
  • Also, I found this https://www.trustnodes.com/2017/12/05/ethermine-says-njet-increasing-ethereums-capacity-network-congests-fees-increase-0-10 – Aseem Upadhyay Sep 04 '18 at 11:09
  • The ommers do not live in the main block, but rather they exist in the forks (so after a confirmation time, it is safe to cancel old ommers, since they do not contribute to the main blockchain). – Briomkez Sep 04 '18 at 11:58
  • So, each block that gets added to the main blockchain, adds a fork to the chain which contains the ommers for that mined block? Wouldn't the chain then be flooded with forks? :o – Aseem Upadhyay Sep 04 '18 at 12:12
  • Actually, it is not the case. Whenever a node knows that there is a fork, it can apply the selection rule to select the "canonical blockchain" (i.e. the only one that matters) by selecting the one in which the aggregate difficulty (the sum of the difficulty of all blocks, is maximal). So, after a confirmation time (e.g. an amount of blocks), you can be quite sure that those blocks are canonical. So you can forget about the old forks. – Briomkez Sep 04 '18 at 12:19