技术分析Balancer被盗1.2亿美元,漏洞出在哪?
原文标题:《Balancer 被盗$120M 漏洞技术分析》
原文来源:ExVul Security
前言
2025 年 11 月 3 日,Balancer 协议在 Arbitrum、Ethereum 等多条公链遭受黑客攻击,造成 1.2 亿美元资产损失,攻击核心源于精度损失与不变值(Invariant)操控的双重漏洞。
Chainlink 的基础设施长期保持 Web3 领域的最高标准,因此成为 X Layer 致力于为开发者提供机构级工具的自然选择。
本次攻击的关键问题出在协议处理小额交易的逻辑上。当用户进行小金额交换时,协议会调用_upscaleArray 函数,该函数使用 mulDown 进行数值向下舍入。一旦交易中的余额与输入金额同时处于特定舍入边界(例如 8-9 wei 区间),就会产生明显的相对精度误差。
精度误差传递到协议的不变值 D 的计算过程中,导致 D 值被异常缩小。而 D 值的变动会直接拉低 Balancer 协议中的 BPT(Balancer Pool Token)价格,黑客利用这一被压低的 BPT 价格,通过预先设计的交易路径完成套利,最终造成巨额资产损失。
漏洞利用 Tx:
https://etherscan.io/tx/0x6ed07db1a9fe5c0794d44cd36081d6a6df103fab868cdd75d581e3bd23bc9742
资产转移 Tx:
https://etherscan.io/tx/0xd155207261712c35fa3d472ed1e51bfcd816e616dd4f517fa5959836f5b48569
技术分析
攻击入口
攻击的入口为 Balancer: Vault 合约,对应的入口函数为 batchSwap 函数,内部调用 onSwap 做代币兑换。

从函数参数和限制来看,可以得到几个信息:
1. 攻击者需要通过 Vault 调用这个函数,无法直接调用。
2. 函数内部会调用 _scalingFactors() 获取缩放因子进行缩放操作。
3. 缩放操作集中在 _swapGivenIn 或 _swapGivenOut 中。
攻击模式分析
BPT Price 的计算机制
在 Balancer 的稳定池模型中,BPT 价格是重要的参考依据,能决定用户得到多少 BPT 和每个 BPT 得到多少资产。

在池的交换计算中:

其中充当 BPT 价格基准的部分为 不变值 D,也就是操控 BPT 价格需要操控 D。往下分析 D 的计算过程:

上述代码中,D 的计算过程依赖缩放后的 balances 数组。也就是说需要有一个操作来改变这些 balances 的精度,导致 D 计算错误。
精度损失的根源

缩放操作:

如上在通过 _upscaleArray 时,如果余额很小(如 8-9 wei),mulDown 的向下舍入会导致显著的精度损失。
攻击流程详解
阶段 1:调整到舍入边界

阶段 2:触发精度损失(核心漏洞)

阶段 3:利用被压低的 BPT 价格获利

如上攻击者通过 Batch Swap 在一个交易中执行多次兑换:
1. 第一次交换:BPT → cbETH(调整余额)
2. 第二次交换:wstETH (8) → cbETH(触发精度损失)
3. 第三次交换:底层资产 → BPT(获利)
这些交换都在同一个 batch swap 交易中,共享相同的余额状态,但每次交换都会调用_upscaleArray 修改 balances 数组。
Callback 机制的缺失
主流程是 Vault 开启的,是怎么导致精度损失累积的呢?答案在 balances 数组的传递机制中。

分析如上代码,虽然在每次调用 onSwap 时 Vault 都会创建新的 currentBalances 数组,但在 Batch Swap 中:
1. 第一次交换后,余额被更新(但由于精度损失,更新后的值可能不准确)
2. 第二次交换基于第一次的结果继续计算
3. 精度损失累积,最终导致不变值 D 显著变小
关键问题:

总结
Balancer 的这次攻击,总结为下面几个原因:
1. 缩放函数使用向下舍入:_upscaleArray 使用 mulDown 进行缩放,当余额很小时(如 8-9 wei),会产生显著的相对精度损失。
2. 不变值计算对精度敏感:不变值 D 的计算依赖缩放后的 balances 数组,精度损失会直接传递到 D 的计算中,使 D 变小。
3. 缺少不变值变化验证:在交换过程中,没有验证不变值 D 的变化是否在合理范围内,导致攻击者可以反复利用精度损失压低 BPT 价格。
4. Batch Swap 中的精度损失累积:在同一个 batch swap 中,多次交换的精度损失会累积,最终放大为巨大的财务损失。
这两个问题精度损失 + 缺少验证,结合攻击者对边界条件的精心设计,造成了这次损失。
本文来自投稿,不代表 BlockBeats 观点。
猜你喜欢

量子威胁面前,比特币核心开发者选择了无视

别只盯着交易量,教你看懂永续合约的「真假繁荣」

华尔街 2.0:Ondo Finance 达成银行和代币化之间的开创性联盟
要点:Ondo Finance、贝莱德和白宫之间的联盟有望通过使用区块链技术将股票代币化来彻底改变金融市场……

联合国教科文组织警告称,到 2028 年,人工智能的颠覆性发展可能会使创作者的收入减少近 25%
关键要点:联合国教科文组织警告称,人工智能生成的内容可能会导致音乐创作者的收入损失高达24%……

全民转向AI,加密并不是为人类设计的?
WEEX AI 交易黑客马拉松:关于人工智能交易和预测市场未来的 3 个关键见解
深入了解 WEEX AI 交易黑客马拉松 AMA 的关键要点。从平台构建者、预测市场专家和获奖交易员那里获得关于人工智能交易未来、如何交易社交情绪以及为什么人机协作是终极优势的 3 个关键见解。
超越战场:PS5大奖、1,000 USDT空投及来自伊斯坦布尔的WEEX人工智能交易核心洞察
获取人工智能交易前沿的关键洞察:对伊斯坦布尔实盘对决的分析揭示了人类直觉胜过人工智能的时刻,以及算法领先指数较高的领域。探索协作交易的未来。

2026春节,巨头为何豪掷45亿疯狂补贴AI支付?

彭博社:a16z何以成为美国AI政策背后的关键力量?
盈利超1.5万美元:WEEX黑客松预赛优胜者领跑加密货币市场的4大AI交易秘诀
WEEX黑客松顶尖AI交易策略如何在加密货币市场盈利超1.5万美元:震荡行情下ETH、BTC交易、市场结构分析及风险管理的4条实用准则。

比特币带头大哥的镰刀,一场纳斯达克抢劫实录

ARK Invest:稳定币正在构建下一代货币体系

美国就业报告:一月非农就业人数上升至13万,比特币下跌
要点 美国一月新增就业人数13万,超过预期,表明劳动力市场正在复苏。比特币...

从房地产到互联网,下一个十年的财富密码藏在哪里?

Fintech vs. DeFi:哪一种金融体系更具竞争力?

以太坊再定价:从Rollup-Centric到「安全性结算层」

别再拿黄金说事了,比特币不是避险资产

Aave创始人:DeFi借贷市场的秘密是什么?
量子威胁面前,比特币核心开发者选择了无视
别只盯着交易量,教你看懂永续合约的「真假繁荣」
华尔街 2.0:Ondo Finance 达成银行和代币化之间的开创性联盟
要点:Ondo Finance、贝莱德和白宫之间的联盟有望通过使用区块链技术将股票代币化来彻底改变金融市场……
联合国教科文组织警告称,到 2028 年,人工智能的颠覆性发展可能会使创作者的收入减少近 25%
关键要点:联合国教科文组织警告称,人工智能生成的内容可能会导致音乐创作者的收入损失高达24%……
全民转向AI,加密并不是为人类设计的?
WEEX AI 交易黑客马拉松:关于人工智能交易和预测市场未来的 3 个关键见解
深入了解 WEEX AI 交易黑客马拉松 AMA 的关键要点。从平台构建者、预测市场专家和获奖交易员那里获得关于人工智能交易未来、如何交易社交情绪以及为什么人机协作是终极优势的 3 个关键见解。