overlord 是由 nervos 开发团队最新研发的原创共识算法,这一共识算法的出现是基于 huobi chain 的金融应用场景需求。
为什么要单独设计出一种新的共识算法?它相比于现有的主流的 bft 共识算法(pbft、tendermint、hotstuff……)有什么不同?下面,就让我们和 muta 团队的周昀一起来了解一下 overlord 的设计思路与设计特点。
当前我们正处在一个信息大爆炸的时代,在无时不刻不被过量信息包围的处境下,想要客观准确地探究未知事物的本质,变得异常艰难。然而我们始终坚信,卓越的产品源于开创性思维,亦步亦趋必然逃不出自己铸就的天花板,因此我们决定屏蔽一切现有成熟的方案套路,从最原始的需求出发,一砖一瓦地实现我们的愿景。
确定共识算法的目标
最初在为 huobi chain 设计共识算法的时候,我们并没有立马着手于技术选型,而是先直面灵魂三问:huobi chain 的服务对象是谁?需要解决什么问题?能够创造什么社会价值?在此期间,我们积极汲取了金融、管理等领域专业人士的建议,密切跟踪市场的真实需求,仔细聆听社区的反馈,经过与数个团队无数次缜密的意见交流之后,终于在 2019 年 6 月,取得了阶段性的结论。
鉴于当前金融市场和区块链技术应用相对割裂的现状,huobi chain 的定位是:基于区块链的,高效的,全球性的金融市场基础设施。「高效」对应高速迸发的链上交易;「全球化」对应底层链友好的兼容性和高度可扩展性;「基础设施」则意味着链上应用开发的标准化、精简化,并能够在未来形成丰富的开发者生态。只是这样简简单单的一句话,却向底层链提出了明确的硬性指标。
共识是一条链的心脏,心脏必须高效健壮,链上应用才能蓬勃有力。为了实现火币公链的目标,我们需要一个能够支持上百个共识节点、满足数千笔每秒的交易处理能力,且交易延迟不超过数秒的 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 的命名,它其实和我们的 layer 2 解决方案 muta 一脉相承(暴雪粉应该不需要小编多说什么了)。
在这款游戏中, overlord 是为虫族提供人口的基本单位,可以控制若干虫群,这和我们理解的共识的本质很像。共识也是一条链的核心,控制着各个节点的运转,如果把节点想象成虫群的话,overlord 则是虫群的大脑。相信在 overlord 的带领下,我们也能建立起庞大的分布式区块链系统。
【盘点】电子工程师最喜欢的国产MCU芯片!
干法刻蚀解决RIE中无法得到高深宽比结构或陡直壁问题
薄膜瑕疵在线检测设备简介
肌肤管家:AI+BI让护肤智能化
SMT工厂常见的贴片加工不良原因有哪些?
Overlord将会成为下一代通用的共识解决方案
豹米霾霸空气净化器评测 小巧轻便好收纳
LED光源在照明领域的应用
MAX8930 适用于蜂窝电话显示屏的一体化PMIC,效率高
默克于首届进博会与维信诺签署OLED互惠协议
基于Diffusion Probabilistic Model的医学图像分割
众包式学习人工智能是怎样的
FS4056是一款完整的单节锂离子电池采用恒定电流/恒定电压线性充电器IC
新款iPhone 11外形图曝光接口使用了闪电Lightning接口
简单的6v转12v电路图
微型温差电池的无线传感器节点自供电系统设计
用数字万用表测量光耦传输特性简法
Cadence-V16.5-安装说明及具体步骤图解
小米发布首款户外电源产品是哪款
什么是扩频通信?扩频技术在CDMA和TDMA中的应用