波卡的随机性如何产生?|Polkadot Wiki_DOT:polkadot怎么读

原文:https://wiki.polkadot.network/docs/en/learn-randomness

翻译:PolkaWorld

加入PolkaWorld社区,共建Web3.0!

波卡作为一条PoS链,随机性至关重要。波卡的随机性如何产生?为什么要选择这种方案呢?在本章wiki中给出了说明。

PolkadotWiki是波卡官方文档,PolkaWorld目前正在翻译和连载中。

随机性

在权益证明区块链中,随机性对于验证人职责的公平且不可预测分配很重要。

AWS将向50个波卡上初创项目提供25万美元资助:5月10日消息,AWS在班加罗尔举行的Polkadot Now India会议上宣布,将向50个波卡上初创项目提供25万美元资助,每个项目将获得价值5000美元的AWS积分,这些积分可用于AWS Activate,帮助项目在专家支持下发展和扩大业务。[2023/5/10 14:55:19]

计算机并不擅长随机数,因为它们是确定性设备。通常大家在计算机上所说的“随机数”实际上是伪随机的。也就是说,它们依赖于用户或其他类型的Oracle提供的足够随机的种子,例如气象站的大气噪声、你的心律,甚至是熔岩灯,它都可以从中产生一系列看似随机的数字。但是给定相同的种子,将始终生成相同的序列。

然而,这些输入将根据时间和空间而变化,而且不可能将相同的结果输入到全球特定区块链的所有节点中。如果节点获得不同的输入并用它来出块,则会发生分叉。显然,现实世界的无序状态不适合用作区块链随机性的种子。

波卡多链DApp中心Astar Network 宣布主网正式上线:1月17日消息,Astar 宣布主网正式上线波卡,开发人员可以使用其开发者工具在波卡上构建DApp,交易和EVM均已启用。

据悉,Astar Network是波卡生态早期的技术性项目,曾用名Plasm Network,旨在成为波卡上的多链DApp中心,支持EVM、WebAssembly和Layer2的解决方案,为波卡生态系统提供智能合约所必须的功能。[2022/1/18 8:55:24]

如今生产环境中有两种主要的解决区块链随机性的方法:RANDAO和VRF。Polkadot使用VRF。

VRF

可验证随机函数是一种数学运算,需要一些输入并产生一个随机数以及该提交者生成该随机数的真实性证明。任何挑战者都可以验证该证明,以确保随机数生成有效。

波卡生态概念板块今日平均涨幅为4.49%:金色财经行情显示,波卡生态概念板块今日平均涨幅为4.49%。26个币种中14个上涨,12个下跌,其中领涨币种为:INSTAR(+54.88%)、EDG(+22.35%)、OAX(+9.44%)。领跌币种为:PCX(-3.82%)、RING(-3.40%)、OM(-2.42%)。[2020/12/22 16:09:56]

Polkadot中使用的VRF与OuroborosPraos中使用的VRF大致相同。Ouroboros的随机性对于出块来说是安全的,并且对于BABE也运行得很好。它们的不同之处在于,Polkadot的VRF不依赖于中央时钟,而是取决于它自己的过去结果来确定现在和将来的结果,并且它使用时隙号作为时钟仿真器来估计时间。

波卡代币DOT面额拆分100倍的支持率高达86%,投票预计今晚结束:针对波卡代币DOT面额拆分的投票预计将于今日晚上22点左右结束。截至目前,同意将DOT拆分100倍(即10亿DOT总量)的投票占比高达86%。此次投票将于DOT转账开通后的72小时后执行。另外,针对决定是否开启DOT转账的治理公投已于7月21日开启,目前还有8天多的投票时间,投票通过后,将在14天执行此版本。预计将在8月18日晚上21点10分开启转账功能。这也意味着,预计将在8月21日晚21点10分开始,DOT面额将会按照投票结果直接进行更改。

据此前报道,波卡的第一次链上治理投票已于7月中旬开始,投票提供了四种选项(可多选),持续两周。这四个选项分别是:1. 与原始2017年的销售定义没有变化,这意味着从创世区块起将有总量1000万个DOT;2. 从最初的销售中分拆10倍,也就是1亿DOT总量;3. 从最初的销售中分拆100倍,也就是10亿DOT总量;4. 从最初的销售中分拆1000倍,也就是100亿DOT总量。[2020/7/27]

具体操作如下:

时隙是时间的离散单位,长度为六秒。每个时隙可以包含一个块,但也可以不包含一个块。时隙构成了时期——在Polkadot上,2400个时隙构成了一个时期,即每个时期为4小时。

在每个时隙中,每个验证人都会“掷骰子”。他们执行将以下内容作为输入的函数:

密钥-专门为“掷骰子”制作的钥匙

Epoch随机值-上一个产生影响

时隙数

输出为两个值:RESULT和PROOF。

然后将RESULT与在协议的实现中定义的阈值进行比较。如果该值小于阈值,那么得出此数字的验证人将是该插时隙的可行出块候选者。然后,验证人尝试创建一个块,并将该块与先前获得的PROOF和RESULT一起提交到网络中。

钓鱼人-监视网络的收集人和验证人错误行为的节点,将验证中继链区块。由于非法投掷将产生非法区块,并且由于钓鱼人将在验证人产生的每个区块中访问RESULT和PROOF,因此他们很容易自动报告作弊的验证人。

总结一下:在VRF下,每个验证人都会为自己掷出一个数字,并根据阈值对其进行检查,如果随机掷出的骰子低于该阈值,则会生成一个区块。观察网络并报告不良行为的钓鱼人事后会验证这些投掷的有效性,并向系统报告任何作弊行为。

精明的读者会注意到,由于这种工作方式,某些时隙可能没有验证人作为出块候选者,因为所有验证人候选者的得分都太高而错过了阈值。我们阐明了如何解决此问题,并确保与Wiki页面的共识部分的Polkadot出块时间保持几乎一致。

RANDAO

另一种获取链上随机性的方法是以太坊的RANDAO方法。RANDAO要求每个验证人通过对某些种子执行数千个哈希来进行准备。之后验证人在回合中发布最终的哈希值,并且从每个参与者进入游戏中得出随机数。只要一名诚实的验证人参加,随机性就被认为是安全的。

RANDAO可以选择使用VDF进行增强。

VDFs

可验证延迟函数是指即使在并行计算机上也要花费规定时间才能完成的计算。它们产生独特的输出,可以公用共设置独立有效地对其进行验证。通过将RANDAO的结果输入VDF,会引入延迟,从而使任何攻击者企图影响当前随机性的尝试都将过时。

VDF一般需要通过ASIC设备来实现,这类设备需要与其他类型的节点分开运行。尽管只有一台就足以保证系统的安全,并且它们将是开源的并且几乎免费分发,但是运行这类设备既不便宜也不受激励,对于选择这种方法的区块链用户而言将产生不必要的摩擦。

扩展资料

Polkadot在随机数和抽签上的研究-包含了在证明机制之间作出选择的理由:https://research.web3.foundation/en/latest/polkadot/BABE/Babe.html

关于Pokadot中用到的随机数的讨论-W3F研究员讨论波卡中的随机性及其使用场景和假设:https://github.com/paritytech/ink/issues/57

关注PolkaWorld

发现?Web3.0时代新机遇

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:15ms0-6:968ms