大家好,币圈的朋友们!如果你深耕去中心化金融(DeFi)领域,或者只是对 meme 代币略有涉猎,想必已经听说过流动性池以及它们如何维持交易运转。但当有心人找到操控系统的方法,会发生什么?这正是 Balancer 及其部分分叉项目所遭遇的状况,导致多个区块链累计高达 1.2 亿美元的损失。下面我们根据 BlockSec 的 Phalcon 的警报,一步步拆解事件始末。
最初警报:多链溃散
这一切始于 Phalcon 在 X(前 Twitter)上的紧急通报。他们指出,Balancer——一个流行的用于创建可定制流动性池的自动做市商(AMM)协议——以及若干 fork 其代码的项目遭到严重攻击。分叉通常是原始代码的复制或变体,比如在 Optimism 上的 Beethoven X 或 Sonic 上的 BEETS。
损失情况相当惊人:
- Ethereum:Balancer 损失 7000 万美元
- Base:Balancer 损失 390 万美元
- Polygon:Balancer 损失 11.7 万美元
- Sonic:BEETS 损失 340 万美元
- Arbitrum:Balancer 损失 590 万美元
- Optimism:Beethoven X 损失 28.3 万美元
Phalcon 敦促任何使用类似代码的项目保持警惕并密切监控系统。你可以在这里查看原始警报。
这类攻击并非昙花一现——它提醒我们 DeFi 协议中的脆弱点,尤其是许多 meme 代币在发币初期常依赖这些池来提供流动性。如果你钟爱的狗狗币风格代币正停泊在 Balancer 风格的池中,类似事件可能会引发价格波动或交易异常。
深入漏洞:攻击如何发生
Phalcon 的后续贴文拆解了这次被称为“高度复杂漏洞”的攻击。根本原因?所谓的不变量(invariant)操纵。简单来说,对于像 Balancer(借鉴了 Curve 的 StableSwap 模型)的协议,不变量是表示池中总价值的数学常数。它用于计算价格并确保交易的公平性。
攻击者操纵了这个不变量,人为压低 Balancer Pool Tokens(BPT)的价格——BPT 代表你在池中的份额。通过这种方式,他们可以低价买入 BPT,然后再换回底层资产牟利。
以 Arbitrum 上的一个示例攻击交易为例。该攻击在一次“batch swap”(一次执行多笔交易的方式)中,分三个干净利落的阶段展开:
- 设置陷阱:攻击者用 BPT 兑换底层资产,调整其中一个代币(cbETH,即 Coinbase 的质押 ETH 的封装形式)的余额,使其落在精确的“舍入边界”。基本上,他们把某个代币的数量设置为 9,为池子计算上的漏洞埋下伏笔。
- 触发操纵:接着,他们在另一个代币(wstETH,封装的质押 ETH)和 cbETH 之间以精心挑选的 8 来回交换。由于协议在处理缩放和向下舍入(为避免区块链计算精度问题)时的方式,计算得出的某一项变化量(Δx)比应有的小——从约 8.918 降到仅 8。这导致估算出来的输出(Δy)被低估,不变量缩小,进而压低了 BPT 的价格。
- 套现:最后,攻击者逆向交换,把资产放回池中,并以被人为压低的价格抓取 BPT。完成交易——利润到手,同时池子余额恢复正常。
下面是 Phalcon 分析中展示代码运行的可视化:
对于技术读者来说,关键在于利用了 upscale 和 downscale 这类根据小数位调整代币数量的函数中的舍入误差。攻击者用这一点制造了微小差异,最终演变成数百万的收益。
想深入了解完整拆解,可以看 Phalcon 的帖子这里。
这对 Meme 代币和 DeFi 的意义
Balancer 不只是用于蓝筹资产;它也是构建创意池(包括驱动 meme 代币的池)的常用工具。如果某个项目在分叉 Balancer 时没有修补这类问题,就可能让流动性提供者(LP)面临同样的风险。meme 币通常依靠病毒式热度和快速上币来启动交易,这意味着一次漏洞可能在一夜之间抹去社区资金或压垮价格。
这次攻击强调了在区块链领域需要强健的审计和实时监控。像 Phalcon 这样的工具能帮助及早发现威胁,但随着 DeFi 的发展,攻击者手法也在进化。如果你正在构建或投资 meme 代币,请密切关注底层技术栈。
教训与下一步建议
事发之后,Balancer 和受影响的分叉项目很可能正在紧急修补与恢复。对更广泛的社区而言:
- 审计一切:即便是分叉代码也需要重新审查。
- 主动监控:使用像 Phalcon 这样的服务进行威胁检测。
- 分散风险:不要把所有流动性都放在一个池子——在多个协议间分配资金。
保重安全,记住:在加密世界里,知识是最好的防护。如果你对这次漏洞或类似事件有看法,欢迎在下方评论区分享!