RNG: 为何链上生成随机数如此困难却如此重要

英文链接: https://medium.com/@liquidapps/baking-randomness-into-the-mix-65a3d83087b1
古代中国人用蓍草占卜,预测人们的未来命运。自那时以来,人类一直对可靠随机数来源进行探寻。如今,随机数是用编程方式来生成的,要么通过测量自然随机性的来源,要么通过生成伪随机数的数学算法。尽管相比人类祖先的原始技术而言我们有了巨大进展,但是,距离新一代的随机数生成方式,仍需更进一步。区块链应用程序,如模拟技术,博彩类 dApp以及敏感数据加密等,需要既高效又去中心化的随机数生成器(RNG, random number generator)。
TRNGs 与 PRNGs
1951年,阿兰·图灵(Alan Turing) 为 Ferranti Mark 1 设计随机数特性时,他收集了电子噪音用于产生20位的长随机数。作为真随机数生成器(TRNG)的例子之一,Ferranti Mark 1 的内置随机数生成器也能够通过测量其他的物理现象来产生随机数,如大气噪声,热力学噪声或放射衰减等。然而,如果开发者所得到随机数的方式若想能够得到其他人的验证,就需要通过可以重复且具备一致性的系统来实现。伪随机数生成器(PRNG) 是基于具体数学的函数来产生一系列随机数字的系统,在相同的初始条件或者说"种子"条件下运行时,能够得到相同的结果。开发者能够以具有高度一致性的方式进行模拟再现。
随机数方案不可或缺
虽然古代文化会把偶然性与个人和国家的命运相关联,但现代随机数生成器的应用领域更为广泛。 在数字化博彩、数据加密和计算机模拟等领域,随机数生成器(RNG)都是必不可少的。
博彩
21点(blackjack)、扑克和轮盘赌(roulette)等数字博彩游戏需要依赖可靠稳定的随机数来源,以确保每一轮或每一手的结果的公平,确保没有玩家能够通过提前预测结果而获得不公平的优势。

数据加密
如果不首先加密,医疗和财务记录等敏感数据就无法保存在透明的区块链上。成功的加密方法需要一个安全的随机源,以便生成密钥,使用该密钥,具有正确权限的用户可以对数据进行初始加密,然后解密。
计算机模拟
今天的科学家利用模拟的方法,得到关于所有可能结果集的统计结论。蒙特卡罗实验(Monte Carlo experiments)是一套应用广泛的方法,依赖于对数据点的重复随机抽样,这些方法用于对金融衍生品建模、预测天气和预测风力发电场的能源产量等。
链上随机数生成方案--为何如此困难?
无论是用于在医疗应用中加密患者数据,还是作为赌博应用程序的基础,有效的随机数必须具有某些特定的属性,以确保生成过程的质量。
首先,生成的数字必须是不可预测的,并且必须包含不相关的序列,这样就不能使用给定长度的数字来预测任何后续的数字。
此外,基于区块链的 RNG (随机数生成器)不应该损害它们所在应用程序的去中心化特性。中心化的RNG,无论是依赖于自然现象的真随机数生成器,还是利用数学算法的伪随机数生成器,都依赖于单一的实体,这会给去信任的系统中引入依赖信任的因素。随机数生成时将多个实体参与其中,这样的多方参与的 RNG 方案对于维护去中心化应用的特性而言至关重要。
最古老的一对骰子发现于中东的某处洞穴中,可以追溯到公元前 24 世纪。自那时以来,人类的随机数生成方案得到了跨跃式发展。计算机使我们能够捕捉自然过程中固有的不可预测性,从而推导出真实的随机数,并通过种子数学算法(seeding mathematical algorithms)来模拟随机性,从而生成伪随机数。
然而,为了让随机数生成器(RNG)能够进入区块链时代,必须通过去中心化方式来增强现有技术,以确保dApps的完整性不受损害。在TRNG(真随机数生成器)和PRNG(伪随机数生成器)中所生成的随机数中加入去信任化的特性,将提升游戏中的信赖,支撑去信任化的计算机模拟方案,并首次允许私有加密数据存储于区块链之上。
DAPP网络利用 DAPP 服务提供商所提供的分布式生态系统,为开发 EOS 应用程序的开发者提供重要的实用工具。
加入【LiquidApps的电报群】(https://t.me/liquidappsoff),看看 DSP 是如何为下一代随机数生成器(RNG)提供动力的。
关注 LiquidApps
网站 | 币乎 | Twitter | Telegram | LinkedIn
加入 LiquidApps 微信交流群,可以加荆凯微信: shuke0327,备注: dapp
