NFT:NFT项目Akutars资金锁定事件简析

据慢雾区消息,Akutars(@AkuDreams) 项目拍卖合约由于多个代码缺陷导致 11,539.5 枚 ETH 永久无法取出。慢雾安全团队进行分析后以简讯的形式分享给大家。

1. Akutars 拍卖合约中存在 bid 与 processRefunds 功能,用户分别可以进行拍卖出价与退款操作。

2. 在拍卖结束后发起 processRefunds 退款操作时拍卖合约将遍历出价用户,并通过低级调用 call 为用户进行退款,但并未限制这一调用的 gasLimit。而未做此 gasLimit 限制的情况下,拍卖合约将使用发起者的全部 gas 进行外部调用。

NFT代币总市值已缩水超5成:据CoinGecko最新数据显示, NFT代币总市值已经跌破150亿美元,目前为14,438,095,717美元。值得一提的是,4月16日,NFT代币总市值突破300亿美元,创下历史新高,这意味着过去一个月总市值已缩水超5成。[2021/5/25 22:43:33]

3. 但由于 Akutars 拍卖合约并不限制合约参与拍卖,因此“恶意用户”可以使用合约参与拍卖,并在其合约的接收以太函数中写入恶意消耗 gas 的逻辑,使得在进行退款流程时触发此用户合约,进而恶意消耗了调用发起者的全部 gas,直接导致后续退款无法正常进行。

NFT平台Curio发布HeavyMetal??杂志官方授权NFT:NFT平台Curio宣布发布HeavyMetal??杂志的官方授权NFT《重金属女性收藏》(TheWomenofHeavyMetal)。Curio将于太平洋时间5月12日10:00发行该系列的10个NFT中的第一个。HeavyMetal杂志主要包括科幻小说、奇幻小说和恐怖小说,该系列NFT是为了纪念杂志历史上开创的女性角色。(TheBlock)[2021/5/12 21:55:24]

4. 幸运的是此“恶意用户”仅仅只是做了风险验证测试,最终解除了恶意消耗 gas 的逻辑使得退款可以继续顺利进行。当然用户也可以在拍卖结束的 3 天后进行紧急退款。

Bridge Oracle CEO出价112.1万美元欲马斯克出售NFT的推文:3月17日,针对此前特斯拉CEO埃隆·马斯克(Elon Musk)发推表示正在将关于NFT的歌曲作为NFT出售一事,已有用户在Valuables平台上出价购买马斯克的这条推文。截至发稿时,最高出价112.1万美元由Bridge Oracle首席执行官Sina Estavi提出。据悉,Valuables平台允许推特用户对任何推文的数字版本进行报价。

据此前报道,Twitter首席执行官Jack Dorsey发推表示,其通过Valuables铸造成的首条推文NFT将于3月21日结束拍卖,之后会将收益立即兑换为比特币,并捐给慈善组织GiveDirectly。GiveDirectly致力于援助极端贫困家庭。目前该NFT的最高出价仍为250万美元,出价者为预言机系统Bridge Oracle首席执行官Sina Estavi。[2021/3/17 18:51:46]

5. 在用户退款完成后项目方可以通过 claimProjectFunds 功能提取合约中的拍卖所得。但拍卖合约在用户进行 bid 时使用 totalBids 与 bidIndex 记录用户所拍的数量与出价次数,而用户是可以在一次出价中任意选择所拍的数量的,因此在拍卖结束 totalBids 实际上大于 bidIndex。当前 totalBids 为 5495,bidIndex 仅为 3669。

6. 但在 claimProjectFunds 函数中却要求 refundProgress 退款数必须大于等于 totalBids,项目方本意应是为了保证全部用户完成退款后才可进行取款。而实际上 refundProgress 是根据出价人总数进行计算的,也就是全部退款完成 refundProgress 也只是会等于 bidIndex。这就出现了 refundProgress 永远不会大于 totalBids 的情况。最终导致合约中 11,539.5 枚 ETH 永远无法取出。

综上,即使在用户无法退款问题被解决的情况下,由于出价人数与拍卖数量的计数不一致以及项目方取款函数的缺陷,最终都会导致 Akutars 资金被永久锁住的结果。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金星链

[0:15ms0-1:970ms