慢雾刚刚披露一起 Balancer V1 老池子被攻击的事件,损失规模约 23.4 万美元。
有意思的是这次并不是常见的签名伪造或重入,而是 V1 BPool 合约里 joinswapPoolAmountOut 的精度处理留有口子。攻击者先把池子里 $WBTC 的储备压到几乎为 0,然后用大约 1 聪的 WBTC 去 join 铸出巨量的 $BPT,接着按 BPT 兑换的比例批量退出,把池中的 DPI、USDC、WETH、WBTC 一并抽走。
几个值得注意的点:
1. V1 是 2022 年就宣布停用的旧版本,但资金还躺在链上,安全维护几乎为零。
2. 精度类 bug 在 Curve、Balancer 这类"权重型 AMM"里属于经典陷阱,输入极小数值时容易触发整数截断。
3. 只要池子还挂着,任何"看起来没人碰的旧合约"都可能被自动化扫描脚本挖出来。
对持币人的提醒:老版本协议里的 LP 仓位要么尽快撤出,要么确认合约已迁移且代码经过审计。不要只看 TVL 高就放心。
对开发者的提醒:join/swap 相关函数务必用固定精度或先放大再四舍五入,测试里要把输入压到 1 单位这种边界值跑一遍。
#DeFi #Security
有意思的是这次并不是常见的签名伪造或重入,而是 V1 BPool 合约里 joinswapPoolAmountOut 的精度处理留有口子。攻击者先把池子里 $WBTC 的储备压到几乎为 0,然后用大约 1 聪的 WBTC 去 join 铸出巨量的 $BPT,接着按 BPT 兑换的比例批量退出,把池中的 DPI、USDC、WETH、WBTC 一并抽走。
几个值得注意的点:
1. V1 是 2022 年就宣布停用的旧版本,但资金还躺在链上,安全维护几乎为零。
2. 精度类 bug 在 Curve、Balancer 这类"权重型 AMM"里属于经典陷阱,输入极小数值时容易触发整数截断。
3. 只要池子还挂着,任何"看起来没人碰的旧合约"都可能被自动化扫描脚本挖出来。
对持币人的提醒:老版本协议里的 LP 仓位要么尽快撤出,要么确认合约已迁移且代码经过审计。不要只看 TVL 高就放心。
对开发者的提醒:join/swap 相关函数务必用固定精度或先放大再四舍五入,测试里要把输入压到 1 单位这种边界值跑一遍。
#DeFi #Security