北京时间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。
NEAR将于本月启动夜影协议第一阶段并引入Chunk-Only Producers:9月9日消息,NEAR宣布将于本月启动夜影协议第一阶段并引入Chunk-Only Producers,Chunk-Only Producers仅负责在一个分片中生成区块。NEAR计划引入250至400名Chunk-Only Producers,该阶段预计将于本月下旬启动。
据悉,之后的第二和第三阶段均将于2023年启动,第二阶段会将状态和处理都将完全分片,第三阶段则将实现动态分片,网络将被动态拆分为分片,然后根据资源利用率进行合并,进一步提高网络可扩展性。[2022/9/9 13:20:23]
③由于费用计算出错,一些YEED代币也将被错误地创建/发送到LP。
Balancer社区发起关于将BAL分配给AAVE/WETH质押者的投票:据官方推特消息,Balancer社区正发起关于将BAL分配给AAVE/WETH质押者的投票。鉴于安全模块的重要性,Aave需要更多时间将其池迁移到Balancer v2。为了保持池在v2流动性挖矿开始之前每周收到的12,500 BAL的分配,需要授权将BAL分配到v1上的80/20 AAVE/WETH池。[2021/6/19 23:48:54]
④从这一刻起,每个LP就处于不平衡状态。在每个LP合约中,都有着与其他代币相较过多的YEED代币。
⑤然后,攻击者将在每个LP上不断循环调用skim(to:LP)函数。该函数是为了重新调整LP内的两种代币的数量,将多余的代币发送到to参数。由于攻击者配置的目的地是LP本身,不平衡将不断增加,更多的奖励代币将被创建。
基于以太坊的DeFi协议Balancer在Algorand上扩展:基于以太坊的DeFi协议Balancer计划在Algorand上扩展。Algorand首席运营官W. Sean Ford表示,一旦在Algorand区块链上启动,Balancer用户将能够与任何Algorand标准资产(ASA)建立流动性池或交易对。(The Block)[2021/4/6 19:52:01]
每一次的转移都会:
从一种LP发送YEED代币到另外一种LP。
向LP发送因错误产生的YEED代币奖励
通过以上方式,攻击者保持了LP内代币的不平衡,并且每次都会增加LP内YEED代币的数量。
动态 | EOS42提出 对reg_producer 合约的修改建议 包含惩罚节点的措施:据 IMEOS 报道,EOS42 发文阐述了对 reg_producer 合约的修改建议,包含了惩罚节点的措施。EOS42 将 reg_producer 分解为三个主要目标:通过在reg_producer 合约中设定标准的方式,使得可以对出块节点问责,其最终目的是确保 EOS 网络性能足以为 DAPPs 提供可靠支持,帮助 EOS 代币持有人进行明智投票,并通过客观地保留不能变更的 EOS 区块链的方式保护 EOS 用户。[2019/2/15]
比如,我们可以看到在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的平衡,并且审计也能发现奖励计算机制的错误。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。