Home 以太坊幽灵协议
Post
Cancel

以太坊幽灵协议

这篇文章要再写写以太坊的幽灵协议(ghost),这个在之前的以太坊白皮书里简单介绍过,不是很详细,最近又看到了一些文章,发现自己之前想的不是很全面,所以这篇再总结下。

1. 幽灵协议提出的背景

“幽灵“协议(”Greedy Heaviest Observed Subtree” (GHOST) protocol)是由Yonatan Sompolinsky 和 Aviv Zohar在2013年12月引入的创新。幽灵协议提出的动机是当前快速确认的块链因为区块的高作废率而受到低安全性困扰

幽灵协议提出的动机是当前快速确认的块链因为区块的高作废率而受到低安全性困扰

因为区块需要花一定时间(设为t)扩散至全网,如果矿工A挖出了一个区块然后矿工B碰巧在A的区块扩散至B之前挖出了另外一个区块,矿工B的区块就会作废并且没有对网络安全作出贡献。

这是第一个危害,浪费算力,也就是算力没有对网络安全做出贡献。

此外,这里还有中心化问题:如果A是一个拥有全网30%算力的矿池而B拥有10%的算力,A将面临70%的时间都在产生作废区块的风险而B在90%的时间里都在产生作废区块。因此,如果作废率高,A将简单地因为更高的算力份额而更有效率,综合这两个因素,区块产生速度快的块链很可能导致一个矿池拥有实际上能够控制挖矿过程的算力份额。

这是另一个危害,高作废率导致了算力低的节点一直在同步别人的区块,永远的落后别人一步,高算力的节点实际上就获得了更高的效率,从而更多得控制整个网络。

2. 幽灵协议内容

幽灵协议引入了“叔区块”的概念。叔块,其定义是直系父区块的兄弟区块,这种区块在之前是直接作废的。

协议的内容简单来说就是,挖叔区块的人可以获得一定量的奖励,挖父区块的人如果包含别人的叔区块,也可以额外获得奖励,另外在计算最长链的时候把叔区块也考虑在内,综合最长的才是最长链。

看下下面这张图:

如果单纯的计算最长链原则,主链应该是 0<-1B<-2D<-3F<-3F<-4C<-5B.

如果采用了 GHOST 协议, 以前的”废块”也会被考虑到主链的计算量中。每一个节点下含一个子树, 兄弟节点之间子树节点最多的被选为主链。这样一来,0<-1B<-2C<-3D<-4B 成为主链。

如果采用 GHOST 协议, 一个攻击者仅仅提供一个 1A 到 6A 的长链并不能被认为是主链。

对于 4B 来说,它的直系父节点有 3D, 2C, 1B 等等,这些父节点的兄弟节点 3C, 3E, 2B, 2D, 1A 都是 4B 的叔节点。

奖励是怎么计算的呢?

  • 挖叔区块的节点会获得 ((叔块高度+8-当前块的高度)/8 ) 的基本奖励。

    假设 3D 是新产生的区块,对于其叔块 2B 而言,高度相差1,所以它的奖励是(-1+8)/8 基本奖励,即 7/8 基本奖励。而如果是 1A 能获得奖励,则它获得 6/8*基本奖励,依次类推。

  • 挖主链区块的节点会获得基本奖励和矿工费,另外因为包含了叔区块最多可以额外获得 1/32 的基本奖励。

另外,一个节点最多包含2个叔块。一个叔块只能有一个后继。

3. 这样做会有什么效果呢?

首先挖叔区块的人会获得奖励,这样就会激励他们把挖出来的区块广播出去,挖主链的人呢,也因为有激励,会把叔区块包含进来,而最长链是按照主块和叔区块整体来算的,这样之前的废区块就为链的安全尽了一份力。

而且因为有奖励,挖叔区块的人,更倾向于选择挖主链,而不是选择忽略主链而只维持自己的链(因为挖主链会损失所有自己已挖块的奖励)。

这样综合来看,就是幽灵协议使主分支团结了其他的分支,让大家更愿意一起合作,链就不是只由算力高的节点控制,链的安全性就更高。

4. 参考

https://github.com/ethereum/wiki/wiki/%5B%E4%B8%AD%E6%96%87%5D-%E4%BB%A5%E5%A4%AA%E5%9D%8A%E7%99%BD%E7%9A%AE%E4%B9%A6#%E5%BA%94%E7%94%A8

https://cooli7wa.com//2018/08/19/%E6%AF%94%E7%89%B9%E5%B8%81%E4%BB%A5%E5%A4%AA%E5%9D%8A%E7%99%BD%E7%9A%AE%E4%B9%A6/

https://www.jianshu.com/p/a7082e03293e

http://www.aquagemini.com/understanding-sto-security-token-offering/

https://www.jianshu.com/p/69cbbdcaf2cc

This post is licensed under CC BY 4.0 by the author.
Contents