解读Conflux的共识机制

时间:2024-04-13 08:51:42

尽管全球市场资金流动愈发紧缩、加密资产总市值在年底一泻千里,但认真做事并提升技术的区块链项目依然具备强大的吸引力:2018年12月5日,区块链协议项目Conflux获得了包括红杉资本在内的多家知名投资机构的3500万美元(约人民币2.4亿元)的融资,让寒风笼罩的链圈看到了新的希望。结合PoW与DAG的优势,并且有图灵奖获得者姚期智院士的参与,Conflux在区块链领域宛如连接陆地和海洋的DC英雄海王一样引人瞩目。随着Conflux声名大噪,姚期智院士撰写的两篇有关区块链的论文也被更多人所关注:

Scaling Nakamoto Consensus to Thousands of Transactions per Second (扩展中本聪共识至上千交易每秒)

论文链接:https://arxiv.org/pdf/1805.03870.pdf

An Incentive Analysis of some Bitcoin Fee Designs(对几种比特币费用设计的激励分析)

论文链接:https://arxiv.org/pdf/1811.02351.pdf

本周,我们先解读姚期智院士参与的第一篇论文, 让大家进一步了解Conflux所提出的共识机制。

 

01|  打破不可能三角


事实证明,中本聪共识对记账权和交易顺序做出了严格的规定,使得比特币在运行和发展过程中面临如下瓶颈:

  1. 只有一个参与者可获得算力竞争的胜利并给主链提供有效的区块,其他同时期产生的区块会被视做分叉而遗弃,这种记账权机制导致的算力竞争,极大地浪费了网络和算力资源

  2. 最长链规则使得比特币网络工作效率低下(比特币每10分钟才出一个块,每秒仅处理7笔交易。用户需等待数小时才能来确认最长链,然后完成交易以确保自己的交易安全不被逆转)。

中本聪共识导致的生产效率低下和交易时滞过长的问题,引发了糟糕的用户体验、飙涨的转账费用和拥堵的网络,不利于区块链技术长期的推广和发展。虽然已有很多团队试图解决中本聪共识的瓶颈,但他们的方案仍存在不完美之处:

  1. 通过选举代理节点,降低无效竞争产生的资源浪费,虽然可以提升区块链的效率,但会使得链变得中心化

  2. 增加区块大小或提升出块速度,只是表面上虚增了区块链的吞吐量,实际上会令同一时段产生更多的并发区块,增加区块链分叉的风险

这种困境,被早期区块链开发人员称作为“不可能三角”,即:公链的三个属性:去中心化(Decentralization)、安全(Security)和可扩展性(Scalability),在技术实现上有二缺一,不能同时实现

解读Conflux的共识机制

然而,Conflux团队在论文中设计了一种对比特币的扩展方案,它结合了工作量证明(PoW)与有向无环图(DAG)的优势,在去中心化的前提下,既保障了区块链的安全,又提升了区块链的可扩展性,在某些层面上,突破了“不可能三角”,极其具有变革性。Conflux的设计具体展开如下:

 02|  Conflux的实现方案


与中本聪共识在打包区块时对交易顺序进行严格规范不同,Conflux乐观地假设,在并存的区块中,交易(Tx,Transactions)是不冲突的,只要所有节点对一致的交易顺序达成共识即可。基于这一假设,Conflux首先设立规则将区块们整合为有向无环图(DAG):每个区块都需要引用一个它的父区块的边(Parent Edges),每个区块也可以引用发生在它之前的,还没有被引用过的区块的边作为他们的引用边(Reference Edges),父边和引用边确定了各个区块之间的先后关系,实现了DAG的整体框架,增加了同一时段一起被处理的区块的数量。相较于比特币一次只能处理一个区块的低效模式而言,DAG结构大大提升了公链的速度。

解读Conflux的共识机制

 

然而DAG不能显示同一时段产生的不同区块之间的顺序(即区块全序),为进一步完善区块排序机制,Conflux团队创造性地引入了GHOST算法、拓扑排序,并提出了Epoch概念,将细化排列区块全序的步骤拆分成了四步:

 

解读Conflux的共识机制

(图中实线箭头指向父区块边,虚线箭头指向引用区块边)

  1. 确认枢轴链(Pivot Chain):Conflux改采用GHOST算法,即选择拥有最多子区块的区块作为枢轴链(Pivot Chain)上的区块,然后再采用同样的算法将它之后的区块纳入枢轴链。如上图所示,区块A和区块B都是创世区块的子区块, 虽然区块B之后的的链是最长链,但区块A拥有更多的子区块(5个),所以GHOST算法会选择区块A作为枢轴链上的区块。枢轴链即确定整个公链方向的主链,Conflux团队表示GHOST算法让枢轴链和枢轴链以外其他分叉链上的区块,都对确认枢轴链做出了贡献,这样就可以进一步保障由诚实节点确定的枢轴链的安全性,除非攻击者的算力超过了50%。

  2. 排列分叉链的区块:在确认了主链之后,为了让所有节点对区块全序产生共识,Conflux又提出了“时段”(Epoch)概念,每个枢轴链上的区块,都对应某一时段,分叉链上区块的时段,由产生在它之后的第一个引用它的枢轴链区块决定。如下图所示,区块D的时段属于Epoch E,因为区块E是最先引用D的枢轴链区块

  3. 时段(Epoch)内排序:Epoch内的区块,都产生于同一时段,这些区块之间的顺序,由拓扑排序(Topologically Sorting)来决定,如果两个区块的排序一样,那就根据他们的哈希ID来排序。

  4. 交易(Tx)排序:此时,每个区块之间的顺序已经确定了,Conflux按照区块顺序给交易排序。区块内部的交易顺序由交易自己在区块出现的顺序来确定。

 

(枢轴链区块E确认分叉链区块D和区块F的时段(Epoch))

 

03|  安全性分析和性能检验


在区块全序和交易全序确认之后,Conflux还设定了规则来应对公链容易面对的交易问题和双花问题:

  1. 交易问题:冲突交易和重复打包是最常见的交易问题。如下图所示,Tx2(X转8个币给Y)和Tx3(X转8个币给Z)属于冲突交易,因为X的账户里只有10个币,所以这两笔交易只能实现一笔;而另一种问题如Tx4(Y转8个币给Z)所示,Tx4被重复打包到了区块B和区块G当中。当出现这类交易问题时,Conflux只承认在全序中位置靠前的那一笔交易,让排序靠后的冲突交易无效化

  2. 双花问题:Conflux防止双花的思路和比特币基本一致。由于Conflux中的交易顺序是由枢轴链决定的,攻击者要进行双花交易,就需要改变枢轴链上的区块顺序以逆转已经被确认过的交易。除非攻击者掌握50%以上的算力,分叉出有更多子节点的链来取代枢轴链,否则不可能实现双花。理论上讲,Conflux的运行时间越长,受到这类攻击的概率越小

解读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希望在未来实现大规模应用的话,这是一个有待完善的方面。

不过Conflux在实现原理上也有一些显著的问题点,首先枢轴链的确认依赖区块数量而不是重量,而DAG上数量基本可以靠刷,两根枢轴链数量相近时看上去枢轴链会经常变动(摇摆);枢轴链的摇摆又会引发时段的摇摆,时段的摇摆会对排序造成影响,并且影响所有后续规则的前提条件。如果重量就是数量,那其实还是要靠算力去支撑安全性。其次对于交易的确认依旧是分钟级而且是基于概率的,并且带宽是个大麻烦,重复交易要么无法广播,要么将会挂满整棵树,带宽的需求是几倍甚至是几十倍。这些问题的存在都让Confulx的实现存在现实的困难。

 

 

 

 

Annchain是由众安科技、众安-复旦区块链与信息安全联合实验室研发, 支持智能合约的高性能通用区块链协议。作为工信部指导的中国区块链技术和产业发展论坛两大开源项目之一,Annchain立足于中国,致力于助力中国抢占区块链全球话语权。

Annchain专注于解决扩展性、去中心化、安全三者平衡问题,做通用的分布式应用计算平台。目前已在数十家生态伙伴的商业场景中落地,场景涵盖农业溯源、珠宝溯源、资产通证化、公益、数据开放计算、广告分发平台和供应链金融等,开发者可基于Annchain高效构建适合自身的区块链应用。

Annchain当前包含两个子项目Annchain.Genesis和Annchain.OG。

Annchain.Genesis作为基于链表式结构的第一代区块链基础协议,其主要特征是模块化、高可靠、易用,支持多种智能合约引擎,开发者可根据具体业务需求选用共识与合约引擎,达到企业级使用需求。

Annchain.OG作为基于DAG账本结构的第二代区块链基础协议,其拥有DAG高效,强扩展特点的同时,又通过基于贡献的多维共识解决其安全可靠问题,同时Annchain.OG支持多种智能合约引擎及计算引擎,具有了更强计算和存储能力。

 

众安科技

众安信息技术服务有限公司(简称“众安科技”)成立于2016年11月2日,是由蚂蚁金服、腾讯、中国平安发起设立的众安保险旗下的全资科技子公司,专注于区块链、人工智能、密码学、物联网等前沿技术研究。众安科技汇聚了行业内的顶尖科研人才,其中区块链团队规模近200人,多数来自于各顶尖区块链团队。

 

众安-复旦区块链与信息安全联合实验室

众安-复旦区块链与信息安全联合实验室是国内首个高校与企业联合组建的区块链与信息安全实验室,专注于区块链核心技术研究,探索应用落地。

 

上海市区块链工程技术研究中心

上海市区块链工程技术研究中心由科委主导,依托复旦大学,联合众安在线财产保险股份有限公司,上海众人信息技术有限公司共同设立。专注分布式账本前沿共性技术与成果转化研究,推动工程落地。

 

更多关于Annchain:

官网: www.annchain.io

Github: http://Github: github.com/annchain

Facebook: https://www.facebook.com/Annchain-295110641341258

                        

                        

扫码备注昵称+研发方向

加入annchain技术社群

 

 

解读Conflux的共识机制