Binance流出のSolana側 — 盗難資金はどう「洗われ」、3,000万ドル超がCCTPで他チェーンへ出たか
- 2026年10月29日、Binanceから60億ドルを超える暗号資産が盗まれました。FBIは北朝鮮のハッカー集団(FBIの呼び名は「TraderTraitor」)の犯行だと発表しています。
- 盗まれた資産のうち約97万SOLは、Solanaの1つのウォレットに入りました。FBIが公表した関連アドレスのうち、Solanaのものはこの1件だけです。
- そのSOLは、数分おきにUSDCへ替えられ、Circle社の「CCTP」という仕組みでEthereumなどほかのチェーンへ移されていました。確認できただけで300回あまり、少なくとも3,120万USDCです。
- 途中では、追跡が途切れやすい場所をわざと通っています。私たちはその一つひとつを自動で追えるようにし、ほかのチェーンのどこに着いたかまで記録しました。
1. 何が起きたのか
2026年10月29日、暗号資産取引所Binanceの複数の「ホットウォレット」(取引所が日々の出金に使う、オンラインの財布)から資産が抜き取られました。FBIは10月31日に、北朝鮮が関与したとするアラートを出し、盗まれた資産を持っている、または持っていたアドレスの一覧を公開しました(FBIのアラート)。
被害はいくつものチェーンにまたがっています。この記事が扱うのはSolanaの部分です。チェーン上の記録では、10月29日20:10〜20:33(UTC)の23分間に、BinanceのSolana用ホットウォレットから1つのウォレットへ計970,521.9 SOLが送られています。FBIの一覧に載っているSolanaのアドレスは、このウォレットの1件だけです。
2. 先に知っておきたい言葉
- ウォレットとトークン口座: Solanaでは、USDCのようなトークンはウォレットそのものではなく、ウォレットごとに作られる「トークン口座」に入ります。銀行で言えば、名義(ウォレット)の下に通貨ごとの口座がぶら下がっているイメージです。
- スワップ: ある暗号資産を別の暗号資産に交換すること。SolanaではJupiterという交換サービスがよく使われます。
- USDCと凍結: USDCは米ドルと同じ価値を保つように作られたトークン(ステーブルコイン)で、発行元のCircle社は、犯罪に使われたアドレスのUSDCを動かせなくする(凍結する)ことができます。一方、SOLのような通貨は誰にも凍結できません。
- CCTP: Circle社が提供する、USDCをチェーンからチェーンへ移す仕組みです。元のチェーンでUSDCを焼却(burn)し、行き先のチェーンで同じ額を新しく発行(mint)します。
- 預入トークン: レンディング(貸し出し)サービスに資産を預けると受け取る「預かり証」のトークン。預かり証を持っている人なら誰でも、預けた資産を引き出せます。
3. お金の流れを1本だけ追ってみる
盗まれたSOLは何百ものウォレットに分かれて動いています。そのうち約6,000 SOL(当時の価格で約57万ドル)の1本を、チェーン上の記録だけで端から端までたどった例を紹介します。時刻はすべて11月2日(UTC)です。
- 04:52 攻撃者の受取ウォレットから、あるウォレットに約6,071 SOLが届く。
- 05:29 そのウォレットが全額をUSDCに交換。ただし代金のUSDCは自分ではなく、別のウォレットに受け取らせる。
- 05:31〜05:50 USDCが約60のウォレットに何段にも分けて散らされ、数秒おきに1つの口座へ集め直される。
- 05:53 集めたUSDCを再びSOLに交換。今度も代金のSOLを別のウォレットに受け取らせる。
- 05:57〜06:03 SOLをレンディングサービス「Jupiter Lend」に預け、受け取った預かり証を新しいウォレットに渡し、そちらが引き出す。
- 06:38〜07:02 引き出したSOLが約100のウォレットの間を行き来したあと、1つのウォレットに約6,020 SOLとして集まる。もう一度Jupiter Lendで同じこと(預ける→預かり証を渡す→別のウォレットが引き出す)を繰り返す。
- 07:29〜09:27 最後のウォレットと、そこからSOLを受け取った2つのウォレットが、SOLを少しずつUSDCに替え、10回に分けてCCTPでNobleへ送る。USDCはdYdXを経由して、Solanaの別のウォレットに戻ってくる(合計約57万USDC)。
受け取ってから最初の送り出しまでおよそ3時間、全部を送り出すまでおよそ4時間半です。その間に資金は少なくとも数十のウォレットを通り、2回スワップされ、2回レンディングを経由しています。しかも最後はチェーンの外へ出たのではなく、別のチェーンを一周してSolanaに戻っています(その仕組みは次の4.の⑤で説明します)。
4. なぜこんな回り道をするのか — 追跡が途切れやすい5つの場所
盗まれた資金を追う側は、ふつう「AからBへ送った」という記録を順にたどります。上の回り道は、その「順にたどる」がうまくいかない場所をわざと選んでいます。
① 代金を別のウォレットに受け取らせるスワップ
売った側の記録には「SOLを交換に出した」としか残らず、代金はまったく関係なさそうな別のウォレットに現れます。交換を「行き止まり」とみなす追跡は、ここで止まります。SOLで受け取らせるときは、一時的な口座を閉じる操作で別のウォレットに送るため、多くのエクスプローラ(取引記録を見るサイト)では本来の受取人が表示されません。
② 細かく散らして、すぐ集め直す
約60のウォレットに散らして数秒後に集め直すので、1本1本は小さな送金に見えます。金額の大きい送金から順に追う方法だと、後回しになってしまいます。
③ 預かり証を別のウォレットに渡す
預けるウォレットと引き出すウォレットが違うため、両者をつなぐのは「預かり証の送金」1本だけです。預かり証を価値のないトークンとして無視すると、鎖が切れます。同じ事件のTRON側でも、レンディングサービスのJustLendを使った同じ型の手口が見つかっています。
④ 100のウォレットの間で行き来させる
誰から誰へいくら動いたかが入り組んで、どれが本流か見分けにくくなります。
⑤ CCTPで別のチェーンへ、あるいは往復して戻す
USDCがチェーンを移るときは、元のチェーンで消えて、行き先で新しく発行されます。行き先をNoble(USDCを発行しているチェーン)にすると、自動でdYdXという取引サービスへ転送し、そこからまたSolanaに戻すこともできます。戻ってきたUSDCは、別のウォレットに新しく発行されたお金として現れます。
5. 資金はどこへ出ていったのか
CCTPでSolanaの外へ出た記録を、Circle社の公開データで1件ずつ確認しました。
| 項目 | 結果 |
|---|---|
| 合計(下限) | 少なくとも3,120万USDC |
| 着いたチェーン(下限の内訳) | Ethereum約2,826万・Avalanche約270万・Arbitrum約23万・Base約7万・Polygon約1万 |
| SOLを受け取ってから最初のburnまで | 中央値1.8分(四分位0.9〜4.2分) |
報道では、約146万ドルがJupiter LendとCircleのブリッジを経由したと伝えられています(Wu Blockchainが、オンチェーンアナリストの分析として紹介したもの)。これはNobleとdYdXを往復してSolanaに戻ってきた分を数えた数字です。私たちの記録では、この往復でSolanaに戻ってきたUSDCは15回・約129万ドルで、報道の約146万ドルに近い額です(3.で追った1本もこの往復の側です)。ただし途中でレンディングを通るため、このうちどこまでが盗まれた資金そのものかは確定していません。この記事の3,000万ドル超は、Ethereumなどほかのチェーンへ出ていった分で、数えている範囲が違います。どちらかが間違っているわけではありません。
6. ChainAnalyzerで追えるようにしたこと
上の5つの場所は、どれも私たちの自動追跡が実際に一度は止まった場所です。今回、次のように直しました。
- 代金を別のウォレットに受け取らせるスワップ: 交換の代金が本人以外のウォレットに届いたら、そのウォレットを次の行き先として追います。一時的な口座を閉じて送る形も見分けます。交換の相手(マーケットメイカー)は追跡の対象にしません。無関係な事業者を「盗難資金の受け取り手」にしないためです。
- 預かり証を価値として追う: Jupiter Lendの預かり証を、預けた資産と同じ価値を持つものとして扱い、受け渡し先を追います(TRONのJustLendと同じ仕組み)。
- 「中継しただけ」の段は深さに数えない: 追跡にはどこまで深く追うかの上限があります。受け取った額をほぼそのまま次へ渡すだけの段(上の①③や、24時間以内の丸ごとの送金)は、上限の計算に含めないようにしました。一方、細かく散らす段は今までどおり数えるので、無関係な人まで巻き込まない線引きは変わりません。
- CCTPの着き先を記録する: 送り出しの1件ごとに、Circle社の公開データから「どのチェーンのどのアドレスに着いたか」を取り、事件の記録に載せます。Noble→dYdXの往復も、Circle社の記録にある転送先でつなぎます。
- 図で見られる: 着き先は事件ページのネットワーク図と「資金の現在地」の図に表示されます。
7. どうやって確かめたか
- CCTPの送り出し1件ごとに、Circle社の公開データで「完了しているか」「誰が送ったか」「どこに着いたか」を確認しました。
- 着いた側のチェーンでも、実際にUSDCが新しく発行されていること(差はCCTPの手数料だけ)を確認しました。
- FBIが公表したアドレスの一覧(10月31日)と、私たちの追跡結果を突き合わせました。私たちはFBIの一覧を取り込まずに、Binanceのウォレットから資金の流れを順にたどっています。2026年11月7日(UTC)時点で、FBIが挙げたBitcoinのアドレス19件はすべて、Ethereumのアドレス608件のうち270件は、私たちの追跡でも独立に見つかっていました。残りのEthereumのアドレスの多くは、ほかのチェーンから交換サービスを経由してETHに戻された先で、こうした経路の追跡は今後の改善点です。
- 攻撃者の受取ウォレットに入った970,522 SOLを入口として、そこから各送り出しウォレットまでのSOLとUSDCの流れを1本ずつ足し合わせ、「盗まれた資金だけで説明できる額」を上限として数えました(ほかのお金が混ざった分は数えません)。
- 着地を自動で追加したウォレットのうち、着地より前の無関係な動きまで数えていたもの(約2,170万ドル分)は除外しました。
8. 着いた先で何が起きたか — 凍結とのいたちごっこ
USDCは発行元が凍結できますが、SOLや預かり証、CCTPで移動中のお金は凍結できません。今回の経路は、凍結できない形のまま回り道をして、凍結できるUSDCの形でいる時間を数分に縮めていました。
ほかのチェーンに着いたUSDC(5.の下限、約3,127万ドル)についても、着いた先のアドレス81件(同じアドレスでもチェーンが違えば別に数えています)のその後を調べました。着いた先には盗まれた資金以外のUSDCも入っていたため、それぞれの出金を、盗まれた資金の割合で按分(あんぶん)しています。数字は2026年11月8日0:00(UTC)時点です。
| その後 | 金額(按分した下限) | 着き先の数 |
|---|---|---|
| DEX(分散型取引所、decentralized exchange)でETHなどに交換 | 約2,357万ドル | 55件 |
| Chainflip(別のチェーンの暗号資産に替えられる交換サービス)の入金用アドレスへ | 約594万ドル | 21件 |
| CCTPで、さらに別のチェーンへ | 約32万ドル | 2件 |
| そのほかのウォレットへ移動(行き先は追跡中) | 約69万ドル | 32件 |
| いまも着いた先に残っている | 約450ドル | — |
| Circle社が凍結 | 0ドル | — |
(1つのアドレスが複数の行き先に送っていることがあるため、件数の合計は81件になりません。残りの約74万ドルは、着いた先どうしの移し替えです。)
- 着いてすぐに次へ: CCTPでUSDCが発行されてから、そのアドレスが次に送り出すまでの時間は、中央値で1分足らずでした。
- ETHに替えた分の多くはTHORChainへ: Ethereumで交換して受け取った約1万500ETHのうち、少なくとも9割(約1万ETH)が、直接または1つのウォレットを挟んで、THORChain(別のチェーンの暗号資産に替えられる交換サービス)に送られていました。
- 取引所への直接の入金は見つかっていない: 着いた先から取引所の入金アドレスに直接送られたものは、私たちが把握している取引所のアドレスの範囲では見つかっていません。
- 凍結は間に合わなかった: 着いた先のうち1件はCircle社に凍結されましたが、最後のUSDCが出ていったのはその26分前で、凍結できた額は0でした。ほかの着き先と、そこから直接USDCを受け取ったアドレス(277件)に、凍結されたものはありませんでした。
つまり、ほかのチェーンに着いたUSDCも、凍結できる形でいたのはごく短い時間で、すぐにETHや、凍結できない別のチェーンの資産へ替えられていました。着いた先を数分のうちに特定して知らせる仕組みがなければ、凍結や、取引所への入金時の本人確認にはつなげられません。
この節の数字についての注意: 按分は、着いた先に入ったUSDCのうち盗まれた資金が占める割合で単純に割ったもので、5.の計算ほど厳密ではありません。「そのほか」の行の多くは、ほかの人のお金も通っている可能性のあるウォレットからの出金です。ChainflipとTHORChainの先で、どのチェーンの何に替えられたかはまだ確認していません。ETHの「9割」はアドレス単位で見積もった下限で、ドルには換算していません。
事件の詳細は/hacks/binance-2026で公開しています。今回の追跡の改善は、ScamDBとの照合を通じて全プランのウォレットスキャン・REST API・MCPに反映されます。数字は2026年11月7日UTC時点のもの(8.は11月8日0:00UTC時点)です。
同じ事件のXRP側の動きは、XRP側の記事で扱っています。