什么是叔块
叔块是以太坊引进的,顾名思义叔块就是跟自己的父区块指向的父区块相同。
当矿工打包的时候发现有这样的块存在,就把它打包进去。那么这个块就是当前块的叔叔了,就称为叔块,这个起名还是蛮有意思的。
如上图说是,当打包102的时候,发现还有个黄色的101也指向自己(102)的爷爷(100),那么黄色的101就是一个叔块(当然这个是最高级别的叔块,如果打包102的时候还没有黄色的101,打包103的时候才发现黄色的101,那么黄色的101也是会当做区块打包到103内,区别是黄色101区块的生产者获得奖励不同)
为什么要有叔块
比特币里面是没有叔块概念的,叔块是以太坊中引进的,至于为什么要引进叔块的概念,是与以太坊的缩短出块时间有关。
比特币平均出块时间间隔为10分钟,出现叔块的情况概率比较小,当时中本聪设定的这种情况的叔块是做无用功,不会有任何奖励。
但是以太坊为了缩短出块时间到10s出头,那么叔块产生的概率就比较高了,如果类似比特币的设计,会有很多矿工因为生产了叔块而获取不到任何奖励,矿工的积极性会降低,不利于以太坊生态发展,所以V神引入了叔块的概念,这种情况下矿工打包叔块进区块,叔块生产者和打包叔块的矿工都会有一定的奖励。
可以看下V神的这篇文章:https://blog.ethereum.org/2014/07/11/toward-a-12-second-block-time/
叔块的相关规定
看以太坊的wiki:
如果要打包叔块到区块B的话要满足几点:
1 叔块必须是B的第K层祖先,2<= k <= 7
2 叔块不能是B的祖先
3 叔块必须有合法的block header,但是不必是之前验证过的完整的block(没太看懂)
4 叔块必须没有被包进区块过的