【GATE交易所怎么样】区块链游戏出Bug,进行硬分叉来保护用户权益?
摘要:10月14日,Cheeze Wizards在以太坊主网上线。不到24小时内,玩家@samczsun向官方反映,游戏合约存在一个严重的Bug,使用这个bug可以利于不败之地。随后Cheeze Wizards决定采用分叉的解决方案来保护用户的权益。
独孤求败的Bug
- 玩家A挑战玩家B
- 玩家B接受并提交出招
- 玩家A回应并提交出招
- 玩家A揭示出招
- 玩家B揭示出招
- 智能合约裁决战斗结果
- 决斗动画在cheezewizards.com上生成,玩家可以看结果
- 玩家A挑战玩家B
- 玩家B接受并提交出招
- 玩家A回应并提交出招
- 玩家A揭示出招
- 玩家B故意超时而不揭示出招(90分钟)
- 玩家B恶意调用resolveTimedOutDuel(rTOD)函数,将两名参赛者都变为玩家A,导致玩家A既是胜利者又是失败者的bug

不难发现,二者的区别在于在第5步,本该揭示出招的玩家B采用拖延战术耗完时间,然后恶意调用上述函数(一个解决对决时间耗尽的函数),实现稳赢。
恶意调用函数将耗尽芝魔师A的能量,玩家A被判定为负,不过芝魔师B也将处于无效状态。这时玩家B再次调用resolveTimedOutDuel(WIZARD-B, WIZARD-B)修复该错误状态。
Cheeze Wizards的智能合约是经过精心设计的,因此一旦发布,将无法取出奖池内的奖金(或以其他方式更改任何锦标赛状态)。因此,解决这个bug的唯一方法是部署新合约。
https://etherscan.io/tx/0x0d497ea959406909edad945d332d0aa1ed2a41273c694ad385910720af2f86f3

好消息是,该bug并不会破坏整个游戏,作为一名普通玩家,你几乎不受任何影响。而且在允许上述这种肮脏的战斗方式存在的情况下,芝魔师锦标赛依然可以继续进行。官方称其为Cheeze Wizard:未杀菌版(Unpasteurized)。
所谓的未杀菌版是指Dapper Labs于2019年10月14日部署的Cheeze Wizards智能合约的版本。未杀菌版包含上述的bug,恶意玩家可以利用该bug攻击普通玩家的能量,尤其是那些使用Web界面访问游戏的玩家。但Cheeze Wizards官方表示,此bug对某些喜欢耍花招的技术型玩家来说,会让游戏变得更加有趣。
出了bug哪里"有趣"?
除非……有趣的地方来了。
玩家B冒着风险没有揭示自己的招式,按照Cheeze Wizards的规则,不揭示已经成功提交的招式意味着自动弃权。
这种时候,如果在玩家B恶意调用rTOD之前,玩家A或者系统使用正确的方式调用rTOD方法,提交正确的参数: function resolveTimedOutDuel(WIZARD-A, WIZARD-B),玩家A将会取得胜利并且获得玩家B的所有能量!
所以新的游戏玩法诞生了。如果玩家判断对手准备利用bug来对付自己,那么就可以反过来利用正确调用rTOD的方法来夺走对手的能量。胜负的关键在于谁率先调用rTOD(DR小伙伴注: 即便是同一时刻调用,gas fee高的交易会更快被矿工打包)。
不过诚实的玩家更有优势: 他们获胜时可以淘汰掉不诚实玩家并吸收他们的能量,而不诚实玩家即便获胜了,也只是将诚实玩家淘汰,并不能让自己获得更多能量。
而且不要忘了,Cheeze Wizards官方一直运行着后台程序监测有没有超过90分钟未揭示招式的比赛,一旦发现会自动触发正确的rTODs方法。

需要注意的是: 未杀菌版芝魔师并不适合所有玩家。参与者需要完全意识到风险。很多玩家将会运行自动化脚本来保证自己率先触发rTODs方法,不管是作为诚实方还是不诚实方。玩家需要想想自己是否有胆量来玩这个有趣的游戏。所以,找到适合自己的方式再来参与未杀菌版芝魔师吧。
接下来让我们深入到代码层面。
在代码层面检视bug

最终,智能合约执行一次能量转移,认为该合约将全部能量转移给获胜的芝魔师,然后抽干失败的芝魔师的能量。然而,由于双方 wiz1并wiz2都指向一个索引(#1000),所以先翻倍了#1000芝魔师的能量......然后抽干了他。值得庆幸的是,通过在函数顶部添加一个简单的require语句来确保两个芝魔师ID是不同的,可以轻松修复此错误。
require(wizardId1!= WizardId2,“Same Wizard”)
这个智能合约已经过Sigma Prime的正式安全审查,Cheeze Wizards相信没有其他问题可以阻止比赛按预期进行。
看到这里,想必大家已经了解,要玩转未杀菌版Cheeze Wizards还是需要一定技术门槛的。
来源:DappReview
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。

币圈小猫



