hellolinux2021
hellolinux2021

欢迎拍手与交流,个人Channel:https://t.me/hellolinuxLab Sentinel DVPN中文社区管理,技术及使用支持 https://t.me/Sentinel_China 个人主页:https://hellolinux.uk/about

共识系列(2)-常见共识扩展

可扩展POW、无限扩展、可扩展BPF

可扩展的POW算法

现在的比特币网络中,一个区块是1M,传输和验证起来都比较快,所以需要把一个区块同步到全网的时间很短,只有当两个节点在这段时间里同时挖到区块才可能产生分叉。因此,如果这个延迟远小于区块间隔的话,分叉的概率就会很小,而连续几次分叉的概率就更小,所以大概率分叉在一个区块后就会结束,留下一个深度1的孤块。

比特币的POW算法里,安全性依赖于区块同步速度远小于区块间隔的前提。

扩展POW:加大区块大小,或者降低区块间隔。

把区块加大1000倍到一个G然后十分钟一个区块,不说别的,就是放在当时的网速也不允许。

加大区块大小,或者缩短区块间隔,使得同步区块的时间和区块间隔的比例没有那么悬殊的时候那么同步所需要的时间就会变长,于是产生分叉的可能性就会增加。而如果同步区块时间超过了区块间隔,那么分叉数量就永远不会减少,而是会越来越多。

扩展比特币(Scaling Bitcoin)- 可扩展的POW算法 :简单地通过扩大区块大小(减小区块间隔)来提升输出,直到遇到网速的边界为止。

这一类算法例如Bitcoin-NG,GHOST,Hybrid Consensus等。然后,可扩展性也在同一级别的还包括使用了类比特币POW结构的POS例如Snow White和Ouroboros

无限扩展

能够达到无限扩展目前的方法有两类——链下技术和分片。

链下支付通道,实际上就是储值卡这种针对小额高频交易的解决方案在区块链场景中的映射。从理论上来讲,链下技术和链上最大的区别在于BFT中的一致性。

链上技术需要共识算法保证交易的一致性(尽管可能会需要在安全性或者去中心上做出妥协),而链下技术中交易的一致性共识算法本身是不管的,而依赖于链下方案本身的设计以及双方根据场景对链下的协商。

分片算法:Omniledger,Chainspace,和@王嘉平老师的Monoxide,以及偏工程的以太坊分片和Rchain,方案VAPOR从结果看来也是分片。

“第二层(链下扩容)”和“第一层(链上扩容)”

一层二层更多地不是从我们在这里考虑的无限扩展角度出发的,而是从“要不要改变主链算法”或者“是不是通过链上抵押把交易挪到链下进行”这种角度定义的

DAG只是一个概念,而把DAG用于区块链的方法有很多,例如GHOST,BLOCKDAG,SPECTRE,PHANTOM,Swirld Hashgraph,IOTA,Byteball,Conflux等等。尽管DAG理论上有无限扩展的可能,但是目前的所有有具体算法的DAG方案(光有个概念的不算)中,没有一个是无限扩展的,而都只是可扩展。

可扩展的BFT

拜占庭容错问题和一些重要的拜占庭容错算法。

一个重要的拜占庭容错算法PBFT(实用拜占庭容错),它的消息复杂度是O(N^2)。采用BFT算法的区块链的共识节点基本上都只有十几或者几十个。

O(N)消息复杂度的BFT算法,这类BFT算法就多了,包括Honeybadger,Byzcoin,Hyperledger-Iroha,Elastico,乃至Algorand和Avalanche的BFT的部分,都属于此类。

比特币扩容方案——例如大区块和隔离见证。

只是提高了一些输出,而完全没有解决可扩展性问题。然而,扩容本身英文也是scalable,而且从历史角度讲,这两个方案的确也是扩展的第一步。

大区块-->分叉多-->采用GHOST-->可扩展POW

隔离见证-->解决比特币可变性问题-->方便链下方案的实现-->无限扩展

所以,从这种角度讲,说两个方案扩展了比特币也无可厚非——只不过最终,真正在比特币上的升级,也就只停留在了这第一步上。

扩展之间的关系

分片和链下技术是不应该和其他“可扩展”方案放在一起比较的,因为这两个方案的可扩展性更高,即在大网络中的输出更高,但是会在安全性或者中心化上做出一些妥协。更基础一些的不同是——看这些算法为了保证一致性,是不是要求每个节点都记录每一笔交易,如果是,则消息复杂度至少是O(N),于是当网络中加入节点的时候,输出一定是不会增加的。而想要无限扩展,就一定有一些交易,是不需要广播到整个网络的。

可扩展算法中,可扩展的POW、可扩展的BFT殊途同归,达到了一样的可扩展性,即O(N)消息复杂度。然后,两者的输出最终都只会受到网络网速和响应延迟的约束,比较优秀的算法大概在实验室环境下,达到1000TPS这个量级,最终当然还是会取决于算法的优劣以及实现的优化程度,所以在现实中,随着网络的扩大,输出不随着节点数量增加的提升而提升是个美好的想象——输出几乎一定会随着网络的增大而下降。

最容易混淆的就是DAG,但是这类算法中,我们之前也已经介绍过了,无论是工业界的IOTA,Swirld Hashgraph还是偏学术的Phantom和Conflux,无论在某些媒体或,文章,或者他们自己白皮书中是怎么介绍的,请记住,它们严格都是“可扩展”的共识算法,而不是“无限扩展”的

参考

突破区块链不可能三角

CC BY-NC-ND 2.0 版权声明

喜欢我的文章吗?
别忘了给点支持与赞赏,让我知道创作的路上有你陪伴。

加载中…
加载中…

发布评论