北京时间2022年4月21日下午3时15分,CertiK审计团队监测到ZEED项目被攻击,造成了104万美金的财产损失。被盗取资金被转移至一合约中,而该合约具有自我销毁功能,因此该操作无法逆转,资金无法被追回。
攻击步骤
①攻击者合约从HO-SWAPLP收到662枚YEED代币。
②这662枚YEED代币被发送到BSC-USD-YEED。由于收费机制的存在,一些收费代币也将被发送到3个LP对,分别是:BSC-HO-YEED2;BSC-USD-YEED2,BSC-ZEED-YEED2。
CertiK:PorkiesNFT项目Discord服务器遭入侵:金色财经报道,据CertiK官方推特发布消息称,PorkiesNFT项目Discord服务器遭入侵,有黑客发布钓鱼链接。在团队确认已重获对服务器的控制之前,请勿点击任何链接。[2023/7/8 22:25:40]
③由于费用计算出错,一些YEED代币也将被错误地创建/发送到LP。
④从这一刻起,每个LP就处于不平衡状态。在每个LP合约中,都有着与其他代币相较过多的YEED代币。
⑤然后,攻击者将在每个LP上不断循环调用skim(to:LP)函数。该函数是为了重新调整LP内的两种代币的数量,将多余的代币发送到to参数。由于攻击者配置的目的地是LP本身,不平衡将不断增加,更多的奖励代币将被创建。
XRACER NFT系列与 XP Network 达成合作:据官方消息,近日,XRACER游戏团队宣布“XRACER NFT 系列与 XP Network 达成合作,扩展数字收藏品的可能性。XP Network是全球领先的 NFT 跨链桥,它可使不同区块链和 NFT 市场之间实现无缝链接的互操作性。 XRACER NFT是一个独特的数字艺术作品系列,它们能够在XRACER Play-to-Earn(边玩边赚) 游戏中帮助玩家赚取 NOS 。[2023/4/11 13:56:09]
每一次的转移都会:
从一种LP发送YEED代币到另外一种LP。
Balancer生态收益治理平台Aura Finance将于6月9日开启LBP和上线:金色财经消息,SushiSwap联合创始人0xMaki将要推出的Balancer生态收益治理平台Aura Finance发推称,将于6月10日2:00进行为期5天的LBP,同时Aura合约和网站也将上线。在前两周,AURA总供应量的2%将分配给auraBAL质押者(包括选择锁定空投的用户)。Aura Finance将在6月16日开启aura BAL存款和加速流动性激励,同时开始向Balancer、Convex Finance和lobsterdao社区发放空投,不想锁定AURA的用户将需要为其空投认领支付30%的罚款,这些空投罚款将在协议启动一个月后累积并自动分配给vlAURA持有者。6月23日,vlAURA持有者将能够投票决定Aura的veBAL投票权应投向何处。[2022/6/5 4:02:59]
向LP发送因错误产生的YEED代币奖励
元宇宙足球游戏MetaSoccer融资220万美元:11月24日消息,MetaSoccer已筹集220万美元,资金将用于在Metaverse中推出足球比赛和足球俱乐部管理平台。投资方包括PlayVentures、DefianceCapital、ParafiCapital、DAOMaker、KyrosVentures、MetrixCapital和PeechCapital。MetaSoccer允许用户组建虚拟足球队,进行比赛或通过一个赛季管理球队。玩赚游戏允许用户通过在平台上交易球员、赢得比赛和获得赞助来获得MSU代币。(cointelegraph)[2021/11/24 7:08:29]
通过以上方式,攻击者保持了LP内代币的不平衡,并且每次都会增加LP内YEED代币的数量。
比如,我们可以看到在BSC-ZEED-YEED2LP中,最初的YEED的数量是96个。
而当攻击者调用skim(to:attacker_contract)以后,LP中的YEED余额为368,560。
最后一次调用,则将368,560枚代币发送给了攻击者。
攻击者对3个不同的货币对进行处理,总数为87,479,473枚YEED代币:
83,127,354YEED来自BSC-USD-YEEDLP对。
3,983,869YEED来自BSC-HO-YEEDLP对。
368,560YEED来自BSC-ZEED-YEEDLP对。
⑥然后,攻击者进行多次互换,将其收益转换为BSC-USD。
漏洞分析
攻击者通过向LP对发送代币,破坏了YEED项目内LP代币的平衡。因此,任何人都可以调用skim()函数,从而把多余的代币发送给用户。
如果正确计算金额,则一切正常。然而,在最重要的发送奖励步骤中,发送给每个接收者的奖励是rewardFee。这意味着在此条件下,并不是奖励获得者理应获取了奖励费用x1,而是在N次转移过程中获得了奖励费用xN次。
比如,用户A向用户B发送了100个YEED,如果rewardFee是10。
用户B收到90奖励
LPBSC-USD-YEED2收到10奖励
LPBSC-ZEED-YEED2收到10奖励
LPBSC-HO-YEED2收到10奖励
这样以来,就有20枚代币被错误地凭空创建了。
而真正的YEED奖励机制应该运营如下:
50%的奖励费用发送到_balances(LPBSC-USD-YEED2)
25%的奖励费用发送到_balances。
25%的奖励费用发送到_balances(LPBSC-HO-YEED2)。
写在最后
此次事件造成了104万美金的损失。由于资金在合约中,而合约具有自我销毁功能,所以该操作无法复原,即任何人都无法再取出这笔财产,包括攻击者本身。通过审计,我们可以了解到发送到LP的代币将破坏LP的平衡,并且审计也能发现奖励计算机制的错误。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。