币安热钱包 EIP-7702 委托事件:合约与链上核验

范围:只看合约与委托(sweeper 字节码、访问控制、50 条授权的结构、Hot Wallet 34 被调用的机制、攻击前的演练)。资金去向全文、ATT&CK 映射本版仍不写;归属见下节第三方转述。 时间:一律北京时间(UTC+8)。链上核验时间约 2026-10-30 09:20;归属核验约 2026-11-01 14:45;官方初步复盘核对约 2026-11-04 01:30。 数据:publicnode 以太坊 RPC(只读最新状态,没有归档)、eth.blockscout.com API、Etherscan,选择器用 4byte.directory 和 api.4byte.sourcify.dev 反查,签名用 ethers v6 恢复。 归属:含 FBI 执法通报与 TRM/Chainalysis 等第三方判断;币安官方尚未自行点名;本文链上核验部分仍不独立定归属。

更新(2026-10-30):币安已发布官方公告 Security Incident Update,要点见第零节。 更新(2026-10-31):并入 TRM Labs/Chainalysis 等对 TraderTraitor(朝系)的公开归属判断,见「第三方归属」一节。 更新(2026-11-01):并入 FBI 2026-10-31 通报,正式将本案归为 TraderTraitor(朝系),见「第三方归属」。 更新(2026-11-04):并入币安 2026-11-03 初步复盘(入口链路、MPC 签名、撤销耗时、金额修正),见第零节。

零、币安官方说法(2026-10-30 公告与 2026-11-03 初步复盘)

0.1 初步复盘要点(2026-11-03)

来源:币安 X 长文 29 October Binance Security Incident: Initial Findings and Response Update(2026-11-03 22:33 UTC+8)。以下均为币安单方说法,时间已换算为 UTC+8。

与链上证据的对照:

0.2 首份公告要点(2026-10-30)

以下为公告原意的中文转述,均为币安单方说法,尚无第三方复盘佐证:

首份公告的 63 亿/30 亿已由初步复盘修正为 63.4 亿/28.5 亿(见 0.1),本文均未在链上逐项核对。

零点五、第三方归属(截至 2026-11-01)

金库级 CEX 按朝系分簇写:TraderTraitor(勿笼统写 Lazarus)。以下转述执法与商业情报公开材料,不是本站独立定论;币安官方尚未自行点名朝系或具体集群。

一、结论速览

# 结论 状态
1 10-30 04:20:59,攻击者在一笔 type-4 交易里塞了 50 条 EIP-7702 授权,把 Binance 14 委托给 sweeper 0x63e8…6fAe,命中 nonce 18914809 链上已核
2 50 条授权签名全部恢复为 Binance 14 地址(官方称经 MPC 签名服务签出,无单一私钥),按 nonce 降序排列,保证最多只有一条生效 签名已恢复;MPC 为官方说法
3 sweeper 是定制合约(solc 0.8.28,1,674 字节),没有存储、不能升级、不能自毁,5 个函数都只认硬编码的 operator 0x7C86…5CA0 字节码已核
4 sweep() 只处理 operator 传进来的代币列表,ETH 留 1 枚作 gas;receive() 只收不转,所以攻击者调了多次 sweep 字节码已核
5 Hot Wallet 34 的 8.23 亿 USDC 是通过 owner 身份调 execute 转走的,不是 approve 额度;HW34 的 owner 就是 Binance 14 链上已核
6 同一个 operator 10-29 10:28 就部署了初版合约,并用 3 个测试账户做了 4 轮 type-4 演练,提前约 18 小时在测这条链路 链上已核
7 委托在 08:10:35 被 Binance 14 自己签名撤销,前后约 3 小时 50 分;现在 eth_getCode(Binance 14) 返回 0x 链上已核
8 入口:币安初步复盘称多阶段(篡改 Homebrew、假招聘带毒仓库与 pyenv 替换、内部 AI 工具横向、容器部署令牌)后调用 MPC 签名服务;私钥称未泄露 官方初步复盘,待独立复核
9 FBI 执法通报将本案定为 TraderTraitor(朝系);TRM/Chainalysis 更早亦同指 FBI 执法通报已定 TraderTraitor;币安官方尚未自行点名

二、事件经过(合约视角)

时间(UTC+8) 事件 交易
10-29 10:28:59 operator 的第一笔交易:部署初版 sweeper 0x19beE294…f2bf 0x6b76e874…06d8
10-29 21:51–22:24 演练 1、2:对测试账户 A、B 委托初版并 sweep,扫出少量 USDT/USDC 0x16b5acc3…、0xec5af21d…、0xa2e0cd41…、0x6aaae5bc…
10-29 23:59:11 部署正式版 sweeper 0x63e842B0…6fAe(比初版多一个 callExecute) 0x97408e75…329c
10-30 00:20–00:47 演练 3、4:测试账户 C 委托正式版、重复委托、sweep 实测留 1 ETH、再用 withdrawETH 取走 0xb2148eb8…、0x7c5206cb…、0x9c2dbed1…、0x2b8eb62a…
10-30 04:20:59 正式委托 Binance 14:50 条授权,命中 nonce 18914809 0xad99264d…298b
04:24:23 sweep #1:167,464.248 ETH 和 63 种 ERC-20(含 USDT 1,615,409,498.97)转到 0x5227f603…2f8c 0x53bd38b8…e2f3
04:41:23 callExecute 调 Hot Wallet 34,转走 780,000,000 USDC 0xdc102dd8…7481
04:59:47 同上,转走 43,000,000 USDC 0x3b9625b3…9ca7
05:04:23 sweep #2:1,699.92 ETH 和 23 种代币 0x31c4c9fe…a91d
05:44:11 sweep #3:369.83 ETH 和 14 种代币(含 USDT 200,397,771.82) 0x55ba4dab…0556
06:39:35 sweep #4(媒体未报):128.49 ETH 和 122 种代币,转到新地址 0xA97bF783…8d10 0x4a4aed83…ad6b
07:36–07:54 5 次 sweep 成功执行但没有资产转出 见下方来源
07:56:47 撤销前最后一次带走资产:2,961.91 ETH 转到 0xA97bF783…8d10 0x4395d51d…f89b
08:10:35 Binance 14 自己签名撤销委托(授权指向 0x0) 0xafbf94c9…c209

部署初版、部署正式版、提交 50 条授权、调用 sweep 和 callExecute,全部由同一个地址 0x7c8601d4645b93cea45f71e118a729332e6b5ca0 完成。

三、50 条授权的 type-4 交易

这说明了什么(只陈述链上能支持的部分):产生这 50 条签名的一方,当时能让 Binance 14 的签名能力对任意 EIP-7702 授权摘要签名(币安复盘确认是调用了内部 MPC 签名服务),但它不知道交易落块时 Binance 14 的实时 nonce,也就是说它不在币安热钱包的出金和 nonce 管理链路里。

四、sweeper 合约分析

4.1 正式版 0x63e842B054Bd624a465454D533C33F573e9c6fAe

选择器 函数 访问控制
0x8a179be4 sweep(address to, address[] tokens) 只允许 operator
0x043ff9d2 callExecute(address target, address to, uint256 value, bytes data)(payable) 只允许 operator
0x4782f779 withdrawETH(address,uint256) 只允许 operator
0x01e33667 withdrawToken(address,address,uint256) 只允许 operator
0x97dc97cb authorizedCaller(),返回 0x7C86…5CA0 无
(calldata 为空) receive() 无,直接 STOP

4.2 初版 0x19beE294A6DaAb49c9e5Ab69A5Da6C035C70f2bf

4.3 与已知 EIP-7702 sweeper 的比较

样本 字节数 4-gram Jaccard(与正式版)
初版 0x19be…f2bf 1,256 0.706
CrimeEnjoyor 0x8044F37E…d79c 1,519 0.070
CrimeEnjoyor2 0xA03fC3C6…60ab 2,267 0.066

选择器除 ERC-20 transfer 外没有重合,行为也不同(CrimeEnjoyor 类会自动转走打进来的 ETH,本合约不会)。结论:这是定制合约,不是 CrimeEnjoyor 模板的改版。比较样本只有这两个,覆盖面有限。

五、Hot Wallet 34 的 USDC 为什么能被转走

对象:0xEe7aE85f2Fe2239E27D9c1E23fFFe168D63b4055(Etherscan 标签 Binance Hot Wallet 34)

六、有没有其他币安钱包被委托

七、待核实

  1. 私钥是否泄露:币安初步复盘称热钱包为 MPC、无单一私钥,攻击者是滥用内部签名服务;与 Blockaid CEO「签名基础设施被滥用」的说法一致(Blockaid 官方 10-30 08:40 的 推文 曾写 “an attacker used a stolen key”)。已基本澄清,待独立复核。
  2. 归属跟进:执法侧(FBI)已通报 TraderTraitor;币安复盘引用 FBI 的朝鲜结论,仍未自行点名集群。
  3. 入口细节:链路已见 0.1。仍未披露:内部 AI 工具具体如何被用来控制他人电脑、容器如何拿到签名服务权限、篡改 Homebrew 的下载来源。
  4. 50 条签名是什么时候生成的(一次批量还是分多次),链上看不出来;官方写法是「50 笔签名交易」,与链上 1 笔 type-4 交易的结构不完全一致。
  5. 其他发送方代提交、指向 0x63e8 或 0x19be 的委托,需要全链授权索引。
  6. sweep #1 的代币列表逐项解码,以及 07:36–07:54 五次 sweep 为何没有资产转出,需要归档状态。
  7. HW34 工厂 0xf610…e536、初始 owner 0xc268…fb20、bundler 0xf793…af75 的身份。
  8. 逐层调用栈(operator → B14 → HW34 → USDC)依据 calldata 和日志推导,没有拿到 debug trace。

来源