Polkadot的VRF如何获得随机性以洗牌验证器?

问题描述 投票:0回答:1

与使用RANDAO(可能通过VDF增强)的以太坊相反,在Polkadot中,可验证的随机函数(VRF)用于洗牌验证器并为某些时隙选择潜在的区块提议者。随机性来自哪里,即随机性是如何工作的?

random shuffle polkadot
1个回答
0
投票

可验证的随机函数是以伪代码表示的函数,如下所示:

(RESULT, PROOF) = VRF(SECRET, INPUT)

即,对于某些秘密和某些输入(可以公开),结果为RESULTPROOF的元组,其中PROOF可以由外部观察者用来验证VRF RESULT的合法性]。

换句话说,进行“ VRF滚动”会得到一个随机数,并证明您获得了该随机数,而不仅仅是选择了它。

每个验证器的每个插槽(大约每6秒钟)将运行VRF功能。 SECRET将是其VRF密钥,VRF密钥是仅用于此目的的特殊密钥,由验证者生成并保密。 INPUT或者是来自创世块的特定值(如果链中存在少于2个纪元),或者是过去2个纪元中所有VRF结果的哈希值。]

一旦验证者执行了VRF,就将RESULT与协议定义的THRESHOLD值进行比较。如果RESULT小于THRESHOLD,则验证器是该时隙的有效块提议者候选者。否则,验证程序将跳过该插槽。

这意味着可能有多个验证者正在为插槽生成候选块,在这种情况下,只要其他节点上拾取的块位于链上最多的那个块上根据GRANDPA finality小工具最近确定的区块。在这种情况下也可能没有插槽的区块生产者,在这种情况下,AURA共识将接管。 AURA共识基本上是一个后备,它为每个块选择一个随机验证器。它与BABE并行运行,并且仅在插槽没有块生成器的情况下才重要,否则它将被忽略。

© www.soinside.com 2019 - 2024. All rights reserved.