随机数是一个非常重要的密码学概念,近日MYKEY研究部门负责人姚翔老师做客PlatON社区,参加社区快闪活动,为社区讲解随机数定义与区块链中随机数方案及相关应用。
在参与抽奖或抽样的过程中,我们经常听到“随机数”这个词。随机数在密码学中有着非常基础且重要的地位,常用于密钥和安全参数生成。而在日常生活中,随机数也是保障公平性的重要手段,广泛应用于抽样、抽签、抽奖等场景当中。随机数在区块链中也应用广泛,除了密钥生成等传统安全场景,在共识机制、零知识证明等热门场景中也发挥着重要的作用,保护着区块链的安全。
Binance.US的BTC、ETH与USDT价格均与Binance主站价格较低:金色财经报道,推特用户borovik.eth发推文表示,比特币在Binance.US上的交易价格为26,970美元,而实际价格为30,300美元,以太坊比正常水平低200美元,USDT价格为0.889美元。
注:本文撰写时,Binance主站的BTC价格为29978.69美元;ETH价格为1856.49美元;USDT价格为1美元;Binance.US BTC价格为28040.26美元;ETH价格为1800美元;USDT价格为0.9257美元。[2023/7/10 10:12:14]
然而,在实际的应用当中,由于对随机数的理解不到位,实现不严谨,引发了大量的安全风险事件。索尼、YubiKey等知名企业都曾出现过随机数生成器的严重缺陷,不得不紧急进行固件更新,虽然没有造成毁灭性后果,但造成的损失也难以评估。而在区块链上,由于开奖随机数可被预测,在近两年里直接造成了成百上千万资产的损失,可以说“历史总在重演”。
美国SEC在2022年对加密货币领域的打击行动中赚取140亿美元:金色财经报道,随着美国证券交易委员会(SEC)继续加大对加密货币领域一些最大企业的打击力度,包括对Coinbase和Binance提起诉讼,它从执法工作中获益匪浅。根据2022财年的年度报告,监管机构在此期间产生了141亿美元的收入,比2021年的122亿美元增加了19亿美元。根据该文件,这些资产大部分来自SEC执法行动中没收的收入,根据SEC从11月发布的新闻稿,在2022财年,这些资产比上一年增加了9%,因为该机构带来了2022年760次执法行动。[2023/6/14 21:35:14]
看上去简单的随机数如此重要,又引发这么多问题。研究和开发人员必须理解它的原理和细节,才能避免在应用过程中犯错。
数据:Tornado Cash遭制裁后USDT和USDC出现市值翻转,前者市值已增加近20亿美元:8月16日消息,自美国财政部对加密货币混合器 Tornado Cash 实施制裁以来,Tether ( USDT ) 市值增加了近 20 亿美元。加密 KOL TheLondonCrypto 在社交媒体发文表示,在 Tornado Cash 制裁之后,用户将价值约 16 亿美元的 USDC 转移至 USDT。(Cointelegraph)[2022/8/16 12:29:15]
那么,什么是随机数?怎样判断随机数的质量呢?在区块链中一般生成随机数的方法又有哪些?
孙宇晨:支持优先赔偿小额UST持有者的方案,承诺提供1000万USDD:5月16日消息,孙宇晨在推特上表示,完全支持Persian Capital提出的“Terra基金应优先赔偿小额UST持有者”的方案,同情涉及这场意外危机中的所有人。
孙宇晨还称:“我愿意承诺向23.6万UST持有者提供1000万USDD。我相信这将帮到受损最多的人,并显示我们的团结。详情将于近期公布。”
据悉,此前V神和赵长鹏已经表示支持“Terra基金应优先赔偿小额UST持有者”的方案。[2022/5/16 3:19:43]
什么是随机数?
首先我们来说随机数是什么。随机数并不是一个具体的数,而是在通过随机数生成器产生的一个或一组数的序列。这个序列所能出现的元素来自确定的集合,每次选出的元素不可预期,但元素出现的概率恒定的。譬如说扔一枚六面均匀的骰子,结果不可预期,但每个面的概率都是相等的,每次掷出的结果就可以作为一个随机数生成的方法。
真随机数一般来自物理世界的随机行为,需要进行噪声搜集,而在计算机科学中,一般使用确定性的算法来模拟随机数的生成,也称伪随机数。对伪随机数的检测非常重要,全面、完备的检测可以避免算法缺陷或人为后门造成的风险。目前常用的随机数检测标准有NISTSP800-20和GB/T32915-2016等。
需要补充的是,在NIST这份标准提供的参考实现中,就曾被怀疑植入过后门。
Dual_EC_DRBG,目前该推荐实现已经被删除。而在即将召开的密码学重要会议Crypto2020中,也有一篇对NISTCTR-DRBG这个随机数生成器的安全分析,指出了其缺陷并给出了修复方法。而在会议接受的论文里,研究随机性相关问题的论文多达6篇。这都说明随机数的问题并不简单,也马虎不得。
随机数与区块链
在区块链中,由于较难从物理世界中获取随机噪声,生成随机数的难度更大。
目前一般的思路是通过几种不同策略组合使用:一是通过多方协同生成;二是通过哈希函数等随机预言机引入随机性;三是通过承诺-揭示协议降低参与方作弊可能;四是引入门限协议或经济约束提高产生随机数的成功率。
多方协同产生指的是随机数的生成依赖多个参与方的输入,这样随机数就较难被单方操纵。
由于每个输入方的输入可能具有很强的规律性,随机性不足。需要使用随机化的函数,例如哈希函数对输入进行处理。可以将所有参与方的输入作为函数的输入参数,输出的结果作为随机数。
承诺-揭示协议主要是为了避免参与方作恶,参与方需要先将自己想输入的结果做一个承诺,一般也是通过哈希函数完成。承诺发布之后,参与方的输入就不能再修改了,但需要注意的是,他仍然可以选择不把承诺揭示。
引入门限协议,通过秘密共享或门限签名的方式,可以避免随机数生成方案因为一个参与方没有完整执行流程而失败,具备一定的容错性,提高随机数产生的成功率。引入经济约束,可以避免参与方通过拒绝揭示的方式影响随机数结果,对恶意的参与方进行惩罚。
安全多方计算技术正是产生高质量的链上随机数的重要基础技术。运用安全多方计算技术,可以让多方不可抵赖地协同生成随机数。PlatON基于安全多方计算技术可以更好地为链上随机数提供解决方案。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。