Fomo3D 千万大奖获得者“特殊攻击技巧”最全揭露!

Fomo3D 游戏第一轮正式结束,最终大奖由地址 0xa169 获得,奖金额高达 10,469.66 以太币。

不少人轻易得出结论:获奖者平平无奇。

安比(SECBIT)实验室昨日首个发现 Fomo3D 大奖获得者采取一些“特殊攻击技巧”,使得游戏临近结束时,矿工打包入区块内的交易数量骤减(涉及连续多个区块),从而起到加速游戏结束提高胜率的作用。安比(SECBIT)实验室在 Last Winner 上轮游戏结束时也观察到了多个十分类似的异常区块和交易。

一组连续的异常区块和交易

如上图所示,高度为 6191896 的区块中打包了 Fomo3D 游戏中奖者最后购买 key 的交易,该区块共包含 92 笔交易,交易数量正常。

而在该区块后的连续 11 个区块(6191898~6191908),每个区块包含交易数量都骤降,最少的一个区块(6191906)仅包含了 3 笔交易,十分异常。

让我们来观察一下这些“特殊”的区块。

如上图所示,高度为 6191906 的区块仅包含了 3 笔交易,并且交易均发往同一合约(调用同一个神秘合约),三笔交易手续费之和超过 4 个以太币

而该神秘合约(0x18e1)创建者正是中奖者(0xa169)!

通过向 F2POOL 负责人确认我们得知,矿池挑选交易进入区块的策略为手续费(TxFee)高的优先。

这也解释了为何上文提到的连续 11 个区块,都仅打包了很少量的交易,却能获得超出正常区块的手续费。这些区块分别由 SparkPool、Nanopool、Ethermine、BitClubPool、MiningPoolHub 等矿池打包,显然挑选高手续费交易优先打包,是符合矿池利益的策略,是行业通行的方案 [1]。

黑客的“神秘合约”究竟做了什么?

安比(SECBIT)实验室观察到,这些异常区块内发往神秘合约(攻击合约)的异常交易,最终状态均为失败。

如上图所示,交易最终状态为失败,并且 Etherscan 有 Bad instruction 错误提示,最终导致耗光 Gas Limit (4200000),约为正常区块 Gas Limit 的一半,因此打包该交易的矿池也收到了高额的手续费。

以太坊区块 Gas Limit 这一概念,代表单个区块中最多允许的 Gas 总量上限,以此来决定单个区块中具体打包多少笔交易。区块 Gas Limit 由矿工间通过一定策略协商设定,目前区块常见值约为 8000000 [2]。 以太坊上每笔交易也包含一个 Gas Limit 概念,由交易发起者自行设定,代表该笔交易可最多消耗的 Gas 上限,实际 Gas 消耗以交易具体执行消耗为准。一个区块中所有交易花费的 Gas 不能超过区块的 Gas Limit [3]。

我们知道,以太坊智能合约还存在一个指令 assert(),用于断言。当 assert 的结果不满足条件时,则会耗光交易的 Gas。 Etherscan 针对这种情况的交易通常提示 Bad instruction,实际则为 EVM 执行过程中遇到了一个未定义的操作符 0xfe [4]。

获奖者(黑客)就是利用这个特性,实现少量交易就能占用整个区块的 Gas Limit。

黑客更犀利的操作

进一步,安比(SECBIT)实验室发现神秘合约会调用 Fomo3D 游戏的 getCurrentRoundInfo() 接口,用于获取当前轮次比赛信息,如剩余时间、最后一位购买者的信息(最有可能获奖者)等奖池详尽信息(如下图)。

“神秘合约”并未公开源码,安比(SECBIT)实验室结合逆向结果推测,获奖者(黑客)通过神秘合约,在合约内调用该接口查询游戏信息,重点关注剩余时间最后一位购买者地址。当游戏剩余时间达到一个阈值,并且最后一个购买者是自己时,则通过 assert() 让整个交易失败,并耗光所有 Gas;当剩余时间很长或最后一个购买者不是自己时,则不做任何操作,仅消耗很少的 Gas。

获奖者(黑客)就是利用这种方法,发起大量类似的可变神秘交易:在自己极有可能成为中奖者时,利用这些高额手续费的神秘交易,吸引矿池优先打包,占满后续区块,从而使得其他玩家购买 key 的交易无法被正常打包,最终加速游戏结束,并极大地提高自己的中奖概率。

其他一些技巧和重要细节

  • 安比(SECBIT)实验室观察到 Fomo3D 获奖者(黑客)创建过多个类似神秘合约(攻击合约),并且前后曾使用很多不同地址向神秘合约发起交易,来分散大众注意力,降低自己的“特殊技巧”被发现的可能性。而每个攻击合约都有大量交易记录。上文提到的最终导致黑客获奖的攻击合约(0x18e1)有多达 5000 多笔交易,可见黑客暗地里做过不少尝试。
  • 获奖者(黑客)控制的地址批量调用神秘合约(攻击合约)时,会给交易设置各种 Gas Limit,从 170000 到 4800000 不等,这同样是一个技巧。如果你猜出黑客的用意,欢迎添加小安同学微信(secbit_xiaoanbi)回答,她会把你加入到「SECBIT 智能合约安全技术讨论」的群里。
  • Fomo3D 获奖者(黑客)0xa169 最后一次购买 key 后(区块 6191896),连续十余个区块,都无任何与购买 Fomo3D 游戏 key 相关的交易,这才最终导致游戏倒计时结束,获得最终大奖。
  • 中奖区块的下一个区块(6191897),其实也包含大量异常交易,欢迎联系小安同学回答 :‑)。
  • 在游戏结束前,大众一直假想黑客可能会与大矿池联合作弊,拒绝打包竞争者交易来获得大奖,或者设想黑客可能发出大量垃圾交易使以太坊网络拥堵而无法打包竞争者交易,从而获利。
  • 这轮游戏的获奖者(黑客),并未联合多家矿池作恶,反而巧妙利用了所有矿池优先挑选交易打包策略的共性
  • 获奖者(黑客)部署的神秘合约(攻击合约),简直是智能合约作为攻击武器的典范示例,精确制导,有的放矢。比起盲目地使用自动脚本在临近游戏结束时调高 Gas Price 发起参与游戏交易,黑客的攻击手法显然高明许多 。广播至各矿池的攻击交易,如导弹一般部署在内存池中,根据游戏状况,伺机而动。
  • 安比(SECBIT)实验室在 Last Winner 上轮游戏结束时也观察到了许多十分类似的异常区块和交易,手法十分接近。
  • 获奖者(黑客)创建的神秘合约,也正频繁与其他一些 Fomo3D 山寨游戏(如 Super Card)发生交易,企图使用同样的手法获得巨额大奖。
  • 哪有什么简单的“黑天鹅”,有的只是聪明且努力的黑客。「幂律分布」和「游戏缪误」了解一下 [5]。

幸运的 F2POOL 矿池

另外值得一提的是,两款游戏(Fomo3D、Last Winner)中奖交易最终均由 F2POOL 矿池打包出块,并且中奖者的上一笔参与游戏的交易,也均由 F2POOL 打包。

安比(SECBIT)实验室与 F2POOL 矿池负责人仔细讨论过相关细节后,均初步认为这是巧合。F2POOL 矿池幸运地见证了两款热门智能合约游戏两笔巨额中奖交易的诞生。

智能合约游戏路在何方

安比(SECBIT)实验室之前还报道过 Last Winner 及其他 Fomo3D 山寨游戏中,黑客利用原版 Fomo3D 游戏中的空投漏洞,攫取大量奖励,以及 Fomo3D Quick 版本存在的问题。

在感慨黑客利用特殊技巧获得高额回报之余,我们也不由地替各类智能合约游戏的未来产生担忧。

Fomo3D 作为 2018 年最火爆的智能合约游戏,在玩法和技术上做了很多创新,是智能合约游戏历史上重要的一步。不可否认,Fomo3D 开发团队,有着过人的技术水平和强烈的去中心化情怀。

Fomo3D 游戏刚出之初,不少人都惊呼,这是真正公平的去中心化游戏。但回到现实,依旧有黑客能发现当中的各类缺陷,并悄悄利用,获得可观的回报。

技术的局限性、人性的贪婪、信息的不对称,都制约着一款真正安全、公平、透明的去中心化游戏的诞生。在 Fomo3D 出现之后,各类山寨游戏纷纷涌现,却没有在技术和创新上能走得更远,圈子氛围变得浮躁且嘈杂。

作为区块链及智能合约爱好者,安比(SECBIT)实验室无比希望能尽快看到下一款安全、公平、优秀、有趣的智能合约游戏出现。

— END —

原文发布于微信公众号 - 区块链领域(Blockchain-Field)

原文发表时间:2018-08-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏GAIAWORLD

浅谈GaiaWorld神盾协议的技术价值

在解释神盾协议之前,先了解智能合约会有助于大家更清楚神盾协议是什么,有什么作用,将带来什么样的改变。

1454
来自专栏Fred Liang

PM组会区块链补充分享内容

1343
来自专栏Python私房菜

最爱你的人,会让你不费脑细胞的理解区块链

区块链是一个近期非常火的概念,随便走进一个写字楼的电梯,都会听到有人谈论区块链,或者炒币: ) 希望通过这篇文章,能让你对区块链的概念有一个整体的认识,在理解概...

992
来自专栏AI2ML人工智能to机器学习

从交易所到比特币交易所 [下]

在"从交易所到比特币交易所 [上]"我们介绍了传统交易所。 对应到数字货币交易平台, 又俗称比特币交易所,又有哪些相似与不同?

1163
来自专栏专知

【区块链技术综述】:区块链技术发展现状与展望-中科院自动化所

本文为中国科学院自动化研究所复杂系统管理与控制国家重点实验室袁勇博士与王飞跃教授发表在 2016 年 4 月出版的在《自动化学报》上关于区块链技术的综述论文。文...

5219
来自专栏区块链大本营

150亿数字加密货币被盗的真相之后,还能拿什么拯救你,我的交易所!

从去年年底开始,我就一直关注数字加密货币的动态。因为之前有9年的算法对冲基金的从业经验,很自然的,我被加密货币交易动态所吸引了。虽然我并不是加密货币的忠实信徒,...

813
来自专栏区块链讲解

举例说明区块链技术的含义

区块链是什么,区块链系统,区块链模式,区块链软件,区块链APP 左彬: I ⑧ 8 二 7 ④ 1 肆 7  I ④,区块链商城,区块链平台,区块链有什么用。

2663
来自专栏区块链大本营

区块链常用架构是什么?它和保险业又如何结合?

3339
来自专栏乐享123

比特币史上的九大悲剧

1993
来自专栏PHP在线

加密货币的本质

去年,比特币暴涨,其他币也像雨后春笋一样冒出来,已经有1000多种了。 很多人都在问,加密货币(cryptocurrency)的时代,真的来临了吗?将来会不会人...

2965

扫码关注云+社区

领取腾讯云代金券