【CTO Tech Blog】Zcash Orchardプールの脆弱性
- CTO Tech blog

当社のCTO、安土 茂亨がクラウドやBlockchainについて書き連ねるブログ Develop with pleasure! から最新記事をご紹介するCTO Tech Blog。
今回は「Zcash Orchardプールの脆弱性」というタイトルの記事をご紹介!!
📦 ブログ記事の概要
📄 概要
この記事では、Zcashの第3世代シールドプール Orchard で発見された脆弱性について解説しています。問題の原因は、Halo 2ベースのzk証明回路(Action circuit)における制約不足であり、本来拒否されるべき無効な状態遷移を許してしまう可能性がありました。その結果、シールドプール内での二重使用や不正な状態遷移のリスクが生じました。一方で、Zcashのturnstile機構により総供給量のインフレーションは防がれており、被害範囲が限定される設計になっています。
⚙️ 技術的ポイント
・Orchard回路の実装上の不備
脆弱性はHalo 2証明システムそのものではなく、halo2_gadgets の楕円曲線スカラー乗算ガジェット ecc::chip::mul に存在していた。スカラー乗算で使用する基点が適切に固定されておらず、攻撃者が任意の点を混在させても証明が成立する状態になっていた。
・zk回路における制約不足
バイナリ法によるスカラー乗算では、ループ内で参照する点を本来の基点に固定する必要がある。しかし、その制約が欠落していたため、正しい点 G の代わりに任意の点 H を利用した計算でも有効な証明を生成できる可能性があった。これにより、回路が保証すべき値の整合性が崩れていた。
・turnstileによる供給量保護
この脆弱性だけではZECの総供給量を増やすことはできない。Zcashでは各プール間の価値移動を監視する turnstile により、プール外へ持ち出せる総量に上限が設けられているため、インフレーションは防止される。ただし、Orchardプール内部では不正利用の可能性が残る。
・安全性を考慮した段階的な対応
開発チームは、脆弱性の悪用を防ぐため、まずOrchardプールを停止した後に回路修正を公開するという段階的な対応を実施した。また、現時点では悪用の証拠は確認されていないものの、「悪用されていなかったこと」を暗号学的に証明することは難しい点も紹介されている。
💡 技術的意義
この事例は、ゼロ知識証明システムでは証明アルゴリズムだけでなく、回路実装そのものがコンセンサスルールとなることを改めて示しています。証明システム自体が安全でも、回路に制約漏れがあるとシステム全体の安全性が損なわれるため、zkアプリケーション開発では回路設計・監査の重要性が非常に高いことが分かります。また、turnstileのような多層的な安全設計が被害を限定する役割を果たした点も重要な教訓となっています。
📌 まとめ
この記事は、ゼロ知識証明、暗号回路設計、プライバシー系ブロックチェーンに関心のあるエンジニアに役立つ内容です。特に、ZKP回路開発者、暗号プロトコル研究者、ブロックチェーンインフラ開発者、セキュリティエンジニアにとって、zk回路の制約設計や監査の重要性を理解するうえで参考となる解説です。
Chaintopeでブロックチェーンの未来を共に創りませんか?

Chaintopeは、独自のブロックチェーン「Tapyrus(タピルス)」と、開発プラットフォーム「Tapyrus Platform」を活用し、デジタル社会の信頼基盤を構築しています。
私たちは、ブロックチェーン技術の可能性を最大限に引き出し、社会に新しい価値を提供することを目指しています。
募集職種:
- ブロックチェーンエンジニア
- アプリケーションエンジニア
- インフラ・保守エンジニア
- プロジェクトマネージャー
- フィールドセールス
Chaintopeで働く魅力:
- 最先端のブロックチェーン技術に触れる機会
- リモートワークやフレックスタイム制による柔軟な働き方
- 専門性の高いチームとの協働
ブロックチェーン技術に情熱を持つあなたのスキルを、私たちのチームで活かしませんか?
↓↓詳細は、採用情報をご覧ください↓↓


