2018年12月5日,区块链协议项目Conflux获得了包括红杉资本在内的多家知名投资机构的3500万美元(约人民币2.4亿元)的融资。Conflux作为一个可扩展的、分散的区块链系统,采用了工作量证明(PoW)与有向无环图(DAG)的机制,在去中心化的前提下,既保障了区块链的安全,又提升了区块链的可扩展性,在某些层面上,突破了“不可能三角”。
图灵奖获得者姚期智院士参与了Conflux项目,其有关区块链的论文也被更多人所关注:
《Scaling Nakamoto Consensus to Thousands of Transactions per Second 》(《扩展中本聪共识至上千交易每秒》)
我们今天将解读姚期智院士参与的这篇论文, 让大家进一步了解Conflux所提出的共识机制。
事实证明,中本聪共识对记账权和交易顺序做出了严格的规定,使得比特币在运行和发展过程中面临如下瓶颈:
中本聪共识导致的生产效率低下和交易时滞过长的问题,引发了糟糕的用户体验、飙涨的转账费用和拥堵的网络,不利于区块链技术长期的推广和发展。虽然已有很多团队试图解决中本聪共识的瓶颈,但他们的方案仍存在不完美之处:
这种困境,被早期区块链开发人员称作为“不可能三角”,即:公链的三个属性:去中心化(Decentralization)、安全(Security)和可扩展性(Scalability),在技术实现上有二缺一,不能同时实现。
然而,Conflux团队在论文中设计了一种对比特币的扩展方案,它结合了工作量证明(PoW)与有向无环图(DAG)的优势,在去中心化的前提下,既保障了区块链的安全,又提升了区块链的可扩展性,在某些层面上,突破了“不可能三角”。
与中本聪共识在打包区块时对交易顺序进行严格规范不同,Conflux乐观地假设,在并存的区块中,交易(Tx,Transactions)是不冲突的,只要所有节点对一致的交易顺序达成共识即可。
基于这一假设,Conflux首先设立规则将区块们整合为有向无环图(DAG):每个区块都需要引用一个它的父区块的边(Parent Edges),每个区块也可以引用发生在它之前的,还没有被引用过的区块的边作为他们的引用边(Reference Edges),父边和引用边确定了各个区块之间的先后关系,实现了DAG的整体框架,增加了同一时段一起被处理的区块的数量。相较于比特币一次只能处理一个区块的低效模式而言,DAG结构大大提升了公链的速度。
然而DAG不能显示同一时段产生的不同区块之间的顺序(即区块全序),为进一步完善区块排序机制,Conflux团队引入了GHOST算法、拓扑排序,并提出了Epoch概念,将细化排列区块全序的步骤拆分成了四步:
(图中实线箭头指向父区块边,虚线箭头指向引用区块边)
(枢轴链区块E确认分叉链区块D和区块F的时段(Epoch))
在区块全序和交易全序确认之后,Conflux还设定了规则来应对公链容易面对的交易问题和双花问题:
此外,Conflux团队还在Amazon EC2上搭建了原型系统,运行了10,000个带宽为20Mbps的Conflux节点,用控制变量法来测试在区块大小、出块率变化之下,Conflux、GHOST和比特币的吞吐率和交易确认时间。
结果显示,尽管区块大小和出块率发生了变化,Conflux(下图中以蓝色三角线表示)都能实现100%的高区块利用率,它有能力去处理所有的区块,鲜少遗漏掉分叉中的区块,减少了出块时的资源浪费,实现了更大的吞吐量。此外,Conflux可实现分钟级别的确认时间(即用户高度相信区块全序不会改变所需要花费的时间),然而和其他共识一样,区块越大,确认时间也会变长。
(不同区块大小或出块率对应的各共识机制的区块利用率)
Conflux团队以带宽和用户数量作为变量,对Conflux的可扩展性做出了测试。测试结果显示:Conflux可以实现5.68GB/h的吞吐量,即如果参考比特币网络在现实中的交易量,Conflux可以提升公链的每秒处理量至6400tps。Conflux团队认为:限制区块链可扩展性的瓶颈已不再是共识机制,而是网络带宽与节点算力了。
寻弊索瑕的一点,我们认为Conflux在证明区块链性能的过程中,过分乐观地假设了交易之间不冲突(即假设节点打包的都是独一无二的交易),忽略了被重复打包的交易对真实交易处理量的影响,如果Conflux希望在未来实现大规模应用的话,这是一个有待完善的方面。
Conflux在实现原理上也有一些显著的问题点。首先枢轴链的确认依赖区块数量而不是重量,而DAG上数量基本可以靠刷,两根枢轴链数量相近时看上去枢轴链会经常变动(摇摆);枢轴链的摇摆又会引发时段的摇摆,时段的摇摆会对排序造成影响,并且影响所有后续规则的前提条件。如果重量就是数量,那其实还是要靠算力去支撑安全性。其次对于交易的确认依旧是分钟级而且是基于概率的,并且带宽是个大麻烦,重复交易要么无法广播,要么将会挂满整棵树,带宽的需求是几倍甚至是几十倍。这些问题的存在都让Confulx的实现存在现实的困难。
领取专属 10元无门槛券
私享最新 技术干货