每次诚实节点生成一个“孤块”,就意味着诚实节点付出了算力,但没能成功地将链的长度增加一,也就没有为系统的安全性做出贡献。
如果孤块出现过于频繁,最长链增长的速率就会降低。
一旦这个速率低于攻击者生成区块的速率,攻击者就可以从任意早的地方发起攻击,最终追上最长链,从而改写区块链上的历史。
在最重链规则下,如果从某一时刻开始,所有诚实者生成的区块都将一个区块 A 作为自己的祖先。
也就是说,这些新区块都在以区块 A 为根节点的子树中。 那么,无论这些新生成的块中有多少“孤块”,区块 A 的子树权重增长的速率都不会打折扣。
对于区块 A 所有兄弟区块,只要攻击者的总算力低于诚实者的总算力,那么无论攻击者做什么,它的子树权重增长速率都很难赶上子树 A 的权重增长速率。最终攻击者没有能力改变 “区块 A 打败了它的所有兄弟” 这一事实。
对于 A的父亲区块、祖父区块等等,类似的结论同样成立。这样,区块 A 就成为了一个进入“最重链”的区块,且这个事实无法被攻击者逆转。
从以上分析可以看出, 最重链规则完全不关心新生成的区块中有多少孤块,并具有这样的性质:“无论出块速度多快,最重链规则的攻击阈值都是>50%(即通常说的51%)” 。