【英文长推】深入解读 Balancer V2 被攻击事件:漏洞机理、攻击步骤与教训
快链头条 2025-11-06 04:59:17
安全技术技术
2025 年 11 月 3 日,Balancer V2 的 Composable Stable Pool,以及多个链上基于其 Fork 的项目,遭遇了一次跨链协调攻击,造成总损失超过 1.25 亿美元。BlockSec 在第一时间发出预警,并随后发布了初步分析。这是一场高度复杂的攻击。我们的调查显示,根本原因来自不变式计算中的精度损失,通过精度损失触发价格操纵,从而影响了 BPT(Balancer Pool Token)价格。攻击者利用单次 batchSwap 操作,从特定的稳定池中获利。受影响的组件是 Balancer V2 的 Composable Stable Pool。此类池专为预期维持接近 1:1 兑换比率的资产而设计,能够以最小滑点进行大额交易,大幅提升同类或关联资产的资本效率。每个池都有自己的 BPT,其价格可近似表达为:BPT 价格 = D /totalSupply,其中 D 为稳定数学中的不变式,代表池子的虚拟总价值。从公式可以看出,如果 D 在数学层面被变小(即使真实资金未损失),BPT 的价格就会表现得更低。Balancer V2 提供 batchSwap () 函数,可在 Vault 内进行多跳 Swap,SwapRequest 中有 GIVEN_IN 与 GIVEN_OUT 两种模式。在 GIVEN_OUT 模式下,调用方指定期望输出金额,池子负责计算所需输入金额。在 Stable 池中,当计算所需输入量 amountIn 时,需要根据不变式公式求解多项式方程,这些计算会统一进行 Upscaling 和 Downscaling。理论上,两者为相反操作,但实际实现存在方向不同的舍入:上调仅使用向下取整(mulDown),下调却可能向上或向下取整(divUp /divDown)。正是这一不一致,为攻击留下了空间。
漏洞的根源在于 BaseGeneralPool._swapGivenOut () 中对 swapRequest.amount 进行 Upscaling 时采用了向下取整。被向下取整后的数值被当作 amountOut 用于 _onSwapGivenOut () 的输入,导致最终计算出的 amountIn 小于真实需求量,从而违反了舍入应当有利于协议的常规设计原则。对于 (wstETH /rETH/cbETH) 这类池而言,攻击者可以用更少数量的输入资产兑换出更多另一种资产,降低不变式 D,从而压低 BPT 价格。攻击者执行了双阶段攻击。第一阶段在单笔交易中完成核心攻击逻辑,但不立即获利;第二阶段才通过单独交易取出利润。第一阶段又分为参数计算与 batch swap 两步。以 Arbitrum 链上的攻击交易为例(TX: 0x7da32e…55773),攻击者先获取池内参数,包括 scaling factors、A(放大系数)、BPT 汇率、swap fee 等,然后计算 trickAmt,并通过部署辅助合约进行模拟。攻击者使用离线计算与链上模拟相结合的方式精准调试下一步 swap 的参数,包含迭代次数与每次的输入输出数值。迭代中执行三步 swap:在第一步将目标 token 数量推到 trickAmt + 1;第二步继续 swap 出目标 token,此时触发 _upscale () 的向下取整;第三步则反向 swap,将池内余额按 “去掉最高两位小数” 向下截断后再交换回去。例如 324,816 → 320,000。部分情况下,由于 StableSwap 数学求解使用 Newton–Raphson 方法,会失败,攻击者准备了两次 fallback,使用原值的 9/10 重试。
攻击发生后,Balancer 由于部分机制无法暂停,导致攻击影响被放大,随后出现多条链上的跟风与复制攻击,总损失超过 1.25 亿美元。此事件暴露出去中心化协议在四个领域的关键问题:不一致的舍入机制、攻击者不断进化的手法、无法暂停导致损失扩大、初始化和运维状态缺乏实时监控。上调仅允许向下取整,而下调却允许双向取整,这种不对称性在极端构造参数下会积累为可被利用的精度损失。本应永远有利于协议的舍入方向,在这种情况下反过来损害了协议方利益。攻击者采用双阶段手法,第一阶段执行攻击但账面无利润,第二阶段再单独提现,规避链上监测模型。攻击的每一步都结合离链与链上模拟,辅助合约甚至复用了 Balancer 的 StableMath 实现,连错误信息都保持一致。攻击发生后,多链跟进,许多 Fork 项目也受影响,说明只要稳定数学与舍入逻辑一致,漏洞可跨生态传播。事件说明,DeFi 协议需要更高精度的数学运算、更严格的舍入验证与防可疑路径模拟机制,以及在异常情况下的应急暂停能力。【原文为英文】\n原文链接
快链头条登载此文本着传递更多信息的缘由,并不代表赞同其观点或证实其描述。
文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。
投资有风险,入市须谨慎。本资讯不作为投资理财建议。
推荐活动
7*24小时快讯
YouTube澄清新政策:并未禁止所有加密货币内容,仅针对博彩
11-06 16:15(3分钟前)
达利欧:美联储正在刺激泡沫,将政府债务货币化
11-06 16:05(13分钟前)
Binance Alpha将上线Folks Finance(FOLKS),一阶段空投门槛226分
11-06 15:50(28分钟前)
Hyperliquid上ZEC合约持仓榜一单币浮亏1080万美元
11-06 15:41(38分钟前)
Intuition原生代币TRUST登陆Binance、Coinbase等多家交易平台
11-06 15:31(1小时前)
SAPIEN及GIGGLE过去4小时爆仓额仅次于BTC及ETH,SAPIEN短时多空双爆
11-06 15:27(1小时前)
Arthur Hayes再次喊单ZEC,看涨至1000美元
11-06 15:22(1小时前)
Binance Alpha将上线Belong(LONG),一阶段空投门槛225分
11-06 15:15(1小时前)
热门资讯
风险提示
根据银保监会等五部门于 2018 年 8月发布《关于防范以「虚拟货币」「区块链」名义进行非法集资的风险提示》的文件, 请广大公众理性看待区块链,不要盲目相信天花乱坠的承诺,树立正确的货币观念和投资理念,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。