北京时间 2026 年 10 月 30 日,04:24。
链上记录里,钱是从 0x28C6…1d60 出去的。这个地址叫 Binance 14,币安最大的以太坊热钱包之一,一天要发出上千笔提币。这一笔转走了 167,464 枚 ETH、16.15 亿 USDT,外加 60 多种代币,按当时价格约 25 亿美元。钱包里最后剩下 1 枚 ETH。
手续费 0.0004 ETH,不到 1 美元。
三分钟前,04:21,有人向它提交了一笔 EIP-7702 类型交易,里面塞着 50 份授权,nonce 从 18,914,775 排到 18,914,824。49 份无效,1 份命中。命中意味着:从这一秒起,任何对 Binance 14 的调用,执行的都是攻击者在前一晚 23:59 部署的那份合约——一个未验证的、只有一个 sweep 函数的清扫器。
于是 Binance 14 不再是一只钱包。它成了一个外壳,里面装着别人的程序。
到 08:06 那份委托还在。3 小时 45 分钟,没有人撤销它。
而「撤销」这件事,只需要同一把钥匙再签一次名。那天早上 06:55,币安还在用这把钥匙,把没被扫走的零碎代币转回自己的钱包。
EIP-7702 是不是攻击主因
EIP-7702 逻辑是这样的:让一个普通地址(EOA)可以租用一份智能合约的代码,地址、余额、私钥全都不变。租用的方式是往这个地址的 code 字段里写 23 个字节——0xef0100 加上合约地址。这 23 个字节不是可以执行的代码,是一个指针。从此谁调用这个地址,EVM 就去加载指针指向的那份代码,在这个地址自己的上下文里执行:address(this) 还是它自己,余额还是它的余额。
它没有 bug。ZeroDev 创始人、EIP-7702 参与者 Derek Chiang 在事发当天的表态很直接:EIP-7702 本身没有漏洞,支持这个标准的钱包用户不必恐慌。他还补了一句,攻击者要用上 7702,要么控制私钥,要么诱使币安签出一份 7702 授权。
它也不是第一次被当攻击工具。以太坊 Pectra 升级之后,Wintermute 在几周内就发现主网上超过 97% 的 7702 委托指向几乎同一个「扫币器」合约;有研究统计过约 366 万笔授权交易,其中约 63% 与恶意合约相关,确认损失 230 万美元;Blockaid 在 2026 年上半年核实了四起 7702 事件,合计约 108 万美元,并且预测年内会出现第一起七位数案件。
结果来的是十位数,比他们预估的高出三个数量级。
这也就导致了,很多人会把币安这次 56 亿人类历史上最大的黑客攻击事件的原因,归咎于 EIP-7702。但真的是 7702 的问题吗?
签名是如何拿到的
在往下走之前,得先说清楚一件事:50 份授权,就有 50 个签名,那 50 个签名到底是怎么产生的?
如果攻击者拿到了完整私钥,他为什么还要盲狙 50 个 nonce?如果钥匙一直在币安手里,那 12 分钟里 11 个钱包为什么同时失守?目前还没有解释。
主清扫之后 24 秒,Binance 16 转出 28,005.6 枚 ETH、5,570 万 USDT、2,590 万 RLUSD、84.5 枚 WBTC,去向是同一个收款地址。
12 分钟之内,另外 10 个币安热钱包在四条链上做了同样的事:Optimism 上的 Binance 55 转出 4,420 万 OP;Arbitrum 上四个钱包转出 7,460 万 ARB 和 8,426 枚 ETH;Avalanche 上四个钱包转出 181 万 AVAX 和 841 万 USDT。
这些钱包一个都没有代码,每一笔都是普通的转账,由钱包自己的私钥签出,夹在日常提币中间。
一个手里有私钥的人,不需要盲狙 nonce。查一下 eth_getTransactionCount,一秒的事。
需要一次构造 50 份、覆盖连续 50 个 nonce 的人,是另一种人:能拿到签名,但拿不到这个钱包的实时状态;或者,只能一次性提交一批预先拼好的授权,让系统去试。
更值得注意的是这 50 份授权是同一笔交易里一次性过审的。
安全公司 Blockaid 对此的判断是「密钥被滥用」,而不是私钥被直接提取。Yuga Labs 区块链副总裁 Quit 也倾向这个方向:攻击者拿到的是「授权的签名」,不是私钥,用中继器提交可能正是为了掩盖签名来源。
神鱼在早上的复盘里提到一个细节:直到 06:55,币安还在用同一把私钥签名,把没被扫走的碎片代币转回自己的钱包。
这说明这把钥匙当天早上还在币安的控制之下。
刚刚 10:26,币安给出了自己的初步说法:可能是一名 DevOps 工程师的笔记本电脑被入侵,攻击者借此进入服务容器,提交了未经授权的提现交易;目前未发现钱包私钥泄露的证据。
失守的那一秒,不在链上
所以核心不在 EIP-7702,而是签名之前的那一段。
热钱包一天签几千笔,所以必须自动化;它必须安全,所以要有 HSM、MPC、多签、审批流。于是整个安全模型压缩成一句话:这道流程,能不能在签名之前判断出"这一笔不该签"。
问题是,大部分的判断依据只有两栏:金额、地址。
7702 授权这两栏都没有。它没有金额。它改的不是「转多少」,是「这个地址是什么」。
币安并不是没有在防。
事发前三天,也就是 10 月 27 日,主动披露了一件值得记下来的事:过去一周,安全团队拦下了多起与朝鲜相关的攻击。手法叫 Contagious Interview——对方伪装成招聘方,用面试、代码测试、「先装个开发工具」把人骗去运行恶意程序;程序一旦跑起来,密钥、内网、后续的资金搬运就都有了入口。
但是没有防住「这一笔,该不该签」。
