区块链游戏出Bug,进行硬分叉来保护用户权益?_区块链:CHEE

导读:10月14日,CheezeWizards在以太坊主网上线。不到24小时内,玩家@samczsun向官方反映,游戏合约存在一个严重的Bug,使用这个bug可以利于不败之地。随后CheezeWizards决定采用分叉的解决方案来保护用户的权益。CheezeWizards已经修复了此Bug并部署了新的智能合约,奖池中损失的178ETH也已经被补上,但CW并没有关闭有问题的游戏而是让它成为了一个黑客乐园。

独孤求败的Bug

我们先来看看一场正常的芝魔师对决是如何进行的:

玩家A挑战玩家B

玩家B接受并提交出招

玩家A回应并提交出招

玩家A揭示出招

玩家B揭示出招

智能合约裁决战斗结果

决斗动画在cheezewizards.com上生成,玩家可以看结果

长沙经开区发布首个区块链产业发展五年规划:金色财经报道,1月4日,长沙经开区官网发布了区块链产业发展的第一个五年规划——《长沙经济技术开发区(湖南自由贸易试验区长沙片区长沙经开区区块)区块链产业发展规划(2022-2026)》(以下简称《规划》),提出到2026年,形成技术、应用、标准相对完备的区块链产业生态,率先建成全国领先的区块链数字经济产业发展先导区。(九派新闻)[2022/1/5 8:26:55]

再来看看如果玩家B利用“死亡之铃”Bug后的对决方式:

玩家A挑战玩家B

玩家B接受并提交出招

玩家A回应并提交出招

玩家A揭示出招

玩家B故意超时而不揭示出招

玩家B恶意调用resolveTimedOutDuel函数,将两名参赛者都变为玩家A,导致玩家A既是胜利者又是失败者的bug

恶意调用:函数resolveTimedOutDuel

正常调用:函数resolveTimedOutDuel

穆长春:数字货币研究所正牵头有序推进金融行业区块链标准编制工作:金色财经报道,3月16日消息,针对此前出炉的《金融分布式账本技术安全规范》,央行数字货币研究所所长穆长春接受专访时表示,人民银行对区块链和分布式账本技术标准体系进行了规划,《金融分布式账本技术安全规范》是其中重要组成部分,是我国金融行业首个区块链和分布式账本的标准规范。

此外,中国人民银行科技司提出并组织推动了《金融分布式账本技术应用技术参考架构》《金融分布式账本技术应用评价体系》《分布式账本贸易金融规范》等分布式账本技术相关标准,目前正由数字货币研究所具体牵头有序推进编制工作。[2020/3/16]

不难发现,二者的区别在于在第5步,

本该揭示出招的玩家B采用拖延战术耗完时间,然后恶意调用上述函数,实现稳赢。

恶意调用函数将耗尽芝魔师A的能量,玩家A被判定为负,不过芝魔师B也将处于无效状态。这时玩家B再次调用resolveTimedOutDuel(WIZARD-B,WIZARD-B)修复该错误状态。

浪潮集团副总裁:区块链等技术在智慧城市各类场景中均能充分利用:浪潮集团副总裁姜振华表示,基于区块链、AI技术的发展,最终这些技术发展的目的也是解决疫情中的实际问题,通过区块链的安全性与AI来做场景支撑,这些技术在整个智慧城市各类场景中均能够得到充分的利用。(第一财经)[2020/3/6]

此时,芝魔师A的能量消失的事实无法更改,而芝魔师B毫发无损。。当然,恶意第三方也可以调用rTOD合约来消灭芝魔师A的能量,不一定非得由玩家B触发。

CheezeWizards的智能合约是经过精心设计的,因此一旦发布,将无法取出奖池内的奖金。因此,

解决这个bug的唯一方法是部署新合约。

问题合约中已有150个钱包地址中的芝魔师,总价值175ETH。现在,40,000美元已锁定在该合约中,

在当前的战斗逻辑下赢得锦标赛是取出这笔奖金的唯一办法。

坏消息是,目前在编号6133以下的一些芝魔师受到了影响。游戏官方提供了Txhash供玩家参考:

声音 | 邓建鹏:注重科学立法对区块链监管与治理的引领推动:1月16日,中央财经大学邓建鹏发文《区块链法治化监管需要大智慧》称,以区块链为底层技术的资产,容易具有“气态化”特征,区块链“气态化”趋势挑战了政府的监管能力,这种颠覆式创新冲击了既有规则和市场秩序,加剧了国际竞争与挑战。对此,应摒弃政策高度波动与运动式执法,考虑引入监管沙盒机制,有助于监管者在创新监管中发挥建设性作用;注重科学立法在区块链监管与治理中的引领和推动作用;注重顶层设计与行业自律;严格执行法治精神,使监管与风险处置法治化。(人民论坛网)[2020/1/16]

https://etherscan.io/tx/0x0d497ea959406909edad945d332d0aa1ed2a41273c694ad385910720af2f86f3

好消息是,该bug并不会破坏整个游戏,作为一名普通玩家,你几乎不受任何影响。而且在允许上述这种肮脏的战斗方式存在的情况下,芝魔师锦标赛依然可以继续进行。

声音 | 诺奖得主托马斯·萨金特:中国央行的区块链技术已经做得很好:据21世纪经济报道消息,12月5日,在“2019南方财经国际论坛”上,经济学诺奖得主托马斯·萨金特表示,讲到区块链,人们觉得这是很惊天动地的想法。但如果开一家大公司,其实也需要在公司不同的部门之间进行分享。我们用计算机的时候,其实电脑程序内部也做了计算机本身的分享和验证。如果你深挖下去,区块链的想法没有一开始说的那么惊天动地,其实不同的公司或者国家本身也有这样分享的机制。现在我们面临的一个情形,是可以把事情做得更好、更有效率,交易更简便,可是有很多的国家不愿意做,这是他们自己掌控的一个权力。事实上,有很多金融管理机构对这个技术感兴趣,我觉得中国央行的技术已经做得很好,他们对区块链也比我更加了解。他还指出,数字货币是和信用体系息息相关的,比如存款或者买保险,还是会有自己的一些存款信息和其他的信用信息。美国的银行,还有美国的金融机构都在做这个事情,政府机构也在研究这个问题,我们能不能有相关的管理系统、管理流程体系和这个技术匹配。[2019/12/6]

官方称其为CheezeWizard:未杀菌版。

所谓的未杀菌版是指DapperLabs于2019年10月14日部署的CheezeWizards智能合约的版本。未杀菌版包含上述的bug,恶意玩家可以利用该bug攻击普通玩家的能量,尤其是那些使用Web界面访问游戏的玩家。但

CheezeWizards官方表示,此bug对某些喜欢耍花招的技术型玩家来说,会让游戏变得更加有趣。

出了bug哪里"有趣"?

如上所述,似乎玩家A一直只能是受害者。他们按规则地展示了自己之前提交的游戏招式,然后他们的能量竟然就没了。当然玩家B并不能吸收这些能量,但是他成功地淘汰了对手让玩家A无法再继续参与游戏了。

除非……有趣的地方来了。

玩家B冒着风险没有揭示自己的招式,

按照CheezeWizards的规则,不揭示已经成功提交的招式意味着自动弃权。

这种时候,如果在玩家B恶意调用rTOD之前,玩家A或者系统使用正确的方式调用rTOD方法,提交正确的参数:functionresolveTimedOutDuel(WIZARD-A,WIZARD-B),玩家A将会取得胜利并且获得玩家B的所有能量!

所以新的游戏玩法诞生了。

如果玩家判断对手准备利用bug来对付自己,那么就可以反过来利用正确调用rTOD的方法来夺走对手的能量。胜负的关键在于谁率先调用rTOD(DR小伙伴注:即便是同一时刻调用,gasfee高的交易会更快被矿工打包)。

不过诚实的玩家更有优势:他们获胜时可以淘汰掉不诚实玩家并吸收他们的能量,而不诚实玩家即便获胜了,也只是将诚实玩家淘汰,并不能让自己获得更多能量。

而且不要忘了,

CheezeWizards官方一直运行着后台程序监测有没有超过90分钟未揭示招式的比赛,一旦发现会自动触发正确的rTODs方法。

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

接下来让我们深入到代码层面。

在代码层面检视bug

事情的起因是,两位玩家在战斗中相互提交招式,其中一位有意或无意地不揭示他放出的招式。这时,为了让另一个玩家可以结束这场漫长的战斗,CheezeWizards允许玩家发起一个"单边揭示"的交易。这其实是一个特殊情况,正常的游戏中不会遇见。

rTOD漏洞只在一种情况下发生,也就是在战斗中。一位玩家已经揭示了招式,另一位玩家一直不揭示招式直到时间截止(90分钟)。

当只有一边揭示招式然后另一边等待到时间截止时,任何一个怀有恶意的用户,都可以用错误的方式调用rTOD合约,以此来冻结诚实玩家的能量。

假设诚实的玩家A正在使用号码#1000芝魔师与使用号码#2000芝魔师的玩家B作战,玩家B打算使用”死亡之铃“bug。两位巫师都选择了自己的招式进入决斗。玩家A展示了自己的出招,而玩家B等待决斗超时,并调用resolveTimedOutDuel。让我们来看一下智能合约中的部分代码:

最终,智能合约执行一次能量转移,认为该合约将全部能量转移给获胜的芝魔师,然后抽干失败的芝魔师的能量。然而,

由于双方wiz1并wiz2都指向一个索引(#1000),所以先翻倍了#1000芝魔师的能量......然后抽干了他。?值得庆幸的是,通过在函数顶部添加一个简单的require语句来确保两个芝魔师ID是不同的,可以轻松修复此错误。

require(wizardId1!

=WizardId2,“SameWizard”)

这个智能合约已经过SigmaPrime的正式安全审查,CheezeWizards相信没有其他问题可以阻止比赛按预期进行。

看到这里,想必大家已经了解,要玩转未杀菌版CheezeWizards还是需要一定技术门槛的。如果你是一个想要黑吃黑的黑客,请跳到unp.cheezewizards.com。普通玩家请依然在cheezewizards.com参赛吧。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:15ms0-6:645ms