【技术拆解】My Pet Hooligan 复盘与分析

b1995
Dec 15, 2021

--

根据我们的观察,目前NFT项目中Bot的数量在不断的增多,而Bot对比人工有着极大的优势,昨天My Pet Hooligan 就是一个非常好的例子,本文将针对此进行一个分析。

备注:针对不了解Bot的朋友可以参考我两天前写的FlashBot 文章

昨晚鲨鱼DC群中也有人分享详细的技术资讯,如果有兴趣的朋友,可以加入鲨鱼Discord群组:https://discord.com/invite/winnersharkclub

My Pet Hooligan 简介

My Pet Hooligan是我们鲨鱼群组中分享的一个不错的项目,总共发行8888只,大部分是通过presale发行,而只有不到500只是通过public mint进行。很多网友没有拿到白名单,就得晚上12点准时手动来抢。

不过,等大家劳神费力定好表,手动操作Metamask钱包后,却看到了这样的结果(有些钱包在Public Mint结束后多了100只,正是通过程序发动多个钱包同时Mint,之后再打回主要的钱包):

翻译:多谢这样的一场公平发售,人类一点机会也没有

人类在Bot面前一败涂地,接下来就为大家复盘昨晚究竟发生了什么……

My Pet Hooligan

在Public Mint公开发售前,My Pet Hooligan的地板价已经高达0.5ETH, 而Public Mint价格在0.08ETH。如此低的公开发售价,不考虑Gas Fee的话,买到就直接赚4倍!

因此各路人马都摩拳擦掌,准备好好抢一番,但是最终却几乎没有“人”抢到,很多网友还因此付了不少的交易手续费。

通过我们针对这次发售的仔细观察与研究,我们发现了不少的问题和漏洞。而且我们也看到了未来渐渐清楚的一个趋势:

越是顶级的项目,越多Bot涌入Public Mint,项目方则会渐渐透过Whitelist 的方式来保护项目不被机器人抢占与倒货。

针对这周对NFT市场的观察,对于NFT玩家有以下几点建议

  1. 率先掌握消息,透过Whitelist 参与项目赚钱
  2. 了解项目发展过程,优先进场并持有等待翻倍
  3. 透过科学手段硬碰硬,打赢其他科学家

如果确定是一个顶级项目,后知后觉的去参与Public Mint,人类与Bot竞争的结果,只能是在交易手续费上赔个粉身碎骨

我们自己也是科学家,昨日我们的Bot判断加上Gas后ROI不到100%并没有进场。而我专门在做Bot的朋友在13804253区块进场,支付了高达1.5ETH的Gas,到头来获利也只有”区区35%”。

下面,我们就为大家分解,My Pet Hooligan的哪些漏洞导致Bot如此大量的涌入!

1. 交易合约明码公开,而且发售时间提前写死

通过查看My Pet Hooligan在Etherscan上的数据,我们能够发现,它的合约早在公开发售之前就已经提前公开,所有的合约完全可见!

合约明码公开

通过观察这份合约,机器人能够很轻松的抓到mint的方法。相对于众多网友需要在网页进行mint,会面临网路延迟,网页更新过慢等众多问题,bot能够与合约直接交互,大大缩短了mint的时间

(还不知道如何直接和合约交互的小伙伴可以查看我的这个方法,能够大大缩短你mint所需的时间)

而且项目方直接把public mint的开售时间写在合约中,而不是在某个时间段公布具体的发售时间。这样,bot就能够提前做好充足的准备,等到时机成熟,一发致命!

2. 项目方糟糕的操作

项目方在12:01的时候发了一条推特,说把mint的价格改为0.08 xxx 01, 多加了最后的一个1,就能有效的阻止Bot的攻击。

理想很丰满,现实很骨感!

项目方不知道的是,当项目方更改价格时,所有的public mint已经结束了!一顿操作猛如虎,后来才发现改了个寂寞!

通过对比最后的一笔mint时间(为左)与项目方自己更改价格的时间(有图),我们可以看到,项目方已经整整落后了30s,也就是2个区块。所有的mint都已经结束!

这种操作对于Bot没有产生任何的影响,大家早已经赚到钱套现离场了。

3. Block.timestamp 的魔力

很多网友就和双十一抢红包一样,早早定好了闹钟,北京时间12点准时开抢,但是我可以告诉大家,这个时间是错误的!虽然是12点开抢,但是智能合约的时间和我们现实中的时间并不完全平行!

在项目方的合约中,他们使用了一个参数叫做block.timestamp ,如果mint的时间大于这个区块的时间,你才能使用mint参与公开发售。可是,这个时间和大家所理解的时间并不相同。

一般来说,以太坊上一个区块的时间在15s左右,假设block.timestamp设定的时间是12点,这个时间并不是你按下“mint”这个按钮的时间,而是这个block上链的时间。

如何理解呢?我们假设以太出块为15s。在 11:59:46秒出了一个区块,那下一个区块的出块时间在 12:00:01,如果你11:59:55秒按下mint的按钮,你是能够mint到的,因为出块的时间是12:00:01秒,大于12点整!

而如果你在12点和其他人一起定了表,12点整按下按钮,你很大几率提交的时间在12:00:01秒之后,这样你就在下一个区块中了,错过了一个区块就很有可能错过了mint的机会!

因此,正确的做法是观察出块的状态,在正确的时间按下mint按钮。这对于机器人来说易如反掌,而对人类来说,却无法做到那样的精确度。

备注:鲨鱼群的科学家朋友在Mint完之后,都各自分享了Mint的资讯。其中有人提到上一个区块是23:59:42送出(13804252),而13804253是00:00:07送出,因此绝大多数的Mint成功都发生在13804253区块。在此也感谢鲨鱼群中的朋友提供资讯

当然,bot也有做很多front running来确保自己的领先地位,很多bot也会copy 现有的transaction 数据来参与区块链上的一些波动事件,这些太过技术的细节,我先不展开讲了,以后有机会再和大家分享。

我认为在未来,Alpha群组会更具价值!

通过我们对于My Pet Hooligan这个项目的复盘,可以看到NFT市场的变化之快速:

※半年前,只要买NFT很少听过亏钱的

※两个月前,热门项目抢到Mint很少没有翻倍的。

※几周前,我们的Bot一周翻了8倍被偷截图放在网上

※今天,我很肯定数以千计的Bot正在OpenSea以及各大平台套利!

就像我常说的,Crypto、NFT就是少数人赚钱的世界。资讯公开透明就会有越来越多科学家进入市场剥夺利润。

讨论项目早期发展、研究团队与实实在在的技术分析在未来越来越不可或缺。鲨鱼群组的各位伙伴如果有Follow我的文章,就能知道我一直希望能与各位用Alpha视角来看待整个市场。

希望能在给各位资讯的同时,教导各位如何解读,才能让彼此的思维更上层楼。未来我将投入自己最多的时间,参与鲨鱼私群,与各位讨论项目、提供资讯、提升思维,彼此成长!

如果大家有兴趣,欢迎在Twitter留言转发让我知道,我将继续为大家分享区块链上的各种技术方法!

Twitter : https://twitter.com/Robot284
Discord : https://discord.gg/winnersharkclub

--

--