4

What is Sha3Uncles field in the blockchain? And, why is it the same for uncles 3,4 and 7 ? And why ParentHash for these uncles is also the same ?

https://etherscan.io/uncle/0x5cd50096dbb856a6d1befa6de8f9c20decb299f375154427d90761dc0b101109
https://etherscan.io/uncle/0xedc7a92c2a8aa140b0afa26db4ce8e05994a67d6fc3d736ddd77210b0ba565bb
https://etherscan.io/uncle/0x4b8729311c5b59f418c5154fd54d85e6a8b42eabf83a1d3c05c754a8f10354cc

Is it like a pointer to trie storage where all uncles are stored?

In the source code it is declared like this:

type Header struct {
    ParentHash  common.Hash    `json:"parentHash"       gencodec:"required"`
    UncleHash   common.Hash    `json:"sha3Uncles"       gencodec:"required"`
    ...
}

So, is it UnclE or UnclES?

3
  • Good question. It's not showing up in EtherScan, but the parent hash that they all share (0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3) is the hash of block 0. Block 0 wasn't "mined" in the typical sense, so the uncles could be something to do with the consensus algorithms trying to work themselves out? No idea :-) Commented Feb 13, 2018 at 22:03
  • (I think sha3Uncles is a combined hash of all uncles for a given parent, which might explain why it's the same for all 3.) Commented Feb 13, 2018 at 22:04
  • @RichardHorrocks you are totally right, as usual. Answer the question I will accept
    – Nulik
    Commented Feb 14, 2018 at 22:01

2 Answers 2

5

It's not a complete answer, but...

It's not showing up in EtherScan, but the parent hash that they all share (0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3) is the hash of block 0.

Block 0 wasn't "mined" in the typical sense (I can't remember how they did it), so the uncles could be something to do with the consensus algorithms trying to work themselves out when the main net first came to life. But that's just speculation.

From the code, it looks like sha3Uncles is a combined hash of all uncles for a given parent, which would explain why it's the same for all 3.

2

As you know miners on the Ethereum network is incentivized to include a number of uncles every time a block is mined. This may sound very strange at first, as it allows “orphaned” blocks to still yield a reward for miners.

Uncles have lower reward than normal blocks. When you are mining a percentage of mined blocks will be uncles in the end lowering our daily yield.

Uncles are indeed rewarded, which helps securing the network by making the chain "heavier". This in turn is encouraged by rewarding miners for including uncles. A virtuous cycle, if you will.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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