什麼是CyberFrogz?
CyberFrogz 是群里大家分享的一个项目。昨天下午的时候,就有群内科学家发现CyberFrogz存在漏洞,【修改部分Code之后便可以无限mint】。
作为全网最先发现这个漏洞的Alpha群,我们不仅掌握了一流的技术能力,同时也有最领先的Alpha消息。以下我将针对Mint的市场情况与技术拆解分别进行说明:
CyberFrogz Mint情况
透过本群0xbitfly开发的看板可以看到整体的Mint情况,该项目白名单最多可以Mint两只、Public Sale最多可以Mint一只。然而由于科学家透过网站漏洞让「所有地址都能变成白名单Mint」,因此几乎全部的地址都Mint了两只
其实我个人、Bruce是完全不知道这个项目,也不知道这个项目在干嘛。所以我们参与的主要策略只有一个:【卖掉,卖高价一些】!该项目的Mint时间足足长达10小时,我将其分为三个部分做说明
第一部分
【真正的白名单】参与Mint,所谓真正的白名单可能是透过社区抽奖、社区贡献拿到的白名单。由于这些人是真的对社区有贡献所以拿到,因此这些贡献是绝对值得溢价的(所谓的贡献溢价,过去我在什么白名单值得刷文章中有做过说明)
对于那些不想提供时间又想要项目的人是必须要支付「溢价」来获得该NFT。现在的问题就是,市场有没有这些人?
我们透过icy.tools 的资料看到确实有不少成交量,在Mint的初期。代表确实有不想贡献却需要该NFT且愿意溢价购买的潜在消费者。因此第一部分可以确定一件事「这是一个有机会+EV的短期炒作项目」
第二部分
对于第一部分那些马上入场参与白名单Mint的人,对该项目的热情程度远高于第二阶段才入场的伙伴,Diamond Hand 比例也会更高一些。
第二阶段进场更贴近于「想要确定这个白名单能赚钱,才进场」,比较属于倒货Flip赚利差的玩家。所以这边的倒货现象会开始明显
我请黑箱DAO不要在这个时间点入场,理由是因为倒货的白名单持有者开始入场,地板价格相对较低,我们必须增加持仓时间换取Public Sale之前的涨幅(下文会解释)对于社区来说是增加风险的。
第三部分
第三部分短期间内Mint数量急遽上升甚至在某个Block 内Mint的数量达到前一个Block的十倍左右。这正是因为当时我们与cbd 搞定了多钱包自动执行的小插件,我们得以快速的大量Mint。
为什么我们在这个时候才进场有几个原因:
- 离Public Sale 越来越近!没有项目方会自己砸自己,在Public Sale之前破发,通常都会在Public Sale之前拉一波,因此我们决定减少持仓时间与成本(毕竟连项目做什么都不知道)这时候入场地板价格通常是短期高点
- 我们知道被我们这样乱搞之后,Public Sale将不剩任何一只。那些买不到Public 的人可能会到OpenSea 扫,这时候的交易量可能会上来!
我个人与Bruce这次针对这个项目主要是给黑箱DAO与Alpha Shark 开红盘,并没有太多个人获利!Lazyman 也不顾自身获利最大化提供资信给群友,非常值得Alpha Shark 群友尊敬!
相信未来Alpha Shark 的科学家继续秉持相同的精神我们的社区将能更上层楼,近日与小J有细部讨论未来的发展,我们拭目以待。
以下将针对技术部分进行讲解
CyberFrogz技术复盘
我们进行CyberFrogz的技术拆解前,先来回顾一下当前市场的Mint情况。
※ 当前市场的Mint情况:
NFT 市场的首次发行在经历了Public Sale被Bot不断抢占的情况后,也正如我们之前文章预测的一样,开始进入白单时代。
越是顶级的项目,越多Bot涌入Public Mint,项目方则会渐渐透过Whitelist 的方式来保护项目不被机器人抢占与倒货。(原文参考链接)
几乎全部的知名项目都是白单mint占了90%以上的销量,而public mint一般把白单mint剩余的NFT进行单独的销售。
※ Signature防止机器人合约Mint
整个市场也变了,通过各种bot,工具与智能合约交互的机会大量减少,项目方采用带有signature的合约强制用户从官网进行Mint,阻止bot的参与。
因为项目方的官网会回传一个和你钱包地址相绑定的signature,只有拿到了这个signature才能mint。而【这个signature只能从官网才能拿到】,大大减少了bot的参与度。
绝大多数的项目都会把能够签发这个Signature的Private Key放在网站的后端。但是这也有很大的风险,后端的API接口很容易就会受到科学家的攻击。前段时间非常火的Coolpets就是因为不断地受到攻击,项目方进行了多次的延迟开售以确保安全。
CyberFrogz 也借鉴了当前项目的做法,不过它们做错了两点以至于被科学家无限Mint。
CyberFrogz做错了什么:
1. 私钥放在网页前端
CyberFrogz 也采用了相同的做法,通过官网签发的signature才能够和合约进行交互参与Mint。不过可惜的是,cyberfrogz把这个签售 signature的私钥【没有】放在后端保存起来,而是放在了网站的代码里。
备注:正常情况下,任何人都可以看到网页的前端代码。
当然,网页前端的代码是经过压缩的,所以对代码不那么熟悉的朋友来说,并不好读。
以上代码就是CyberFrogz白名单Mint的部分。通过265行的message我们就能知道这边是在做白名单的条件判断。
其中F这个值就包含了所有的白单信息,我们如果在网页中稍加手脚,在F.map前增加一个!号,就能欺骗网页前端,让网页认为我们存在白单中。那么网站就不会显示265行的不在白单中的错误信息,而是直接用私钥为我们的钱包生成对应的signature,让我们参与Mint过程。
2. 白名单没有写入合约中
一般来说,项目方都会把白单信息写在合约中,只有拥有合约的私钥才能够对白单数据进行更改。
CyberFrogz的白单信息直接写在了网页里。
事实上,我们也能够在这部分代码中插入自己的钱包信息,实现白名单mint。
综上所述,Cyberfrogz虽然采用了signature作为合约的验证方式,但是他们采取了错误的做法。
更为糟糕的是,Cyberfrogz的白单mint并没有设置上限,因此总量的5555只都可以通过这种方式mint走。
结论
特别感谢Alpha Shark 群友、黑箱DAO创办人Bruce无私奉献、Lazyman与cbd 提供技术支援等。
未来有类似的项目,我们希望能透过黑箱DAO的操作(如此一来才不至于惊动项目发临时动手脚更改规则),给予更多的社区回馈,社区回馈的方式除了抽奖与资金池的增加,我们也讨论了一个社群如何才能更加强大,大家敬请期待。