Liquid Networkの4,000枚のビットコインはどうやって金庫から忽然と消えたのか?
- 核心的な見解:2026年9月、Liquid Networkはノードソフトウェアのキャッシュ欠陥を突かれ、攻撃者は秘密鍵の窃取やマルチシグの突破を一切行わず、偽造した範囲証明のみを用いてコンプライアンス手続きの下で4,000枚のL-BTCを無から鋳造し、約3.2億ドル相当の本物のビットコインの引き出しに成功した。これは「ラップドアセット」がソフトウェア実装層と運用層において抱えるシステム的リスクを露呈させた。
- 主要な要素:
- 攻撃者は秘密鍵やHSMを一切破っておらず、Elementsノードの範囲証明キャッシュがアセットと出力スクリプトに紐付いていない欠陥を利用し、14時間前に同一証明68個をオンチェーンに注入してキャッシュを「飼い慣らし」、最終的に11/15のマルチシグによるコンプライアンス署名で出金を完了した。
- 脆弱性修正パッチは8月3日に提出され、9月2日にメインブランチへマージされていたが、フェデレーションノードは依然として4月13日リリースの旧バージョンを稼働させており、パッチの本番環境への適用遅延は5ヶ月に達した。フェデレーションノードのコードベースへの最終コミットは2024年4月であり、事件発生時点で2年以上前であった。
- 本事件は準備金の検証可能性の欠如を露呈した。機密取引は金額を隠蔽するため、外部からL-BTCの流通量とフェデレーションウォレットの本物のビットコイン残高をリアルタイムで照合できず、オンチェーンで4,205枚のL-BTCが流通する一方で本物のビットコインはわずか197枚しか残っておらず、裏付け率は5%未満であった。
- 攻撃者は自らをホワイトハッカーと称し、3,400枚のビットコイン(85%)を返還し、598.5枚(約15%)を保持した上で、さらに10%の脆弱性報奨金を要求した。Blockstreamは身代金の支払いを公に拒否し、これをホワイトハッカーの行為ではなく「窃盗」であると明確に述べた。
- 事件後、L-BTCの裏付け率は約86%まで回復し、Blockstreamは1:1のペッグを保証し、保有者に減損を負わせないことを約束した。残りの598.5枚のビットコインはオンチェーン・フォレンジックおよび法執行機関による追跡段階へ移行した。
- 核心的な教訓:ラップドアセットの安全性は、発行体の信用、ノードソフトウェアの実装、入出金チャネルという三層のうち最も弱い環に依存する。マルチシグが防ぐのは悪人であり、悪いコードではない。「ホワイトハッカー」はまず開示し、その後協力することを行動基準とすべきである。
9月6日、約4000枚のビットコイン(当時の価格で約3億2000万ドル)がLiquid Networkのウォレットから流出した。これは2026年に入ってから現在までで最大規模の暗号資産盗難事件である。
しかしこの事件で最も注目すべき点は、金額ではない。
秘密鍵は一つも盗まれず、HSM(ハードウェアセキュリティモジュール)は一台も破られず、誰もフィッシングに遭わず、内部犯もいなかった。この金庫を管理する15の機関は、いずれも自らの鍵を無事に保管庫に収めたままで、しかもすべての署名は彼らが自発的に、自主的に、ルール通りに完了させたものだった。
それなのに、金は出て行ってしまった。
これがどのように起きたのかを理解するには、まずこの金庫がどのように設計されているかを数分かけて把握する必要がある。
一、15の機関が共同管理するビットコイン金庫
ビットコインメインネットには周知の問題がある。遅く、そして高い。取引は平均10分待たないとブロックに入らず、手数料もマイニング難易度によって変動する。これは、大額で頻繁な送金を行いたい取引所やクオンツチームにとっては十分とは言えない。
Liquid NetworkはBlockstreamが提示した一つの解決策である。これは「サイドチェーン」であり、ビットコインメインネットの横にある高速道路のようなものだと考えればよい。
使い方は至ってシンプルだ。本当のビットコインを共同管理の金庫に預けると、金庫は同額の預かり証を発行する。この預かり証はL-BTCと呼ばれ、この高速道路上を1分に1件のペースで素早く流通できる。本当のビットコインを取り戻したいときは、預かり証を返却して償却し、金庫がそこから同額の本物のコインを取り出して返してくれる。前者の動作をpeg-in(アンカーイン)、後者をpeg-out(アンカーアウト)と呼ぶ。理論上、チェーン上を流通するL-BTCの総量は、常に金庫に眠る本物のビットコインの数量と等しい——これが所謂1:1のアンカリングである。
鍵となるのは、この金庫を誰が管理するかである。Liquidの答えはこうだ。どの一社にも任せず、15の既知の機関からなる「フェデレーション」に委ねる。メンバーには複数の取引所やインフラサービスプロバイダーが含まれる。この15のノードはそれぞれ一つの鍵を保有し、自らの専用ハードウェアセキュリティモジュール(HSM)に保管している。金庫を開けるいかなる操作も、そのうち少なくとも11の鍵が同時に署名する必要があり、すなわち11/15マルチシグである。
同時に、この15のノードは交代でブロック生成と相互検証も担当する。つまり彼らは金庫の管理人であると同時に、このチェーンの記帳者でもある。

この設計の意図は明快である。単一障害点による不正は不可能であり、盗むには相互に無関係な11の機関を同時に説得しなければならない。『悪人を防ぐ』という観点では、確かによくできている。
二、秘密の台帳と「封筒を開けない紙幣鑑定」
Liquidにはもう一つの特色がある。その取引金額は外部に対して秘密にされている。
ビットコインメインネットでは、誰でも各送金の具体的な金額を見ることができる。機関にとってこれは耐え難い——大口のポジション調整が世界中に晒されてしまう。Liquidは「機密取引」(Confidential Transactions)と呼ばれる技術でこれを解決した。金額は暗号化されて隠され、チェーン上には数学的なコミットメントだけが残り、外部の者は具体的な数字を見ることができない。
しかしこれにより直ちに新たな問題が生じる。金額が見えないなら、ノードはこの取引が不正をしていないとどうやって知るのか?例えば、でたらめに負数を書いたり、数字をオーバーフローさせたりしたら?
解決策は「範囲証明」(range proof)と呼ばれる。例えるなら、金額を不透明な封筒に入れ、同時に数学的な証明を添付する。この証明は、封筒を開けることなく、中の数字が合法な範囲に収まっていることを誰もが確信できるようにする。ノードはこれらの証明を逐一検査し、各取引の収支が合っていることを確認するが、具体的な金額は最後まで分からない。
この仕組み自体は信頼できる暗号技術である。問題はその性能最適化にあった。
三、脆弱性:記憶力が良すぎるが、重点を間違えた紙幣鑑定機
範囲証明の検証は計算コストが非常に大きい。ノードが圧迫されないように、Elements(Liquidが使用するオープンソースのノードソフトウェアで、ビットコインコアコードのフォーク)は、すべてのエンジニアが行うことをした。キャッシュを追加したのだ。
一度検証した証明は、その結果を記録しておき、次に同じものに遭遇したら再計算せずにそのまま通す。
ここで問題が生じる。「同じものに遭遇した」とどう判断するのか?
Elementsの方法は、二つのものを組み合わせてインデックスキーを作るというものだった。証明自体のバイト列と、その暗号化された金額コミットメントである。
何が漏れていたのか?どの資産なのか、そしてこの金が誰に支払われるのか(出力スクリプト)が漏れていた。
レジで例えてみよう。カウンターに紙幣鑑定機があり、それが鑑定した紙幣は番号が記録され、次に同じ番号ならそのまま通す。しかし番号を記録する際、紙幣の透かし模様と額面しか記録せず、その紙幣がどこの国の通貨なのか、どの受取人に渡すものなのかは記録しなかった。その結果、同じ「鑑定済み」という結論が、まったく適用されるべきでない場面に流用され得るのだ。

攻撃者はまさにそうした。しかも非常に忍耐強く。研究者の振り返りによれば、実行に移る前の約14時間の間に、彼はチェーン上に完全に同一の範囲証明を68個次々と送り込んだ——これらの「検証済み」の結論を何度も各ノードのキャッシュに喂え続けたのだ。時機が熟すと、彼は同じ証明を本来拒否されるべき文脈に置いて提出した。
ノードはキャッシュを確認し、「これは検証済みで問題ない」と判断して通した。
こうして、本物のビットコインに一切裏付けられていない3,996枚のL-BTCが、無から台帳に記帳された。
金額はもともと機密取引で隠されているため、チェーン上のどの観察者も余分なこの金を見ることができなかった。
四、あの35分間:すべてのステップが適法
北京時間9月6日23:53(15:53:10 UTC)、Liquidブロック4,050,336がこの偽造取引をパッケージした。
その後起こったすべてのステップは、完全にルールに適合していた。これがこの一件で最も不安な部分である。
この無から鋳造されたL-BTCはSideSwap(peg-outサービスを提供するサードパーティプラットフォーム)のウォレットに送金され、混ざった後は、それらは通常のL-BTCといかなる違いもなくなった。台帳の目には、それらは本物の金である。
十数分後、4,000 L-BTCのpeg-out要求が提出された。預かり証を償却し、本物のビットコインを持ち出す。
15のノードが職務を履行し始め、それらのハードウェアセキュリティモジュールは二つの検証を行う。出金先アドレスがホワイトリスト内にあるか、そして償却されたL-BTCの数量が申請されたビットコイン数量と一致するかである。両方とも合致していた。
それは三番目の問いを追及しないし、する能力もない。これらのL-BTCはそもそもどうやって生まれたのか?と。
11の鍵がいつも通り署名した。約35分後、ビットコインメインネットがその取引を確認し、3,996枚の本物のビットコインがフェデレーションウォレットから出て行った。
特筆すべきは、Liquidが緊急保険を設計していたことである。通常の署名経路が機能しなくなった場合、2/3のバックアップキーを使用し56日待つ必要がある。この保険は一度も発動されなかった——攻撃者は裏口を叩いたのではなく、正面から入ったのであり、正面は彼のために開かれたのだ。
マルチシグの閾値が管理するのは「誰が署名できるか」であり、「署名するこのものが正しいか」には答えられない。偽造が署名よりもさらに下の層——ノードソフトウェアが何が本物の金かの判断——で起きたとき、閾値がどれほど高くても、誤った支出により整然と署名するだけである。
五、それはどのように発見されたか
皮肉なことに、この脆弱性は異なるノード間で不一致を引き起こす。同じブロックを、あるノードは受け入れ、あるノードは拒否する——それぞれのキャッシュに以前何が保存されていたかによる。
ビットコインコア開発者のAntoine Poinsotは当時すぐに公に指摘した。あの重要なブロックは「mempoolに拒否されたが、Blockstreamに受け入れられた」と。

そしてmempool.space自体がフェデレーションメンバーの一つである。そのリアルタイム監査プログラムは-4,019 BTCの異常な引き出しを捕捉したが、Liquid公式ダッシュボードは当時この損失を同期して反映していなかった——二つの監視システムが異なる世界を提示したのだ。
その後の数字は目に痛い。チェーン上には4,205枚のL-BTCが流通しており、フェデレーションウォレット内の本物のビットコインは、その後の数件の出金処理が完了した後、わずか197枚しか残っていなかった。裏付け率は5%未満である。
ここには機密取引のもう一つの側面も潜んでいる。プライバシーの代償は検証可能性である。金額が隠されれば、外部の誰も「台帳上の預かり証総量」と「金庫内の本物のコイン残高」をリアルタイムで照合できない。1:1は、誰もが検証できる事実から、信じることを求められる声明へと退化した。それが反証されたときには、缺口はすでに3億2000万ドルになっていた。
六、脆弱性よりも目に刺さるのは、あのパッチである
もし物語がここで終われば、それは単なる高水準の暗号攻撃である。しかし後半がある。
あのキャッシュ欠陥の修正コードは、8月3日にはすでにコードリポジトリにコミットされており、タイトルには明確に書かれていた。範囲証明キャッシュを資産と出力スクリプトにバインドする、と。9月2日、それはメインブランチにマージされた。
そして事件当時、フェデレーションノードが実行していたのはバージョン23.3.3——4月13日リリースのバージョンで、この修正を含んでいなかった。9月6日の事件後3時間足らずで、このパッチは緊急でリリースブランチにマージされた。
説明しておく必要があるが、公式は今回の事件がこの欠陥によるものだと正式に確認していない。上記の対応関係は外部研究者の振り返りによるものである。しかしタイムライン自体が、より普遍的な問題を十分に物語っている。脆弱性が修正されることと、修正されたコードが実際に本番環境で動くことは、二つの別のことであり、その間には五ヶ月が挟まり得るのだ。
Casaのセキュリティ責任者Jameson Loppはもう一つのことを指摘した。フェデレーションノードのコードリポジトリの公開記録によれば、最後のコミットは2024年4月——事件から二年以上前である。

3億2000万ドルの資産が、二年間真剣に保守されていないソフトウェアに託されていた。これは暗号技術の失敗ではなく、運用の失敗である。
七、「我々はホワイトハットだ」と、Blockstreamの回答
その夜、受取アドレスはチェーン上にOP_RETURNメッセージを発信した。
we are whitehats. contact us on chain.(我々はホワイトハットだ。チェーン上で連絡を。)
交渉が始まった。9月7日、相手は3,400枚のビットコイン(約2億7200万ドル、85%相当)を返還し、598.5枚(約4,700万ドル)を自ら保持した。
当初は双方が非公開で連絡を取り合い、Blockstreamは暗号化しPGP署名したメッセージで返信した。しかし9月8日から9日にかけて、相手は呼びかけを公開のチェーン上平文に移し、口調も変わった。
相手の失職を非難——「あなた方はわずか150万ドル(あるいは0かもしれない)しか出さずに50億ドルの資産を守ろうとしている。これはセキュリティに対する公然たる軽視だ」
条件を提示——Blockstreamに対し、残りの返還の前提として、自社資金から別途10%相当のバグバウンティを支払うよう要求
そして脅迫——拒否すれば、「あなたのすべての保有者に、あなたの無責任さと吝嗇さのために15%の損失を負担させる」と
この段階に至ると、「ホワイトハット」という自称はもはや成立し難い。Ledgerの最高技術責任者Charles Guillemetの評価はかなり直接的である。真のホワイトハットは担保資産を動かす前に脆弱性を開示するのであり、その後のではない。まず準備金の95%を空にしてから条件を協議するのは、「セキュリティ研究というよりはむしろ恐喝に近い」。
歴史と照らし合わせても違いが見える。Nomad、SafeMoon、Team Financeなどの事件でも「大部分を返還し、賞金を一部留保する」結末が現れたが、それらは通常明確な賞金の取り決めがあり、割合は多くが10%前後であった。今回の特殊な点は、15%が一方的に留保されたことであり、「価格」を誰が決めるのか、始めから終わりまで答えがなかった。
そして、Blockstreamは


