姚期智:如何打破“不可能三角”?

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

姚期智:如何打破“不可能三角”?

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

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

1.不可能三角

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

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

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

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

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

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

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

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

然而,Conflux团队在论文中设计了一种对比特币的扩展方案,它结合了工作量证明(PoW)与有向无环图(DAG)的优势,在去中心化的前提下,既保障了区块链的安全,又提升了区块链的可扩展性,在某些层面上,突破了“不可能三角”,极其具有变革性。
 
2.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希望在未来实现大规模应用的话,这是一个有待完善的方面。

生成图片
3

发表评论

姚期智:如何打破“不可能三角”?

星期三 2018-12-26 23:25:53

姚期智:如何打破“不可能三角”?

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

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

1.不可能三角

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

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

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

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

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

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

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

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

然而,Conflux团队在论文中设计了一种对比特币的扩展方案,它结合了工作量证明(PoW)与有向无环图(DAG)的优势,在去中心化的前提下,既保障了区块链的安全,又提升了区块链的可扩展性,在某些层面上,突破了“不可能三角”,极其具有变革性。
 
2.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希望在未来实现大规模应用的话,这是一个有待完善的方面。