火星链 火星链
Ctrl+D收藏火星链
首页 > 中币 > 正文

区块链:为什么 DApp 经常会遭遇随机数攻击?

作者:

时间:1900/1/1 0:00:00

9 月 14 日,一款名为“EOSPlay”的 DApp 游戏遭遇了新型随机数攻击,一共损失了数万个 EOS。

或许很多人对「随机数攻击」这个词已经司空见惯了,因为在 DApp 遭遇黑客攻击的事件中,随机数攻击占了很大一部分,很多 DApp 的随机数被黑客破解了。

你或许会问,随机数不是随机的吗?随机意味着不可预测,为什么还会被黑客破解呢?

这还得从随机数说起。

随机数可以分为真随机数和伪随机数。真随机数需要同时满足随机性、不可预测性、不可重现性,而伪随机数只需要满足随机性,或者是随机性和不可预测性即可。

Alameda CEO:经营Alameda感觉不像是我相对更有优势或非常适合做的事情:金色财经报道,据《纽约时报》援引Caroline Ellison的日记消息,破产的Alameda Research首席执行官Caroline Ellison在去年12月承认了与加密货币交易所FTX倒闭有关的欺诈行为,Ellison写道,经营Alameda感觉不像是我相对更有优势或非常适合做的事情。感觉FTX帝国最终崩溃的那一天感觉很棒。?[2023/7/21 11:08:15]

真随机数只存在于物理世界中,一般需要通过物理手段(包括量子过程)获得,比如我们日常见到的抛硬币、掷骰子,生成的随机数就是真随机数。但是,抛硬币、掷骰子这种随机数生成方法的缺点非常明显,那就是耗时、耗力,而且也无法满足现代的计算机世界对随机数的需求。

以太坊开发人员发布针对最近信标链最终性问题的补丁:金色财经报道,以太坊开发者已经发布了软件更新,以解决最近影响以太坊信标链的最终问题,并恢复网络的稳定性。这些补丁已经为以太坊客户Prysm和Teku发布,允许他们更新其系统。以太坊基金会表示,最终问题的全部原因仍在调查中,但 \"这似乎是由一些共识层客户端的高负载造成的,而这又是由一个特殊情况造成的\"。[2023/5/14 15:01:26]

因为效率的缘故,现代的计算机软件主要依赖伪随机数。最早的伪随机数生成器由 20 世纪最重要的数学家之一冯·诺依曼创造,通过一个确定的随机数种子,由确定的算法生成伪随机数序列。现在的主流计算机编程语言,默认的是将 1997 年发明的梅森旋转算法作为生成伪随机数的方法。

Aptos核心开发人员:代币经济学概述即将发布:10月18日消息,Aptos核心开发人员在官方Discord中表示,Aptos代币经济学概述即将发布,很快将公布具体信息。[2022/10/18 17:30:42]

伪随机数最大的缺陷是,只要种子不变,生成的伪随机数序列也不会变。换句话说,只要你能拿到种子,你就可以破解随机数。

计算机生成伪随机数的过程,或多或少与这台计算机的物理状态或运算状态有关。也就是说,同一套随机数算法,不同的计算机,或是同一台计算机在不同的时刻,生成的随机数是不一样的。

然而,这种传统的计算机伪随机数生成方法虽然足够安全,却并不适用于区块链。区块链是一个分布式的系统,同一个 DApp 在不同的节点上运行,采用的随机数必须要一致,这样才能让各个节点进行验证。所以,DApp 的随机数来源,不能是运行这个 DApp 的计算机自动生成的,因为这样的话,不同的节点计算机运行的结果就不一样了。

美参议员联名致信OCC署长,呼吁对银行与加密货币互动进行更严格的限制:8月11日消息,美国参议员 Elizabeth Warren、Dick Durbin、Sheldon Whitehouse、Bernie Sanders 联名致信美国货币监理署(OCC)署长 Michael Hsu ,要求取消拜登政府从前任政府那里获得的一系列解释性指南,呼吁对银行与加密货币互动进行更严格的限制。

注:美国前总统特朗普曾任命Brian Brooks领导 OCC,在其任内OCC发布了一系列解释,基本上给了银行不受限制的机会来从事某些加密活动,并且仍然存在问题。(The Block)[2022/8/11 12:17:32]

那么,区块链上的 DApp 随机数从哪里来呢?主要有以下三种方法:

第一种方法是通过可信第三方提供随机数。比如说专门提供随机数的网站 random.org,我们可以通过独立于区块链之外的 Oraclize 预言机为以太坊区块链上的 DApp 获取随机数。当然,这种依赖可信第三方的方法有违区块链去中心化的精神。

第二种方法是不同的参与者一起合作生成随机数。比如以太坊区块链上的 RANDAO,任何人都可以提交一个数字,RANDAO 将所有提交的数字集合作为种子,生成随机数,其他 DApp 可以付费调取 RANDAO 生成的随机数,这些费用会奖励给那些提交了数字的用户。因为以太坊的去中心化,你不知道别人提交了什么数字,所以要破解 RANDAO 的随机数种子难度很大。

第三种方法是采集区块链上的信息作为种子。这也是目前大部分 DApp 所采用的随机数生成方法,缺陷是随机数的种子“几乎是”透明的。以本文开头提到的 EOSPlay 为例子,这款游戏的随机数采用的是未来某个区块的 ID(哈希值)作为随机数的种子。

那么,黑客是如何实现攻击的呢?根据区块链安全公司慢雾科技的分析,可能使用了以下的方法:

1、黑客为自己和项目方租用了大量的 CPU;2、黑客发起大量的延迟交易;3、由于以上两点原因,导致 CPU 价格被拉高,从而导致其它用户 CPU 不足;4、因为 CPU 不足的原因,其他用户难以发送交易,黑客得以使用自己的交易占满区块;5、根据提前构造的交易内容,黑客可以成功预测出区块哈希。

也就是说,虽然哈希算法不可逆,但是黑客可以通过控制输入实现输出的控制:控制区块内的交易内容,从而控制区块信息,进而控制区块哈希值,最终达到预测开奖结果的目的。

最后,我们总结一下:

随机数可以分为真随机数和伪随机数,真随机数只存在于物理世界中,一般需要通过物理手段获取。为了效率,计算机主要采用伪随机数,然而由于区块链的分布式特性,足够安全的传统计算机伪随机数生成方法并不适用。大部分 DApp 采用的是收集区块链上的信息作为伪随机数的种子,而要想设计足够安全的伪随机数,难度非常大,这就是为什么很多 DApp 经常遭受随机数攻击的原因。

标签:DAPPDAPAPP区块链区块链dapp开发语言Dapp Token金锄头币app区块链存证怎么操作

中币热门资讯
RAD:Paradigm 最新研究:一文读懂渐进式荷兰拍卖

渐进式荷兰拍卖的工作原理是将一笔拍卖分解为一系列荷兰拍卖,以帮助欠缺流动性的资产完成公开销售。本文介绍了渐进式荷兰拍卖(Gradual Dutch Auction,以下简称为 GDA),一种能够.

1900/1/1 0:00:00
STAR:StarkNet如何改变L2格局?

开启 L2 生态军备竞赛,甚至将挑战以太坊统治地位。作者:Maxlion;编辑:郝方舟StarkNet 发币或将加速 Arbitrum 发币进程.

1900/1/1 0:00:00
NBS:一篇搞懂隐私计算中的联邦学习(上)

摘要:对联邦学习作一个初步但尽量全面的介绍,着重介绍联邦学习方法的流变,解析落地应用中需要注意的质量与安全问题,并对相关应用场景提出针对性的建议.

1900/1/1 0:00:00
ECOIN:Filecoin为什么需要复制证明和时空证明?

在关于Filecoin的各种介绍中,我们经常听到这样两个技术术语:复制证明和时空证明,这两个术语是Filecoin系统的核心,也是Filecoin系统中挖矿的关键点.

1900/1/1 0:00:00
KEN:区块链入门丨区块链一定需要代币吗?

最近ICO的疯狂和数字货币交易平台各种代币价格疯涨,让我看到了“流动性”对于投资人的价值:流动性越大的地方,泡沫就会越大.

1900/1/1 0:00:00
LOOK:零知识证明: Plookup算法介绍

最近有空看了看Plookup的论文。针对对电路描述不友好的操作(比如bit操作),Plookup给出了新的思路和证明方式.

1900/1/1 0:00:00