金融機関にとって、プライバシーは監査可能性が保たれる場合にのみ価値を持ちます。銀行、取引所、資産運用会社は、保有・移転する資産の完全性を独立して検証できなければなりません。ZcashのOrchardシールドプールで重大なバグが最近開示されたことは、その理由を示しています。供給量の検証が複雑な暗号システムだけに完全に依存する場合、機関は事後に独立して監査できないリスクを引き継ぐことになります。

何が起きたのか

2026年6月5日、非営利開発組織Shielded Labsは、セキュリティ研究者がZcashのOrchardプールのゼロ知識証明回路に重大な健全性バグを発見したと開示しました。

このバグは、Orchardが4年前に有効化されて以来、存在していました。メインネットで悪用されていれば、攻撃者はシールドプール内で任意量の偽造ZECを発行でき、供給量が水増しされたことを示すオンチェーンの兆候はありませんでした。開示が公になった時点で、ZcashコミュニティはすでにOrchardを無効化する緊急ソフトフォークを実施し、その後、回路を修正して再有効化するハードフォークを行っていました。

ZECは24時間強で、約$629から安値の$254まで約60%下落しました。

平易な言葉で見る健全性

ゼロ知識証明は数学に基づく証明の一種です。誰が誰に何を送ったかを明らかにせずに、Zcash取引が有効であること(送信者が資金を持ち、何もないところから資金が作られていないこと)をネットワークが確認できます。Zcashは2種類の取引をサポートしています。

  • Transparent:送信者、受信者、金額を誰でも確認できる
  • Shielded:この3つすべてが隠される

Orchardでは、すべてのシールド取引にこのような証明が添付されます。チェーンは証明を検証し、実際の詳細は暗号化されたままです。ネットワークが受理するすべての証明が、実在し均衡の取れた取引から生じる場合にのみ、このシステムは機能します。暗号学者はこの性質を健全性と呼びます。

Orchardのバグはこの健全性を損ないました。楕円曲線上で点を加算する方法を規定する証明の数学の特定の手順が不完全でした。適切な条件下では、攻撃者は基礎となる取引の収支が合わなくてもネットワークが受理する証明を作成できました。攻撃者はシールドプール内の偽造ZECを持ち去ることができ、外部からは、その新しい単位を本物と見分けられません。

ビットコインのような透明なシステムでは、この種のバグは即座に明らかになります。すべてのフルノードがチェーンを直接読み取り、総供給量が発行スケジュールと一致することを検証します。Orchardでは、証明が唯一の検証手段です。通常なら無効な取引を捕捉する他のシグナル、すなわち金額、送信者、受信者、入力と出力のつながりはすべて、設計により隠されています。

Shielded Labsは、このバグはパッチ適用前にはおそらく悪用されなかったと直接述べていますが、どちらにせよ証明はできません。Bitqueryの事後分析も同じ点を指摘しています。偽のノートが発行され、引き出されなかった場合、「それらは今もOrchardプール内にあり、誰も検出できない」のです。忍耐強い攻撃者は、通常の取引量に紛れながら複数日にわたり偽造ZECを引き出せた可能性があり、オンチェーンの記録は普通に見えます。そうしたことが起きなかったことが最も有力な証拠ですが、それは証明とは異なります。

Shielded Labsは将来に向けた対策として、Orchardからの引き出しごとにターンスタイル会計を行う新しいプールを提案しました。しかし、そのプールはまだ存在せず、導入にはネットワークアップグレード、カストディ移行、そして時間が必要です。

複雑さが増せば問題も増える

独立研究者のTaylor Hornbyは、Orchard回路を対象としたレビューでAnthropicのClaude Opus 4.8を用い、このバグを発見しました。このバグは4年間にわたる専門家の暗号学レビューを生き延びていました。

監査における教訓は複雑さにあります。供給量の健全性が異質で非常に複雑なzk-SNARK回路の正しさに依存するプロトコルは、単純な公開残高チェックで供給量を強制するプロトコルよりも、潜在的な障害モードの裾野が必ず長くなります。実装の対象範囲が広いほど、制約不足の要素が4年間も気付かれずに潜む場所が増えます。

プライバシー設計への二つのアプローチ

プライバシーへの最初のアプローチは、入力、出力、金額、アドレス、それらのつながりをすべて隠すことです。証明システムは隠された取引が有効であると主張します。資産の供給量は外部観察者から隠されます。供給量の完全性は、完全に証明回路の健全性に委ねられます。回路が正しければユーザーは非常に強力なプライバシーを得ますが、回路に健全性バグがあれば、食い違いを検出したはずの公開チェックが存在しないため、ユーザーに救済手段はありません。

2つ目のアプローチは、公開残高の強制を維持しながら選択したフィールドを隠すことです。プロトコルは金額、資産タイプ、特定の入力と出力のつながりを隠すことができますが、供給量が均衡するという事実は隠しません。ノードを実行する監査者は、総供給量が発行スケジュールと整合することを検証できます。どれか1つの構成要素のバグは、直ちに残高不一致として表れます。これはなお暗号実装が正しいことに依存します。偽造されたコミットメントが残高チェックを通過することを許すバグは、Orchardに影響したのと同じ一般的な障害モードである、検出不能なインフレを許す可能性があります。

ビットコインとLiquidが優れている理由

ビットコインは、2つ目のアプローチを最も純粋な形で反映しています。すべての未使用トランザクション出力(UTXO)は公開されています。任意のブロック高における総供給量はチェーンの状態から直接合計し、公に知られた発行スケジュールと比較できます。デフォルトのプロトコルにプライバシーはありませんが、供給量について疑問の余地もありません。何もないところからビットコインを発行するバグは、すべてのフルノードから見える、発行スケジュールの即時の違反として現れます。

Liquidは、追加のプライバシー層を備えた2つ目のアプローチの例です。LiquidのConfidential Transactionsは、すべての取引の金額と資産タイプを隠しますが、数学的に均衡しているかどうかは隠しません。ここには3つの構成要素があります。

  • Pedersenコミットメントは、金額を明らかにせずにネットワークが隠された金額を合計できるようにします。
  • レンジプルーフ(Liquidの現行実装ではBulletproofs)は、負の金額が持ち込まれないことを保証します。
  • LBTCおよび他のLiquid資産の発行・焼却イベントは公開されているため、総発行量を独立して追跡できます。監査者は個別の金額を一つも知らずに、供給量が正しいことを証明できます。

これらの保証は、離散対数仮定と、残高チェックを強制する実装の正しさ(曲線演算のlibsecp256k1、rangeproofコード、コンセンサスルール)という2つの条件に依存します。古典的な攻撃者は離散対数を解けませんが、十分に高度な量子コンピューターなら解ける可能性があります。これらの構成要素の実装バグは、Orchardのバグと同じ種類の失敗である、検出不能なインフレを許す可能性があります。Pedersenコミットメントは、値のハッシュにもコミットするswitch-commitment構造へアップグレードすることで量子耐性を持たせられます。Blockstreamの研究者はLiquid上でのその移行の道筋を提案しています。

Orchardのバグは、この種のシステムには実際のコストが伴うことを思い出させます。LiquidスタックはZcashと同じ形のリスクを抱えています。シールド取引よりConfidential Transactionsを選ぶ論拠は、PedersenコミットメントとBulletproofsの、より小さく実戦で鍛えられたコードベースは、急速に進化するzk-SNARK回路よりも4年間未検出のバグを抱える可能性が低いということです。その違いは、コード量とプリミティブの成熟度という量的なものです。

ビットコインの検証可能な供給量が保証するもの

検証可能な供給量とは、ノードを実行してチェーンをダウンロードするユーザーが、システム内の総通貨量がプロトコルの定める量と一致することを自ら証明できることです。カストディアンは誰かの帳簿への特権的アクセスなしに監査人を満足させ、「供給量はこれまでに水増しされたか」という問いを決定的に答えられるものにします。

ビットコインでは、台帳が公開されているため、検証可能な供給量は無償です。Liquidでは、検証可能な供給量にはPedersenコミットメントとレンジプルーフという追加の暗号技術が必要であり、新たな実装対象範囲というコストと引き換えに、ネットワークは隠された金額を合計して均衡を確認できます。ZcashのOrchardプールでは、より強い取引レベルのプライバシーと引き換えに検証可能な供給量が手放され、その取引のコストがいま明らかになっています。

要点

プライバシー設計の領域は、単に透明かシールドかをはるかに超えて広がります。公開残高の強制を伴うコミットメント方式によるLiquidのプライバシーへのアプローチは、供給量の検証可能性を手放すことなく強力なプライバシーを実現します(暗号学的仮定と実装の正しさを条件とします)。

プロトコル設計者は複雑さに慎重に向き合わなければなりません。zk-SNARK回路は強力なツールですが、4年間の専門家レビューで見逃された単一の制約不足要素を含むコードは、数十億ドル規模の資産の完全性への信頼を一夜で損なう可能性があります。一方、回路に単純な公開残高チェックを組み合わせるプロトコルは、より小さな賭けをし、いずれかの構成要素が失敗しても回復可能な立場を維持します。

資産配分者にとって、4年間未検出のバグの後に供給量の正しさを独立して検証できない資産は、何千もの参加者がブロックごとにノード側で供給量の正しさを確認するビットコインより、はるかに危険なリスクプロファイルを持ちます。

ビットコインだけが強固な基盤です

ビットコインは、台帳を完全に公開することで供給量の監査可能性の問題を解決します。すべてのフルノードは、10分ごとのすべてのブロックで2,100万という上限を確認できます。この性質を保つために正しい回路は必要ありません。バグを排除するために研究者がそれを発見する必要もありません。検査は単純な合計であり、将来の攻撃者が破るかもしれない計算困難性の仮定にも、暗号実装の正しさにも依存しません。

あなた自身または組織のために行動するには: