风险提示:必查客提醒,根据银保监会等五部门文件,广大群众需理性看待区块链,树立正确的货币观念和投资理念,切实提高风险意识!
必查客

区块链投诉维权平台

行必查·知可为

APE Coin空投被薅羊毛

必查客
查查2022/3/18
357

摘要:北京时间2022年3月17日,我们监控到了涉及到APE Coin的可疑交易,根据twitter用户Will Sheehan的报告,套利机器人通过闪电贷薅羊毛,拿到6万多APE Coin(每个价值8美元)。

  北京时间2022年3月17日,我们监控到了涉及到APE Coin的可疑交易,根据twitter用户Will Sheehan的报告,套利机器人通过闪电贷薅羊毛,拿到6万多APE Coin(每个价值8美元)。

  经过我们分析后得知,这与APE Coin空投机制的漏洞有关。具体来说就是,APE Coin决定是否空投取决于某一个用户是否持有BYAC NFT的瞬时状态,而这个瞬时状态,攻击者是可以通过借入闪电贷然后redeem获得BYAC NFT来操纵的。攻击者首先通过闪电贷借入BYAC Token,然后redeem获得BYAC NFT。然后使用这些NFT来claim空投的APE,最后将BYAC NFT mint获得BYAC Token用来返还闪电贷。我们认为这个模式同基于闪电贷的价格操纵技工非常类似(合约通过一个资产的瞬时价格来对另外一个资产进行定价,而这个瞬时价格可以被操控)。

  接下来,我们使用一个攻击交易来简述整个过程。

  Step I:攻击准备

  攻击者购买了编号1060的BYAC NFT并且转移给攻击合约。这个NFT是攻击者花了106 ETH在公开市场购买的。

  Step II:借入闪电贷并且redeem成BYAC NFT

  攻击者通过闪电贷借入大量的BYAC Token。在这个过程中,攻击者通过redeem BYAC token获得了5个BYAC NFT(编号7594,8214,9915,8167,4755)。

  Step III:通过BYAC NFT领取空投奖励

  在这个过程中,攻击者使用了6个NFT来领取空投。1060是其购买,其余5个是在上一步获得。通过空投,攻击者共计获得60,564 APE tokens奖励。

  Step IV:mint BYAC NFT获得BYAC Token

  攻击者需要归还借出的BYAC Token。因此它将获得BYAC NFT mint获得BYAC Token。这个过程中,他还将其自己的编号为1060 NFT也进行了mint。这是因为需要额外的BYAC Token来支付闪电贷的手续费。然后将还完手续费后的BYAC Token卖出获得14 ETH。

  获利

  攻击者获得60,564 APE token,价值50W美金。其攻击成本为1060 NFT(106ETH)减去售卖BYAC Token得到的14ETH。

  Lessons

  我们认为问题的根源是在于APE的空投只考虑瞬时状态(NFT是否在某一个时刻被某一个用户所持有)的这个假定是非常脆弱的,很容易被攻击者操控。如果攻击者操控状态的成本小于获得的APE空投的奖励,那么就会创造一个实际的攻击机会。

免责声明:本文不构成任何投资建议,文章内容请读者谨慎对待!