【链安科技】智能合约随机数算法漏洞


据成都链安科技消息,MyCryptoChamp游戏合约随机数“不随机”,影响游戏公平性。

MyCryptoChamp合约的RandMod函数中使用合约的私有变量randNonce和父块哈希作为参数生成随机数,用户可以通过web3.eth.getStorageAt()函数获取randNonce的值,而父块hash在合约内外都可以读取到。



攻击者可以利用获得的两者数值,通过外部合约计算出较理想的随机数,并在此时参与游戏,新的角色及物品属性就会按照该理想数值生成,进而影响游戏公平性,实现了以较小的成本(gas消耗)获得较大利益。

根据Solidity官方建议,合约开发者可以使用链外的第三方服务,比如Oraclize来获取随机数。成都链安科技提醒所有项目方,进行代码安全审计是项目上链前不可缺少的重要安全举措,必要时可以借助第三方专业审计团队的力量防患于未然。

本文转载自《智能合约随机数算法漏洞》,已获得授权转载

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 你有没有考虑过如何审计一个智能合约来找出安全漏洞? 你可以自己学习,或者你可以使用这份便利的一步步的指南来准确地知...
    笔名辉哥阅读 9,414评论 0 53
  • 一、前言 “随机数”在计算机程序中并不少见,开发人员也会经常使用随机数进行数值的模拟、预测。在C++程序里,我们经...
    CPinging阅读 3,887评论 0 0
  • 〈7〉 夜,微雨! 一人身穿黑衣,斗篷遮面,缓步向青梦阁走来。 青衣老板随手将手边的茶壶拿起,对着壶嘴长长一饮轻声...
    古卷青锋阅读 1,562评论 3 3
  • 如何将两个pdf合并?随着科技越来越发达,大家已经告别使用书籍、课本查找文件、资料的时代。现如今大家都会在网络上查...
    办公技巧小分享阅读 8,766评论 0 1
  • 不读书不知道还有多少“不知”…… 今天才读到,古人云:女人之美,下美在貌,中美在情,上美在态。 无貌,还可以有情;...
    子誉阅读 4,688评论 3 6

友情链接更多精彩内容