随机数是密码学中一个非常重要的概念。近日,MyKey研究部部长姚翔先生参观了平台社区,参与了社区快闪活动,为社区讲解了随机数的定义、区块链中的随机数方案以及相关应用。
在参与抽奖或抽奖的过程中,我们经常听到“随机数”这个词。随机数在密码学中起着非常基础和重要的作用,它经常被用来生成密钥和安全参数。在日常生活中,随机数也是保证公平的重要手段,广泛应用于抽奖、抽奖、抽奖等场景中。随机数在区块链中也被广泛使用。除了密钥生成等传统安全场景外,它在共识机制、零知识证明等流行场景中也扮演着重要角色,保护区块链的安全。
但在实际应用中,由于对随机数的理解不到位,执行不严格,导致了大量的安全风险事件。索尼等企业的固件有严重缺陷,急需更新。虽然它没有造成毁灭性的后果,但造成的损失很难评估。在区块链上,由于彩票的随机数是可以预测的,它直接造成了近两年数百万资产的损失,可以说“历史总是在重演”
简单的随机数似乎很重要,而且会引起很多问题。研究人员和开发人员必须了解其原理和细节,以避免在应用过程中出现错误。
那么,什么是随机数?如何判断随机数的质量?区块链中产生随机数的一般方法是什么?
A660202什么是随机数?
首先,让我们来谈谈什么是随机数。随机数不是一个特定的数,而是由随机数生成器生成的一个或一组数的序列。可以出现在这个序列中的元素来自某个集合。每次选择的元素都是不可预测的,但是元素出现的概率是恒定的(通常概率相等)。例如,如果你掷一个有六个等边的骰子,结果是不可预测的,但是每个面的概率是相等的。每卷的结果可以用来生成随机数。
真正的随机数通常来自物理世界的随机行为,这需要收集噪声。在计算机科学中,确定性算法通常用来模拟随机数的生成,也被称为伪随机数。伪随机数的检测是非常重要的。全面、完整的检测可以避免算法缺陷或人为后门带来的风险。目前常用的随机数检测标准为NIST sp 800-20和GB/T 32915-2016。
需要补充的是,在NIST标准提供的参考实施中,有人怀疑它被嵌入后门。
Dual-EC-Drbg,建议的实现已被删除。在密码学的重要会议crypto2020中,还对随机数发生器NIST-ctr-drbg进行了安全性分析,指出了其缺陷并给出了修复方法。在会上接受的论文中,关于随机性相关问题的论文多达6篇。由此可见,随机数问题并非简单而粗心。
A05和区块链
在区块链中,由于很难从物理世界获取随机噪声,所以产生随机数更加困难。
目前的总体思路是综合使用几种不同的策略:一种是通过多方协同生成;另一种是通过哈希函数等随机预言引入随机性;第三种是通过承诺披露协议降低参与者作弊的可能性;四是引入门限协议或经济约束来提高随机数生成的成功率。
多方共生成是指随机数的生成依赖于多个参与者的输入,因此随机数很难被一方操纵。
由于各输入端的输入可能具有较强的规律性,随机性不足。您需要使用随机函数,例如散列函数来处理输入。所有参与者的输入可作为函数的输入参数,输出结果可视为随机数。
承诺披露协议主要用于避免参与者作恶。参与者需要对他们想要输入的结果做出承诺,这通常由哈希函数完成。承诺解除后,参与者的输入不能再修改,但需要注意的是,他仍然可以选择不披露承诺。
引入门限协议,通过秘密共享或门限签名,可以避免随机数生成方案因一个参与者没有完整的执行过程而失败。它具有一定的容错性,提高了随机数生成的成功率。引入经济约束可以防止参与者通过拒绝透露而影响随机数结果,并惩罚恶意参与者。
安全多方计算技术是在链上生成高质量随机数的重要基础技术。利用安全多方计算技术,多方可以不可否认地产生随机数。基于安全多方计算技术,平台可以为链上随机数提供更好的解决方案。
文章标题:硬核随机数对区块链有多重要?
文章链接:https://www.btchangqing.cn/87203.html
更新时间:2022年10月13日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。