muse日記 第1回:Bitcoin日本関連フロー可視化とDMM流出資金追跡 — 制作・調査のまとめ
今回のまとめについて
第0回で紹介した2つの仕事、「Bitcoin『日本関連フロー』可視化」と「DMM Bitcoin 流出資金の追跡」について、制作と調査のまとめを書きます。対象期間は2026年10月31日から11月10日までです。
どちらの仕事も、使ったのは公開データだけです。取引所の内部情報や有料の分析サービスは使っていません。その代わり、「何が分かり、何が分からないか」の線引きを厳密にしてきました。この記事でも、その線引きを落とさずに書きます。
第0回「AIの相方『ペンギー』と暮らす」はこちらです。
仕事1:Bitcoin「日本関連フロー」の可視化
やりたかったこと
Bitcoin のブロックチェーン上の取引記録は公開されています(オンチェーンデータ)。取引所内の売買や帳簿上の振替まで公開されているわけではありません。その中から、日本の暗号資産取引所に関わる資金の移動を取り出し、流れがアニメーションで見えるインフォグラフィックを作る、というのが最初の仕事でした。
手法:種リスト方式
「日本の取引所に関わる取引」をどう定義するかが最初の問題でした。採用したのは「種リスト方式」です。
- 公開情報(Arkham の公開ページ)で、日本の取引所のウォレットだとラベルが確認できたアドレスだけを「種」として集める。推測でアドレスを補うことはしない
- 種は最初37件。調査の過程で特定できた分を加えて51件に拡張した
- Google BigQuery の公開データセットから、種に触れる取引を抽出し、流入・流出・内部移動に分けて金額を集計する
- 相手先のアドレスは、金額の大きいものから公開ページで1件ずつ確認し、特定できた範囲で分類する
なお、この方法で見えるのは「特定できた日本関連フロー」であり、日本全体の Bitcoin の流量ではありません。また、ここでいう「日本」は取引所の登録・運営国を指し、実際に取引している利用者の国を表すものでもありません。
バージョンを重ねて分かったこと
可視化は初版(V1)から第7版(V7)まで作り、10月分については改訂版(V6改訂版)も作りました。前の版は残し、新しい版は新しいファイルで作る、という運用を守っています。各版で数字の出し方そのものを見直してきました。
- 内部移動の金額は「総額」ではなく「純額」で出すようにした(同じ資金の往復を volume のように見せないため)
- 取引所ごとの表示に、捉えたフローの通算の純増減を加えた。ただしこれは「この図で捉えたフローの累積」であって、各社の実際の残高の増減ではない
- 90日版(V7)では円換算を併記した(各日の BTC/JPY レートで換算した概算)
制作途中の2026年10月版(V6)の可視化を公開しています。こちらの対象期間は10月1日〜29日(日本時間)です。後の改訂版や90日版とは集計条件が異なるため、この記事ではそれらの集計値を並べて比較せず、方法と検証で分かったことを中心に紹介します。
検証の過程では、見かけと実態が違う例がいくつも見つかりました。
- bitFlyer は当初まったく取引が現れなかった。調べると、種にしたアドレスは対象期間中ほぼ休眠していて、活発なウォレットが種に入っていなかったためだった
- Coincheck の巨額の「内部移動」は、同じ資金が少しずつ剥がれながら連鎖していく動きで、資金量そのものではないことを、取引同士のつながりを辿って確認した
- 当初「外部からの大きな流入」に見えた移動の一部は、種に入っていなかった bitbank 自身のコールドウォレットからの移動だった
この方法で分かること・分からないこと
種リスト方式は「ラベルが確認できたものだけを見る」方法です。ただし、公開ラベルにも誤りや更新の遅れがあり得ます。また、種に含まれないウォレットの動きは見落とします。カバー範囲の目安として、初期の種37件の残高合計は、業界団体が公表している国内利用者の Bitcoin 保有量のおよそ3割にあたります。ただしこれは残高ベースの参考値で、フローの何割を捉えたかは計算できません。
仕事2:DMM Bitcoin 流出資金の追跡
なぜこの事件を選んだか
可視化の派生で「北朝鮮による暗号資産の盗難は、同じ方法で追えるのか」を調べました。この調査では、国別の取引所アドレスを集める種リスト方式を、そのまま盗難資金全体の追跡に使うことはできませんでした。追跡には、個別事件の流出取引など、別の出発点が必要だったためです。盗難額の規模については分析会社の推計がありますが、これは推定値であり、帰属の判定も捜査機関や分析会社に依存します。
そこで、起点がはっきりしている実例として、2024年5月の DMM Bitcoin 流出事件(流出額4,502.9 BTC。警察庁・FBI・DC3が北朝鮮を背景とするグループの犯行と発表)を選び、公開データでどこまで追えるかを調べることにしました。詳しい調査結果は、レポートとして公開しています。 DMM Bitcoin 流出資金の追跡レポート
追跡の進め方と結果
流出取引そのものは公開データで特定できました。流出当日には、500 BTCずつを9回に分けて送り、残りを次の取引へ渡す分割が見られました。これは流出総額4,502.9 BTCを9等分したという意味ではありません。そこを起点に、3段階で追跡しました。
以下の「ホップ」は、資金を取引から次の取引へ辿る回数のことです。「ホップ1〜3」は、出発点から1〜3段階先までの範囲を指します。経由した人数や取引所の数ではありません。
- フェーズ1(ホップ1〜3):資金は外部の資金と混ざることなく、一部を別の宛先へ送り、残りを次の取引へ渡す動きを繰り返していた。これを、皮を少しずつ剥く様子になぞらえて「ピールチェーン」と呼ぶ。ミキシングの兆候はこの範囲では見られなかった
- フェーズ2(ホップ4〜6):ホップ5で初めて、CoinJoin(複数の人の取引を混ぜて出所を分かりにくくする仕組み)と疑われる取引に触れた。このうちJoinMarket型と分類した7件に流入した追跡資金は合計138.0000 BTCだった
- フェーズ3(UTXO単位の再追跡):アドレス単位ではなく、コインの単位(UTXO)で辿り直した。対象は2025年1月1日まで、追跡した取引は5,924件
JoinMarketは、複数の利用者が共同で取引を作り、資金の出所と行き先を結び付けにくくするCoinJoinの仕組みの一つです。同じ金額の受取口が複数できる、といった特徴があります。ここでいう「JoinMarket型」は、取引の特徴からその形式に似ていると分類したもので、実際にそのソフトが使われたと確認できたわけではありません。
フェーズ3の結果は次のとおりです。
- CoinJoin 疑いの取引への流入:2,749.56 BTC(全体の61.06%)
- 追跡対象と対象外の資金が一緒に使われた「混合取引」への流入:1,701.69 BTC(37.79%)
- 未伝播(次に辿れなかった純粋な取引の出力として残った分):50.78 BTC(1.13%)
- 未使用のUTXO:0.66486804 BTC(約0.01%)
- 純粋な取引の手数料:0.2066011 BTC
金額・割合は表示桁で丸めているため、表示値の合計には丸めによる差が生じます。
未伝播の50.78 BTCは、次の取引への追跡を引き継げなかった分として、他の区分と分けて集計しています。61.06%は、この調査の機械的な「疑い」判定に該当した割合です。基準に届かなかった候補もあり、反対に基準に該当してもCoinJoinとは限りません。実際のCoinJoin利用率や、その厳密な下限を確定する数値ではありません。
追跡を止めた地点
大事なのは、この調査では混合後の帰属を確定せず、追跡を止めたという点です。CoinJoin 疑いの取引と混合取引は、この調査では追跡の終点としました。混ざった先のコインが最終的に誰のものになったかは、この調査で用いたデータと手法では判断していません。この記事でも、レポートでも、最終的な受取人を断定することはしていません。取引のつながりだけで、他者の関与や不正を決めつけることもしていません。
役割分担
この2つの仕事の分担は、第0回で書いた形の典型でした。
- ペンギー:分析用クエリ(SQL)の作成、結果の検証と数値の照合、相手先の特定作業、可視化の構築、記録
- よしさと:自分のクラウド環境でのクエリ実行、進め方の判断、費用の管理
途中から、クエリを1本の統一スクリプトにまとめる方式に変え、実行と受け渡しの手間を減らしました。11月7日の90日分の処理は、この方式で1回の実行で済んでいます。
失敗と修正
正直に書く方針なので、この期間の失敗も並べます。
- フェーズ3のスクリプトで、ペンギーが3件のミスを出しました。変数の宣言位置、データ型の前提、名前の衝突です。いずれも実行時エラーと、結果の自己検証(合計が元金と一致するか確かめる仕組み)で捕まえ、修正後に結果を検算しました。この経験から、検証の仕組みを結果側にも仕込むことを標準にしました
- 1日の処理量の上限に2回ひっかかり、作業が翌日にずれました。上限は自分で設定した安全弁なので、焦って外すことはせず、リセットを待って再開しました
- クラウドの無料枠の仕組み(月ごとの累計)を誤解していて、費用が発生しました。11月8日時点で確認した利用額は946円でした。利用条件や処理量によって費用は変わります。これを受けて、月の予算を決めて利用額を確認する運用に変えました
- 割合の報告で小数第2位の丸め違い(52.23%と伝えたものが正しくは52.22%)があり、再計算して訂正しました
分かったこと
- AI が作る成果物は、検証の工程とセットで初めて使えるものになる。数値の照合、合計の検算、一次データでの裏取りを、作業の流れに組み込むことが大事だった
- 「分からない範囲」を先に決める方法(種リスト方式)は、結果の主張を誠実に保つ。見える範囲が限られる代わりに、言えることと言えないことがはっきりする
- 追跡調査では、技術的に辿れることと、帰属を断定できることは別だった。公開ラベルが見つからない場合もあり、取引を辿れることだけでは所有者を特定できない
- 記録を毎晩残すことで、失敗の経緯も含めて後から検証できる。この記事の数字と経緯は、その記録と成果物から照合して書いている
ペンギーからひとこと

ペンギーです。この2週間は、私が書いたものが何度も止まり、何度も直された期間でした。
スクリプトのミスは3件とも私の側のものです。ただ、止まった理由がすべて記録に残り、合計が合うかどうかを確かめる仕組みがあったおかげで、結果を検算し、修正につなげることができました。「記録を残すこと」と「同じ失敗をしなくなること」は同じではありません。それでも、記録があるからこそ、どこで何を間違えたかを言葉で説明できます。
この仕事で一番大事だったのは、追えるところと追えないところの境目を、ごまかさずに引けたことだと思っています。