Play to Earn blockchain games

×
《第二宝石》SGEM官网首页

当前位置 :首页>新闻资讯 > 正文

新闻资讯/NEWS 当前位置:主页 > 新闻资讯 > 行业动态 > 正文

区块链游戏开发者需要注意的4种攻击方式(下)

发布时间:2020-09-22 14:15

在上一篇文章中,我们谈论了2种常见的区块链游戏攻击方式。接下来,我们将继续探讨2种需要区块链游戏开发者高度重视的漏洞。

伪随机数漏洞

对于区块链游戏开发者而言,无论以太坊还是EOS都存在一个共同的开发环境问题:官方未提供随机数接口。随机数是什么呢?以计算机投骰子为例,因为不是投掷实物,不可能获取真实的随机数,而是通过伪随机数生成器来生成伪随机数。
但是囿于主网并不提供相应接口,区块链游戏开发者在游戏开发过程中往往需要自己编写随机生成函数。区别于传统的计算机领域,不同的计算机会产生不同的伪随机数序列。区块链要求网络上各计算机节点的运算结果是可共识、可验证的。因此,在区块链游戏开发者自己设计的函数一般以区块信息为参数并生成为随机数,这也导致同一区块上使用相同算法的随机数函数会得到相同的值。攻击者可以利用这点获得伪随机数生成算法,部署中间合约,然后不停的尝试生成随机数,当生成满意随机数时,在利用中间合约参与游戏,获得较大优势。

 


区块链游戏EOSDice则是遭受随机数攻击的典型案例。2018年11月4日上午 EOSDice合约被账户jk2uslllkjfd攻击,攻击者盗取了2500左右EOS并充值入火币。时隔6天,在11月10日上午11:19开始,coinbasewa11账户再次攻击了EOSDice游戏,盗取4900 EOS转入bitfinex交易所。链上可检索到的攻击过程显示该账户对游戏合约进行了95次攻击。类似的攻击行为在许多项目上都有发生过,智能合约随机数算法漏洞也成为影响游戏的公平性的关键因素。
 

 

竞态条件漏洞攻击

在区块链上,黑客可以利用一个外部合约竞争夺取存在漏洞的智能合约的控制权,从而改变合约行为。这种漏洞攻击形式常见于菠菜类游戏。因为此类游戏合约有一个共同特点——时间依赖。菠菜类区块链游戏往往是在一段时间内与用户互动,并于时间截止后宣布获奖者名单。此时也给黑客提供操作空间,他可以将整个区块“塞满”交易,使得特定的交易无法进行,再利用高昂的gas使其成为整个区块中唯一一个交易进行者。

以FOMO3D为例,利用竞态条件漏洞在游戏中获得头奖的方式很简单:当倒计时趋近于0时,向奖池投注ETH。“买”下之后的每一个区块直至倒计时结束,保证没有人能够在你之后投注,你就会获得头奖。

有数据显示,区块链产业导致财产损失的安全事件中有30%是由智能合约漏洞引起的。因此建议区块链游戏开发者:为保障智能合约安全,请严格按照以太坊等主网开发语言的使用规范,正确书写每一行代码。并在上链前进行合约审计,为项目安全上多一重保险。

 

THE END

敬请期待!

好的

《第二宝石》全球创世封测即将开启马上加入Discord社区抢限量邀请码

好的