区块链研习社jouypub.com区块链实战

以太坊Ghost协议和叔块

2018-12-18  本文已影响1人  JouyPub

  GHOST(Greedy Heaviest Observed Subtree)是一种主链选择协议(不是侧链选择协议)。举例来说:经典的Proof-of-Work(POW)是以取最长的主链为基本原则,GHOST协议则是以包含子树数目最多为基本原则。

  POW协议不能以太快的频率(上图的Block Generation Rate)发布新的区块,因为太快发布区块,区块中的数据重复验证6次(若干次)立即永久封存地区块中,一旦51%算力攻击一旦发生,double-spend等糟糕问题会出现,恶意的数据容易永久封存于区块中,整个blockchain系统需要足够长的时间来处理和恢复黑客恶意攻击所造成的破坏——这段时间可以理解为系统的有效修复时间,也可以理解为交易信息被确认的等待时间,从安全的角度,显然这段时间越长,交易数据可靠性被验证的越多,所以越可靠。
  相比而言,GHOST协议就没有这个问题了,因为在GHOST协议控制下, “区块发布太快” 和 “51%攻击持续性地控制主动权” 二者没有必然的关系,GHOST不是采用绝对算力优势获取主动权的协议。这也是为什么以太坊的出块速度要远远大于区块链。

  在比特币协议中,最长的链被认为是绝对的正确。如果一个块不是最长链的一部分,那么它被称为是“孤块”。一个孤立的块也是合法的,但是发现的稍晚,或者是网络传输稍慢,而没有能成为最长的链的一部分。在比特币中,孤块没有意义,随后将被抛弃,发现这个孤块的矿工也拿不到采矿相关的奖励。例如:挖矿节点A是一个矿池占有全网30%的算力,挖矿节点B占有全网算力的10%,节点A会有70%的概率产生废块,节点B有90%的概率产生废块. 如果新旧区块之间产生的间隔太短, 则节点A会因为规模效应而比B节点更为高效。所以新旧区块的间隔过短会导致单一的矿池主导全网的挖矿过程。
  这个问题在以太坊中得到了很好的解决,根据GHOST协议,不认为孤块没有价值,而是会给与发现孤块的矿工以回报。孤块被称为“叔块”(uncle block),它们可以为主链的安全作出贡献,也同样能获得奖励,这激励了矿工在新发现的块中去引用叔块,减少了孤块的产生。

Ghost协议解决了两个问题:摒弃了单一的最长链原则, 取而代之的是最大子数原则;孤块奖励问题。

如下图所示:


image

如果单纯的计算最长链原则, 主链应该是 0 -> 1B -> 2D -> 3F -> 3F -> 4C -> 5B.
如果采用了GHOST协议, 以前的"废块"也会被考虑到主链的计算量中.每一个节点下含一个子树, 兄弟节点之间子树节点最多的被选为主链. 这样一来 0 -> 1B -> 2C -> 3D -> 4B 成为主链,
如果采用GHOST协议, 一个攻击者仅仅提供一个1A到6A的长链并不能被认为是主链.

Ghost协议的优势在于:

孤块奖励问题:

被引用的叔块,其矿工的报酬和叔块与区块之间的间隔层数有关系。

间隔层数 报酬比例 报酬(ether)
1 7/8 4.375
2 6/8 3.75
3 5/8 3.125
4 4/8 2.5
5 3/8 1.875
6 2/8 1.25
欢迎订阅「K叔区块链」 - 专注于区块链技术学习
博客地址:http://www.jouypub.com
简书主页:https://www.jianshu.com/u/756c9c8ae984
segmentfault主页:https://segmentfault.com/blog/jouypub
腾讯云主页:https://cloud.tencent.com/developer/column/72548
上一篇下一篇

猜你喜欢

热点阅读