首页 >> 大全

突破区块链不可能三角(二)--在POW扩展性上的尝试

2023-06-18 大全 72 作者:考证青年

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

解决方案:

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

带来的问题:

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

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

区块链比特币可扩展性的瓶颈在于——任何一笔交易需要发给所有节点,就是POW的有效性是建立在所有人都在同一条最长链上挖矿的,于是,大致上说,只有上一个区块被挖出来并且同步到整个网络之后,共识算法,即挖矿,才能开始进行。

比特币的共识算法必须需要一定时间来进行,而且必须在所有节点同步,即传输和验证完所有交易之后才能开始,即POW共识出块的时间,即区块间隔,需要远大于同步所需要的时间。

然而,我们希望所有的带宽*时间都用来在网络中传输交易,而不希望先做一个时间t1的同步,确保所有人都对于最长链有共识之后再开始进行一段时间t2的POW计算达成共识。而在t2的这段时间是无法做同步的,因为在没有共识的前提下,我们并不知道哪个区块是正确的,于是,这时候的带宽就被浪费了。

理想状态是,我们能够一边做共识一边同步?那需要做的第一步就是,我们需要把比特币POW中的共识和交易(区块内容)脱钩。

1 和两篇论文做了一种简单地将用POW作为一种准入机制然后进行(类)PBFT的方法。

算法的原理基本上都是保留比特币POW的一切特性,例如区块奖励,例如出块时间等等。但是,POW不再决定交易,而只做委员会选举——例如,我们规定,最近的100个出块者是当前的委员会,然后由他们进行BFT决定交易,这里的交易是最终的也就是绝对的,不存在分叉的问题,然后把广播给全网。然后我们可以认为这样决定的交易就是最终结果,于是解决了区块一小时6区块的时延和无法确认达成共识的两个问题,然后顺带的,因为POW的共识只决定委员会出块者,所以交易的输出不再受限于POW,而只受限于BFT的输出。而无论是在做BFT还是做完BFT把交易广播到全网的时间里,都不影响POW继续进行下一轮共识。

2 -NG的选举合法出块者的微区块解决方案

-NG—首先还是照常用比特币POW,只不过,这个时候出来的区块里面不用包含所有交易,只是宣布——我是竞争胜出的合法出块者。然后,在十分钟之内,这个出块者可以以更快的速度(更短的区块间隔)发“微区块”,其中只包含交易而不需要再做POW,因为他已经竞争得了这一次的出块权。这样的话,我们达到了和 以及一样的效果——用POW选取出块者而不是区块,于是交易本身就和共识脱钩了。

问题:如果微区块有非法交易怎么办

解决方案:当非法交易被发现的时候,后面的节点可以将这个交易注明无效,然后拿走提交非法交易的出块者之前获得的区块奖励

如果最终共识总是验证失败的话,这个算法实际上就会退回成比特币POW。然而,只要大部分时间最终共识正确,这个算法就可扩展了。

上述pow共识选举节点BFT交易共识和-NG选举节点发起交易微区块的异同:

相同点:两者都通过用POW选取出块者而非区块(交易)本身的方式把共识和交易脱钩。

不同点: ()中,通过BFT决定交易,认为交易已经是可信的。而-NG中出块者发出来的交易微区块仍旧未经验证,于是可能是非法的。于是,-NG中所有节点需要在同步交易之后验证交易的有效性,然后-NG根据博弈论设计了另一套激励(惩罚)模型,来保证微区块中交易的安全性。

3 总结

两者都改变了比特币的安全模型——后者我们已经说过了微区块中的交易需要通过“有毒交易”来惩罚,而前者由于需要进行BFT,所以安全性假设需要改成“不超过1/3的算力被恶意节点掌握”,这点和比特币假设中不超过50%算力安全是不一样的。而且,尽管从理论上来讲, 并没改变最近100个出块的人,只不过是把轮流出块变成大家一起商量着出块了而已。然而,这种改变仍旧会给人中心化的感觉,尤其当90%以上的算力都集中在大矿工的手中的时候——在比特币POW里,小矿工还能出块,但是如果在委员会之中,小矿工的意见就会淹没在90%的大矿工之中。而且,委员会选举会陷入这样的两难——比如,如果委员会大小过小,那么了解概率的人都知道,这10个节点中超过3个是恶意的概率是不小的,因此安全性保证不了。而如果这个委员会过大,那么BFT本身的复杂度和延时又会变得很大,使得算法失去了扩容的意义。

但其实,以上的这些,是一些理论上需要注意的问题,但并不是缺陷。从安全性来讲,虽然两者改变了安全性假设,但是并不是就不安全了,也并不是说两者就一定比比特币POW要不安全,毕竟比特币POW也有例如自私挖矿这种问题。然而,无论是比特币特有的政治因素,还是整个比特币的社区意愿和对安全性的担忧,再者就是比特币硬分叉的难度,都不会允许比特币对算法进行如此之大的改变。而再之后,POW在学术界中的热度也迅速降温(参见之前文章中BFT的发展历史),于是,仅有非常少的系统最终采用了这两种POW算法(有某个知名项目用了-NG)。但两者的思路——先选取委员会再进行BFT和先选取区块发布者的这种思路,完完整整地被例如和Snow-white或这种POS算法继承了

4 Ghost贪婪最重可观测子树算法

背景:

当你收到一个区块的时候,你开始对这个区块进行验证,确认区块的合法性之后,你开始在这上面挖矿。然而,在收到第一个区块10秒钟之后,你收到了另一个区块,然后,在通过验证之后,你发现它也是合法的……

这个时候,你将面临一个两难选择——你可以选择继续在第一个区块上挖矿,因为你觉得既然你先收到了它,也许很多其他的节点也一样。但是,你也知道有另一种可能性,就是也许你只是收到第二个区块的时间比较晚,而网络中其他的节点实际上最早收到的是第二个……但无论如何,你都只能选一个,选错的后果就是你挖的那个块最终没有出现在最长链上,而你的这些算力浪费了。

而与此同时,网络中所有的节点都在做这样的选择,也同样面临着算力被浪费的风险,这就是分叉导致比特币安全性下降的原因。

ghost解决方案:

在这种算法中,允许将看到的几个同高度的区块同时标记为前一个区块,然后其中一个为主,是“父块”,而其他几个为“叔块”。父块中的交易和比特币POW的父块同样对待,而叔块则只记录区块头,剩下的交易部分验证之后就丢弃。然后,最重要的部分是,将比特币POW的最长链共识改为最重链共识,即把分叉的深度也计入最长链的统计之中,于是,我们得到了这样的计算方法。

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

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

ghost优势:

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

劣势:

不论是POW共识还是GHOST共识,他们都是只维护一条主链,非主链的区块则被抛弃了,因此也就导致了这些被丢弃的块不能为整个区块链系统提供安全性,并且也降低了吞吐量(因为这些快被抛弃了,实际上也就是说系统的带宽被浪费了,因此他们就不能为系统贡献吞吐量)

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了