原文标题:NFT Drops Are Broken: Here’s How We Fix Them
原文作者:NIFTYTABLE AND TAKENS THEOREM
原文编译:海尔斯曼,链捕手
2021年,NFT收藏品爆发成一个数十亿美元的资产类别。然而,快速的成功也伴随着一些“成长的烦恼”。
大多数 NFT Drop(通常是指NFT以白名单的形式首次发行) 多使用先到先得(FCFS,first-come-first-served)机制,其固定价格远远低于市场价格(供应与需求匹配的价格)。那这样会导致什么问题呢?低价和过度需求有效地创造了竞争条件。在NFT Drop早期,买家的期待值很高,但只有最早的买家才有机会铸造NFT。因此,哄抢导致对下一个区块中的铸造交易的需求上升,Gas费大幅增加。
在需求高峰期,就会出现 “Gas战争”。这在高需求NFT Drop期间给用户带来了很糟糕的体验。比如,在Loot项目取得突破性成功后,急于mint和上市Loot衍生品导致gas费多次飙升,从而提高了整个以太坊网络的交易价格。下图显示了去年9月2日,每当铸造Loot品衍生品时,gas费是如何大幅上涨的。
本文将探讨 FCFS投放机制如何对用户产生负面影响及相关案例研究。此外,我们也对项目方、创建者就缓解这一问题给出了参考建议。
阿迪达斯的NFT项目Into the Metaverse
Into the Metaverse(“进军元宇宙” )是阿迪达斯、Gmoney、无聊猿游艇俱乐部(BAYC)和朋克漫画公司(PUNKS Comic)合作的NFT项目。它于2021年12月发布,共发行3万个。只要拥有其中一个NFT,就可以获得限量版阿迪达斯商品,并有机会解锁未来更多虚拟体验。此次NFT Drop有预售活动,但只有持有合作项目之一的NFT的收藏家可以参加,预售之后才是任何人都可以参加的公开销售。
在本案例中,有两个主要问题困扰着NFT Drop。首先是高额的gas费,购买阿迪达斯NFT的需求所执行的铸造交易大大超过了以太坊网络在一个区块中可以处理的交易数量。结果,处理一笔以太坊交易的成本急剧上升。
上图通过绘制各个区块的铸造交易来说明这些动态。绿点表示mint成功,红点表示失败。
35000个钱包尝试了39000次铸造交易,其中59%的铸造尝试失败。成功铸造交易的中位数gas成本为 0.16 ETH 。失败的铸造交易浪费了价值 680 ETH 的 gas费。根据当时 ETH 的价格估算约合260 万美元。
第二个问题是高技能操作员拥有不公平的竞争优势。原则上,每个钱包最多可以铸造两个 NFT,然而一些参与者使用机器人来规避规则。比如,一名操作者曾在一次交易中铸造了 330 个阿迪达斯 NFT。此人编写了一个自定义智能合约,并部署了很多子合约。所有子合约都参与了铸造了NFT并发送到一个钱包地址。
一个可以缓解困扰阿迪达斯 NFT 发售问题的系统是由Parallel NFT (https://parallel.life/)项目开发的NFT Drop机制。使用这个系统,Into the Metaverse 项目将允许用户在链下保留 NFT。正如最初计划的那样,每个用户最多可以保留两个 NFT。进行一次预订后,用户必须等待 5 分钟才能预订另一次。这样一来,机器人就无法在具有正常反应速度的人类进行购买之前狙击所有库存。
保留期将持续到所有 NFT 都被保留为止。一旦所有 NFT 都被保留,用户可以在 24 小时内为他们在链上保留的 NFT 付款。这意味着用户不必急于在短时间内执行交易,也不会发生“gas费战争”。它还将留给核心团队一段时间,来识别和淘汰参与第一阶段的机器人。
最后,NFT 将被铸造并分批发送给买家。如此一来,阿迪达斯将从Drop的收入中支付与铸造、转让NFT相关的gas费成本。值得一提的是,使用这种方法,买家只需在链条上进行一次支付交易,与铸造交易相比,该交易的gas费成本相对较低。
这种方法的缺点是用户必须信任中心化的链下预订系统,以及那些将机器人列入黑名单的团队成员是没有偏见的。在不影响去中心化的情况下,如何证明用户是独一无二的人而不是机器人,在web3仍有很大的发展空间。
Doodles
Doodles是2021年10月推出的 一万个独特的个人资料图片NFT的集合。
Doodles drop有两个阶段:仅限白名单的 FCFS 铸造阶段和公共 FCFS 铸造阶段。在白名单阶段,用户可以随时铸造 NFT,在基础gas费相对稳定的情况下,很少有人交易失败。一旦公开发售开始,人们争先恐后地铸造剩余的Doodles,对区块空间的需求就会上升,而 gas 费用也会飙升。
在预售期间(灰色垂直线之前),失败的交易仅占 0.2 ETH 的费用。在公开投放期间(灰线之后),10000钱包尝试了 13000次薄荷交易。这些薄荷尝试中有 12000次失败,意味着失败率高达90%。成功铸造交易的中位数gas成本为4.0 ETH。
由于交易失败,浪费了价值 335.2 ETH 的 gas费。根据当时 ETH 的价格,约合126 万美元。其中,区块13,439,104的Etherscan条目是这场“腥风血雨”的完美快照,它有超过1000次失败的 Doodles 交易,仅失败的交易费用就导致了近100 ETH。
使用 MultiRaffle 方法可以提高gas效率和 Doodles Drops的失败率。MultiRaffl由来自Paradigm加密投资公司的高产研究人员Anish和Hasu共同开发。用户通过将资金锁定在智能合约中来购买抽奖券。抽奖券的成本等于 NFT 的成本,如果没有抽中,那么购买NFT的钱将自动退回。
购票期应持续数天,以确保不会出现影响gas费的价格竞赛。买家都买到抽奖券后,将使用Chainlink VRF来选择赢家,提供稳健的随机性。高技能的参与者在比赛中不会有不公平的优势,因为每张票都有同等随机被选中的机会。最后,用户可以随时申请NFT或退款,只有在这一点上,项目团队才能按照规范的要求从合同中提取资金。
如果你是开发人员,可以在这里找到MultiRaffle的实操方法。
Stoner Cats
Stoner Cats 是一部动画短片,由米拉·库尼斯(Mila Kunis)和阿什顿·库彻(Ashton Kutcher)等全明星演员制作。购买10420个NFT中的一个,持有者可以获得各种剧集和特权,比如与创作者一起构思和幕后内容。
在投放期间,3.5万个钱包进行了5万次铸造交易。51%的铸造尝试失败。成功铸造的平均gas费为0.22 ETH。失败的铸造交易浪费了价值345 ETH的gas费。按以太坊当时的价格计算,约为794万美元。
随着Stoner Cats铸造竞赛开始,gas费飙升。除此之外,铸造合约的编写效率低下,导致gas limit计算不足。结果,没有手动调整钱包中gas限制的用户更有可能遇到交易失败。
不过,好在Stoner Cats 团队在事件发生后决定偿还参与者的gas费。
除了改进合同之外,一种可以帮助提高gas效率和失败率的方法是,在一系列以Stoner Cats为主题的游戏和谜题之后设置铸造选项。这些挑战本质上是多样的,发生在许多不同的平台上,即使用户知道所有步骤,机器人“寻宝”也是不可行的。举个很好的例子——TempleDAO 的“加入仪式”,其中包括多个步骤,包括Discord命令、Cryptovoxels的谜题,以及在自定义网站上回答的问题。
这种方法将用于错开用户铸造NFT的时间。用户不会同时到达最终网站并首先通过gas费竞争铸造。那些在所有 NFT 被铸造时,还没有完成一系列挑战的人将没有机会提交mint交易。这比提交失败的mint交易更可取,因为没有剩余的 NFT,参与者将亏损在gas费。
使用谜题和游戏来设置铸造厂门槛也将是一种有趣的方式,可以筛选参与者,并选择那些对该项目最感兴趣的人,而不是无意中筛选那些钱包最大、技能最高的人,这就是目前的运作方式。从长远来看,这可能对社区有利。
TIMEPieces
2021 年 9 月,《时代周刊》上线了一个名为 TIMEPieces 的 NFT 项目。该系列包括 4676 个 NFT,其中包含 40 多位艺术家的作品。持有人的福利包括,在 2023 年之前无限制地访问《时代周刊》的官网,以及有更多机会在未来受邀参加线下活动。
1.1万个钱包进行了 1.35万次铸造尝试,其中 96% 的尝试失败。成功铸造交易的gas费为 2.3 ETH。由于交易失败,浪费了价值 265 ETH 的 gas费。根据当时 ETH 的价格,约为 83.6 万美元。在第 13,283,025 个区块中,失败的 TIMEPieces 交易约占整个区块的 90%!
此次TIMEPieces drop的故障率高达 96%。NFT 在短短 2-3 分钟的时间内就售罄,因为高技能的参与者提前找到了合同并埋伏好了机器人。《时代周刊》的总裁Keith Grossman曾在其推特中指出了此次NFT发行的相关问题。
要想预防这种恶性结果,有一个可以采用的方法就是智能批量拍卖。使用这种方法,用户向智能合约提交出价,指定他们想要的代币数量和他们希望购买的价格。投标期结束后,将计算出一个清算价格以匹配供需。出价高于该价格的用户可以随时索取 NFT以及出价与清算价格之间的 ETH 差额。低出价的用户将通过合约获得 ETH 退款。没有高峰期,没有抢先铸造引发的挤兑,更没有gas费战争。
如果你是开发人员,可以在这里找到NFT 智能批量拍卖的实操方法。
解决NFT Drop 问题的其他方法
除了上面探讨的投放机制外,NFT 项目还可以在投放期间探索通过Flashbots RPC路由铸造交易。这主要有两个好处:
如果交易失败,用户将无需为此支付 gas。
机器人不会在公共内存池中看到用户的铸造交易。
项目可以利用 Flashbots RPC 向 drop 网站添加一个信息弹出窗口,向用户解释如何使用 Flashbots RPC 进行铸造;另一种方法是设计 drop 网站以检测未使用 Flashbots RPC 的用户,并提示他们在铸造前将其添加到 Metamask。