LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 行情分析 > 姚期智:Conflux 如何打破「不可能三角」?

姚期智:Conflux 如何打破「不可能三角」?

2020-04-14 链闻研究院 来源:链闻

2018 年 12 月 5 日,区块链协议项目 Conflux 获得了包括红杉资本在内的多家知名投资机构的 3500 万美元的融资。图灵奖得主、清华大学交叉信息研究院院长姚期智作为 Conflux 首席科学家。

作者:姚期智,Conflux 首席科学家、图灵奖得主、清华大学交叉信息研究院教授兼院长

不可能三角

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

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

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

中本聪共识导致的生产效率低下和交易时滞过长的问题,引发了糟糕的用户体验、飙涨的转账费用和拥堵的网络,不利于区块链技术长期的推广和发展。

虽然已有很多团队试图解决中本聪共识的瓶颈,但他们的方案仍存在不完美之处:

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

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

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

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

Conflux 的实现方案

与中本聪共识在打包区块时对交易顺序进行严格规范不同,Conflux 乐观地假设,在并存的区块中,交易(Tx,Transactions)是不冲突的,只要所有节点对一致的交易顺序达成共识即可。

基于这一假设,Conflux 首先设立规则将区块们整合为有向无环图(DAG):每个区块都需要引用一个它的父区块的边(Parent Edges),每个区块也可以引用发生在它之前的,还没有被引用过的区块的边作为他们的引用边(Reference Edges),父边和引用边确定了各个区块之间的先后关系,实现了 DAG 的整体框架,增加了同一时段一起被处理的区块的数量。

相较于比特币一次只能处理一个区块的低效模式而言,DAG 结构大大提升了公链的速度。

Conflux 的架构

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

(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 按照区块顺序给交易排序。区块内部的交易顺序由交易自己在区块出现的顺序来确定。

3. 安全性分析和性能检验

在区块全序和交易全序确认之后,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 团队还在 Amazon EC2 上搭建了原型系统,运行了 10,000 个带宽为 20Mbps 的 Conflux 节点,用控制变量法来测试在区块大小、出块率变化之下,Conflux、GHOST 和比特币的吞吐率和交易确认时间。

结果显示,尽管区块大小和出块率发生了变化,Conflux (下图中以蓝色三角线表示)都能实现 100% 的高区块利用率,它有能力去处理所有的区块,鲜少遗漏掉分叉中的区块,减少了出块时的资源浪费,实现了更大的吞吐量。

此外,Conflux 可实现分钟级别的确认时间(即用户高度相信区块全序不会改变所需要花费的时间),然而和其他共识一样,区块越大,确认时间也会变长。

团队还以带宽和用户数量作为变量,对 Conflux 的可扩展性做出了测试。测试结果显示:Conflux 可以实现 5.68GB/h 的吞吐量,即如果参考比特币网络在现实中的交易量,Conflux 可以提升公链的每秒处理量至 6400tps。Conflux 团队认为:限制区块链可扩展性的瓶颈已不再是共识机制,而是网络带宽与节点算力了。

俨然,Conflux 提供了一种快速的、可扩展的、去中心化并且安全的共识方案,给予区块链技术升级和场景应用以极大的幻想空间。寻弊索瑕的一点,我们认为 Conflux 在证明区块链性能的过程中,过分乐观地假设了交易之间不冲突(即假设节点打包的都是独一无二的交易),忽略了被重复打包的交易对真实交易处理量的影响,如果 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

—-

编译者/作者:链闻研究院

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...