编者按:本文来自安比实验室,作者:安比实验室,星球日报经授权发布。北京时间9月24日深夜11点32分,Fomo3D第二轮最终大奖由地址0x18a0获得,奖金为3,264.668Ether。安比实验室分析发现,此轮游戏获奖技巧与第一轮如出一辙,均为黑客“阻塞交易”攻击。与此前第一轮游戏相比,这轮游戏持续33天,无论是从入场资金、持续时长,亦或是最终大奖奖金额来说,相比上轮均大幅缩水。回首两月之前,Fomo3D第一轮游戏入场资金一度超过40,000Ether,第一轮游戏最终大奖奖金额超过10,000Ether,游戏参与者众多,类似的资金盘游戏也如雨后春笋般相继冒出,一时间好不热闹。然而,自9月以来,随着市场整体的大萧条,类Fomo3D游戏也几近没落。以Fomo3D和LastWinner为代表的几款较活跃的游戏,热度明显下降。而大部分的同类合约由于无人开启下轮游戏,都处在搁置状态。因而到如今,Fomo3D第二轮大奖已经开出,黑客获奖几无悬念,游戏的热度已不可同日而语。安比实验室针对这一变化展开分析,分析结果表明,不久前连续揭露的游戏空投机制漏洞和“阻塞交易”攻击事件,尽管在短时间内将该类游戏的关注度推上了新的高度,但本质上也是导致游戏没落的主要原因。繁华vs凉凉?曾经多火爆,如今就多冷清游戏热度全景7月20日,资金盘游戏Fomo3D在国内迅速传播开来,引起了广泛的关注。随后,一系列类似Fomo3D的游戏陆续上线。8月6日,另一款类Fomo3D游戏LastWinner部署上线。在其团队的大力推广下,LastWinner迅速火爆起来,甚至一度造成以太坊拥堵和Gas费用暴涨。但在游戏第一轮结束后,各个游戏的热度都开始持续下降。图一:Fomo3D玩家参与度与入场资金状况上图展示了「Fomo3D玩家参与度与入场资金状况」。红色代表调用合约参与游戏的人次,蓝色则代表进入游戏合约的资金量。图左侧出现数据曲线最高峰,对应时间分别是7月20日和7月21日。这两天恰好大量媒体疯狂报道Fomo3D这一现象级游戏。当时众多玩家跟风入场,游戏合约的参与次数和入场资金均达到了最高峰,入场资金量超过40,000Ether,而参与次数最高超过18,000次。而曲线的最高点则对应着Fomo3D游戏第一轮最高峰。高峰过后,Fomo3D游戏热度骤降,于8月22日前后结束第一轮,并随即进入第二轮,但游戏热度已然无法恢复。图二:LastWinner玩家参与度与入场资金状况类似地,上图展示了「LastWinner玩家参与度与入场资金状况」。LastWinner针对Fomo3D游戏做了部分修改,降低了游戏时间上限,因此每轮结束得更快。第一轮高峰出现在8月8日,此后有多个局部波峰,代表着不同轮次的开启,但显然调用次数和入场资金一轮不如一轮。奖池资金下图为Fomo3D合约中Ether余额的变化情况。Fomo3D游戏在迅速火爆后,合约内Ether余额一度上升到峰值,第一轮游戏结束后,合约中的余额立即呈断崖式下跌,至今还处在缓慢减少的过程。图三:Fomo3D合约Ether余额变化状况无独有偶,LastWinner合约中的余额也曾在短时间内迅速增长,而后随着几轮游戏的迭代而逐步下降,至今所剩的余额更是不足5,000Ether。图四:LastWinner合约Ether余额变化状况最终大奖8月17日,安比实验室与Anchain.ai团队联合揭露了黑客团队BAPT-LW20利用空投机制漏洞,攫取大量奖金的攻击事件。同一天,LastWinner游戏第一轮结束,最终大奖的获得者也是BAPT-LW20团队。据统计,该黑客团队从LastWinner首轮游戏中获利累计达12,948Ether。在LastWinner已完成的前9轮游戏中,黑客团伙持有的账户0x5167共夺得4次最终大奖。仔细观察每轮游戏的最终大奖金额和持续时间,不难发现,奖金数量衰减非常快,而每轮也结束得越来越快。这与上面的游戏参与数据图十分吻合。类似地,Fomo3D游戏首轮和第二轮大奖分别于8月22日和9月24日开出,奖金额分别为10,469.66和3,264.66Ether。除了奖金数额锐减之外,安比实验室还发现大奖获得者均使用了相同的攻击技巧。反思机制漏洞是游戏没落的主因除了市场萎靡以及玩家热情降低,安比实验室认为“阻塞交易”攻击和空投漏洞攻击打破了合约机制设计中的关键部分。这才是使游戏变冷的主要原因。图五:Fomo3D游戏合约被攻击状况上图是「Fomo3D游戏合约被攻击状况」,第一轮游戏高峰前后以及第二轮开始后,有黑客疯狂地利用空投漏洞进行攻击,攫取高额收益。而在第一轮临近结束,以及第二轮倒计时快结束之际,有黑客疯狂尝试“阻塞交易”攻击,目标在于夺取巨额的最终大奖。北京时间9月24日深夜11点32分,Fomo3D第二轮最终大奖由地址0x18a0451Ea56Fd4FF58f59837e9EC30f346ffDCa5获得,奖金达3,264.668Ether。安比实验室发现Fomo3D第二轮大奖获得者0x18a0创建了攻击合约0x705203fc06027379681AEf47c08fe679bc4A58e1,并发起大量攻击交易,连续堵塞10余个区块,时间长达2分钟以上。这一系列攻击,在上图的游戏被攻击监控数据中展露无疑。图六:LastWinner游戏合约被攻击状况上图是「LastWinner游戏合约被攻击状况」,与Fomo3D类似,黑客攻击规模在游戏热度高时十分巨大。“阻塞交易”攻击Fomo3D游戏巧妙地设计了一个环节,最后一个参与游戏的人将获得奖池中一半的Ether做为奖励。开发者想通过此设计保持大量的玩家陆续进场,任何人都有可能成为那个“幸运儿”。但是在黑客利用“阻塞交易”攻击来加快游戏结束成为受益人后,这个吸引玩家的设计被打破了。因此后进场的普通玩家只能成为被割的韭菜,自然很难再吸引玩家参与。“空投漏洞”攻击除了最后的大奖,游戏中还设计了空投奖励机制,玩家有一定的概率获得空投奖励,这也是吸引玩家参与的一个重要原因。但是由于空投机制存在随机数漏洞,黑客可以通过一定的技巧持续高概率地拿走奖励,而普通玩家几乎不可能成功。这样空投奖励的公平性也同样受到了挑战。对策与展望dApp还有很长的路要走这样一类红极一时的爆款游戏,必定会成为dApp游戏发展史上的一个重要里程碑。但是过快的萧条速度也给我们带来了很多的反思。对于类Fomo3D游戏,甚至是所有的dApp游戏,还有很长的路要走。要及时从黑客攻击的案例中吸取教训,并做好防御措施。“空投漏洞”攻击是类Fomo3D游戏遭受攻击次数最多的一个破绽。黑客可低成本持续地攫取奖池中的资金。一方面,Fomo3D游戏的空投机制利用随机数来控制中奖概率,但是由于随机数的来源都是区块或者交易中特定的一些公开参数,如交易发起者地址、区块时间戳、区块难度等,所有以太坊智能合约都可以很容易的预测随机数。因此在涉及到随机数的场景下,安比实验室建议开发者应尤为慎重,或通过一定的手段来增加随机源的预测难度。如开发者可通过使用多次提交再披露、或延迟若干个区块开奖的方法来规避随机数被预测的风险。另一方面,为了防止合约自动化攻击,Fomo3D游戏合约对调用者是普通账户还是合约账户做了检测,但由于检测方式存在漏洞,黑客可以利用一些技巧绕开检测。因此项目方在对参与dApp游戏的玩家的身份做检测的时候,也应采用更加可靠的方式。例如,通过判断该笔交易最初的发起者与当前合约的调用者是否为同一地址。前文提到的“阻塞交易”攻击,也是类Fomo3D游戏面临的另一重大挑战。黑客通过高额手续费吸引矿工优先打包,并利用合约自动判断游戏进行状态,以之作为是否采取攻击的依据。黑客最终能够以较低成本堵塞区块,每个区块中仅打包很少的交易,使得游戏快速结束,并提高自己获得最终大奖的概率。其实这一问题不止会威胁类Fomo3D游戏。所有类似机制,即需要玩家抢在某个时间范围内完成某种竞争操作的智能合约,都会受此威胁。要杜绝这一问题,安比实验室建议游戏开发者,从游戏机制入手,切断游戏最终胜利和倒计时结束之间的必然联系,从而使黑客的攻击获利概率和攻击意愿都降到最低。类Fomo3D游戏中黑客利用了以太坊共识协议的特点,找到游戏机制的漏洞进而发起攻击。这也提醒我们,dApp应用中的机制设计是一项极其复杂的工程,除了技术本身,还涉及到平台外部环境,博弈论等方面问题,这也是容易被黑客攻击的环节。因此,dApp项目在机制设计过程中应尤为慎重。正如安比实验室创始人郭宇所说:“新世界有生命,就有捕食者。有交易者,就有黑客。区块链上的应用在进化,攻击者也同样”。在技术和财富的交汇处,黑客永远保持着最灵敏的嗅觉。黑客的一次次攻击,给了我们很多的反思和改进的机会,这也是应用不断进化的催化剂。一参考文献PwningFomo3DRevealed:Iterative,Pre-CalculatedContractCreationForAirdropPrizes!,https://peckshield.com/2018/07/24/fomo3d/智能合约史上最大规模攻击手法曝光,盘点黑客团伙作案细节https://zhuanlan.zhihu.com/p/42318584Fomo3D千万大奖获得者“特殊攻击技巧”最全揭露https://zhuanlan.zhihu.com/p/42742004PéterSzilágyi提出的空投漏洞利用POC,https://www.reddit.com/r/ethereum/comments/916xni/how_to_pwn_fomo3d_a_beginners_guide/,2018/07/23区块律动:8万笔交易「封死」以太坊网络,只为抢夺Fomo3D大奖?https://mp.weixin.qq.com/s/5nrgj8sIZ0SlXebG5sWVPwPredictingRandomNumbersinEthereumSmartContractshttps://blog.positive.com/predicting-random-numbers-in-ethereum-smart-contracts-e5358c6b8620
薛蛮子:中国对区块链的监管面临两难的处境:薛蛮子昨日在全球第一区块链社群 “三点钟区块链”中说:“中国的监管面临两难的处境。管理一刀切,打击了真正优秀的创业者,当年互联网公司如BAT全跑到海外注册最后都在海外上市了;不管吧,很多窝点无耻利用人性贪婪与无知,在四五线城市借区块链之名在金融,确实有许多空气币加了区块链名词就出来忽悠百姓的辛苦钱。”[2018/2/19]
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。