OJA:Fomo3D式套利模式再现:“聪明”玩家狠狠地薅了一把羊毛_ULTI

PeckShield预警“玩家”高回报异常获利

7月27日凌晨3点至上午10点,PeckShield安全盾风控平台DAppShield监测到THeRTT开头的地址在参与MULTI.TODAY合约游戏时,持续获得高回报异常获利,短短数小时内便获利102,652个TRX。

PeckShield安全人员分析发现,该“玩家”采用了一种针对游戏机制的“卡位”回滚投注方式,通过部署脚本合约来参与游戏,利用游戏本身存在的运营机制“不平等”特性,成功实施“卡位”进而获取最大的投资回报率。

这类似于互联网上利用脚本程序恶意刷单,把原本属于普通玩家的收益权限给侵占了。这让人想起,去年Fomo3D火爆时,黑客利用以太坊公链因gas费用机制存在的交易拥堵问题,成功制造阻塞,拿走10,469个ETH奖金的攻击事件。

这个“聪明”的玩家,采用了类似Fomo3D式的“特殊方式”,狠狠地薅了MULTI.TODAY游戏一把羊毛。

“wojak”重现江湖

这个“聪明”的玩家究竟是何方神圣呢?

PeckShield安全人员进一步分析发现,THeRTT开头的地址就是此前大名鼎鼎的“wojak”,他曾经攻击过TronBankPro,并因此获利2,673万个TRX。

当时TronBankPro遭攻击的原因是,其合约代码中留有“后门”,而“wojak”则成功地命中了后门,并将合约余额全部取走了。尽管这件事情本身扑朔迷离,是巧合还是背后有阴谋,到现在都没人说得清楚,然而,这倒让“wojak”这一代号名扬四方了。不禁要问,此次“wojak”重现江湖,又会掀起怎样的风浪呢?

MULTI.TODAY游戏玩法说明

要理清这个问题,我们得先系统了解下MULTI.TODAY游戏。按照官方说明,所有参与投资的玩家会组成一个队列,每次排名队列首位的玩家会获得投资额的11%—41%作为回报,之后该玩家会被移除队列。

只要不断有玩家参与投资,那么先参与游戏的玩家都将获得丰厚回报,同时,为了避免最后一位玩家吃亏,游戏还规定如果持续30分钟没有后续玩家投资,那么最后一位玩家将获得奖池的5%作为回报。

“wojak”的卡位回滚操作技术原理

MULTI.TODAY于每天的22:00GMT3(北京时间凌晨3点)开启新的一轮游戏,只有当游戏正式开始后,玩家的投资才会被认可。由于游戏规则的设定,所有玩家都争抢着第一个参与。

通过PeckShieldTRON大数据分析平台,可以看到在北京时间07月27号凌晨3点之前,多个玩家尝试参与游戏,但因为游戏时间还没有开始,交易都被回滚了:

当游戏时间到达后,有多笔交易都被打包进了11315294区块。在这个区块中与该游戏合约有交互的前两笔交易分别为“wojak”发起的Tx1合约交易,以及由普通玩家发起的Tx2交易。

下图2为普通玩家发起的交易,图3为“wojak”发起的合约交易:

“wojak”首先调用TK5HmY地址开头的合约,再由TK5HmY地址开头的合约调用游戏合约完成投资。PeckShield安全人员分析后发现,区别于普通玩家,“wojak”发起的交易可不简单,存在多层调用。

TK5HmY地址开头的合约首先调用MULTI.TODAY智能合约中的startTime(),prizeAmount()等静态方法,以此来判断游戏是否开始,是否已有玩家投资;当确认游戏开始,且尚未有玩家投资后,再多次调用游戏合约的deposit()方法进行投资。虽然游戏合约设置在返利后移除排名队列首位的玩家,但因为该玩家是通过合约来进行多次投资的,可以保证被移除后仍然保持榜首。“wojak”获利的关键是得让这笔合约交易率先被SR节点打包。

在以太坊中,攻击者可以通过提高gasPrice来恶意竞争,让交易被矿工先打包处理,而波场没有类似gasPrice的概念,所有交易是通过SR节点打包产生的。“wojak”事先准备好自动化脚本,在时间到达前通过自动化脚本不断调用合约来完成交易,这会比普通玩家的手速要准确的多。同时,智能合约中的交易都是原子操作的,只要上链,合约可以保证交易中的所有操作按顺序进行,这就大大提高了合约交易率先被SR节点处理的概率。

从链上数据分析看,“wojak”通过合约投资32次,单笔交易就获利近10万个TRX。他确实是一位极度聪明的玩家,当其他玩家还在拼手速时,他已经通过部署合约的方式,制造了不平等特殊权限,获取了丰厚回报。

下图为“wojak”的合约调用流程:

“wojak”除了在MULTI.TODAY每轮游戏开始时争当头名玩家外,PeckShield安全人员还发现,针对游戏第二种类似Fomo3D式的玩法,“wojak”也一直在“守株待兔”。

例如TKjcLB地址开头的账户于07月27号09:13:57发起了一笔投资,在此之后的30分钟内没有玩家参与,直至09:43:57,“wojak”发起了另一笔交易,在最后时刻成功阻拦TKjcLB地址开头的账户获得大奖。跟之前分析类似,“wojak”的这笔交易也是调用游戏合约的stage(),getCurrentCandidateForPrize()等静态方法,获取游戏当前回合数和投资资金,以此判断30分钟内是否有玩家参与。

事件后续

PeckShield安全人员在发现该问题后,第一时间和游戏项目方取得了联系,项目方也及时升级了合约。

需要说明的是,“wojak”并没有攻击MULTI.TODAY合约,MULTI.TODAY游戏本身也不存在相关智能合约的漏洞,“wojak”只是聪明地利用了合约的设定规则,达到了“薅羊毛”获利的目的,不能称其为一次黑客攻击行为。

不过,透过事件本身我们看出,上次TronBankPro事件并非偶然,“wojak”确实是一位不折不扣的“技术牛人”。

写在最后

虽然此次事件并非因漏洞诱发的黑客攻击行为,仅是聪明“玩家”合理利用游戏机制实施的高智商薅羊毛行为,但其暴露的问题却值得我们深思:

1、游戏运营机制设计的缺陷同样会威胁到游戏的参与体验,透支并伤害大部分普通用户对游戏本身的信任;

2、合约玩家对如今DApp生态而言是把双刃剑,合约会帮助黑客以最低的成本,扫荡全网大量DApp,且总能找到疏漏之处,进而下手;

3、游戏项目方应完善自身的风控应急响应机制,一旦监测到异常获利或攻击行为,应立即对游戏实施一键暂停,终止正在进行的攻击行为,必要时可寻求第三方安全公司帮助,进而减少或避免数字资产损失;

4、游戏玩家在参与游戏时,应时刻注意项目官方或者安全公司发出的预警消息,对于已经遭受攻击尚未停止运营的游戏,应避免再次参与,以免遭受更大的数字资产损失。

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

大币网

SHIBDAP:以太坊:数字金融堆栈(二)_Mainston

——接《以太坊:数字金融堆栈》 金融堆栈 所有这些平台都使用Dai和ETH进行操作。Dai和ETH的数量、以及这些平台的日交易量都将受到以太坊抵押率、稳定费用/DSR和DaiWABR&W.

[0:15ms0-2:889ms