ZK(ゼロ知識)とは
注:この文書は英語の原文からの自動翻訳です。
ZK(ゼロ知識)とは
**ゼロ知識証明(ZK 証明)**は、ある当事者(証明者)が別の当事者(検証者)に、ある主張が真であることを — その主張自体の真実性を超えるいかなる情報も明かすことなく — 納得させることを可能にする暗号技術です。ブロックチェーンでは、ZK 証明は三つの主要な目的に使われます。プライバシー(トランザクションが有効であることを証明しつつその詳細を隠す)、スケーリング(多くのトランザクションをオンチェーンで検証される単一の証明に圧縮する)、検証可能な計算(オフチェーンの計算が正しく実行されたことを証明する)です。
要約: ZK 証明は、どのように、なぜかを示すことなく、何かが真であることを証明できるようにします。クリプトでは、プライベートなトランザクション、スケーラブルなロールアップ、検証可能な AI 推論を可能にします — すべて証明者への信頼を必要とせずに。
中核となる考え方
この概念は直観に反します。明かすことなく、何かを知っていることをどうやって証明できるのか? 古典的な例えが役立ちます。
二つの経路(左と右)があり、奥の施錠された扉で合流する洞窟を想像してください。あなたは扉のパスワードを知っていると主張します。パスワードを明かさずにそれを証明するため、検証者が洞窟の入口に立ち、あなたはランダムな経路から入ります。検証者は次に、どちらの経路から出てほしいかを叫びます。パスワードを知っていれば、あなたは常に要求された側から出られます — 必要なら扉を通り抜けます。パスワードを知らなければ、入った側からしか出られません。多くのラウンドの後、検証者はあなたがパスワードを知っていると確信しますが、パスワードが何であるかは決して知りません。
ZK 証明はこの直観を数学的に形式化します。三つの性質を満たします。
- 完全性。 主張が真であり、両当事者がプロトコルに従えば、検証者は納得します。
- 健全性。 主張が偽であれば、いかなる不正な証明者も検証者を納得させられません(無視できる確率を除いて)。
- ゼロ知識性。 検証者は、主張が真であるという事実を超えて何も学びません。
ZK 証明の仕組み(簡略化)
ZK 証明システムには次のステップが含まれます。
- 主張の定式化。 証明されるべき主張が数学的な主張として表現されます — 通常は回路(一連の算術演算)または多項式の方程式の集合として。
- 証人(witness)。 証明者は主張を真にする秘密の情報(「証人」)を持ちます。たとえば、証人は既知の出力を生成する計算への入力かもしれません。
- 証明の生成。 証明者は証人と主張を使って証明 — コンパクトな数学的オブジェクト — を生成します。これは証明者にとって計算コストが高いものです。
- 証明の検証。 検証者は主張に照らして証明を確認します。検証は速く、証人を必要としません。証明が有効であれば、検証者は証人を知ることなく主張が真であると納得します。
証明は通常、証人よりもはるかに小さく、検証は計算を再実行するよりもはるかに安価です。この非対称性が、ZK 証明をブロックチェーンのスケーリングと検証に有用なものにしています。
zk-SNARK と zk-STARK
ブロックチェーン領域では二つの主要な ZK 証明システムのファミリーが支配的です。
zk-SNARK
Succinct Non-interactive Arguments of Knowledge(簡潔で非対話的な知識の論証)。SNARK は検証が安価な非常に小さな証明(数百バイト)を生成します。それらは「非対話的」です — 証明者は検証者とのやり取りなしに一段階で証明を生成します。ほとんどの SNARK 構成はトラステッドセットアップ — 公開パラメータを生成する一度限りのセレモニー — を必要とします。セットアップが侵害されれば、健全性の保証が崩れます。現代の SNARK(PLONK やその変種など)は、任意の回路に対して機能する普遍的なトラステッドセットアップを使い、この懸念を軽減しますが排除はしません。
zk-STARK
Scalable Transparent Arguments of Knowledge(スケーラブルで透明な知識の論証)。STARK はトラステッドセットアップを必要としません — それらは「透明」です。また、ポスト量子セキュリティ(量子コンピュータによる攻撃に耐性がある)も提供します。トレードオフは、STARK の証明が SNARK の証明より大きく、検証がやや高価であることです。STARK は、証明者の時間が計算サイズに対して準線形にスケールするため、大きな計算に特に適しています。
比較
| 性質 | zk-SNARK | zk-STARK |
|---|---|---|
| 証明のサイズ | 小さい(数百バイト) | より大きい(数十〜数百キロバイト) |
| 検証のコスト | 低い | 中程度 |
| トラステッドセットアップ | 必要(ほとんどの構成) | 不要(透明) |
| ポスト量子セキュリティ | なし(ほとんどの構成) | あり |
| 証明者のコスト | 中程度 | より高いが、大きな回路にはよりよくスケールする |
実務上、多くのプロジェクトは小さな証明サイズと低い検証コストのために SNARK ベースのシステムを使い、一方で STARK は透明性とポスト量子セキュリティが優先される場面で採用が進んでいます。
ブロックチェーンにおける ZK:主要な応用
プライバシー
ZK 証明は公開ブロックチェーン上でプライベートなトランザクションを可能にします。ユーザーは、送信者、受信者、金額を明かすことなく、自分のトランザクションが有効である(残高が正しく、二重支払いがない)ことを証明できます。プライバシー重視のプロトコルはこれを使って、それ以外は透明なチェーン上で機密性のある送金を作り出します。
スケーリング(zk-ロールアップ)
zk-ロールアップは、トランザクションをオフチェーンで実行し、それらをバッチ化し、バッチ全体が正しく処理されたという ZK 証明を生成する Layer 2 スケーリングソリューションです。証明と状態変化の要約だけがベースレイヤー(Layer 1)に投稿されます。L1 のスマートコントラクトが証明を検証し、状態の更新を受け入れます。これは数千のトランザクションを単一の証明の検証に圧縮し、ベースレイヤーのセキュリティを継承しつつスループットを劇的に増大させます。主要な zk-ロールアップの実装には zkSync、StarkNet、Polygon zkEVM、Scroll、Linea があります。
Layer 2 スケーリングについての詳細は L2 を参照してください。
検証可能な計算と zkML
ZK 証明は、あらゆる計算が正しく実行されたことを検証できます。これは AI にも及びます。zkML は ZK 証明を使って、機械学習モデルが特定の入力から特定の出力を生成したことを、モデルの重みや入力データを明かすことなく検証します。スマートコントラクトはその証明をオンチェーンで検証でき、AI 推論が正しく計算されたという信頼不要の保証を生み出します。
zkML は、クリプト AI における ZK の最も技術的に野心的な応用の一つを表します。正しい推論の数学的(信頼不要の)保証を提供しますが、証明生成の計算コストのため、現在は小さなモデルに限られています。
なぜ ZK がクリプト AI にとって重要か
ZK 証明は分散型 AI における二つの重要なニーズに応えます。
- 検証可能な AI。 AI 推論が信頼できない第三者のハードウェア上で実行されるとき、ZK 証明は計算を再実行することなく結果が正しいことを保証できます。これは、AI 出力がスマートコントラクトのアクションを引き起こすオンチェーンアプリケーションにとって不可欠です。
- プライバシー。 ZK 証明は、モデル、入力、あるいはその両方がプライベートに保たれる AI 計算を可能にします。ユーザーはコンピューティング提供者にクエリを見られることなく AI 生成の結果を得られ、モデルの所有者は重みを明かすことなく自分のモデルが使われたことを証明できます。
DecAIHub の評価フレームワークでは、ZK ベースの検証は本物のオンチェーン AI 統合の指標として機能します — オフチェーンの AI 計算とオンチェーンの状態の間に、数学的に検証可能なリンクを生み出すのです。
DecAIHub プロジェクトカードでの表示箇所
ZK 関連の機能はいくつかの場所に現れます。
- AI component — 「zkML inference」、「ZK-verified computation」、「zero-knowledge proof of inference」といった値は ZK ベースの AI 検証を示します。
- Category — AI に ZK を使うプロジェクトは、ZK を検証メカニズムとして AI/推論 または AI/コンピューティング のカテゴリに現れることがあります。
- Evidence 表 — ZK の Tier-1 エビデンスには、デプロイされた検証者コントラクト、公開された証明のベンチマーク、回路の実装、オンチェーンの検証トランザクションが含まれます。
- オンチェーンアーティファクト — オンチェーンの ZK 検証者コントラクトは本物の ZK 統合の具体的なエビデンスであり、Onchain necessity の側面に寄与します。
ZK が証明しないこと
- ZK は計算が正しく実行されたことを証明します — それは計算が有用であること、モデルが良いこと、データが正確であることを証明しません。検証されたゴミは依然としてゴミです。
- ZK はトークンが必要であることを証明しません。ZK 証明はブロックチェーンなしでも機能します。検証をオンチェーンに置くという決定はアーキテクチャ上の選択です。
- ZK は分散化を証明しません。中央集権的な提供者は自身の計算のために ZK 証明を生成できます。
- ZK は、モデルのコミットメント(重みのハッシュ)が公に固定され、証明がそのコミットメントに紐づけられていない限り、モデルが主張どおりのものであることを証明しません。
- ホワイトペーパーで ZK に言及しているプロジェクトは、ZK が実装されていることを意味しません。エビデンスとして、デプロイされた検証者コントラクト、証明のベンチマーク、回路のコードを探してください。
混同しないでください
- プライバシー — プライバシーはより広い目標です。ZK はそれを達成する一つのツールです。他のプライバシーメカニズムには TEE、MPC、準同型暗号があります。
- TEE(Trusted Execution Environment) — TEE はハードウェアベースの機密性を提供します。ZK は数学的な証明を提供します。両者は検証可能な AI に使えますが、信頼の前提とパフォーマンスのトレードオフが異なります。
- zkML — ZK 証明を機械学習推論に応用した特定のものです。ZK は一般的な暗号技術であり、zkML は専門的なユースケースです。
- 暗号化 — 暗号化はデータを隠します。ZK 証明はデータについての主張を、それを明かすことなく証明します。両者は異なる操作です。暗号化はデータを読めない形に変換し、ZK 証明はデータを露出させることなくそれについての数学的な証拠を生成します。
- オプティミスティック検証 — 結果が正しいと仮定し、異議が唱えられたときにのみ不正証明を使います。ZK は前もって正しさを積極的に証明します。これらは異なる L2 設計(オプティミスティックロールアップ対 zk-ロールアップ)で使われる補完的なアプローチです。
よくある質問
zk-SNARK と zk-STARK の違いは何ですか?
どちらもゼロ知識証明システムのファミリーですが、主要な性質が異なります。zk-SNARK はより小さな証明を生成し検証コストが低いですが、通常はトラステッドセットアップ — システムパラメータを生成する一度限りのセレモニー — を必要とします。zk-STARK はトラステッドセットアップを必要とせず(透明である)、ポスト量子セキュリティを提供しますが、その証明はより大きく検証が高価です。選択は応用に依存します。SNARK は証明サイズと検証コストが重要な場合(例:オンチェーン検証)に好まれ、STARK は透明性と長期的なセキュリティが優先される場合に好まれます。
ZK 証明はブロックチェーンのスケーリングにどう使われますか?
zk-ロールアップはトランザクションをオフチェーンでバッチ化して実行し、バッチ全体が正しく処理されたという単一の ZK 証明を生成します。この証明は、圧縮された状態変化の要約とともに Layer 1 ブロックチェーンに提出されます。L1 のスマートコントラクトが証明を検証し — すべてのトランザクションを再実行するよりもはるかに安価です — 状態の更新を受け入れます。これにより L1 は一つの証明を検証することで数千のトランザクションの効果を処理でき、スループットを劇的に増大させます。
ZK と AI のつながりは何ですか?
ZK 証明は、AI モデルの推論が正しく実行されたことを、モデルや入力データを明かすことなく検証できます。zkML と呼ばれるこの応用は、オンチェーンでの信頼不要の AI 検証を可能にします。スマートコントラクトが、特定のモデルが特定の出力を生成したことを確認できるのです。現在、zkML はモデルの演算を ZK 回路に変換して証明を生成する計算コストのため、小さなモデルにのみ実用的です。証明システムが改善されるにつれて、検証可能な AI モデルの範囲は拡大します。
ZK 証明は計算コストが高いですか?
証明の生成は高コストです — 基盤となる計算よりも著しく高いものです。ある計算の ZK 証明の生成は、単にその計算を実行するよりも 10 倍から 1,000 倍長くかかりうるものです。しかし、証明の検証は安価で速いです。この非対称性は意図的なものです。証明者が一度だけ重い作業を行い、いくつでもの検証者が結果を効率的に確認できます。ブロックチェーンアプリケーションでは、これは高コストの証明生成がオフチェーンで行われ、安価な検証がオンチェーンで行われることを意味します。
外部リンク
- Ethereum.org — Zero-knowledge proofs — ZK 証明の概念、種類、Ethereum での応用についての包括的な入門。
- ZKProof Standards — ゼロ知識証明の用語、フレームワーク、セキュリティの定義を標準化するコミュニティ主導の取り組み。
- Vitalik Buterin — An incomplete guide to rollups — Ethereum 共同創設者によるオプティミスティックロールアップと ZK ロールアップの基礎的な比較。
No comments to display
No comments to display