Balancer遭50万美元黑客攻击 DeFi合约漏洞再敲警钟

robot
摘要生成中

DeFi平台Balancer遭受黑客攻击事件分析

6月29日凌晨,DeFi平台Balancer的两个ERC20通缩代币池遭到黑客攻击,造成超50万美元损失。安全分析人员介入调查后发现,问题的根源在于Balancer上的通缩型代币与其智能合约在某些特定场景下存在不兼容性,使攻击者能够创建价格偏差的代币流通池并从中获利。

黑客攻击分为四个主要步骤:

  1. 从某借贷平台获取104,331个WETH的闪电贷。

  2. 反复执行swapexactMountin()调用,直到Balancer持有的STA代币几乎耗尽,仅剩0.000000000000000001个STA。

  3. 利用STA代币与Balancer智能合约的不兼容性,即记账和余额的不匹配,耗尽资金池中的其他资产,最终获利523,616.52美元的数字资产。

  4. 偿还闪电贷,并转移攻击所得的数字资产。

在攻击的关键阶段,黑客通过swapExactAmountIn()函数将极少量的STA发送到BPool,以极高的价值差换取了大量WETH。由于STA转账时会烧掉1%的手续费,实际上BPool无法收到任何STA,导致实际余额与内部记账产生不匹配。攻击者随后通过调用gulp()函数不断重置_records[STA],维持BPool中极少量的STA余额,从而持续以高价兑换其他资产。

这次事件再次暴露了DeFi可组合性存在的兼容性风险。为防范类似攻击,可考虑以下优化方案:

  1. 当转账数额不足以支付手续费时,STA/STONK在执行transfer()或transferFrom()时应直接回滚或返回False。

  2. Balancer应在每次transferFrom()函数调用后检查BPool的实际余额。

然而,最佳解决方案仍是事前预防。DeFi项目开发者应采用良好的代码规范,寻求第三方安全公司协助进行全面的攻防测试,并对各种代币标准和DeFi项目的组合行为进行周密排查。

此次Balancer攻击事件造成的具体损失包括:

  • 601.3 WETH
  • 11,031.4 SNX
  • 22,593.2 LINK
  • 116,107.8 STA
  • 53.4 COMP

总计损失约523,616.52美元的数字资产。

这一事件无疑会对DeFi社区产生重要影响,同时也警示所有DeFi项目开发者必须高度重视智能合约的安全性。

BAL1.22%
DEFI2.03%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 评论
  • 转发
  • 分享
评论
0/400
暂无评论
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)