Binanceホットウォレット流出に対応 — EIP-7702委任の検知・USDT/USDC凍結台帳の自動更新・盗難資金の到達先ラベル
何が起きたか(オンチェーンで確認できる範囲)
被害総額は報道によって25億ドルから55億ドルまで幅があります。ChainAnalyzerはEthereumの公開台帳で確認できた事実だけを事件ページに載せています。
| UTC(10/29) | 事象 |
|---|---|
| 20:20:59 | Binance 14宛てのEIP-7702 SetCodeトランザクション。authorizationは50件、委任先はすべて攻撃者が同日デプロイしたコントラクト、nonceは連番 |
| 20:24:23 | 委任コード経由のスイープ。167,464ETHと64トークンが内部トランザクションで受領先0x5227…2f8cへ |
| 20:24:47 | Binance 16から28,005.6ETHが通常送金で同じ受領先へ |
| 20:38:47 | 195,460ETHを0x8532…43d4へ集約 |
| 21:01:35 | TetherがUSDTの受領先を凍結(スイープから37分)。凍結前に動いた7億USDTの宛先2本も同時に凍結 |
| 21:04:59 | CircleがUSDCの受領先を凍結(40分)。凍結前の流出はゼロ |
| 22:06以降 | TetherとCircleがBinance 14本体も凍結(委任が生きている間の再スイープを防ぐ措置と読めます) |
EIP-7702の委任(authorization)は、そのウォレット自身の秘密鍵でしか署名できません。50件の署名が成立している以上、署名鍵が攻撃者の手にあったことが強く示唆されます。EIP-7702は「原因」ではなく、65資産を1回で抜くための「手段」として使われました。詳しい読み解きは事件ページに載せています。
調査担当者にとって何が変わるか
取引所の大型流出では、盗まれた資金が数時間のうちにスワップ・分割・集約を繰り返し、翌日には別の取引所の入金アドレスに現れます。入金審査をしている側に必要なのは、「このアドレスは10月29日の流出資金に触れているか」「発行体はすでに凍結したか」を、入金が来たその場で答えられることです。今回の3つの追加はそのための部品です。
1. EIP-7702委任の検知(E23)
Ethereum系チェーンのウォレットスキャンで、対象アドレスのコードが0xef0100から始まる23バイト(EIP-7702の委任状態)かどうかを確認します。委任されていれば委任先コントラクトと、その委任先が検証済みかどうかを結果に表示します。
- 委任先が未検証のコントラクトならHIGH。取引所・発行体・カストディの運用ウォレットが委任されていること自体が異常です。
- 委任状態に加えて、同一宛先への大口ETH内部送金と多数のERC-20送出が短時間に重なる(今回のスイープと同じ形)ならCRITICALに昇格し、該当トランザクションを証拠として添えます。
- 委任先が検証済みのウォレット実装ならLOWの情報表示にとどめます。
通常トランザクションだけを見ている監視は、委任コード経由の送金(内部トランザクション)を見落とします。ChainAnalyzerは内部トランザクションを含めて判定します。
2. USDT/USDCの凍結イベント台帳を自動更新
発行体がアドレスを凍結(ブラックリスト登録)したイベントは、「発行体自身が不正と判断した先」という最も確度の高い一次情報です。ChainAnalyzerはこれまで円建てステーブルコインを中心に凍結イベントを収集してきましたが、今回からEthereum・Polygon・AvalancheのUSDT/USDCを含む全対象トークンを6時間ごとに自動収集し、凍結されたアドレスをScamDBへ反映します。凍結の解除イベントも追うため、解除済みのアドレスを危険扱いし続けることはありません。
10月29日に凍結された受領先アドレスをスキャンすると、「発行体による凍結」とその凍結トランザクションが結果に表示されます。
3. 盗難資金の到達先ラベル(hack exposure)
事件データベースに登録された攻撃者アドレスを起点に、資金の送付先を2ホップまで自動で追跡し、受領したアドレスを「盗難資金の受領」としてScamDBに登録します。以後、そのアドレスはウォレットスキャン・REST API・MCPのどこから照会しても「どの事件の資金に、何ホップで触れたか」が出ます。
- DEXルータ・ブリッジ・既知の取引所ホットウォレット・トークンコントラクトは除外します。
- 盗難資金が既知の取引所に到達した事実は、アドレスではなく取引所名として事件ページに表示します。
- 1ホップ目は
danger、2ホップ目はwarn。3ホップ以降は追いません。無関係な第三者を巻き込まないための上限です。
技術ノート: SetCodeトランザクションの読み方
委任はtype 0x4のトランザクションで行われ、authorizationListに(chainId, address, nonce, 署名)が並びます。authorizationはウォレットの現在のnonceと一致しないと無効になるため、1秒に何本も送金するホットウォレットではnonceがずれます。今回のトランザクションには連番nonceの署名が50件同梱されていて、どれか1つが当たればよい作りでした。取引所のホットウォレットを狙うことを前提にした手口です。
成立後、ウォレットのコードは0xef0100+委任先アドレスの23バイトになります。委任先のコードはウォレット本人の文脈で動くため、送金は本人の送金として、ただし内部トランザクションとして記録されます。スイープの呼び出し0x8a179be4(address recipient, address[] tokens)には65個のアドレスが並び、先頭のゼロアドレスがETHを意味していました。
なお、攻撃者が最初にテスト送金した宛先に対して、直後から先頭4文字が同じ別アドレスから0ETHのトランザクションが大量に届いています。攻撃者を狙ったアドレスポイズニングで、ChainAnalyzerのポイズニング検知がそのまま反応する形です。
事件の詳細と攻撃者アドレスは/hacks/binance-2026で公開しています。EIP-7702委任の検知はEthereum系チェーンのウォレットスキャンで全プラン有効、凍結台帳と到達先ラベルはScamDB照合として全プラン・REST API・MCPに反映されます。