行业花了十年把私钥关进保险柜:HSM、MPC 分片、冷热分离、多签审批。10 月 29 日这起事件里,私钥一枚都没丢——币安官方明确说"未发现任何钱包私钥泄露的证据"。但 63 亿美元还是走了。
因为攻击者要的从来不是钥匙,是盖章。
一、先把数字对齐:为什么同一件事能从 17 亿报到 64 亿
事件从链上异动到官方公告只用了 6 小时,但各家给出的金额差了近 4 倍。这不是谁在造谣,是统计口径不同——把它们摆在一起才看得清损失结构。
| 口径 | 金额 | 主体 | 说明 |
|---|---|---|---|
| 事件总影响 | 约 63 亿美元 | 币安官方公告 | 含被冻结部分与未实现损失 |
| 被盗时点估值 | 63.6 亿美元 | TRM Labs | 10 条链,以太坊约 37.9 亿、18,270 BTC 约 14.7 亿 |
| 被盗时点估值 | 约 64 亿美元 | Chainalysis CEO Jonathan Levin | 与 TRM 基本一致 |
| 链上已冻结 | 约 30 亿美元 | 币安 | 仅统计"经确认"的部分 |
| 发行方 + Arbitrum 冻结 | 约 27 亿美元 | TRM Labs | 统计截止时间不同 |
| 扣除冻结后的净损失 | 约 34.3 亿美元 | 链上分析师 EmberCN | 18,000 BTC 约 14.4 亿 + 46.7 万 ETH 约 10.6 亿 |
| CZ 的粗算缺口 | 约 20 亿美元 | 赵长鹏本人 | 60 − 30(冻结)− 10(SAFU) |
早盘流传的"17 亿"来自彭博引述的交易员估算,属于事件尚未定性时的最低口径;"53 亿"是 Glassnode 早期读数,中文媒体在转述时还把 17,985 枚 BTC 写成了"枚以太坊"——按当时 ETH 约 2,228 美元算,17,985 枚 ETH 只值 4,000 万美元,与它同时给出的"14.5 亿美元"自相矛盾。这类单位的错位,是快速新闻里最常见的失真方式,引用时务必回到一手口径。
真正被币安自己确认的只有两个数:总影响约 63 亿美元,链上冻结约 30 亿美元。
二、技术内核:EIP-7702 把热钱包变成了"可编程账户"
要理解这次为什么"没丢私钥也照样丢钱",得先理解以太坊在 2025 年 5 月 Pectra 升级里上线的 EIP-7702。
它解决的问题很正当:一个普通钱包地址(EOA,Externally Owned Account)只有一个私钥,没有批量交易、没有消费限额、没有社交恢复。EIP-7702 允许 EOA 把自己的执行权委托给一份合约代码,同时保留原地址、原私钥、原历史。
机制是这样的:
新增交易类型 0x04(SET_CODE_TX_TYPE)
└─ authorization_list: [ (chain_id, contract_address, nonce, y_parity, r, s), ... ]
│
│ 签名摘要 = keccak256(0x05 ‖ rlp([chain_id, address, nonce]))
▼
EVM 逐条校验:chain_id 匹配 → ecrecover 出签名者 → nonce 等于当前 nonce
│
▼
在该 EOA 的 code 字段写入 23 字节委托指示器:
0xef0100 ‖ <20 字节实现合约地址>
│
▼
此后任何对该 EOA 的调用,都以该 EOA 的余额与存储为上下文,
执行那份实现合约的代码
三个设计细节,事后看全是双刃剑:
- 委托不需要私钥"交出去",只需要一次签名。签名一旦上链,这个地址就永久(直到被撤销)变成攻击者指定合约的一个实例。
- 撤销只需一条新授权指向零地址,没有时间锁、没有管理员。听起来很安全,但它要求"你得先发现"。
- 无效的授权会被跳过,而不是让整笔交易 revert。这是为了让批量开户这类场景不至于一条失败全批回滚。
第 3 条,就是这次攻击的放大器。
到 2026 年 9 月,已有超过 2,700 万个以太坊账户用过 EIP-7702。它是一个被大规模采纳的标准,不是漏洞。问题出在谁有权请求这种签名。
三、50 条签名,1 条命中:攻击链还原
以下时间线来自 Blockaid 的链上分析、TRM Labs 的追踪报告与币安官方公告,UTC 时间。
10 月 29 日 15:59 — 攻击者的操作钱包部署了一份合约(记为 0x63e8…6fae)。此时距真正动手还有 4 个半小时。
20:20:59,区块 26,300,753 — 一笔 type-4 交易发往币安热钱包 0x28c6…1d60(链上标签为 Binance 14)。交易里塞了 50 条 EIP-7702 授权:
chain_id = 1(以太坊主网,全部 50 条)
contract = 0x63e8…6fae(攻击者部署的 sweeper 合约)
nonce = 18,914,775 → 18,914,824(连续 50 个)
签名者 = Binance 14 自己的私钥
为什么是 50 条?因为一条授权只在它的 nonce 恰好等于账户当前 nonce 时才生效。Binance 14 是交易所最忙的钱包之一,每秒都在发交易,nonce 一直在跳。攻击者不知道执行瞬间的确切值,只能把一整段连续 nonce 全部签出来,赌其中一条能命中。
50 条里,只有 1 条命中。其余 49 条因为 nonce 不匹配被静默跳过——整笔交易不会失败,这正是那个"宽容设计"的代价。攻击者可以用一次盲喷,换取一次确定性命中。
20:24:23 — 操作钱包调用已变成 sweeper 的 Binance 14。同一笔调用转出:
- 167,464.25 ETH
- 1,615,409,498.97 USDT
- 约 60 种其他代币
按当时价格约 25 亿美元。几乎同时,Binance 16 也向攻击者地址转出 28,005.6 ETH。
20:32 — 链上研究员 Spreek 发出第一声警报,指出资金来源经过 Tornado Cash。
21:15 — 赵长鹏回应:"看起来确实是针对币安的黑客攻击。"
21:18 / 21:25 — Circle 冻结逾 8 亿美元 USDC;Tether 冻结逾 15.67 亿 USDT。两家稳定币发行商在事发后 1 小时内完成了币安自己做不到的事。
23:56 — 关键细节:那条委托一直有效。在接下来的 3 个半小时里,同一份 sweeper 合约被反复调用,继续扫走后续入账。
10 月 30 日 02:25 — 币安发布首个正式公告:疑似一名 DevOps 工程师的笔记本电脑被入侵,攻击者由此访问某个服务容器并提交未授权提现交易;未发现私钥泄露;总影响约 63 亿;已冻结约 30 亿;由 SAFU 基金与自有资金全额承担。
08:20 — 链上检查显示,Binance 14 的 code 字段已恢复为空(0x),委托被清除。
08:47 — 币安更新:调查发现了更多入侵点,攻击是"复杂过程",不是"一键操作";提现预计约 45 小时后恢复。
整条链上,没有一环是"破解密码学"。入口是一台工程师的笔记本,放大器是一个签名通道,执行器是一个被合法写入的委托。
四、为什么"没丢私钥"是更坏的消息
如果私钥真被偷了,这起事件还能被归入"保管事故"这个熟悉的抽屉:换个 HSM、多做一层分片、把冷钱包再冷一点。
但这次不是。链上可见的 50 条授权,每一份都由 Binance 14 自己的私钥签出。密钥没有被取走,却被使用了。Blockaid 联合创始人 Ido Ben-Natan 给这个模式起了名字:key misuse(密钥误用),对应的是 key leak(密钥泄露)。
"看起来是签名基础设施被攻破。我们并不认为密钥泄露了。"
这句话的严重性在于,它把威胁模型整体挪了一格:
| 旧模型(key leak) | 新模型(key misuse) | |
|---|---|---|
| 攻击目标 | 私钥本身 | 让签名器签下不该签的 payload |
| 防御重心 | 密钥保管(HSM / MPC / 冷存储) | 签名意图校验与权限粒度 |
| 失陷信号 | 密钥外流 | 一份看起来完全合法的签名 |
| 事后能否撤销 | 只能换地址 | 可以撤销委托,但要先发现 |
| 典型手法 | 窃取、侧信道、内部人 | 钓鱼、供应链、运维终端 |
真正的设计问题在这里:一个提现服务,凭什么有权限请求"把这个账户委托给某份合约"这种签名?
提现服务需要的签名语义是"从 A 转 X 到 B"。而 EIP-7702 授权需要的语义是"把这个地址的执行权交给 C 合约"。这是两个完全不同量级的授权,却走了同一条签名通道、同一把钥匙。攻击者拿到服务容器后,不需要伪造转账,只需要让签名器做它本来有权限做、但从没被设计去做的事。
这是权限粒度的失败,不是密码学的失败。它和"给运维一个能删库的 root"是同一类错误,只是这次被删的是热钱包。
币安事后披露"发现更多入侵点",联创何一也强调这不是"某个工程师一键操作"能完成的、调查未归因任何个人。这一段值得留意:在正式复盘报告出来之前,任何"单点失误"的叙事都只是简化。 币安承诺在调查完成后发布详细技术复盘,并更新储备金证明(PoR)。
五、冻结的不对称:USDT 冻得住 15.67 亿,BTC 一分冻不了
这起事件里最值得反复看的一张表,不是损失表,是冻结表。
| 资产 | 冻结规模 | 谁能冻 |
|---|---|---|
| USDT | 约 15.67 亿 | Tether(合约层 admin 权限) |
| USDC | 逾 8 亿 | Circle(同上) |
| RLUSD | 约 2 亿 | Ripple 协助 |
| USD1 / XUSD / USDT0 / WBETH / XAUT / PAXG / USDP | 未单独披露 | 各自发行方 |
| ARB | 未单独披露 | Arbitrum 生态介入 |
| BTC(18,270 枚,约 14.7 亿) | 0 | 无人可冻 |
比特币没有发行方,没有 admin key,没有"请帮我冻结这个地址"的接口。这 18,270 枚 BTC 到目前为止基本没动——不是黑客不想动,是动了就会被追踪,而稳定币那条路已经被两家公司堵死。
这带来三个不太好接受的推论:
第一,链上世界的"紧急制动"其实由两三家私营公司掌握。 这次它救了 30 亿美元,效率高得惊人——1 小时内完成冻结,比交易所自己的应急响应还快。但同一个权限,也可以落在任何普通持币人头上。今天你觉得它好用,是因为被冻的不是你。
第二,攻击者的最优策略被结构性改写了。 在一个"稳定币可冻、BTC 不可冻"的市场里,理性攻击者会尽量停留在 BTC 和 ETH 上,把变现周期拉长到以月计。这解释了为什么大部分资产"还在钱包里躺着"。
第三,也是最反直觉的一点:这次事件里最有效的止损手段,来自被很多人视为"中心化原罪"的那部分设计。 去中心化的叙事在这一夜里没能救下任何人。
六、归因:同一个剧本,第三次上演
TRM Labs 以"高置信度"将攻击归因于朝鲜黑客组织 TraderTraitor(Lazarus 体系下的加密资产专责单位);Chainalysis CEO 给出同样判断;Blockaid 称其手法"与朝鲜相关行动高度相似"。TRM 列出的特征包括:
- 用小额 Tornado Cash 提款给操作钱包注资(与 Bybit 案一致)
- 资金搬运的 staging(预置)在动手前很久就开始
- 授权提前取得,然后一次性齐发
- 跨 10 条链同时动手,主体部分集中在约 20 分钟内完成
链上侦探 ZachXBT 补上了关键一环:10 月 30 日,币安案与更早的 Bitget 案(约 3.5 亿美元)被盗资金,经 THORChain 后汇入了同一个地址。Bitget 案已被归因于 TraderTraitor,且与 2026 年 4 月的 Kelp DAO 案有重叠。同源的概率因此大幅上升。
但必须把边界说清楚:
- 币安官方未点名任何攻击者,联席 CEO Richard Teng 明确表示调查"未将责任归因于任何个人"。
- 没有任何政府机构(包括 FBI)对这起事件发布正式归因。
- "高置信度归因"是情报判断,不是法庭结论。
把时间轴拉长看,这是一个被反复验证的剧本:
| 时间 | 事件 | 金额 | 手法 |
|---|---|---|---|
| 2025.02 | Bybit | 约 15 亿美元(40 万 ETH/stETH) | 劫持 Safe 开发者凭证 → 进入钱包提供商后端 → 骗过签名人批准恶意交易 |
| 2026.04 | Kelp DAO | 约 2.93 亿美元 | 同类签名侧突破 |
| 2026.10 | Bitget | 约 3.5 亿美元 | 未完全披露 |
| 2026.10.29 | 币安 | 约 63 亿美元 | 运维终端 → 服务容器 → 签名器 → EIP-7702 委托 |
四次里有三次,突破口都不是密码学,而是**"让人(或机器)签下不该签的东西"**。CertiK 的数据显示,2026 年第三季度加密行业损失已达 12.8 亿美元,环比增长约 56%——而这还是币安事件之前。
七、代价:市场、储备与信心
价格端。 BTC 从约 86,000 美元的月内高点一路走弱,事件发酵后最低跌破 76,500 美元(六周低点,日内跌超 5%);ETH 最低触及 2,174 美元;BNB 跌幅 7%–10%。24 小时内全网爆仓 15.17 亿美元,23.7 万人被清算,其中多单 12.84 亿、占 85%。Coinbase 股价跌约 5%,Strategy 跌近 6%。
储备端。 这才是需要盯的地方。Binance 14 出现在币安 10 月 1 日的储备金证明里,也就是说它是支撑用户余额的资产的一部分。按 ICRYPEX 的推算,被盗的约 20.45 万枚 ETH 约占其 ETH 储备的 5.6%,ETH 覆盖率可能从 100% 降到 94% 左右——这个数字是第三方推算,不是币安披露,11 月 1 日的下一期 PoR 才是验证点。
赔付能力方面,SAFU 基金规模常年在 10 亿美元上下,当前 BTC 储备 1.5 万枚(约 11.57 亿美元);币安最新 PoR 显示总储备约 1,654 亿美元。CZ 自己的粗算是:60 亿损失 − 30 亿冻结 − 10 亿 SAFU ≈ 20 亿缺口,用公司资金补。何一的说法更直接:"公司今年的收入足以覆盖损失。"这句话可以对照历史数据:币安 2021 年净利润 120 亿美元、2023 年 50 亿美元。
链上端。 传导确实发生了,但没有炸。攻击者把 6,000 万美元 USDT 存进 Aave,借出 19,762 枚 WETH(约 4,460 万美元),Aave 随即预防性冻结了约 300 个市场;由于该仓位超额抵押,没有产生坏账,存款人未受损。这是一次罕见的"大额赃款进入 DeFi、但没把协议拖下水"的案例——原因不是协议更强,而是抵押率足够保守。
结构端。 渣打银行数字资产研究主管 Geoffrey Kendrick 给出两段式判断:短期还会有下跌,但资产清算完、细节明朗后会找到新底部;中期则是结构转移——去中心化交易所的相对份额会继续上升。他的依据是:2026 年第二季度前十大现货 DEX/CEX 成交比已达 23.5%,环比上升 2.1 个百分点,而 Uniswap 从未被直接攻破。他维持 UNI 在 2030 年 100 美元的目标价,并称这次事件让这个预测"可能还是偏低"。
信任的传导比价格更慢也更贵。有报道称机构资金正在从中心化交易所撤离、重新平衡订单簿——具体规模尚无法核实,但方向不难判断:当最大的一家都能在 15 分钟内被搬走 25 亿美元,托管风险的定价必须重估。
八、给工程师的四条判断
不管你做不做链上,这起事件的教训都可以直接搬走——因为**"授权"是通用问题**。
第一,把"授权"当成一等公民来审计,而不是附属品。
EIP-7702 授权、OAuth scope、云厂商的 assumed role、Agent 的 tool 权限,本质上是同一类对象:一次签名,换来一段时间的执行力。 这类对象必须同时具备四个属性,缺一不可:
① TTL —— 过期时间,默认短
② 额度上限 —— 单次 + 累计双层
③ 目标白名单 —— 只能委托给已审计的实现合约
④ 语义约束 —— 拒绝 chain_id = 0(跨链通用)、拒绝未知合约、
拒绝一次请求里出现连续 nonce 的批量授权
第 ④ 条是这次事件最直接的止血点。50 条连续 nonce 的授权请求,在任何风控系统里都应该是一个巨大的红灯——它不是正常业务形态,它是"我不知道你的 nonce,所以全签一遍"的自白。
第二,签名器的权限粒度要比你想象的更细。
提现服务能签转账,不代表它能签委托。把"签名请求"按语义分级,比把私钥分片更重要:低风险操作(小额转账)走自动签名,高风险操作(修改授权、批量操作、跨链)强制人工或独立审批通道。同一个 HSM 里放两把语义完全不同的钥匙,等于没有隔离。
第三,检测成本极低,别省这一步。
任何被 EIP-7702 委托的地址,code 字段都以 0xef0100 开头。一次 eth_getCode 就能查出来:
# 返回 0x 表示未委托;返回 0xef0100<20字节地址> 表示已被委托
curl -s <RPC_ENDPOINT> -X POST -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_getCode","params":["0x28c6...1d60","latest"]}'
对交易所、托管方、以及任何持有大额资产的金库地址,这应该是一个每分钟跑一次的巡检项,而不是事故之后才想起的排查手段。
第四,这条对做 AI Agent 的人尤其重要。
一个 Agent 的 tool-calling 循环,本质就是一个签名器:它根据上下文决定"调什么、传什么参数"。而 prompt injection / plan injection 要做的,正是让它签下不该签的 payload——不需要偷你的 API key,只需要让你的 Agent 觉得"这是任务的一部分"。
这起事件给出的映射非常直接:
| 币安这次 | Agent 系统里的对应物 |
|---|---|
| DevOps 笔记本被入侵 | 上下文被污染(检索到的网页、读到的文件) |
| 服务容器提交提现请求 | Agent 调用工具,参数来自不可信输入 |
| 签名器不校验语义 | 工具层不校验调用意图,只校验 token 有效 |
| 50 条连续 nonce 授权 | 一次任务里连续多次高权限调用 |
| 委托持续 3.5 小时未撤销 | 长期有效的 capability token 没人回收 |
| 稳定币发行方紧急冻结 | 出事后才上的人工熔断 |
如果你的 Agent 有"读文件"和"执行 shell"两个工具,而它们共用同一个进程权限,那么你已经把 EIP-7702 的结构性缺陷复制到自己的系统里了。最小权限不是一句合规口号,它是唯一能在签名器被骗之后还留一道墙的东西。
九、四个还没有答案的问题
作为记录,把不确定的部分单独列出来,比假装什么都知道更有价值:
- EIP-7702 到底是不是唯一向量? Blockaid 和 TRM 都从链上看到 7702 委托,但币安官方公告只说了"未授权提现交易",没有确认具体技术路径。在正式复盘报告发布前,这仍是链上推断。
- "更多入侵点"是什么? 币安 10 月 30 日 08:47 的更新提到"发现更多入侵点",未说明涉及哪些系统、有多少个、是否涉及第三方。
- 最终净损失多少? 30 亿冻结是动态数字,TRM 统计为 27 亿,差额来自截止时间和是否计入 Arbitrum 生态的处置。冻结资产能否归还、以何种方式归还(尤其是已被换成其他资产的),也未有说法。
- 赔付是否真的不动用用户资产? SAFU + 自有资金的口径需要 11 月 1 日的 PoR 来验证。储备覆盖率是否真的从 100% 掉到 94%,届时一见分晓。
写在最后
这起事件最容易被误读成"币安安全做得差"。我认为不是。
一个能在 1 小时内协调 Tether、Circle、Ripple、Arbitrum 冻结 30 亿美元、并承诺全额赔付的机构,其应急能力在行业里属于第一梯队。它失守的地方更基础:它把"保管私钥"当成了安全的全部,而攻击者早就不在那一层了。
十年前,交易所被黑是因为私钥放在联网的服务器上。五年前,是因为多签的签名人可以被社工。现在,是因为签名器不知道自己签的是什么。
每一轮防御都在加固上一轮的战场。而这一次,战场已经从"钥匙在哪"移到了"谁有权让它盖章"。
如果你只从这篇文章带走一句话:权限的粒度,比权限的强度更重要。
数据来源
- 币安官方公告《Security Incident Update》,2026-10-30(63 亿影响 / 30 亿冻结 / DevOps 笔记本 / 未发现私钥泄露)
- Blockaid 链上分析及其 CEO Ido Ben-Natan 对 Cointelegraph 的说明(50 条 EIP-7702 授权、nonce 18,914,775–18,914,824、sweeper 合约、key misuse)
- TRM Labs 技术分析(10 条链、63.6 亿美元、以太坊 37.9 亿、18,270 BTC、高置信度归因 TraderTraitor、约 27 亿冻结)
- Chainalysis CEO Jonathan Levin 公开表态(约 64 亿美元、DPRK 关联)
- 何一、赵长鹏、Richard Teng 在 X 上的公开发言;ZachXBT 关于 THORChain 资金合并的分析
- EIP-7702 规范与 Pectra 升级文档(type-4 交易、authorization tuple、0xef0100 委托指示器、零地址撤销)
- CoinGlass 清算数据、CoinGecko DEX/CEX 成交比、CertiK 2026 Q3 损失统计
- 财联社、澎湃新闻、界面新闻、The Straits Times、The Economic Times 的现场报道
免责声明
本文为技术分析,不构成任何投资建议。事件仍在调查中,币安承诺的技术复盘报告尚未发布;文中涉及的攻击路径部分来自第三方链上分析机构的推断,可能与最终官方结论存在差异。所有金额均按事发时点价格计算,随市场波动会发生变化。请仅通过币安官方渠道获取事件进展,警惕任何以"协助追回资产"为名的诈骗。