Conflux 共识算法解读
串行交易引发的吞吐量瓶颈
上次我们讲到 GHOST 算法 [2],它在中本聪共识的基础上提出的确定主链的算法,在保障了在高吞吐量的同时还保障了安全性(即不容易分叉,依然保证 51% 攻击)。但是 GHOST 算法的吞吐量是否还有进一步的提升空间呢?
答案是肯定的!Conflux 团队注意到不论是中本聪共识还是 GHOST 共识,他们都是只维护一条主链,非主链的区块则被抛弃了,因此也就导致了这些被丢弃的块不能为整个区块链系统提供安全性,并且也降低了吞吐量(因为这些块被抛弃了,实际上也就是说系统的带宽被浪费了,因此他们就不能为系统贡献吞吐量)。
并且注意到,比特币的吞吐量很低的原因是它是串行执行交易的,也就是说交易必须先排好序才能够执行,这产生了很多不必要的依赖,也是导致分叉的根源。于是 Conflux 就采用延迟排序交易的方式,先乐观地并行执行交易(不论是否有依赖或者冲突)和出块(不论是否会产生分叉),然后经过一段时间再全局地对所有的交易排序,并删除哪些冲突的交易。
顺着这个思路,我们发现最核心的问题就是如何解决并行出块的时候,还能对区块的全局序达成一致,从而保证账本的不可篡改。那么 Conflux 是如何做到的呢?
父边 / 引用边与 DAG 排序
为了并行出块,就需要把所有的块纳入到整个区块链之中。Conflux 采用采用了两种关系来定义区块之间的关系:父边 (parent edge) 和引用边 (reference edge),参考下图:
•父边:新出的块指向祖先块,类似于比特币那样•引用边:节点新出的块发现整个区块链中目前没有指向他的块,并建立一条指向他的边

全局区块排序就顺利成章了:
- 先按照 GHOST 规则 [3] 排序只包含父边的块,形成一个枢轴链 (pivot chain), 它类似于比特币的主链,不一样之处在于它还会引用比特币系统中丢弃的块 2. 根据枢轴链对区块分成各个纪元(epoch), 然后对每个 epoch 里面的区块拓扑排序。确定 epoch 包含的区块的划分原则是需要同时满足以下两个条件:
•该区块可以通过枢轴链的父边或者引用边遍历到•该区块没有被之前的 epoch 包含
- 根据 happens-before 原则 (就是谁在谁前面)对不同 epoch 之间的块进行排序
上述内容,可能涉及到一些专业术语 不好理解,举个排序例子 (参考下图):

先根据最终子树 GHOST 原则确定枢轴链为 G->A->C->E->H->NewBlock,然后由于 C 引用了 B,所以拍 B->C;那么 D 和 F 如何排序呢?D 的父亲是 A,F 的父亲是 B,A 的 epoch 大于 B,所以 D 在 F 前面。按照这样的顺序排完就是:
G->A->B->C->D->F->E->G->J->I->H->K->New Block
当然还有一些细节,比如两个区块在同一个 epoch 内,并且父边也在一个 epoch 里,那么就根据区块的 hash 值 id 的绝对大小排序,比如假设区块 DD 的 id 是 011,FF 的是 111,011<111,所以 DD 在 FF 前面
具体的算法如下,图中相关名词对应的解释参考其论文《[4]Scaling nakamoto consensus to thousands of transactions per second》[5]:

交易的排序
区块排好序之后,在每个区块内,按照交易的出现顺序排序,如果有冲突交易,那么只保留最先出现的那个,丢弃所有冲突的交易。
看起来很厉害是吧,那么实际实验结果如何呢?
性能
吞吐量
限制带宽 20M,在 4M/5s 的出块速度下,每秒能处理比特币网络中 3200 笔交易!
这个还是非常恐怖的数字,要知道以太坊现在每秒才 30~40Tps,Visa 才 6000 多 Tps。
确认时间
因为交易的序受枢轴链影响很大,而枢轴链的序是按照 GHOST 规则来定的,可以证明,Conflux 的安全性与 GHOST 一致。那么按照攻击者有 20% 全网算力,并且只有 0.01% 的概率(由 GHOST 安全性计算规则算出)篡改交易的假设,得到的数据是:4M 的区块,5 秒出一个块的话,在保证安全性的同时确认时间也只有 10 分钟。

可拓展性
带宽
带宽 20M 时 3200Tps,近 11 分钟确认时间;
带宽提升到 40M,交易处理速度几乎线性上升到 6400Tps,确认时间也只有 5.68 分钟。
节点数目
如下图,可以看出,随着节点数据增多,确认延迟几乎只是随之线性增长(不像 BFT 算法那样指数增长,受节点数据拓展影响很大)。

因此可见,Conflux 提出的共识算法已经不在是 PoW 公链性能上的共识瓶颈!
未来
如何处理带宽限制,高吞吐量带来的存储问题 (20M 带宽就消耗 2.88G/h) 和交易验证速度等问题,都是继续需要解决的问题。
如何应对存活性攻击等安全性问题,也就是说恶意网络阻塞,也是很值得研究的问题,可参考详解自适应权重 “GHAST”[6]
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。

币小葱



