LibraBFT 在一个有全局统一时间 (GST),并且网络最大延时(ΔT)可控的 Partial Synchrony 的网络中是有效的。并且, LibraBFT 在所有验证节点都重启的情况下,也能够保证网络的一致性。 为了能够更好地理解 LibraBFT,我们回顾一下 PBFT 和 HotStuff 共识协议。 5.2 PBFT原始的拜占庭容错系统由于需要展示其理论上的可行性而缺乏实用性,另外需要额外 的时钟同步机制支持,算法的复杂度也是随节点增加而指数级增加。Castro and Liskov 在 1999 年提出实用拜占庭容错系统(Practical Byzantine Fault Tolerance,PBFT),降低了 拜占庭协议的运行复杂度,从指数级别降低到多项式级别(Polynomial),使拜占庭协议 在分布式系统中应用成为可能。PBFT 是一类状态机拜占庭系统,要求整个系统共同维护一个状态,所有节点采取的 行动一致。为此,需要运行三类基本协议,包括一致性协议、检查点协议和视图更换协议。 视图转换协议保证共识协议的活性(liveness)。当主节点出故障时能保证共识能继续进行。PBFT 的视图转换协议是非常复杂的,涉及到很多消息的重传。HotStuff 的最重要的改进, 主要是针对视图更换的协议。 5.3 HotStuffHotStuff 的基本假设是系统有固定的节点数 n = 3f+1,其中 f 是系统能容忍的最大拜 占庭节点数。系统通信是点对点的认证和可靠通信。网络通信的假设是半同步,也就是说, 网络有一个知道的延迟 D,以及一个不知道的全网稳定时间(Global Stabilization Time, 简称 GST),当 GST 过后,任意两个节点之间的通信都将在 D 时间内完成。HotStuff 能总 保证正确性(safety),在 GST 后的消息时延在一定限度(D)内能保证活性 (liveness)。HotStuff 采用门限签名机制,门限设置是(k, n)。n 个节点中所有的节点共用一个 公钥,但每一个节点有自己的私钥。每个节点用自己的私钥签名消息 m,叫部分签名消息, 多个节点的部分签名消息可以用来生成一个联合签名消息,当至少有 k = 2f+1 个节点提供部 分签名消息时,其它任何一个节点能用公钥验证该联合签名消息。其中 f 是系统能容忍的拜 占庭节点总数,n = 3f+1。 HotStuff 论文中提出一个“认证复杂度”的概念。认证复杂度简单来说,统计协议交 互时通信的认证消息数,也就是部分签名或联合签名消息的个数。 HotStuff 两个重要的优点
|