AptosBFT :亚秒级确认速度的共识机制

ω
发布于 阅读 883

Aptos 使用自己的名为 AptosBFT 的共识算法,该算法基于 HotStuff,而 HotStuff 又基于 pBFT 的实用拜占庭容错。听起来很复杂?阅读我们的初学者指南,我们将在其中解开所有这些术语。

Aptos是一个新的 L1 区块链,旨在成为业内最快、最具扩展性的区块链。它可以达到 160,000 tps,延迟小于 1s,这意味着交易在一秒钟内得到确认。

Aptos 使用一种名为Move的新编程语言以及 Move VM(虚拟机)。这两种技术最初都是为Diem开发的——一个由 Meta (Facebook) 资助的区块链项目。当 Diem 项目于2022 年 3 月出售给 Silvergate Network时,一群前 Diem 工程师以自己的方式创建了 Aptos。

与任何其他区块链一样,Aptos 有一个共识算法——一个批准新区块和交易的程序。Aptos 的算法称为 AptosBFT,它与最初为 Diem 开发的 DiemBFT 非常相似。

Aptos 共识就像一个洋葱,或者一个俄罗斯娃娃,或者那些嵌套的礼盒,每个小的都被装进一个更大的。我们将一层一层地剥离:

首先,我们将讨论 BFT 拜占庭容错以及为什么它对区块链如此重要。

接下来,我们将讨论标准 BFT 共识是如何工作的,以及为什么它并不完美。

然后我们将看看实用 BFT 共识,或 pBFT;

洋葱的下一层是 HotStuff——BFT 的开创性实现,它允许区块链达到 100,000 tps 或更高的速度;

最后,我们将看到 Aptos 如何将 HotStuff 共识修改为 AptosBFT,以及它如何通过 Aptos 激励测试网 (AIT) 对其进行压力测试,以构建最安全的 L1 区块链。

拜占庭容错

BFT 代表“拜占庭容错”。如果一个网络即使它的一些成员变得恶意或离线,它也能继续正常运行,则称该网络是拜占庭容错的。

所谓的拜占庭故障(失败)并不是区块链独有的:它是博弈论中的一个著名问题。想象一下,一群将军必须集体决定是否应该攻击敌人。不过有两个问题:

  1. 每个将军都在自己的阵营中,所以他们必须通过向副官发送信息来进行交流

  2. 一些将军是叛徒,实际上想要输掉这场战斗。他们可能会投票支持最坏的策略,向不同的同事发送相互矛盾的信息以阻止他们达成共识,甚至什么都不发送。

为了拯救军队,好将军需要一种方法来做出多数决定,尽管有叛徒在场。对于区块链来说,这意味着功能正常的节点需要能够正确地决定一个块是否有效,即使某些节点是恶意行为或只是崩溃。

这里的“'恶意行为”'是指节点将声明无效块或交易有效,反之亦然。例如,如果交易是双花(使用相同地址已经花费的相同硬币),它是无效的,但双花是坏人喜欢做的事情。然而,一个节点也可能会意外地变得有缺陷。

构建拜占庭容错区块链特别棘手,因为网络是分散的,因此无法知道或检查哪些节点正在发送正确或错误的消息。

为什么是“拜占庭”呢?很难说这个问题的名字来自哪里,但拜占庭人以奸诈、狡猾和纵容而闻名。

图片

比特币和以太坊的解决方案与现代 BFT 共识

比特币的神秘创造者中本聪(Satoshi Nakamoto)意识到了拜占庭故障问题,并且他的解决方案非常强大,尽管代价高昂。为了提议(广播)一个区块,比特币节点还必须为复杂的密码学难题提出解决方案——所有其他节点都必须接受或拒绝它。这样可以快速识别无效块,并且每一次试图欺骗其他人的尝试都将花费恶意的“一般”大量资源。

这就是工作量证明挖掘的力量,但另一方面是每个节点都必须检查其他人提交的所有内容。换句话说,**每个将军都需要阅读其他将军发送的每一条消息——每秒数十亿条消息。**比特币——虽然可能是目前最具有拜占庭容错能力的区块链——需要大量的精力和时间,而且速度慢、成本高,而且消耗大量能源。

如今,大多数新的 L1 区块链,包括 Aptos,都使用某种版本的拜占庭容错权益证明共识,而不是工作量证明。许多这些模型的一个共同点是,它们可以容忍多达三分之一的节点变得恶意(而不是比特币的 50%)。为什么会这样?让我们来看看。

标准 BFT 证明

想象一下,你是一位体面的拜占庭将军,你的办公桌上有一堆来自同事的信息,每条信息都在说“进攻”或“撤退”。你会怎么做?

你怀疑有些将军是叛徒,但你不知道到底是谁。因此,你最好的选择是计算所有“攻击”和所有“撤退”消息,并坚持获得最多票数的策略。在这里,我们假设所有忠诚的将军都会投票支持更好的策略(比如说进攻),而所有的叛徒都会选择失败的策略(撤退)。

示例 1

如果有 4 名将军,其中有 1 名叛徒,则每位忠诚的将军将收到 2 份来自诚实同事的“进攻”票和 1 份来自叛徒的“撤退”信息——加上他自己的进攻票。因此,每一个忠诚的将军(他们三个)都会选择进攻,军队就会获胜。

但是如果4名将军中有2名叛徒,那么每个忠诚的指挥官都会收到1条“进攻”信息和2条“撤退”信息。诚实的将军不知道该怎么做,这场战役将以惨败告终。

当n(将军人数)=4时,他们可以容忍1个坏演员。

示例 2

当有7个将军时,他们肯定可以容忍1个叛徒。如果有两个呢?好吧,每个忠诚的将军都会收到4个“进攻”和2个“撤退”的消息,所以大多数(6个好将军)仍然会攻击敌人并获胜。

但是如果有 3 个叛徒,每个好将军都会收到 3 封“进攻”和 3 封“撤退”信——而且不知道该怎么办。犹豫不决将导致失败。

当 n=7 时,系统可以容忍 2 个不良行为者。

不难从数学上证明,这样的网络可以容忍的最大叛徒数量 (t) 是 t=(n-1)/3。或者换句话说,如果你有 t 个叛徒,你需要 3t+1 个节点才能使系统具有拜占庭容错能力。恶意节点的数量必须少于整体的三分之一。

pBFT 共识机制

尝试在真实网络中实现 BFT 共识是一笔巨大的开销——所有节点检查彼此的消息并选择行动方案所需的额外时间和资源。为了限制额外的时间,计算机科学家Barbara Liskov和 Miguel Castro 在 1999 年提出了所谓的实用拜占庭容错算法(pBFT) 。

图片

Barbara Liskov,分布式网络的先驱

在pBFT中,“坏”节点不超过三分之一的规则仍然成立:对于每f个潜在叛徒,你总共需要3f+1个节点才能保持共识。**不同之处在于,对于每一轮,节点都会选择一个负责创建新块的领导者。此外,节点分为主要节点(我们称它们为“将军”)和次要节点或客户端(如果您愿意,可以称为副官)。

pBFT中的消息交换分几个步骤进行:

  1. 客户端向领导者发送请求:'我们是攻击还是撤退?

  2. 首领将请求广播给所有将军;

  3. 每个将军——以及领导者——将答案发回网络;

  4. 一旦每个将军和leader收集到2f+1条匹配的消息(包括他们自己的),他们就认为已经达成共识;

  5. 一旦客户端收到f+1个匹配消息,他们也接受共识已经成功。

  6. 如果领导节点沉默或变得恶意,诚实节点也有投票替换领导节点的方法。

pBFT 的最大优势之一在于它的即时确定性:一旦节点同意交易或区块是有效的,它就会被确认并最终确定。你不需要像以太坊或比特币那样等待多个区块(确认)。

另一方面,随着节点集(验证器)的增长,它们在每一轮中相互发送的消息数量增长得非常快。例如,对于一组 7 个节点(最多 2 个“叛徒”),单轮共识将至少有 71 条消息;一旦你有 13 个节点(增加 86%),消息的数量就会增长到 237 条(增加 234%),以此类推。因此,pBFT 网络难以扩展。

区块链中 pBFT 最著名的实现可能是Cosmos使用的Tendermint(Tendermint 已更名为 Ignite)。与原版相比,它增加了领导者轮换系统和其他调整,使其能够很好地扩展。

其他 pBFT 实现包括Zilliqa、Hyperledger Fabric以及——是的,我们终于开始使用它了——HotStuff,这是 Aptos 使用的共识。

HotStuff :Aptos 的 BTF 共识机制

2018 年 3 月,VMware 研究小组推出了HotStuff,这是一种新的共识模型,它在许多重要方面改进了 pBFT。

更清晰的沟通系统

每个节点都只与领导者通信,而不是向领导者和其他所有“将军”发送消息。领导者广播要投票的消息(建议的块);每个节点将其投票发送给收集消息的领导者。

领导者需要获得所谓的nf投票的法定人数证书(QC),其中n是节点总数,f是系统可以容忍的最大恶意节点数n。达到 QC 后,leader 广播结果;然后节点验证该决定。

这大大减少了通过系统的消息总数,使网络具有极强的可扩展性。事实上,Aptos 是目前最具可扩展性的 L1 区块链。

HotStuff 以领导者为中心的通信系统也使 Aptos 异常快速:它每秒可以处理 100,000-160,000 笔交易,具有亚秒级的终结性,这意味着交易在区块链上的确认时间不到一秒。相比之下:在 Solana 上,交易大约需要 6 秒才能达到最终确定性,而在 Binance Smart Chain 上,大约需要 30 秒。

选择新领导者的改进过程

选择新的验证者作为领导者的过程与共识机制的其余部分顺利集成。相比之下,在 pBFT 中,想要提出新领导者的节点首先需要从其他节点收集足够的确认,以证明他们也同意选择新领导者。

HotStuff 选择新领导人的方法(并使这些轮次的投票无缝地相互跟随)被称为 PaceMaker。与 pBFT 相比,必须始终轮换领导者确实会导致一些额外的开销,pBFT 只有在领导者节点出现问题时才会发生更改。但另一方面,不断轮换有助于避免领导者恶意并开始以微妙的方式破坏系统而其他节点没有注意到的情况。

流水线

这是对基本 pBFT 模型的改进:领导者有几个“槽”用于不同准备阶段的块,因此它可以同时处理多个块。因此,即使验证单个区块仍然需要几轮消息(准备、预提交、提交和决定),在同一轮内网络设法完成区块 X 的决定阶段,区块 X-1 的提交阶段,块 X-2 的预提交操作和块 X-3 的准备阶段。

这反映在原始HotStuff 研究论文的图表中:

图片

Aptos BFT

当 Facebook 着手构建自己的区块链 Libra 时,HotStuff 被调整为更快、更具可扩展性但非常强大的共识算法。它被命名为 LibraBFT ——但是当 Libra 成为 Diem 时,共识机制被重命名为 DiemBFT,现在我们将其称为 AptosBFT。

Diem 在 2022 年 3 月被出售给 Silvergate,但由于 DiemBFT 共识算法是开源的,Aptos 团队仍然可以使用它——连同 Move 语言和 Move VM(虚拟机)。

我们不会详细介绍 HotStuff 和 AptosBFT 之间的差异,但我们将重点介绍 Aptos 的一些重要功能。

无许可

首先,Diem 被开发为许可区块链,而 Aptos 是真正去中心化的。因此,Diem 将拥有一组由公司选择的验证器——类似于币安智能链,它只有 21 个验证器。

相比之下,Aptos 可以——而且肯定会——拥有数千个节点。任何人都可以创建节点,只要满足硬件要求,任何节点都可以成为leader。

起搏器

HotStuff 介绍了 PaceMaker,但没有提供详细规格:该成就属于 AptosBFT。PaceMaker 是每个验证者节点中内置的功能,可确保投票轮次顺利进行而不会出现故障。它在三种情况下触发新领导者的选举:

  • 当前 leader 已经成功广播了一个区块;

  • 当前 leader 已经沉默了一段时间(最大允许延迟也是通过PaceMaker设置的);

  • 领导者无法为法定人数证书收集足够的验证者投票。

基于 VRF 的领导者选择

PaceMaker 确保同一验证者不会连续两次被选为领导者,并且没有人可以操纵领导者选择过程甚至预测将选择哪个节点。这是通过使用所谓的可验证随机函数来完成的,或 VRF。

更少的消息 = 更少的延迟

在最好的情况下(没有恶意节点),AptosBFT 要求每个节点每轮只发送一条消息。

共识密钥轮换

就像每个加密钱包都有一个私钥,需要签署交易,一个节点也有一个共识密钥。验证者使用此密钥对区块进行投票。

私钥被盗对区块链来说是一个严重的风险,但 Aptos 引入了一个优雅的解决方案:普通用户和验证者的密钥轮换。这类似于每隔一段时间更改你的电子邮件密码。除了轮换他们的共识密钥之外,Aptos 验证者还可以使用一些新颖的密钥恢复技术。

节点激励

AptosBFT(和 DiemBFT)具有权益证明,而原始形式的 HotStuff 不必与 PoS 结合使用。在 Aptos 中,验证者需要质押硬币才能参与共识;只要他们遵守规则,他们也会得到奖励。反之亦然:如果验证者违反共识规则,他们的权益可能会被削减。

并且,Aptos 和 Diem 之间有一个很大的区别:在 Aptos 中,任何人都可以质押代币来启动自己的节点或将代币委托给现有的验证者。Diem 的计划是在推出后五年内切换到这种无需许可的模式。

7UPDAO

声明:请读者严格遵守所在地法律法规,本文不代表任何投资建议。

原文链接:

https://medium.com/pontem-network/aptosbft-all-you-need-to-know-about-the-bft-consensus-in-aptos-ff4cf22c7a80

标签: Aptos #Aptos
评论