LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 币圈百科 > Huobi Chain 共识算法 Overlord:通过共识和执行的并行解决金融公链的性能问题

Huobi Chain 共识算法 Overlord:通过共识和执行的并行解决金融公链的性能问题

2020-03-03 NervosNetwork 来源:火星财经

Overlord是由Nervos开发团队最新研发的原创共识算法,这一共识算法的出现是基于HuobiChain的金融应用场景需求。

为什么要单独设计出一种新的共识算法?它相比于现有的主流的BFT共识算法(PBFT、Tendermint、Hotstuff……)有什么不同?下面,就让我们和Muta团队的周昀一起来了解一下Overlord的设计思路与设计特点。

当前我们正处在一个信息大爆炸的时代,在无时不刻不被过量信息包围的处境下,想要客观准确地探究未知事物的本质,变得异常艰难。然而我们始终坚信,卓越的产品源于开创性思维,亦步亦趋必然逃不出自己铸就的天花板,因此我们决定屏蔽一切现有成熟的方案套路,从最原始的需求出发,一砖一瓦地实现我们的愿景。

确定共识算法的目标

最初在为HuobiChain设计共识算法的时候,我们并没有立马着手于技术选型,而是先直面灵魂三问:HuobiChain的服务对象是谁?需要解决什么问题?能够创造什么社会价值?在此期间,我们积极汲取了金融、管理等领域专业人士的建议,密切跟踪市场的真实需求,仔细聆听社区的反馈,经过与数个团队无数次缜密的意见交流之后,终于在2019年6月,取得了阶段性的结论。

鉴于当前金融市场和区块链技术应用相对割裂的现状,HuobiChain的定位是:基于区块链的,高效的,全球性的金融市场基础设施。「高效」对应高速迸发的链上交易;「全球化」对应底层链友好的兼容性和高度可扩展性;「基础设施」则意味着链上应用开发的标准化、精简化,并能够在未来形成丰富的开发者生态。只是这样简简单单的一句话,却向底层链提出了明确的硬性指标。

共识是一条链的心脏,心脏必须高效健壮,链上应用才能蓬勃有力。为了实现火币公链的目标,我们需要一个能够支持上百个共识节点、满足数千笔每秒的交易处理能力,且交易延迟不超过数秒的BFT共识算法。

现行主流共识算法调研

我们调研了市场上所有主流的BFT共识算法:PBFT、Tendermint、Hotstuff……遗憾的是,这些共识算法均无法满足我们的需求。

PBFT作为最早出现的实用性拜占庭容错共识算法,最大的问题是ViewChange时,导致O(n^3)的过高消息复杂度。

Tendermint是2017年提出的共识算法,其核心采用了「锁定—解锁」机制,简化了Leader切换过程。但是该算法却损失了响应性(Responsiveness),这意味着即使处于极佳的网络条件下,仍需面临固定的出块时间。另一方面该算法Viewchange虽然有所精简,复杂度降低至O(n^2),但依旧无法满足我们对较高共识效率的需求。

Hotstuff于2019年通过Libra走进大众视野,在消息复杂度和提升响应性上做了很多改进,但是交易的确认至少需要3个区块,这一限制在特定环境下,将无法满足某些特定业务和场景的需求。

面临困局,我们决定迎难而上,打造一套全新的共识算法,于是就有了Overlord。该算法已经完成了第一阶段的设计研发,初步的工程实现已在GitHub上开源,目前实测已经能够支持上百个共识节点,满足数千笔每秒的交易处理能力,而且交易延迟不超过数秒,交易上链即不可回滚。那么Overlord是如何能够满足这些需求的?

Overlord的创新之处

引入聚合签名机制,降低消息复杂度

首先,Overlord引入了聚合签名机制,每一轮的共识投票消息,由各个共识节点发送给Leader,并由Leader签名后将零散的消息聚合为一,再广播给其他节点。这一设定将消息复杂度从O(n^2)降低至O(n),进而可以支持数百个共识节点。

采用「超时+刹车」机制,解决Leader作恶,加速共识进程,降低工程实现难度

与此同时,Overlord采用了「超时+刹车」的机制来解决Leader作恶的问题,显著加速了共识进程,同时降低了工程实现难度。同时,由于消息的数量大幅下降,消息共识(投票等)所占带宽的比例也有了一定的下降,这进一步提升了共识效率。

并行处理出块和投票,出块更快、交易处理能力更高

另一方面,Overlord实现了并行处理出块和投票。这意味着区块校验(包括共识交易的同步)与第一轮投票过程可以并行进行,这相比与其他共识算法出块更快、交易处理能力更高。

解耦状态定序与交易共识,使区块的共识过程和执行过程可以并行

Overlord最重要的一个创新点,也是这个算法最核心的思想,在于解耦了状态定序与交易共识,从而使得区块的共识过程和执行过程可以并行。**相比于Tendermint等待执行结果后再进行下一次共识,Overlord的共识效率有了跨越式提升,因为带宽的空闲等待明显降低。而且在这种设定下,区块上链即确认,交易不可回滚。这将极大的适用于有着大量交易或者复杂合约的金融业务场景。

我们十分坚信,Overlord将成为下一代通用的共识解决方案。

有趣的命名故事

说起Overlord的命名,它其实和我们的Layer2解决方案Muta一脉相承(暴雪粉应该不需要小编多说什么了)。

在这款游戏中,Overlord是为虫族提供人口的基本单位,可以控制若干虫群,这和我们理解的共识的本质很像。共识也是一条链的核心,控制着各个节点的运转,如果把节点想象成虫群的话,Overlord则是虫群的大脑。相信在Overlord的带领下,我们也能建立起庞大的分布式区块链系统。

如果你想了解更多关于Overlord的技术细节,欢迎点击阅读原文,或前往GitHub页面:

https://github.com/nervosnetwork/overlord/blob/master/docs/architecture_zh.md

来源链接:mp.weixin.qq.com

本文来源:NervosNetwork
原文标题:Huobi Chain 共识算法 Overlord:通过共识和执行的并行解决金融公链的性能问题

—-

编译者/作者:NervosNetwork

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

LOADING...
LOADING...