热门话题
#
Bonk 生态迷因币展现强韧势头
#
有消息称 Pump.fun 计划 40 亿估值发币,引发市场猜测
#
Solana 新代币发射平台 Boop.Fun 风头正劲
首先,我对@Balancer团队以及所有受到此次攻击影响的人表示最深切的同情。
当发生如此重大的DeFi黑客事件时,尤其是来自一个老牌协议,真的是一个艰难的日子。比起被盗资金的美元成本,这确实伤害了整个加密货币和DeFi的形象,并使我们的行业倒退了几个月。
事实是,Solidity作为一种语言实在太不安全,无法真正承载未来的金融。Solidity的表面面积太大,容易受到攻击,开发者依赖手动检查从访问控制到精确数学的所有内容,这正是像Move这样的资产优先语言最初被发明的原因。
经过一些调查,Balancer是这样被黑客攻击的:攻击者利用稳定池交换中的舍入错误来扭曲池的不变性,这是一个表示平衡流动性的关键数学常数。他们首先通过闪电贷交换BPT(Balancer池代币)与基础资产如cbETH,推动余额达到精确的舍入边界(例如,缩放到9)。然后,他们在资产之间进行交换,如wstETH与cbETH,使用精心设计的数量(例如,由于定点缩放,约8.918舍入到8),低估了储备变化并人为地降低了不变性(D)。
这使得BPT价格暴跌(D / totalSupply),让攻击者以低价反向交换铸造过量的BPT,销毁它以“正常”价格提取基础资产,并口袋差额,基本上是从流动性提供者那里偷取。利润在Vault的内部余额中累积,并通过manageUserBalance以WITHDRAW_INTERNAL的方式兑现,无需直接的授权绕过,因为数学缺陷补贴了盗窃。这是Solidity手动定点库中的精度损失,导致了巨大的资金流失。
Move将如何完全绕过此黑客攻击呢?它是在核心中内置安全性:资产被视为具有线性类型的资源,强制严格的保护(没有意外的重复、丢失或损失),数学使用精确的u64/u128整数,内置溢出中止,没有浮点数,没有在复杂计算中可利用的舍入失误。
在基于Move的DEX中,交换函数将通过虚拟机原子性地检查和更新不变性,在任何不平衡时中止,例如:
public entry fun swap(pool: &mut LiquidityPool, in: Coin, out_amt: u64): Coin {
assert!(coin::value(&in) >= calculate_required_in(pool, out_amt), E_INSUFFICIENT_INPUT);
coin::merge(&mut pool.coin_x_reserve, in);
let out = coin::extract(&mut pool.coin_y_reserve, out_amt);
assert!(check_invariant(pool), E_INVARIANT_VIOLATION);
out
}
此外,原子交易消除了重入风险。这就是为什么Move生态系统的漏洞远少于EVM。
是时候让DeFi建设者拥抱像Move这样的语言,从根本上优先考虑安全性,这样我们才能最终构建一个没有可预防的挫折的韧性金融未来。
热门
排行
收藏

