币安黑客事件 最有意思的技术细节,来自安全公司 Blockaid:
攻击者其实不知道 Binance 14 热钱包当时的实时 nonce。于是他把 50 个 EIP-7702 授权签名(nonce 18914775–18914824)一次性塞进一笔交易里碰运气,只中了 1 个。
为什么要这么干?7702 授权只在上链那一刻的当前 nonce 下有效,而热钱包每秒都在发交易,nonce 一直在变。攻击者不知道上链瞬间会轮到哪个,就把连续 50 个全签好一起提交,赌一个正好撞上。
中了之后,钱包被升级成一个“清扫合约”:sweep 函数抽走所有 ERC-20 和 ETH,只留 1 枚 ETH 作 gas。更狠的是,委托一直生效,之后再打进这个地址的钱照样能被偷,光转走余额不够,必须先废掉委托。