链上生成随机数如此困难却如此重要
真无牙泛
发表于 2023-1-4 07:21:07
191
0
0
TRNGs 和 PRNGs1951年,阿兰·图灵(Alan Turing) 为Ferranti Mark 1 设计随机数特性时,他收集了电子噪音用于产生20位的长随机数。作为真随机数生成器(TRNG)的例子之一,Ferranti Mark 1 的内置随机数生成器也能够通过测量其他的物理现象来产生随机数,如大气噪声,热力学噪声或放射衰减等。然而,如果开发者所得到随机数的方式若想能够得到其他人的验证,就需要通过可以重复且具备一致性的系统来实现。伪随机数生成器(PRNG) 是基于具体数学的函数来产生一系列随机数字的系统,在相同的初始条件或者说”种子”条件下运行时,能够得到相同的结果。开发者能够以具有高度一致性的方式进行模拟再现。
随机数是必不可少的虽然古代文化会把偶然性与个人和国家的命运相关联,但现代随机数生成器的应用领域更为广泛。在数字化博彩、数据加密和计算机模拟等领域,随机数生成器(RNG)都是必不可少的。# f% O* L I6 s$ J
' }( W" u( E% o4 v+ j
博彩: 21点(blackjack)、扑克和轮盘赌(roulette)等数字博彩游戏需要依赖可靠稳定的随机数来源,以确保每一轮或每一手的结果的公平,确保没有玩家能够通过提前预测结果而获得不公平的优势。
数据加密:如果不首先加密,医疗和财务记录等敏感数据就无法保存在透明的区块链上。成功的加密方法需要一个安全的随机源,以便生成密钥,使用该密钥,具有正确权限的用户可以对数据进行初始加密,然后解密。
计算机模拟:今天的科学家利用模拟的方法,得到关于所有可能结果集的统计结论。蒙特卡罗实验(Monte Carlo experiments)是一套应用广泛的方法,依赖于对数据点的重复随机抽样,这些方法用于对金融衍生品建模、预测天气和预测风力发电场的能源产量等。
' ?, i# F6 N; i
链上随机数 — — 为何如此困难?无论是用于在医疗应用中加密患者数据,还是作为赌博应用程序的基础,有效的随机数必须具有某些特定的属性,以确保生成过程的质量。
- j+ n6 e( }& d8 _
首先,生成的数字必须是不可预测的,并且必须包含不相关的序列,这样就不能使用给定长度的数字来预测任何后续的数字。
. @# s$ q0 T% N6 E
此外,基于区块链的RNG (随机数生成器)不应该损害它们所在应用程序的去中心化特性。中心化的RNG,无论是依赖于自然现象的真随机数生成器,还是利用数学算法的伪随机数生成器,都依赖于单一的实体,这会给去信任的系统中引入依赖信任的因素。随机数生成时将多个实体参与其中,这样的多方参与的RNG 方案对于维护去中心化应用的特性而言至关重要。' I7 Z' d6 F+ B
0 ~- x" ?" p9 ~$ @: k& x' O5 j3 N
最古老的一对骰子发现于中东的某处洞穴中,可以追溯到公元前24 世纪。自那时以来,人类的随机数生成方案得到了跨跃式发展。计算机使我们能够捕捉自然过程中固有的不可预测性,从而推导出真实的随机数,并通过种子数学算法(seeding mathematical algorithms)来模拟随机性,从而生成伪随机数。
然而,为了让随机数生成器(RNG)能够进入区块链时代,必须通过去中心化方式来增强现有技术,以确保dApps的完整性不受损害。在TRNG(真随机数生成器)和PRNG(伪随机数生成器)中所生成的随机数中加入去信任化的特性,将提升游戏中的信任度,赋能去信任化的计算机模拟方案,并首次允许私有加密数据存储于区块链之上。
DAPP网络利用DAPP 服务提供商所提供的分布式生态系统,为开发EOS 应用程序的开发者提供重要的实用工具。
成为第一个吐槽的人