Facebook 最近公布的 Libra 白皮书引起了各行各业的持续关注,其网站上公开的技术文件也被许多专家审查。文件中提到,Libra 区块链将基于拜占庭容错共识使用「LibraBFT」而 LibraBFT 则是「HotStuff」变种。
Libra 用于区块链LibraBFT 共识协议的技术论文
这个名为 HotStuff 算法是什么?「尤物」呢?
顺藤摸瓜,我们发现,HotStuff 云计算公司 VMWare 研究团队发表了一份完整的数学证明,其安全性和可用性。论文作者有 5 人,分别是 Maofan Yin、Dahlia Malkhi、Michael K. Reite、Guy Golan Gueta、Ittai Abraham。
HotStuff 算法论文
https://arxiv.org/pdf/1803.05069.pdf
其实「HotStuff」尹茂帆是算法论文的第一作者(Ted Yin)是链闻的老朋友。尹茂帆今年只有25岁,毕业于上海交大,目前在美国康奈尔大学(Cornell)大学博士学位,目前的主要方向是分布式系统的基础研究,导师是著名的计算机科学家 Emin Gun Sirer,另一位导师是 Robbert van Renesse。
在 Facebook 正式发布 Libra 白皮书结束后,尹茂帆接受了链闻专访,他给我们详细讲解了 HotStuff 的奥妙。
第一次进入分布式共识算法领域的人很容易被许多名词所迷惑。通过深入研究,你会发现这些名词背后有各种各样的命名故事。DLS 算法是三位作者的缩写:Dwork、Lynch 和 Stockmeyer。而 PBFT 算法就是「实用拜占庭容错」首字母缩写(Practical Byzantine Fault Tolerance),BFT 自然就是「拜占庭容错」(以下将统一使用 BFT)。那么,这个物种的新人 HotStuff 的名字到底是怎么来的?
尹茂帆解释说,之所以取名为 HotStuff,因为这个词在英语中有三个含义:一个是性感的人,一个是热门的好东西,一个是动画中小恶魔的名字。众所周知,以太坊下一代共识算法 Casper 的名字也来自动画角色。HotStuff 可以和它相映成趣。
在接受链闻采访时,尹茂帆灵机一动,将这个词的中文翻译成尤物。因此,本文标题中的尤物并不耸人听闻。尹茂帆说,尤物有两层含义:一是绝世美女,二是珍宝。HotStuff 翻译成尤物,简直天造地设。
据介绍,HotStuff 部署在一个有 100 多个副本的网络上,超过 BFT-SMaRt 吞吐量同时保持相当的延迟,在更实际的测试中性能超过后者。
与其他分布式系统的共识协议相比,HotStuff 有什么优点?以下是链闻记者和尹茂帆的问答:
链闻:关于分布式系统的共识协议,大致可以分为两类,一类是以比特币为代表的区块链算法(或中本聪共识),另一类是经典 BFT 算法(如 DLS、PBFT)。两者在应用条件和性能上的巨大差异和优缺点是什么?
尹茂帆:两者的区别大致可分为五个方面:1)成员信息;2)性能,包括吞吐量、延迟等;3)抗女巫攻击 (Sybil attack)——中本聪共识自带抗女巫攻击,而经典 BFT 需要额外的 PoS 或者 PoW;4)可扩容性;5)安全性,即概率 vs 确定性。
中本聪共识的优点是所有不需要提前知道共识的参与者都不需要准确的成员信息。因为共识的一部分是 PoW (工作量证明),所以自然对女巫攻击有一定的免疫力。而且中本聪的共识算法很简单,普通人有一点数学基础就能理解。中本聪的共识也容易扩大,在 10 和 1000 结点中性能损失较小(一方面是因为不需要广播投票,另一方面是因为它很慢,见下面的解释。
中本聪共识的缺点也很明显。PoW 的难度和等待链的长度与安全性有关。从根本上说,性能差,交易确认延迟大,无法改变。基于中本聪的共识「魔改」(换汤不换药的扩容)协议只能增加吞吐量。抛开延迟谈吞吐量意义不大。比如我可以开卡车运输硬盘来运输数据。虽然是超高吞吐量,但也是超高延迟。
在安全方面,传统 BFT 与共识相比,中本聪共识只提供概率安全保障, BFT 是 100% 安全。这里提到的安全,或一致性,是否可以避免双花。事实上,比特币六块发生双花的概率并没有大家想象的那么低。共识失败的概率高达 13% (即 BFT 中的 30% 节点的情况)。以此来看,如果要公平比较的话,中本聪共识的效率非常之低。(六个块已经耗时一个小时了。)
再来看经典 BFT 共识,前提或缺点是需要了解所有参与者,要求 100% 准确的成员信息。此外,经典 BFT 共识扩容相对困难。HotStuff 前,大部分经典 BFT 需要所有的结点广播,这带来了平方级的复杂性(包括 Tendermint 论文中描述的算法)。增加大量结点会导致网络拥塞。此外, Leader 结点会承受整个网络的负载(负载极其不平衡),导致难以扩展到成千上万个结点,性能损失不大。
BFT 共识的优点是共识没有使用无意义的 PoW,因此,经典 BFT 共识的协议速度与网络发送大量短信的速度有关,没有额外的能源消耗和等待时间。交易延迟很小。如果不考虑网络延迟,交易将达到数十到数百毫秒。如果考虑网络延迟,则与网络延迟相同。
链闻:你的论文在开头声称,HotStuff 基于一个新的框架,这个框架是经典的 BFT 在基础和区块链之间搭建桥梁。如何理解这句话?
尹茂帆:我们的论文叫《尤物协议:通过区块链看拜占庭容错共识》(HotStuff: BFT Consensus in the Lens of Blockchain)。
这样描述的原因,因为它的算法框架(可以产生多种衍生算法)采用了树 / 链结构,与区块链非常相似。此外,与传统区块链类似,一个结点目前也被视为「主链」投票只会投票给目前认为主链扩展的新部分。和区块链一样,如果侧链足够的话「好」,然后它就会成为一个新的主链。在区块链中,这是通过链长来确定的(长者胜),而在 HotStuff 中,它通过最成功获得大部分投票的块决定。
另一方面,HotStuff 又是传统 BFT 体系下的一员。这个算法框架可以很好地解释 PBFT、DLS、Tendermint、Casper 等协议在一定程度上达到了归纳和统一。此外,同类算法最大的区别和贡献是——HotStuff 核心转换算法无特殊情况;不像 PBFT 那样有「正常」执行流程及「特殊」换届流程,HotStuff 统一了两者,即没有明确的换届特殊处理,也可以认为是潜在换届的潜在地方。这使得基于 的编写HotStuff 共识系统的基本安全部分非常容易。PBFT 成千上万码,HotStuff 只需要几十行或几百行。
另一个比同类算法更好的特点是对工程师非常友好。它将确保从算法层面上解耦合的正确性和性能的逻辑。一旦安全保证的几十行代码完成,其余根据具体应用场景的优化(包括替代机制和政策)将不再触及这一部分,使系统始终安全。
链闻:PBFT 算法可以在互联网等异步环境中运行,一些优化也使其比以前的共识算法更快。但也存在一些问题,如检测不良新手投机基础知识视频的主要节点,重新选择新的主要节点(view change)过程非常低效。例如,为了达成共识,PBFT 需要平方级的新闻交换,这意味着每台计算机必须与网络中的所有其他计算机进行通信。简而言之,PBFT 的扩容性显然不够。HotStuff 解决这些问题的方法是什么?
尹茂帆:首先,HotStuff 首次将换届成本从平方级降低到线性复杂度,这意味着它和 Paxos/Raft 这些在 IT非 非 BFT 协议具有相同的复杂性。此外,尽管理论上 Tendermint 等协议可以结合数字签名降低到同样的复杂性。然而,这些协议本质上需要在块和块之间等待最大可能的网络延迟,使实际实现的系统成为同步系统。HotStuff 思维跳出了原来的框架,提出了一个极简主义的算法系统,使它很容易打破传统 BFT 诅咒。经过测试,可以在保证简单代码实现、理论复杂性低的情况下,打败现有最快的传统 BFT 实现在商业系统中具有无限的潜力。
链闻:Facebook 的 Libra 白皮书提出,Libra 区块链是从“许可型区块链”最初,未来的目标是成为一个非许可网络。目前有没有可行的技术路径可以从许可型转变为非许可型?难点在于扩容(从 100个节点增加到几千个节点)还是抗女巫攻击?
理论上,尹茂帆:任何许可协议都可以转化为非许可协议。因为传统的共识协议(无论是 BFT 还是非 BFT),都可以通过共识本身来重新配置以增加 / 删除结点。但是因为潜在的女巫攻击,这种基于精确成员信息的协议,需要额外依赖一个 PoS 或者 PoW 开放系统的进入机制。