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 3 '18 at 16:01
  • @Briomkez medium.facilelogin.com/… – Aseem Upadhyay Sep 4 '18 at 10:41
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.

  • So, where do the ommers live if not at the main blockchain? Is there a separate space for uncle blocks? – Aseem Upadhyay Sep 4 '18 at 10:58
  • Also, I found this trustnodes.com/2017/12/05/… – Aseem Upadhyay Sep 4 '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 4 '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 4 '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 4 '18 at 12:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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