随机 & 命运

假如现在有一群极其富有但极其无聊的的 BTC 巨鲸,决议每年一起拿出 1000 个 BTC 举行一次俄罗斯轮盘。他们会准备一把左轮手枪,在可装 6 发子弹的弹夹中只装入一颗子弹,然后对准你的脑袋扣动扳机。 每次扣动扳机所发生的结果能够视为一种平行国际,由此在这个单一事情下,总共有对应着 6 种不同结局的平行国际,而每种平行国际发生的概率相同。这其间的 5 个平行国际会使你一夜暴富,乃至荣登《Forbes》封面,而剩下的唯一一个平行国际则会让你死相难看,见笑大方。

你愿意参加这个赌局吗?愿意参加一届?两届?仍是每年都来碰碰命运?

玩这个游戏需求勇气,当然也需求动一些脑筋。83% 是一个很高的胜率,确认性达到 83% 的事情在生活中也并不多见。但假如有些贪婪的傻瓜挑选一直玩下去,那 20 年后他们中的绝大多数应该都能够在报纸的讣闻一栏找到。在这个假设的俄罗斯轮盘游戏里,规矩制定得十分清楚,赔率能够核算,风险也能够衡量,全部条件信息都已提早发表,但在现实国际中,咱们往往面临的都是非对称信息的动态博弈 (Asymmetric Information Game Theory)。左右咱们命运的并不是一把左轮手枪,或是一副扑克牌。咱们不知道有多少弹夹中有多少枚子弹,也不知道这副牌有多少花色。在无限多重平行国际和无穷大的风险条件下,咱们的命运不行预知。

而这正昭示着咱们生活在一个充满随机的国际中。

如费曼所言,自然界允许咱们核算的仅仅概率。一旦咱们具有了核算「概率振幅」的超能力,咱们就能够成为先知,猜测乃至改动未来。换句话说,谁把握了随机性,谁就拿到了命运的骰子,成为了天主。

随机 & 安全

将这种思维平移至加密国际中,生成随机数的机器就能够被视为是传达天主神谕的使者。也正是由于扮演着这样的人物,预言机 (oracle) 才由此得名。在曩昔关于预言机的文章中,咱们现已指出由于区块链体系的通明性,其链上生成的全部算法、输入、输出都会被暴露给体系参加者。因而在链上直接生成的随机序列实践是能够被猜测的。

一些典型的链上随机数生成办法,比方未来区块哈希,都存在很大的做弊空间和安全漏洞。举一个简单的比方,假如矿工在玩一个博彩游戏,这个游戏的中奖金额是 10ETH,而区块奖赏的金额却只有 3ETH,那么矿工当然有显着动机去做弊。他能够经过丢掉和不发布区块来影响随机序列的生成 (Block Withholding Attacks),从而为自己赢得在游戏中优势。这相当于是你和矿工打同样一局扑克,但人家能够换底牌。而假如将这种能够被篡改和猜测的伪随机序列使用到 Web3 各个场景中,咱们不难想象其背后的巨大安全风险和不公正性:一旦黑客或攻击者找到随机算法,并测算出了随机序列的初始输入值,那么无论是 NFT空投发放,GameFi 中的极品配备爆出,仍是用户个人钱包的私钥地址生成,都有或许被操纵和篡改。

那究竟怎样的随机数才是真实可信和安全的呢?这儿咱们就需求先对随机数的分类做一个简单了解。

一般地,咱们将随机数分成两种:真随机数(True Random Number, 后简称 TRN) 和伪随机数(Pseudo-Random Number,后简称 PRN)

其间,伪随机数又能够被细分为:弱伪随机数和强伪随机数。

正如 「伪」这个词所暗示的那样,伪随机数不是真实的随机。全部在区块链上生成的随机数也都是「伪」的。本质上,PRN 是核算机软件根据既定的数学公式和算法指令所输出的看似随机的数字序列,需求外部输入一个初始值来充任 seed。而且和许多人天然的认知相反,核算机其实很难被用来生成一些偶尔的条件,由于它本身便是可猜测的设备。元器件是确认的,线路是预设的,代码和算法命令是明确的,在种种固定的外界条件下,咱们完全能够经过某些途径(如上文说到的做弊办法)定位出序列结果。而能够被算出的结果,emm 怎样不算…… 伪随机呢?

真实的 TRN,是从噪音,紊乱现象,量子随机进程等物理现象中提取出来随机性,引进核算机才得以生成的。直白一点讲,便是把链下的一个大骰子接到了核算机。

在性质上,TRN 需求同时具有随机性,不行猜测性和不行重现性三重特质:

  • 随机性:数列完全杂乱无章,不存在统计学误差,但不代表不会被看穿

  • 不行猜测性:在知道曩昔数列的前提下,仍然无法猜测接下来生成的数列

  • 不行重现性:无法重现完全相同的数列,除非将本来的数列保存下来

强 PRN 只具有前两者,而弱 PRN 只具有随机性这一个性质,很简单被看穿。

随机数是 Web3 世界不可或缺的一部分

咱们说一个随机数可信,安全,最起码的便是指它不会被看穿。因而具有不行猜测性的 TRN 和强 PRN 都能够被用作可信随机数引进智能合约。弱 PRN 是不能被使用到比方生成密钥,生成口令密码等等密码学相关的场景中的。

至于如何生成可信安全的随机数,现在来看最直接高效的办法便是经过预言机链接外部 API 并生成加密认证。比方 Chainlink 的可验证随机函数(VRF)服务,便是经过在测试网络中接入外部 API,再用公钥和智能合约的 seed 来验证生成的强 PRN,然后将其传输至智能合约 (详细工作流程见下图)。Chainlink 的 VRF 服务首要采取订阅账号的收费办法,用户在将足够的 LINK 代币存入账户后即可经过发送订阅恳求来获取其提供的随机数。

随机数是 Web3 世界不可或缺的一部分

再比方,API3 最近挑选经过和澳大利亚国立大学(ANU)量子光学团队协作,为 dApp 和 Web3 各类产品提供量子随机数生成(QRNG)服务,将其基于量子现象的生成 TRN 验证上链交付给恳求者(详细工作流程见下图)。QRNG 也是现在唯一一个生成 TRN 的服务机制,根据其白皮书的相关论述,QRNG 能在最大程度上避免女巫攻击,而且这一功能完全免费运用。

随机数是 Web3 世界不可或缺的一部分

随机 & Web3

在理解了可信随机数的定义与来源后,咱们来谈谈一个更实践的问题:随机数在 Web3 到底有什么用?

事实上,随机数在几乎全部的 Web3 场景和用例中都不行或缺。

1. GameFi

在游戏中需求用到概率分配的情况比比皆是,RPG 游戏便是一个典型的比方。有些人物十分稀有,具有稀有的特点,而有些人物就极为往常。通常越是稀有的人物,就价值越高,越能协助用户取得高额的经济回报。比方 Axie,每个精灵人物都有六个组成部分,每个部分都有不同的特点和能力。游戏厂商想要为用户发明个性化的游戏体会,就必须把人物的分配机制做好,把分配概率设置得尽量公正。

在 PVP 对战中,玩家取胜的几率和赢得奖赏的多少都取决于他们在对战中被分配到的对手。假如游戏配对机制不公正,很有或许直接导致玩家的丢失。而在国际探究类游戏中,玩家在探究地图进程中取得稀有物品和配备的几率也需求一个确保公正的概率模型。在卡牌类游戏中,玩家运用卡牌的顺序很大程度上充任着竞赛的胜负手。在射击类游戏中,射击的命中率,人物复活地址的挑选都会对玩家的游戏体会造成必定影响。

上述说到的种种游戏归根到底,本质都是需求经过注入必定的不行猜测性来增强游戏的可玩度。而不行猜测性的发生,就必然需求引进可信的随机数。

2. NFT

和 GameFi 中人物特点具有不同构成一样,NFT 的细节也由不同的特点组成。比方 BAYC 的 NFT,就包含布景、衣着、耳饰、眼睛、毛发、帽子和嘴七个不同的特点,而特点的稀有度实践就决议了该 NFT 的价值。关于稀有度分配和特点总量上限的制定,都能够经过使用可信随机数来处理。

随机数是 Web3 世界不可或缺的一部分

此外,随着越来越多 NFT 社区的树立和生长,项目方也常常会在特别节日里或是达到某些里程碑时,经过发放随机的 NFT 空投奖赏来激发成员的忠实和活跃度。而空投哪些地址,怎样确保空投的公正性,都是需求项目方谨慎地根据必定发放机制来履行。可信随机数在这类情景下就能够被视为一种良好的处理计划。事实上现在大部分 NFT 的空投鼓励活动也都是集成 Chainlink VRF 等服务开展的。

3. DeFi

相似 Olympus 这样的 DeFi 协议和算法稳定币协议中,其质押机制通常会设有变基质押(rebase)流程来处理份额稀释问题,或是鼓励特定的商场行为,比方坚持算稳的价格锚定。而 rebase 机制的一个「敏感性」强变量便是其周期时间。

设定的 rebase 周期时间假如长时间不变,就很或许会被短期套利者使用。因而 rebase 机制规划能够使用可信随机数,来决议一个改变调整的大致周期。

在一些创新式的 Yield Farming 协议中,其奖赏机制也会引进必定的波动性来进步用户的参加度。参加度高贡献大的用户的年化收益率会区别于一般或是参加度较低的用户。因而资金池中奖赏大小的分配和收益幅度的增减,都会需求运用随机数来调节和树立形式。

4. DAO

在 DAO 的治理中常常需求成员为组织做出一些要害决议计划,一个庞大的 DAO 社区往往或许经过建立董事会等中心办理层来更高效地履行日常决议计划。这些董事会和办理人员的挑选和补充需求一个公正通明的机制来进行,而引进可信随机数关于这类机制的建立能够被认为是一个最优及最便捷的挑选。

此外,在一些涉及到很多资金办理或是专门进行投资的 DAO 中,随机数也可被用以进步成员身份认证体系的安全性,避免黑客或恶意攻击者逆向工程身份认证的进程,确保 DAO 内资金库的安全。

5. L1 共识机制中 VRF 的运用

新式公链需求面临的一个很大问题便是分片(shard)后安全性的下降。在未分片前,网络中全部的验证者一起验证全部买卖;但在分片后,这些验证者被平均分配到每个分片上的进行验证,这就使得每个分片被 fork(51% 攻击)的几率大大提升。处理这个安全性问题的一个良好计划便是让攻击者无法提早预知每个分片的验证者,而这就需求引进必定的随机性和不行猜测性。NEAR 便是经过 VRF 服务对验证者进行随机分配,从而躲藏验证者详细会证的分片信息。

随机数是 Web3 世界不可或缺的一部分

写在最后

随机性之所以令人入神,是由于它意味着不确认,意味着一种或许性。或许性能为咱们带来希望,也会为咱们带来惊骇,所以决议论与非决议论的争执绵延至今。而天主究竟掷不掷骰子其实也没有那么重要。也许世间万物都在无可挽回地走向大数定律,也许全部宿命般的相识都不过是概率上的偶尔,也许你、我、他都仅仅在 Web3 随机散步的傻瓜。

但不知道答案,总是比得到一个错误的答案有意思得多。正如卡洛・罗威利在书中说到的那样:「What’s nonapparent is much vaster than what’s apparent (看不清的比看得清的更广阔)」。

坚持愚蠢,敬畏随机。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注