为什么要单独设计出一种新的共识算法?它相比于现有的主流的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 —- 编译者/作者:NervosNetwork 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
Huobi Chain 共识算法 Overlord:通过共识和执行的并行解决金融公链的性能问题
2020-03-03 NervosNetwork 来源:火星财经
LOADING...
相关阅读:
- 互联网巨头擅用用户数据实锤IPFS/Fil为数据存储保驾护航2020-08-04
- 郑弘文:8.04早间行情该如何把握?2020-08-04
- 8.4早间BTC行情分析2020-08-04
- 以太坊侧链 Matic 推出500万美元DeFi项目孵化基金2020-08-04
- 文轩论币:8.4比特币合约顺势而为不仅是一种技术,更是一种心态2020-08-04