今日凌晨,币安(Binance)热钱包遭遇了加密货币历史上规模最大的一起安全事故。在不到一小时的时间内,横跨 Ethereum、Bitcoin、Tron 以及 Arbitrum、Avalanche、Optimism、Base 等多条网络的币安热钱包同时失守,累计流出资金已高达约 60 亿美元(社区统计,暂无官方口径)。
关于被盗资金的流向、业界的追踪堵截(尤其是 Tether 与 Circle 的及时冻结),以及间接遭牵涉的链上协议(比如 Aave),市场已有大量实时追踪。本文将剥离繁杂的资金盘点,直接聚焦最核心的疑问 —— 固若金汤的币安热钱包,究竟是怎么被攻破的?
综合各家安全机构及多位链上安全研究人员的逆向还原,这并非一起单纯的链上智能合约漏洞,大概率是一场针对交易所底层签名基础设施(HSM/MPC 签名机)的精准渗透,并配合以太坊 EIP-7702 机制实现“单区块极速清扫”的教科书级攻击。
核心原因:底层签名机沦陷,黑客具备“按需签名”能力
事件发生后,由于核心被盗钱包 Binance 14 是通过以太坊 Pectra 升级引入的 EIP-7702 机制被瞬间掏空的,社区一度出现“EIP-7702 存在漏洞”的误读。
但从密码学常识来看,EIP-7702 允许普通钱包(EOA)临时挂载智能合约代码的前提,是必须由该钱包自己的私钥完成合法签名。因此,EIP-7702 只是黑客用来加速提款的“作案工具”,而非漏洞本身。
顺着“谁完成了签名”这一核心线索,出事的原因无非指向两种可能 —— 裸私钥直接泄露,或是签名系统(基础设施)被操纵。
结合目前的链上特征来看,签名系统被操纵几乎是唯一合理的解释。原因在于,像币安这种级别的交易所,热钱包绝不可能使用单点明文的“裸私钥”,其底层标准架构必然是 HSM(硬件安全模块)+ MPC(多方安全计算)+ 策略引擎(Policy Engine)——私钥分片锁在硬件黑盒里,任何人(包括内部运维)都拿不到完整明文,只能由前端业务系统通过“策略引擎”校验风控规则后,向签名机请求产出签名。
链上有两个铁证直接指向了“签名系统被操纵”:
- 铁证一(50 连发 Nonce 盲狙)攻击者在攻破 Binance 14 时,一次性提交了 50 个覆盖连续 Nonce 的有效 EIP-7702 签名。如果攻击者直接偷走了明文私钥,他完全可以在本地精准控制交易,根本不需要用这种“撞大运”的方式去猜 Nonce。这说明攻击者并没有拿到私钥本身,而是攻破了策略引擎或签名接口,具备了让币安签名系统“按需吐出合法签名”(Sign on demand)的能力。
- 铁证二(多链异构钱包同步失守): 在 Binance 14 被清空仅 24 秒后,独立热钱包 Binance 16 用自己的密钥签出了 2.8 万枚 ETH;同一时间,比特币(18270.2 BTC)与波场(6.12 亿 USDT)等不同签名算法的热钱包同步发起转账。唯有打穿顶层的统一调度,才能同时指挥多条链的 HSM/MPC 签名机一起提现。
链上时间线还原:长达 37 小时的潜伏与 700 万美元“实盘彩排”
链上数据显示,攻击者在控制签名链路后并未打草惊蛇,而是在动手前进行了长达一天半的精密部署与实盘演练。
- 10 月 28 日 07:39(UTC),准备弹药: 攻击者主地址(0x7c86...5ca0)从 Tornado Cash 的 0.1 ETH 混币池中分三次提取了初始 Gas 资金(首笔到账 0.0983 ETH),此时距离“总攻”还有整整 37 小时。
- 10 月 29 日 02:28 – 14:19(UTC),事先彩排: 攻击者先是在以太坊上部署了初代清扫合约 Sweeper A;随后在 13:51 创建了 2 个测试钱包,甚至豪掷 700 万美元稳定币充入其中进行 EIP-7702 委托演练,并在半小时后成功测试将其一键清扫。
- 10 月 29 日 15:59 – 18:20(UTC),终版定型:攻击者部署了最终版恶意清扫合约 Sweeper B,紧接着创建第 3 个测试钱包注入 1.01 ETH,并在 16:30 完成了对 2.54 USDT 的清扫测试;18:20,所有测试资金被悉数归集回资金池,战前演练全部完成。

致命一击:50 连发 Nonce“盲狙”与 EIP-7702 一键搬空
北京时间今日凌晨 4:20(20:20 UTC)左右,黑客正式拉响总攻信号,并在短短数分钟内直接卷走了总价值数十亿美元的加密资产。
- 20:20:06(UTC): 比特币热钱包率先异动,18270.2 枚 BTC 被单笔转出;
- 20:20:59(UTC): 以太坊主网迎来了整场攻击中最核心的技术操作 —— 50 连发 Nonce 盲狙;
- 20:22:45(UTC): 波场热钱包单笔转出 6.127 亿枚 USDT;
- 20:24:23(UTC):黑客触发 Binance 14 的 sweep 函数,单笔交易瞬间将 167464.25 枚 ETH、16.15 亿枚 USDT 以及另外 62 种代币抽干,打入黑客收款地址 0x5227…2f8c(Etherscan 标记为 Exploiter 2);
- 20:24:47(UTC):Binance 14 被盗仅仅 24 秒后,币安另一个独立热钱包 Binance 16 在未使用 EIP-7702 的情况下,直接用自己的私钥签署了一笔普通转账,将 28005.6 枚 ETH 打入了同一个黑客收款地址(0x5227…2f8c),15 分钟后(20:39 UTC),黑客将这两个钱包流出的共计 195,470 枚 ETH 打包转走;
- 20:32 – 20:33(UTC): Arbitrum、Avalanche 等其他链相继被洗劫;
- 20:41(UTC): 另一个持有 7.8 亿枚 USDC 的智能合约钱包 Binance 34 失守(随后在 20:59 再次流出 4300 万 USDC)。由于 Binance 14 恰好是 Binance 34 的管理员(Owner),黑客在通过 EIP-7702 寄生控制 Binance 14 后,直接以管理员身份顺手抽干了关联金库……
为什么黑客要在以太坊主网用 EIP-7702?
像 Binance 14 这样的主力热钱包,内部存放着数十种 ERC-20 代币。如果黑客像在比特币上那样一笔笔发起普通转账,不仅需要向签名系统请求几十次签名,更会在第一笔大额异动后的几秒内,触发交易所的异常流向监控与自动熔断机制。
而通过 EIP-7702 将 Binance 14 原地升级为恶意合约 Sweeper B,黑客只需调用一次合约内置的函数(硬编码仅允许黑客地址调用),就能在单笔交易、同一个区块内,将所有代币和 ETH 全部打包抽干,彻底抹平风控系统的反应时间窗口。
为什么要塞入 50 个连续签名?
EIP-7702 授权有一个极其严苛的限制 —— 授权签名中包含的 Nonce,必须与交易上链瞬间该钱包的实时 Nonce 完全一致。
由于黑客大概率只是操纵了后端的签名系统接口,此时的 Binance 14 仍在高频处理全球用户的正常提现,Nonce 每秒都在跳动。黑客从签名机拿到签名、再广播到链上被打包,中间存在数秒的网络与队列延迟,根本无法预知上链那一刻 Nonce 会停在哪个数字。
为了克服这一盲区,黑客利用被攻破的签名系统,针对当时的 Nonce 区间,一次性逼迫签名机产出了 50 个连续递增的 EIP-7702 授权签名(Nonce 从 18914775 到 18914824),并将它们全部塞进同一笔 Type-4 交易中发射上链。以太坊底层在执行时自动丢弃了 49 个无效签名,唯独卡在实时窗口上的那 1 个 Nonce 精准命中生效。
更致命的是,EIP-7702 的委托一旦生效便会持久存在。在币安彻底切断签名机并重新发送零地址授权将其覆盖之前,任何后续充入 Binance 14 的资金都会被继续抽走(直至 21:04 UTC 仍有零星余额被持续清扫)。
未完待续
截至发文,针对此次安全事件的具体入侵路径以及链上资金的后续追踪、冻结进展仍在继续发酵,Odaily 星球日报将持续关注并将第一时间带来最新报道。

