区块链网站|NFTS 波卡Polkadot(DOT) 波尔卡多特共识第3部分:宝贝

波尔卡多特共识第3部分:宝贝

广告位

Polkadot共识第3部分:BABE

这是我们波尔卡多特共识系列的第三部分。关于介绍,请参见第1部分,关于爷爷的讨论,请参见第2部分。

区块链扩展盲分配(BABE)是一个区块生产引擎,其灵感来自另一个股权证明协议Ouroboros Praos。贝贝可以单独使用,因为它提供了确定性概率,也可以和爷爷这样的终端工具结合使用。

BABE是基于槽的算法。它把时间分成几个时间段,每个时间段又分成多个时间段。在波尔卡多特中,我们的目标区块的时间间隔是6秒。BABE将选择一个(或多个)作者在每个位置创建一个块。

贝贝里的时间分为几个时间段,每个时间段是一组时间段。

将创建者分配到这些位置的一种方法是简单地轮流使用它们。但是,在这种循环模式下,对手总是知道下一个创造者是谁,并可以利用这些信息来调整进攻。理想情况下,没有人知道创始人是谁,直到他或她证明了这一点。

每个插槽可以有一个主要创建者和一个次要创建者(或“插槽所有者”)。主插槽的负责权限是随机分配的。但是因为这个功能是随机的,所以有时候会有一些槽点没有主要负责人。为了保证块时间的一致性,BABE使用循环系统来安排二级槽管理器。

主插槽主插槽的领导权是基于对可验证函数的评估而授予的(VRF)。在区块链,关于随机数据的炒作已经太多了。简而言之,很多应用依赖于随机数的生成,但是当所有的链操作都必须是确定性和可验证性的时候,很难识别出所有人都认同的随机数。

Vr会生成伪随机数和正确生成的证明。它们接受一些参数(包括私钥)作为输入。我们的VRF得到一个种子,它有一个随机的时间段(所有节点事先都同意),一个槽号和作者的私钥。因为没有两个节点具有相同的私钥,所以每个节点可以为每个时隙生成唯一的伪随机值。

每个创建者评估一段时间内每个槽的VRF。对于输出低于某个商定阈值的每个时隙,验证者有权在该时隙中创建一个块。由于随机时隙分配过程,在具有各种参数的时隙中可能没有块。我们稍后将讨论如何处理它。

BABE中的VRF将随机时间段、槽号和验证者的私钥作为输入,并为槽中的每个槽输出一个值。当块创建者的输出低于网络的阈值时,它将生成一个块作为插槽的主块导向器。

次要插槽

为了处理空槽,贝比使用了循环反馈模式。每个插槽都有一个辅助引导。如果在槽的开始处没有主引线,次引线将创建一个块。这种回退将确保每个槽都有一个块创建者,并有助于确保一致的块时间。

联合贝比和爷爷

到目前为止,我们有爷爷确定终端链和贝贝创造新的区块。由于单个插槽可以有多个主体,一些BABE链将会分叉。

选择最佳扩展链的第一条规则很简单:贝贝必须建立在爷爷最终确定的链上。这是用爷爷的要求之一。

使用爷爷的第二个更微妙的要求是,块产生算法必须有一个选择“最佳”链的方法。这个属性导致贝贝是概率确定性的(所以不用爷爷也可以用)。

最好的链是贝贝刚好是原创者创造的区块最多的链。

贝贝选择最佳分叉链的一个例子

分叉在贝比很常见。正如GRANPA文章中所讨论的,分块生产是O(n),这意味着创建者只需要将新创建的分块广播给每个人,而不需要每个人给每个人发一条消息(类似于爷爷)。所以,并不是所有人对尚未定型的链条(图中黄色块)都有相同的看法。

这个系统使我们能够有效地生产积木,并使爷爷最终确定他们想要收集的链条。

我该等谁的钟?

我们根据时间分配时间段,但是我们没有单一的时间概念。每台电脑都有自己的时钟。我们不能使用集中式时间服务(称为NTP服务器),因为这是单点攻击。攻击者可能会切断NTP服务器,或者切断其控制或者采取控制措施,采取更不道德的行动,比如向不同的节点发送不同的时间数据。

如果你有兴趣,请考虑以下情况:

我收到你的信息说,“现在是8:42:00。”我的钟显示8点42分03秒。可能会出现以下三种情况之一:

1.我们的时钟是同步的,网络发送你的信息只需要3秒钟。

2.传递你的信息实际上花了1秒钟。我们的时钟不同步了2秒钟。

3.你在骗我,这不是你的钟显示的。

现在想象一下,当我的时钟显示8:41:59时,我收到了这条信息。如果我相信你在诚实地告诉我你的时钟在说什么,那么我知道我们不同步,我必须把时钟调快。我还不知道通过网络传输需要多长时间,所以我不知道我们有多不同步。

BABE使用相对时间为单台计算机的时钟分配插槽号。当一个节点接收到一个块时,它将校对接收时间和与该块相关的时隙号。然后,它将槽号数字加到每个块上,并使用其中值来预测未来的槽位置。请记住,认证者将提前知道要为其创建的槽号,因此他们可以检查它。

BABE中的块创建者利用块的接收时间创建了网络时间视图。它们将接受时间映射到未来,并根据时隙时间确定何时应该创建和启动一个块。

到目前为止,我们已经讨论了链是如何制作的(贝贝)和如何确认的(爷爷)。我们要解决下一个问题是如何让人们以正确的方式运行这些协议。本系列的最后一部分将讨论运行时如何激励贝贝和爷爷运行以及对错误的惩罚。

阅读关于安全的第4部分-

原文链接:3359 polkadot . network/polkadot-consensus-part-3-babe/

翻译:迈克

编辑:迈克

广告位
本文来自网络,不代表区块链网站|NFTS立场,转载请注明出处:https://www.qklwz.com/jzb/dot/36788.html
上一篇
下一篇

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

返回顶部