17-ETH-GHOST协议

作者: ZeroDot618 | 来源:发表于2022-11-25 00:14 被阅读0次

声明:本文是要点笔记,介绍和系列笔记均收录在专题:区块链技术与应用

BTC系统中出块时间为10min,而以太坊中出块时间被降低到15s左右,虽然有效提高了系统反应时间和吞吐率,却也导致系统临时性分叉变成常态,且分叉数目更多。这对于共识协议来说,就存在很大挑战。在BTC系统中,不在最长合法链上的节点最后都是作废的,但如果在以太坊系统中,如果这样处理,由于系统中经常性会出现分叉,则矿工挖到矿很大可能会被废弃,这会大大降低矿工挖矿积极性。而对于个人矿工来说,和大型矿池相比更是存在天然劣势。

对此,以太坊设计了新的公式协议——GHOST协议(该协议并非原创,而是对原本就有的Ghost协议进行了改进)。

GHOST协议最初版本

如下图,假定以太坊系统存在以下情况,A、B、C、D在四个分支上,最后,随着时间推移 B 所在链成为最长合法链,因此A、C、D区块都作废,但为了补偿这些区块所属矿工所作的工作,给这些区块一些“补偿”,并称其为"Uncle Block"(叔父区块)。

规定 E 区块在发布时可以将 A、C、D 叔父区块包含进来,A、C、D 叔父区块可以得到出块奖励的 7/8,而为了激励 E 包含叔父区块,规定 E 每包含一个叔父区块可以额外得到 1/32 的出块奖励。为了防止 E 大量包含叔父区块,规定一个区块只能最多包含 2 个叔父区块,因此 E 在 A、C、D 中最多只能包含两个区块作为自己的出块奖励。

GHOST协议最初版本

假定一个矿工挖出了 B,此时他沿着其所在链继续挖,而他知道 A 是和自己“同辈”,则可以将A包含进区块挖矿,若挖矿过程中又监听到 C 也是“同辈”,则可以停止挖矿,将C包含进来重新组织成一个新区块重新挖矿,实际中,由于挖矿过程的无记忆性,这样并不会降低成功挖到矿的概率。

GHOST协议最初版本缺陷:

  1. 因为叔父区块最多只能包含 2 个,如上图出现 3 个怎么办?
  2. 矿工自私,故意不包含叔父区块,导致叔父区块7/8出块奖励没了,而自己仅仅损失1/32。如果甲、乙两个大型矿池存在竞争关系,那么他们可以采用故意不包含对方的叔父区块,因为这样对自己损失小而对对方损失大。

Ghost协议新的版本

如下图1中,为对上面例子的补充,F 为 E 后面一个新的区块。因为规定 E 最多只能包含 2 个叔父区块,所以假定 E 包含了 C 和 D。此时,F 也可以将 A 认为自己的的叔父区块(实际上并非叔父辈的,而是爷爷辈的)。如果继续往下挖(下图2),F 后的新区块仍然可以包含 B 同辈的区块(假定 E、F 未包含完)。这样,就有效地解决了上面提到的最初Ghost协议版本存在的缺陷。

Ghost协议新的版本

但这样仍然存在一定的问题。

我们将“叔父”这个概念进行了扩展,但问题在于,“叔父”这一定义隔多少代才好呢?

如下图所示,M 为该区块链最新的一个区块,F 为其严格意义上的叔父,E 为其严格意义上的“爷爷辈”。以太坊中规定,如果 M 包含 F 辈区块,则 F 获得 7/8 出块奖励;如果 M 包含 E 辈区块,则 F 获得 6/8 出块奖励,以此类推向前。直到包含 A 辈区块,A 获得 2/8 出块奖励,再往前的“叔父区块”,对于M来说就不再认可其为 M 的"叔父"了。

Uncle block

对于M来说,无论包含哪个辈分的“叔父”,得到的出块奖励都是 1/32 出块奖励。

这样,就方便了全节点进行记录,此外,也从协议上鼓励一旦出现分叉马上进行合并。

以太坊中的奖励

  • BTC:静态奖励(出块奖励)+动态奖励(交易费,占据比例很小)
  • ETH:静态奖励(出块奖励+包含叔父区块的奖励)+动态奖励(汽油费,占据比例很小,叔父区块没有)

BTC中为了人为制造稀缺性,比特币每隔一段时间出块奖励会降低,最终当出块奖励趋于0后会主要依赖于交易费运作。而以太坊中并没有人为规定每隔一段时间降低出块奖励。

以太坊中包含了叔父区块,要不要包含叔父区块中的交易?
不应该,叔父区块和同辈的主链上区块有可能包含有冲突的交易。而且我们前文也提到,叔父区块是没有动态奖励的。因此,一个节点在收到一个叔父区块的时候,只检查区块合法性而不检查其中交易的合法性。

当然,对于分叉后的产生的叔块链应该怎么办?例如下图所示,A->F 该链并非一个最长合法链,所以 B->F 这些区块怎么办?该给挖矿补偿吗?

Uncle chain

如果规定将下面整条链作为一个整体,给予出块奖励,这一定程度上鼓励了分叉攻击(降低了分叉攻击的成本,因为即使攻击失败也有奖励获得)。因此,ETH系统中规定,只认可A区块为叔父区块,给予其补偿,而其后的区块全部作废。

相关文章

  • 17-ETH-GHOST协议

    声明:本文是要点笔记,介绍和系列笔记均收录在专题:区块链技术与应用[https://www.jianshu.com...

  • git协议

    git支持的协议 local协议 https协议 ssh协议 git协议 github常用的协议

  • Dubbo服务 上传文件解决方案以及Hessian协议

    协议支持Dubbo支持多种协议,如下所示: Dubbo协议 Hessian协议 HTTP协议 RMI协议 WebS...

  • Procotol 和 Delegate

    目录 Procotol 协议的概念 协议的分类 协议的定义 协议的遵循 协议的方法 协议的属性 Delegate ...

  • 计算机网络题目

    几种协议分别属于哪一层传输层协议:TCP协议、UDP协议应用层协议:FTP、HTTP、SMTP网络层协议:IP协议...

  • ARP协议

    地址解析协议ARP 网络层四大协议:ARP协议,IP协议,ICMP协议,IGMP协议。 ARP(Address R...

  • IP数据报格式

    前言 先回顾一下TCP/IP协议栈 网络层的协议有IP协议、ARP协议、ICMP协议和IGMP协议。其中IP协议是...

  • 名词解析

    网络层:IP协议 : 网络协议ICMP协议: Internet互联网控制报文协议 ->IP协议的附属协议 IP...

  • 如何将Git仓库备份到本地

    git常用的传输协议传输协议.png哑协议:哑协议传输进度不可见;智能协议传输可见。传输速度:智能协议比哑协议传输...

  • NSURLSession学习笔记

    �Http协议-超文本传输协议 Http协议是应用层协议,底层要求的传输协议必须是可靠的传输协议,通常是TCP协议...

网友评论

    本文标题:17-ETH-GHOST协议

    本文链接:https://www.haomeiwen.com/subject/srehxdtx.html