当前位置:
首页
>
文章详情

技术分析Balancer被盗1.2亿美元,漏洞出在哪?

来源: 91币圈网 编辑: 厂商投稿 发布时间: 2025-11-04 11:56:59

前言

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:

资产转移 Tx:

技术分析

攻击入口

攻击的入口为 Balancer: Vault 合约,对应的入口函数为 batchSwap 函数,内部调用 onSwap 做代币兑换。

技术分析Balancer被盗1.2亿美元,漏洞出在哪?

从函数参数和限制来看,可以得到几个信息:

1. 攻击者需要通过 Vault 调用这个函数,无法直接调用。

2. 函数内部会调用 _scalingFactors() 获取缩放因子进行缩放操作。

3. 缩放操作集中在 _swapGivenIn 或 _swapGivenOut 中。

攻击模式分析

BPT Price 的计算机制

在 Balancer 的稳定池模型中,BPT 价格是重要的参考依据,能决定用户得到多少 BPT 和每个 BPT 得到多少资产。

技术分析Balancer被盗1.2亿美元,漏洞出在哪?

在池的交换计算中:

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

技术分析Balancer被盗1.2亿美元,漏洞出在哪?

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

精度损失的根源

技术分析Balancer被盗1.2亿美元,漏洞出在哪?

缩放操作:

技术分析Balancer被盗1.2亿美元,漏洞出在哪?

如上在通过 _upscaleArray 时,如果余额很小(如 8-9 wei),mulDown 的向下舍入会导致显著的精度损失。

攻击流程详解

阶段 1:调整到舍入边界

技术分析Balancer被盗1.2亿美元,漏洞出在哪?

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

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

技术分析Balancer被盗1.2亿美元,漏洞出在哪?

如上攻击者通过 Batch Swap 在一个交易中执行多次兑换:

1. 第一次交换:BPT → cbETH(调整余额)

2. 第二次交换:wstETH (8) → cbETH(触发精度损失)

3. 第三次交换:底层资产 → BPT(获利)

这些交换都在同一个 batch swap 交易中,共享相同的余额状态,但每次交换都会调用_upscaleArray 修改 balances 数组。

Callback 机制的缺失

主流程是 Vault 开启的,是怎么导致精度损失累积的呢?答案在 balances 数组的传递机制中。

技术分析Balancer被盗1.2亿美元,漏洞出在哪?

分析如上代码,虽然在每次调用 onSwap 时 Vault 都会创建新的 currentBalances 数组,但在 Batch Swap 中:

1. 第一次交换后,余额被更新(但由于精度损失,更新后的值可能不准确)

2. 第二次交换基于第一次的结果继续计算

3. 精度损失累积,最终导致不变值 D 显著变小

关键问题:

技术分析Balancer被盗1.2亿美元,漏洞出在哪?

总结

Balancer 的这次攻击,总结为下面几个原因:

1. 缩放函数使用向下舍入:_upscaleArray 使用 mulDown 进行缩放,当余额很小时(如 8-9 wei),会产生显著的相对精度损失。

2. 不变值计算对精度敏感:不变值 D 的计算依赖缩放后的 balances 数组,精度损失会直接传递到 D 的计算中,使 D 变小。

3. 缺少不变值变化验证:在交换过程中,没有验证不变值 D 的变化是否在合理范围内,导致攻击者可以反复利用精度损失压低 BPT 价格。

4. Batch Swap 中的精度损失累积:在同一个 batch swap 中,多次交换的精度损失会累积,最终放大为巨大的财务损失。

这两个问题精度损失 + 缺少验证,结合攻击者对边界条件的精心设计,造成了这次损失。

更多资讯
更多+

在过去的 24 小时里,加密市场见证了从宏观经济讨论到特定生态系统发展的多方面动态。主流话题主要集中在 X 平台关闭 InfoFi 项目 API 权限与 Kaito 的链上资金异动、加密与娱乐产业的跨界合作、以及稳定币收益对传统银行模式的冲...

2 亿美元,是今天刚刚公布的数字。由华尔街知名分析师 Tom Lee 担任董事长的 BitMine Immersion Technologies(BMNR)宣布,将投资入股全球顶流网红 MrBeast(野兽先生)背后的控股公司 Beast ...

日本央行官员正日益关注日元疲软对通胀的潜在影响,这一态势可能对未来的加息路径产生实质性干扰。据知情人士向彭博透露,尽管日本央行在即将召开的政策会议上可能维持利率不变,但汇率因素或将促使其重新评估加息时点,甚至可能被迫提前行动。据彭博报道,日...

1 月 16 日,开源 AI 平台 Sentient 公布 SENT 代币经济学。SENT 代币总供应量约为 343 亿枚,其中 44% 将用于社区激励与空投、19.55% 将用于生态系统与研发、2% 将用于公募销售、22% 将分配给团队、...

国际资讯
更多+
Atocha 流通量是多少?
ATO流通量究竟是多少? ATO(Atocha Protocol)是一个基于区块链技术的新兴数字资产。它的流通量是指在市...
06-18
Bad Alien Division(BAD)流通量是多少?
Bad Alien Division(BAD)流通量是多少?Bad Alien Division(BAD)是一个虚拟货币...
06-18
Caitlyn Jenner(JENNER)发行价多少钱?
Caitlyn Jenner发行价多少钱?据悉,Caitlyn Jenner在去年推出了自己的写真集《The Secre...
06-18
Bitro Coin(BTRC)流通量是多少?
Bitro Coin(BTRC)流通量是多少?Bitro Coin(BTRC)是一种数字货币,也是一种区块链资产。它的流...
06-19
Atocha Protocol(ATO)流通量是多少?
ATO流通量究竟是多少? ATO(Atocha Protocol)是一个基于区块链技术的新兴数字资产。它的流通量是......
06-18
热门币种
更多+
-0.17%
-2.1%
-7.93%
+3.47%
-1.18%
-28.84%
-1.16%
-7.46%
-8.39%
-9.01%
+1.87%
热门文章
更多+
1
跨界联合:Tom Lee投资2亿美元,牵手全球顶流野兽先生
2 亿美元,是今天刚刚公布的数字。由华尔街知名分析师 Tom Lee 担任董事长的 BitMine Immersion ...
2
日元疲软触动通胀红线:日本央行或被迫提前加息
日本央行官员正日益关注日元疲软对通胀的潜在影响,这一态势可能对未来的加息路径产生实质性干扰。据知情人士向彭博透露,尽管日...
3
Sentient公布代币经济学,市场将如何定价?
1 月 16 日,开源 AI 平台 Sentient 公布 SENT 代币经济学。SENT 代币总供应量约为 343 亿...
4
传言Coinbase将收购Farcaster,依然是一场Acquid-hire
硅谷有一个不成文的潜规则,当一家科技巨头突然对一家创业公司表现出浓厚兴趣,尤其是当这家巨头明明自己有类似的产品时,这通常...
5
事实核查:芝加哥大学炒币究竟亏了多少钱?
近日界面新闻借着赵鼎新老师《社会与政治运动讲义》第三版出版的机会(本书第二版真是好书),采访了赵老师。赵老师在访谈中说道...
6
盈透证券接入USDC,美国银行质疑稳定币,海外有哪些热度?
在过去的 24 小时里,加密市场见证了从宏观经济讨论到特定生态系统发展的多方面动态。主流话题主要集中在 X 平台关闭 I...