eos游戏源码-游戏skr停了,漏洞却又来了——游戏合约漏洞全面总结 - 区块链物联网

“IOE:承载中国人民区块链雄心,影响世界” IOE致力于推动全球物联网应用与发展,打造全覆盖、全时可用、低功耗的电信级窄带、低成本、高性能、共享共建。 物联网网络; 依托区块链的开放技术,携手各行业上下游制造商、运营商和创新团队,构建全行业通用、标准一致、技术先进的物联网生态系统,打造最具竞争力的物联网生态系统。在世界级物联网生态系统中运行。

简介:在一堆旧文件中寻找混乱的根源,许多往事一次又一次地重复——无名上次提到地址恢复失败,身份确定很无聊。 逻辑补充自我辩护,

原理分析,策略策略。

这次

区块链游戏如画,

安全防护没有规划,

夕阳挂在西边。

区块链行业日新月异,发展迅猛,各公链、项目方创意无穷。 俗话说,玩是人的天性。 将数字货币与游戏相结合,利用游戏机制吸引投资者参与互动的理念,以非常规和创新的方式推动了近期的趋势。 各种区块链游戏聚集了大量虚拟货币,价值数千万。 承诺的丰厚奖励越来越引起人们的关注。 投资者都跃跃欲试,人人都想成为“头号玩家”。

然而,缺乏完整且经过验证的SDK库是当前区块链游戏的痛点。 大部分游戏方各自为政,独立开发游戏智能合约。 比代币合约更加复杂的开发流程必然会导致安全风险的出现。 一旦这些漏洞被攻击者或项目本身利用,受害者永远是玩家。 成都联安科技对已经爆发的区块链游戏合约风波进行了总结和梳理,分析了当前游戏存在的以下两个问题:

eos游戏源码-游戏skr停了,漏洞却又来了——游戏合约漏洞全面总结 - 区块链物联网

1.代码层面的安全问题。 目前游戏中代码层面的安全问题表现与之前的代币合约几乎相同。 然而,在包裹着光鲜亮丽的外衣之后,其内部代码结构在严谨性方面仍然不尽如人意。 另外,游戏机制功能方面,一些合约代码更是混乱不堪。 就像盖房子,但基础结构没建好,上梁不正,下梁歪斜。 添加更多的楼层和附属结构实际上会使房屋毁坏得更快。

漏洞分类及修补建议 1、以溢出为代表的代码安全漏洞。 物理操作溢出是智能合约中比较大的安全风险。 无论是以太坊还是EOS,整数变量只能用一定范围的数字来表示。 例如,uint8 只能存储 [0,255] 范围内的数字。 尝试将 256 存储到 uint8 中将导致 0。如果不小心,溢出可能会发生,并且只要未检测和评估用户输入,就可能会被利用,导致数字超出存储它们的数据类型所允许的范围。 这部分的具体原理在我们上一期《溢出漏洞综合分析》中已经重点介绍过。 如果你还没看过,请点击下面的链接:一夜回到解放前?溢出漏洞类型全面解析| 链安全团队漏洞分析系列第一期——溢出漏洞

我们来看看游戏合约案例: 代表游戏:狼人杀 游戏平台:EOS

从游戏网站可以明显看出,合约执行溢出,导致奖金池支出变成巨大负值,并且由于项目组应对措施不当,奖金池奖金被盗,普通玩家失去了钱。 [1]。 修复建议:该游戏存在三个问题需要您注意:

开源代码的问题是狼人游戏项目组没有公布合约的源代码。 玩家在参与游戏前未能对项目的安全性进行评估,其资产未得到保护。 狼人杀游戏项目组要求用户提供过多的权限。 因此,它具有在后台更改权限并在用户不提供公钥的情况下转出用户的EOS的能力; 在紧急应对安全危机时,狼人游戏项目没有冻结攻击者的账户,导致攻击者在该版本中筹集了超过6万个EOS。

在此,成都联安科技建议游戏项目方应在游戏合约设计中引入安全控制机制,包括冻结恶意账户、暂停交易等,构筑游戏安全的最后一道防线。

2、以所有者权限盗用为代表的函数调用权限问题。 该漏洞的出现是因为构造函数不匹配或者改变所有者的函数没有添加调用者检测。 智能合约的构造函数通常负责合约初始化和所有者地址绑定的功能。 如果构造函数声明方法不正确,那么它将变成一个普通函数,任何人都可以调用它并将自己设置为合约管理器。 经过。 修改所有者的函数用于将新地址设置为所有者。 此类函数需要检测调用者的地址。 如果检测缺失,任何人都可以把自己变成合约的管理者。 这和我们开始序列化之前所有者权限漏洞分析中的构造函数问题一模一样。 如果您需要了解更多,请通过以下链接发送:注意! 三份合约存在所有者权限被盗问题——低级错误不容忽视

直接进入案例分析:代表游戏:Ether Cartel 平台:以太坊

游戏的构造函数(DrugDealer)与合约名称(EtherCartel)不一致。 存在构造函数不匹配漏洞,导致 DrugDealer 变成普通函数。 任何人都可以调用该函数将其转化为合约的ceoAddress。 而且,按照之前的代码逻辑,他可以支付本应该黑进合约部署者的ETH[2]。

修复建议 为了防止此类漏洞,开发者在开发游戏合约时需要足够小心,并进行详细的测试。 构造函数仅在部署合约时执行一次。 当合约部署时,所有者仍然位于地址0,用户可以调用实现构造函数的函数。 然后,合约存在构造函数不匹配漏洞,开发者需要检测。 并修补构造函数的实现。

3.“随机数生成”等区块链平台的弱点。 截至目前,以太坊和EOS都没有正式提供随机数套接字。 这确实对游戏开发造成负面影响,比如获胜模块的开发。 为了实现类似的功能,游戏开发者往往需要编写自己的随机数生成函数。 这些函数常常使用块信息作为参数,然后执行一系列操作来获得“随机数”。 然而,由于使用区块信息作为参数,这会导致在同一个区块上使用相同算法的随机数函数得到相同的值。 攻击者可以利用这一点来部署中间合约,然后继续尝试。 生成随机数,当生成满意的随机数时,再借助中间合约参与游戏,以获得更大的优势。 另外,作为全球分布的计算机,区块链的资源目前相对有限。 为了保证链平台的稳定性,链的开发者对链上智能合约的运行进行了限制,防止无限循环等消耗。 资源操作,例如运行gas限制(以太坊)和CPU/内存资源限制(EOS),迫使链上游戏开发者比传统中心化服务器游戏付出更大的努力来优化游戏逻辑。 ,以确保逻辑上正确的合约不会因资源限制而难以运行。

我们在之前关于智能合约随机数算法漏洞影响游戏公平性的新闻中已经提到了随机数的问题。 这次我们将结合案例进行详细分析: 代表游戏:FoMo3D 长平台:以太坊

合约空投功能随机数生成中用到的区块参数有block.timestamp(当前区块时间戳)、block.difficulty(当前区块难度)、block.coinbase(挖矿当前区块的矿工地址)、block.gaslimit(当前区块gas limit),block.number(当前区块号),结合msg.sender(玩家地址),计算玩家是否会获得空投奖励。 攻击者可以部署一个中间合约来提前预估当前区块进入游戏是否还能获得空投,然后在结果为真时参与游戏,就一定能够获得空投eos游戏源码,并用它来作弊。

修复建议

针对随机数的问题,目前有以下几种建议:

您可以尝试官方推荐的随机数生成方法。 例如,以太坊的Solidity官方文档建议用户使用链下Oraclize库来生成随机数; 为了防止中间合约参与游戏,以太坊开发者需要注意并使用以太坊平台提供的extcodesize功能。 无法完全判断某个地址是否是合约,因为合约部署时,其extcodesize为0,但它可以在构造函数中与其他合约交互参与游戏。 可以使用 tx.origin==msg.sender 方法来确定。

4.利用竞争条件机制的攻击

虽然目前一些类似赌博的游戏合约越来越流行,但此类游戏合约有一个共同的特点——时间依赖性。 他们都会与用户互动一段时间,然后在时间到期后宣布获奖者。 这种依赖时间的博弈留下的隐患是,攻击者可以用交易“塞满”整个区块,从而导致特定交易无法进行。 攻击者将使用昂贵的gas使其成为整个区块中唯一的交易。

案例分析:代表游戏:Exitscam/FoMo3D 平台:以太坊

以太坊版本的 FoMo3D 规则类似于透明的“金字塔骗局”

每轮持续固定时间。 如果您是奖池中最后​​一个下注的人,您将拿走巨额奖金(总奖池的90%)。 如果有人在你后面下注,你会得到一定的分红。目前分红金额高于投入 ETH 的 1%,每 0.005 ETH 会减少结算时间 30 秒,即 2 个区块,但上限每次减少的时间限制为24小时

利用竞赛条件的概念,赢得这场比赛并获得大奖的策略非常简单:当倒计时正式结束并接近0时,将ETH投入奖池并“购买”后续的每个区块,直到倒计时结束,保证没有人可以在你之后下注。 如果这个操作实现,你将获得巨额奖金[3]。

这个游戏的机械漏洞和前面提到的交易顺序依赖(TOD)几乎一样。 我们还在第三个系列分析中描述了竞争条件。 链接如下: 老司机弯道遇车惹怒智能合约 | 成都联安漏洞分析系列第三期——竞争条件漏洞。

修复建议

游戏开发者需要熟悉两种类型的竞争条件漏洞:可重入性和事务顺序依赖。 如果可以使用类似的概念来利用类似的游戏机制,则应该改变设计思路以同时考虑设计意图和安全性。

2、游戏本身的可信度

虽然区块链上的所有交易都是公开透明的,但这并不意味着游戏项目方在合约开发过程中不能留侧门。 尤其是源码尚未公开的游戏合约,里面可以隐藏一个函数,开发者只要调用这个函数就可以盗取所有币。 然而,目前还没有可靠的反编译器对字节码进行反编译,使其源代码真正公开透明。 如果我们还是用建造房子来比喻的话,可以理解为建造的时候设计是歪的,但一直搬进去的使用者却没有注意到。

活动回顾

代表游戏名称:Power of Bubble 平台:以太坊

eos游戏源码-游戏skr停了,漏洞却又来了——游戏合约漏洞全面总结 - 区块链物联网

4月7日至4月8日上午10点,游戏项目组在各个Discord频道上开始疯狂促销,用精美的外观设计和丰厚的奖励承诺牢牢吸引了大量期待的粉丝。 8日上午10点服务器上线后10分钟内,合约内资产突破200 ETH。 然而,随着时间的推移,玩家开始发现讨论群消失了,游戏中的转账和提现操作也没有完成。 最终,奖金池中的227个以太币被合约创建者众目睽睽之下转走了[4]。

区块链游戏往往需要各种虚拟货币作为游戏资产。 整个游戏中所有涉及虚拟货币持有和分配的合约都应该开源,供玩家和审计人员进行初步审查,以确保不存在潜在的侧门。 同时,玩家在将资产投资于未经审计、源代码未知的区块链游戏时,也应提高警惕,理性投资。

还有很长的路要走

将区块链技术应用到游戏中的发展时间并不比区块链货币交易短多少。 区块链游戏迄今为止可分为三个时代。 从1.0时代的《CryptoKitties》到2.0时代的《以太坊》,都属于注重收集玩法的区块链游戏时代。 现在的3.0时代是链上链下多种玩法结合的时代。 然而,在众多RPG区块链游戏火爆的同时eos游戏源码,庞氏骗局区块链游戏也开始掀起波澜。 此类游戏具有很重的交易属性。 而长期的游戏属性往往缺失。 展望4.0时代,区块链游戏应该越来越注重其玩法,这意味着玩法更加接近传统游戏。 但与传统游戏相比,区块链游戏在三个方面具有更大的优势[5]:

账户安全:玩家的登录信息加密保存在钱包中。 与传统的登录方式相比,安全性大大提高。 服务器:服务器放置在区块链上,因此即使游戏运营商停止其官方服务器,玩家也可以继续享受游戏。 公平性:由于游戏内信息公开、透明、可追溯,垃圾邮件、私自更换道具等行为将更容易被识别,从而导致大幅增加。

然而,基于以太坊进行开发仍然存在许多与传统游戏机制相同的缺点:

以太坊的吞吐量限制了游戏玩家的数量和增长率。 鉴于目前以太坊的交易速率限制,很多游戏无法像传统游戏那样实现低延迟和实时交互。 单笔交易需要支付游戏内交易手续费。 减轻负担

目前,越来越多的公链和资本参与区块链游戏的开发,为新模式技术的发展奠定更坚实的基础。 也许在不久的将来,就会出现专门为游戏设计的公链,为区域性的区块链游戏提供专属的舞台。 与此同时,开发商也已经将重心转向多元玩法的方向,试图弱化交易属性,减少庞氏骗局类型的游戏,将区块链的技术优势加入到已经成熟的传统游戏市场中,带来游戏行业的新维度。 一个新时代。 然而,无论是基于交易属性的区块链游戏,还是基于玩法的区块链游戏,都离不开智能合约的编译和审核。 因此,开发时最重要的是保证合约安全属性的验证。 对于上述游戏合约,对比之前的漏洞分析就不难发现。 许多项目方仍在重蹈覆辙,对于异常明显的常规漏洞没有采取补救措施。 或者说保护措施会给玩家带来巨大的经济损失,也给区块链游戏的天空增添一层阴霾。 确保合约质量,让区块链游戏尽快走出混乱期,是每个项目方和开发者的责任。

“IOE:承载中国人的区块链志向,影响世界” IOE致力于推动全球物联网应用与发展,打造全覆盖、全时可用、低功耗的运营级窄带、低成本、高性能、共享共建物联网网络; 依托区块链开放技术,携手各行业上下游制造商、运营商和创新团队,构建全行业通用、标准一致、技术先进的物联网生态系统,打造全球最具竞争力的物联网生态系统。运营级物联网生态系统。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 游戏源码 eos游戏源码-游戏skr停了,漏洞却又来了——游戏合约漏洞全面总结 - 区块链物联网 https://www.wkzy.net/game/194430.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务