35

共识算法解读-PoW算法之GHOST

 3 years ago
source link: https://learnblockchain.cn/article/1064
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

问题引入:高吞吐量下比特币的安全性如何?

比特币为了保障其安全性,采用最长链规则,并固定了区块大小和出块时间间隔,从而导致其低吞吐量(4M)和减小出块间隔来增大吞吐量,但是这却带来...

问题引入:高吞吐量下比特币的安全性如何?

比特币为了保障其安全性,采用最长链规则,并固定了区块大小和出块时间间隔,从而导致其低吞吐量(<10Tps)和长时间区块确认间隔(6个区块,每个区块平均需要10分钟),这一直以来饱受诟病,影响了比特币网络的大规模使用。

一开始人们思考的是在比特币最长链的规则上,通过增加区块大小(1M->4M)和减小出块间隔来增大吞吐量,但是这却带来了三个很大的问题:

  • 不断的分叉! 分叉也就意味着安全性降低,容易引起双花攻击。
  • 区块奖励受网络延迟影响 :整个网络的区块奖励不单单与算力有关,网络延迟较低的节点更有可能获得出块奖励。
  • 容易受到自私挖矿攻击: 恶意节点出块后先不公布,直到发现比主链长时再公布

下图阐释了在一种区块生成间隔较小(区块生成率大于区块传播延迟)的网络中,区块链网络高度分叉,此时攻击者可以秘密创造6个区块(由红色虚线标记),从而超过主链的场景。

73YbYj6.png!web

于是,研究人员开始思考,如何在保证高吞吐量的同时,还能保证安全性?

2015年,以色列的学者Yonatan Sompolinsky和Aviv Zohar就提出了一种T he Greedy Heaviest-Observed Sub-Tree (GHOST)贪婪最重可观测子树算法 ,以解决这个问题。

论文链接: 共识算法相关paper:Secure High-Rate Transaction Processing in Bitcoin

那么GHOST又是如何做的?

GHOST的思路很简单,它对比特币的最长链规则进行更改,在每次分叉的时候选取 拥有最重自树的分叉节点 。举例来说(参考上图),就是在0处分叉为1B和1A时,1A的子树(它进行自私挖矿)共有6个块(包括1A块),1B的子树有12个块,12>6, 所以选1B为主链的块。这样就减轻了了分叉带来的问题,使得主链不断向后增长。

也就是说,主链之外的区块也被计入了算力。具体的算法如下,输入整个树结构的区块链,输出最终主链的最后一个区块B:

UN3q6vQ.png!web

该算法,从创世区块(Genesis)开始,每次分叉就选取最重子树,直到确定完主链的序。还是拿图中的例子,最终选取的主链是 0, 1B, 2C, 3D, 4B。

那么GHOST能否保证能够 唯一的确定主链 吗?相对于比特币他的 安全性 又如何?GHOST算法对 吞吐量的影响 又如何呢?这就涉及到GHOST的特性。

GHOST特性

  1. 收敛特性 :任何一个区块,经过足够长的时间,最终会被主链完全丢弃或者采用。 也就是经过足够长的时间,任何节点的主链会是一样的
  2. 抗51%攻击: 在有限的时间内,攻击者将任意在主链区块B,替换到链下的概率接近于0。
  3. 吞吐量和安全性 :如下图,随着区块生成速度λ(每秒产生的区块数)增加,GHOST的吞吐量相对于最长链Longest Chain规则没有太多下降,并且安全性没有任何下降,而最长链的安全性却指数下降

2qQvEjv.png!web

前路

GHOST在保证安全性的前提,提升了TPS,那么有没有可能进一步提升?

同时由于把非主链的区块抛弃了,只有主链的区块才有出块奖励,这样的激励机制会导致矿工不愿意贡献算力,这又改如何解决?

敬请关注,后续的PoW共识算法解读!

本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

  • 发表于 11小时前
  • 阅读 ( 3 )
  • 学分 ( 0 )
  • 分类:学术

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK