屋漏偏逢连夜雨,黑客专挑下跌时。

在近期整个加密市场行情低迷的环境下,老牌 DeFi 协议再遭重创。

11 月 3 日,链上数据显示,协议 Balancer 疑似遭到黑客攻击。约 7,090 万美元 的资产被转移至新钱包,其中包括 6,850 枚 osETH、6,590 枚 WETH 及 4,260 枚 wstETH。

随后据 Lookonchain 监测相关钱包地址,协议遭受攻击的总损失金额已升至 1.166 亿美元。


而 Balancer 团队在事件后表示:

「已发现可能影响 Balancer v2 池的漏洞攻击,其工程和安全团队正在高优先级调查此事件,将在获取更多信息后分享已验证的更新和后续措施。」

此外,官方也尝公开表示愿意支付被盗资产的 20% 作为白帽奖励以追回资产,48 小时内有效。

回应的很及时,但也很官方。

不过,如果你是个 DeFi 老玩家,肯定不会对「Balancer 被黑」这个标题感到诧异,而是有一种诡异的既视感。

作为一个成立于 2020 年的老牌 DeFi 协议,Balancer 5 年来甚至出现了 6 次安全事故,平均每一年都会上演一次黑客光顾的保留节目,而这一次只是其中被盗金额最大的。

回看历史,当市场行情让交易难度变成地狱级,很有可能存在 DeFi 里生息套利也并不安全。


2020 年 6 月:通缩代币漏洞,损失约 52 万美元

2020 年 3 月,Balancer 带着「灵活的自动化做市商」的创新理念进入 DeFi 世界。然而,仅仅三个月后,这个雄心勃勃的协议就迎来了第一个噩梦。

攻击者利用了协议对通缩代币(Deflationary Token)处理不当的漏洞,造成了约 52 万美金的损失。

大体的原理是,当时一个叫做 STA 的代币每次转账会自动销毁 1% 作为手续费。

攻击者从 dYdX 闪电贷借出 10.4 万 ETH,然后在 STA 和 ETH 之间反复交易 24 次。由于 Balancer 没有正确计算每次转账后的实际余额,池子里的 STA 最终被耗尽至仅剩 1 wei。随后攻击者利用价格严重失衡,用微量 STA 换走了大量 ETH、WBTC、LINK 和 SNX。

2023 年 3 月: Euler 事件躺枪,损失约 1190 万美元

这次 Balancer 是间接受害者。

Euler Finance 遭受 1.97 亿美元闪电贷攻击,Balancer 的 bb-e-USD 池因持有 Euler 的 eToken 而受到牵连。

当 Euler 被攻击时,约 1190 万美元从 Balancer 的 bb-e-USD 池被转移到 Euler,占该池 TVL 的 65%。虽然 Balancer 紧急暂停了相关池子,但损失已经造成而无法挽回。

2023 年 8 月:Balancer V2 池精度漏洞,损失约 210 万美元

这次攻击其实之前有预兆。当年 8 月 22 日,Balancer 主动披露漏洞并警告用户撤资,但 5 天后攻击还是发生了。

漏洞涉及 V2 Boosted Pool 的舍入误差(rounding error)。攻击者通过精确操纵,使得 BPT(Balancer Pool Token)的供应量计算出现偏差,从而以不正当的汇率提取池中资产。攻击通过多笔闪电贷交易完成,不同安全公司对损失的估算从 97.9 万到 210 万美元不等。

2023 年 9 月:DNS 劫持攻击,损失约 24 万美元

这是一次社会工程攻击,目标不是智能合约而是传统互联网基础设施。

黑客通过社会工程手段攻破域名注册商 EuroDNS,劫持 balancer.fi 域名。用户被重定向到钓鱼网站,该网站使用 Angel Drainer 恶意合约诱骗用户授权转账。

攻击者再将所盗赃款通过 Tornado Cash 进行洗白。

虽然这事本身并不是 Balancer 的锅,但树大招风,利用该协议的品牌进行钓鱼,也让人防不胜防。

2024 年 6 月:Velocore 被黑,损失约 680 万美元

虽然 Velocore 是独立项目,它被盗本来和 Balancer 没啥关系。但作为 Balancer 的分叉,Velocore 使用了相同的 CPMM(恒定乘积做市商)池设计,某种程度上可谓一脉相承,更像是盗在别处,但机制在 Balancer。

这次的始末,大概是攻击者利用 Velocore 的 Balancer 式 CPMM 池合约中的溢出漏洞,通过操纵费用乘数(feeMultiplier)使其超过 100%,导致计算错误。

攻击者最终通过闪电贷配合精心构造的提取操作,盗取了约 680 万美元。

2025 年 11 月:最新攻击,损失过亿

这次攻击的技术原理已经初步明确。根据安全研究员分析,漏洞位于 Balancer V2 协议里的 manageUserBalance 函数的访问控制检查中,而这也对应着用户权限的检查。

根据安全监控机构 Defimon Alerts 和 Decurity 的分析,系统在验证 Balancer V2 的提款权限时,本应检查调用者是否是账户的真正所有者,但代码错误地检查了 msg.sender(实际调用者)是否等于用户自己提供的 op.sender 参数。

由于 op.sender 是用户可控的输入参数,攻击者可以随意伪造身份,绕过权限验证,执行 WITHDRAW_INTERNAL(内部提款)操作。

说人话就是,这个漏洞让任何人都可以冒充任何账户的所有者,直接提取内部余额。这种基础的访问控制错误更像是低级失误,在一个运行 5 年的成熟协议中出现,让人非常诧异。

黑客光顾史读后谈

我们能从这段「黑客光顾史」里学到什么?

笔者的感受是,加密世界里的 DeFi 协议,更像是「可远观而不可亵玩」,远看风平浪静,而如果真要细细研究,有很多叙事之外的技术债恐怕需要偿还。

比如 Balancer 这个老牌 DeFi 协议,仔细看它的创新之一,那自然绕不过允许最多 8 种代币的自定义权重而组成混合池。

相比 Uniswap 的简洁设计,Balancer 的复杂性呈指数级增长。

每增加一种代币,池子的状态空间就会急剧膨胀。当你试图在一个池子里平衡 8 种不同代币的价格、权重和流动性时,攻击面也随之扩大。2020 年的通缩代币攻击和 2023 年的舍入误差漏洞,本质上都是复杂性带来的边界条件处理不当。

更要命的是,Balancer 选择了快速迭代的发展路径。从 V1 到 V2,再到各种 Boosted Pool,每次升级都在旧代码上叠加新功能。这种「技术债务」的累积,让代码库变成了一个脆弱的积木塔;

比如最近这次因为权限问题而导致的攻击,如此基础的设计错误不应该是一个运行 5 年的协议所产生的问题,或许某种程度上也说明项目的代码维护已经失控。

又或许,在叙事、利润和情绪大于技术的现在,底层代码是否有漏洞,已经不重要了。

Balancer 当然也不会是最后一个,你永远都不知道因为 DeFi 各种可组合性所堆叠的黑天鹅到底何时到来。DeFi 世界里各种复杂的依赖网络,让风险评估变得几乎不可能。

即使你信任 Balancer 的代码,你能信任它所有的集成与合作伙伴吗?

对于旁观者,DeFi 是一场新奇的社会实验;对于参与者,DeFi 被盗是一次昂贵的教训;对于整个行业,DeFi 健全是走向成熟必须付出的学费。

只是这个学费,希望不要太贵了。