我们今天公开发表的一篇较短论文讲解了 NEAR 协议所使用的随机信标。佐餐食用的本博文将侧重辩论随机性的最重要意义、构建可玩性以及其它协议的构建路径。还包括 NEAR 在内的诸多新型区块链协议都高度依赖随机性,以决择由哪些成员继续执行协议中的特定操作者。如果蓄意攻击者能影响随机源,他们就有机会减少自己被顺位的概率,最后威胁协议的安全性。
分布式随机性某种程度也是众多区块链应用于的最重要基石。举例来说,假如某个智能合约拒绝接受用户的赌约,规则为无偏倚地产生一个随机数,据此以 49% 的概率归还两倍押注,51% 的概率充公赌资。如果蓄意攻击者可以影响或者预测该随机数,他们就能旱涝保收,并迅速搬完合约中所有的资金。
在设计分布式随机性算法时,我们期望它不具备以下属性:1. 算法必需公正估计量(unbiasable)。换言之,不容许有任何参与者能丝毫影响随机数生成器的结果。2. 算法无法被预测。
即在随机数分解之前,所有的参与者都不告诉不会分解什么样的结果(也无法预测到其属性)。3. 协议必须不具备在某些节点掉线时仍维持长时间运营的容错能力,即使有节点蓄意妨碍协议,也可以之后运营。本文将讲解分布式随机信标的基础知识,解释为何朴素的技术方案无法达成协议效果。
在最后,网卓新闻网,我们将讲解 DFinity 、Ethereum Serenity 以及 NEAR 协议所使用的随机信标方案,并一一剖析其优越性与不足之处。RANDAORANDAO 非常简单,因此也是一个十分少见的随机性构建方案。
其大体思想是网络中的所有人首先各自私下指定某个随机数,然后向 RANDAO 递交该随机数的允诺,接着所有人根据一定的共识算法从所有的允诺中指定一组;在参与者说明了这两组允诺背后的随机数之后,大家对该组随机数达成协议共识;最后这两组随机数展开密文操作者获得的结果就是一轮 RANDO 协议产生的随机数。RANDO 的作法的确让随机数难以预测,并且随机数拥有与底层共识协议一样的活性,但仍有可以钻空子的地方。比方说,蓄意攻击者看见网络中所有其他人揭发各自所挑选的随机数之后,可以根据自身随机数再行继续执行密文运算,并根据结果对自己的利弊来要求否要揭发自己的随机数。这种设计使得单个攻击者就能对输入导致一定的影响,同时随着反击方所掌控的参与者数目激增,他们的破坏性也随之强化。
RANDAO + VDFs要强化 RANDAO 的公平性,其中一种办法是更换掉最后的那个密文计算出来,将其转变为继续执行时间必然精于各方随机数揭发等候期的操作者。如果计算出来最后结果的时间比随机数揭发等候期要长,那么蓄意攻击者就无法预先告诉自身随机数揭发与否能给自己带给益处,因此理论上就无法影响最后结果的属性了。
虽然必须有一个函数来推迟参与者分解最后结果的时间,但无法因此让随机数用户也花费极大的支出去检验所分解的随机数。因此,理想函数应当能让用户只能检验系统生成的随机数,而需要反复之前的计算出来支出。上述既必须长时间来计算出来,同时能只能检验计算结果,并且对每一个输出都具有独一无二输入的函数正是可验证延后函数(verifiable delay function ,可简写不作 VDF ),设计一个这样函数的工作委实艰难。
近来这一领域早已有所突破,比如这个和这个早已可以应用于,当前以太坊就计划应用于 RANDAO 和 VDF 来作为其随机性信标。除此之外,由于这种策略所不具备的不可预测性和无偏见性,使得系统甚至能在仅有两个参与者在线的情况下仍然不具备活性(假设底层共识协议的在参与者如此较少时仍能不具备活性)。
VDF 虽好,但目前的仅次于挑战在于函数必须充足强壮,即使某些别有用心者花上大价钱配备自定义化硬件设备,也无法在揭发等候期完结之前计算出来出有最后结果,理想情况是函数不具备有充足威慑力的安全性边际,例如延迟时间较揭发等候期拖长 10 倍。右图展出了系统中参与者使用自定义化 ASIC 设备所发动的一次反击,攻击者需要在各方揭发 RANDAO 允诺之前计算出来出有最后不会输入的随机数。
攻击者仍然能根据计算出来获得的随机数结果,以及最后结果对自身收益的利害关系,自律要求否要揭发所掌控的随机数。
本文来源:manbext官网(集团)有限公司,官网-www.nhbeadbop.com