필사 모드: ゼロ知識証明ツーリング2026完全ガイド - Circom・Noir・Aztec・Cairo・StarkNet・Risc Zero・SP1・Plonky3・Halo2 徹底解剖
日本語プロローグ — 2026年、ZKは「信じる技術」から「使う技術」になった
2020年ごろのゼロ知識証明(Zero-Knowledge Proof, ZKP)は「理論的にエレガントなもの」だった。回路を一行書くのに数学的直観とPhDレベルの忍耐が要り、証明一つに分単位の時間がかかった。
2026年の景色はまったく違う。
- **zkVM**(zero-knowledge Virtual Machine)が普及し、普通のRustやGoコードがそのまま証明できる。Risc Zero、SP1、Jolt、Plonky3の上で誰もがzkVMコードを書く。
- **Circom・Noir・Cairo**のようなDSLが回路を「別の言語」のように見せる。Circom 2.2、Noir 0.40、Cairo 2.xが安定したツールチェインとして定着した。
- **HALO2・PLONK・FRI・STARK・Groth16**のような証明系はもう学術論文ではなくライブラリだ。
- **ロールアップ**——zkSync Era、Linea、Polygon zkEVM、Scroll、Taiko、Mantle——はすでにメインネットで数十億ドル規模を捌いている。
- **プライバシー・ID・web2橋渡し**——Aztec、Aleo、Penumbra、Manta、zkPassport、Anon Aadhaar、Reclaim、Sismo、TLSNotary、zkEmail——がZKを「ウォレットの向こう側」へ引き出している。
ZKはもう神秘主義ではない。道具である。本稿はその道具の地形を一気に整理する。
> 一行要約: **「何を証明したいのか、誰がどこで検証するのか、コストはいくらか」**。この三つの問いがZKツーリング選択の9割を決める。
第1章 · ZKの基礎 — SNARKとSTARK、そしてその間のすべて
ZKシステムは形式的に三つの性質を満たさなければならない。
| 性質 | 意味 |
| --- | --- |
| Completeness | 証明者が真実を知っていれば検証者は受理する |
| Soundness | 証明者が嘘をつけば検証者は圧倒的確率で拒否する |
| Zero-Knowledge | 検証者は「事実」だけを知り、「どう」かは知らない |
ここに実用面の**succinctness**(証明が短い)と**non-interactivity**(往復なしの一回完結)を加えると、いわゆるZK証明系になる。
二行に圧縮したコア分類:
- **SNARK** — Succinct Non-interactive ARgument of Knowledge。短く速く検証できる。多くがペアリングベース。
- **STARK** — Scalable Transparent ARgument of Knowledge。トラステッドセットアップ不要(transparent)で耐量子。
表に圧縮するとこうだ。
| 項目 | SNARK | STARK |
| --- | --- | --- |
| セットアップ | trusted setup 必要(あるいは universal) | transparent、セットアップ不要 |
| 証明サイズ | 小さい(数百バイト) | 大きい(数十〜数百KB) |
| 検証コスト | 非常に安い | より高い |
| 証明コスト | 中程度 | 一般により安い |
| 数学的基盤 | ペアリング・離散対数 | ハッシュ・FRI |
| 耐量子 | 通常なし | あり |
2026年はどちらか一方の時代ではない。**ロールアップはSTARKで証明を作りSNARKで圧縮(recursion)** する、というハイブリッドが標準になった。
第2章 · 多項式IOPとcommitment scheme — 全ZKの共通骨格
現代のZKシステムはほぼ同じ青写真を共有する。
1. **回路**(arithmetic circuit)もしくはAIR(Algebraic Intermediate Representation)を作る。
2. それを**多項式**(polynomial)に還元する。
3. 証明者が多項式に**commitment**を送る。中身を公開せず値だけ拘束する。
4. 検証者が**ランダムなchallenge**を送る。証明者はその点での値を開示する。
5. 検証者はその値が回路条件を満たすかを検証する。
ここで分岐するコア選択肢が**polynomial commitment scheme**だ。
| コミットメント | 基盤 | 採用システム |
| --- | --- | --- |
| KZG | ペアリング、trusted setup | PLONK、Sonic |
| IPA | 離散対数、transparent | HALO2、Bulletproofs |
| FRI | ハッシュ、transparent | STARK、Plonky2/3、SP1 |
| Brakedown | ハッシュ | Spartan、Brakedown |
上位プロトコルが同じでもコミットメントが変わると性能曲線が変わる。「PLONK over KZG」と「PLONK over FRI」は別物のシステムだ。
第3章 · Groth16 — 2016年のクラシック、2026年も現役
**Groth16**は2016年Jens Grothが発表したペアリングベースSNARK。証明サイズ約192バイト、検証はペアリング数回で済むのでオンチェイン検証が非常に安い。欠点は**回路ごとに新しいtrusted setup**(circuit-specific Powers of Tau ceremony)が必要なこと。
代表ツールは**snarkjs**と**ZoKrates**。Circomで回路を書き、snarkjsでPowers of Tauを実施した上で鍵を生成する。
擬似コマンドフロー — Groth16 + Circom + snarkjs
circom mycircuit.circom --r1cs --wasm --sym
snarkjs powersoftau new bn128 14 pot14_0000.ptau
snarkjs powersoftau contribute pot14_0000.ptau pot14_0001.ptau
snarkjs groth16 setup mycircuit.r1cs pot14_final.ptau circuit.zkey
snarkjs groth16 prove circuit.zkey witness.wtns proof.json public.json
snarkjs groth16 verify verification_key.json public.json proof.json
Groth16は今でも「オンチェイン検証が最安」のシステムだ。だからTornado Cash、Semaphore、RAILGUNといったプライバシー道具と、zkSync Liteのような第一世代ロールアップが揃ってGroth16を使った。回路ごとのセットアップが許容できる領域、つまり「固定された回路ひとつ」の場面では、2026年でも合理的選択肢である。
第4章 · PLONK — Aztec、2019年の一般化
**PLONK**(Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge)は2019年Ariel Gabizon、Zac Williamson、Oana CiobotaruがAztec Networkで発表した。鍵となるのは**universal trusted setup** — 一度のセットアップで同じサイズのすべての回路を扱える。回路を変えてもセットアップをやり直す必要がない。
PLONKの登場は**custom gates**と**lookup arguments**(Plookup、cq、lassoなど)の爆発につながった。素のR1CS(Rank-1 Constraint System)より表現力がはるかに高い。ハッシュ、ECDSA、EVM命令のような重い演算も効率的にエンコードされる。
PLONKの真意は「共有セットアップ + 多様な回路」だった。これがzkRollupが**言語**(EVM互換)を証明する道を開いた。
Groth16: circuit_A -> setup_A circuit_B -> setup_B ...
PLONK: setup once -> circuit_A, circuit_B, ... (universal SRS)
Aztec、Polygon zkEVM、zkSync Era(Boojum以前)、Halo2(PLONK-ish)——2020年代中盤のZK景色の半分はPLONKの変種の上にある。
第5章 · HALO2 — セットアップなし、Zcashの選択
**HALO2**はElectric Coin Company(Zcash)が作ったPLONK系証明系。KZGの代わりに**IPA(Inner Product Argument)** を使うので**trusted setupがそもそも無い**。儀式が消えれば信頼前提が一つ減る。
HALO2のもう一つの強みは**再帰(recursion)**。自分自身の証明を自分の回路で再証明できるため、複数の証明を一つに圧縮(proof aggregation)するのが自然だ。
2026年HALO2を採用する代表システム:
- **Zcash Halo2** — Orchard pool、NU5以降の事実上の標準。
- **Scroll zkEVM** — HALO2ベースのEVM互換証明回路。
- **Penumbra** — Cosmos上のプライベートDEX、HALO2ベース。
- **Filecoin** — Proof-of-ReplicationでHALO2を活用する領域がある。
Halo2の弱点は検証コストがKZGベースより高いこと。これを埋めるため「HALO2で証明を作り、最後にKZG-PLONKでもう一度包んでオンチェインに上げる」というパターンが一般的だ。
第6章 · STARKとFRI — Eli Ben-Sassonの道
**STARK**(Scalable Transparent ARgument of Knowledge)は2018年Eli Ben-Sasson らがStarkWareで定式化した。コア技術は**FRI**(Fast Reed-Solomon Interactive Oracle Proof of Proximity)。多項式の次数が一定以下であることを、ハッシュベースのマークル木だけで証明する。
STARKの魅力は三点だ:
1. **Transparent** — trusted setupが無い。儀式が無い。
2. **Post-quantum** — ハッシュ関数だけに依存するので量子計算機に耐える。
3. **Prover-friendly** — FFT親和的な小さい体(例: Goldilocks `p = 2^64 - 2^32 + 1`)を使うとSNARKより証明コストがずっと安くなる。
代わりに証明サイズがSNARKより大きく(数十KB)、オンチェイン検証が高い。だから実戦ではSTARKで証明を作った後にSNARKで一度包んでオンチェインに上げるハイブリッドが標準になる。Polygon zkEVM、Boojum(zkSync Era)、Plonky2はみなこのパターンだ。
第7章 · Circom 2.2 — 回路DSLの元祖
**Circom**はiden3が作った回路DSL。2026年現在2.2.x ラインが維持され、**R1CS** 回路の事実上の標準記述言語だ。
pragma circom 2.2.0;
template Multiplier() {
signal input a;
signal input b;
signal output c;
c <== a * b;
}
component main = Multiplier();
特徴:
- 整数ドメインではなく有限体`F_p`上で動作 — すべての算術がモジュラー。
- コンパイル結果はR1CSとWASM証人計算機。
- snarkjsと組み合わせてGroth16とPLONKの両方の証明が可能。
- ライブラリ生態系が厚い — circomlib(ハッシュ、マークル、EdDSA)、circom-ecdsa、semaphoreなど。
Circomは今でも学習曲線が急だ。回路を「プログラム」ではなく**制約**(constraint)の集合として考える必要がある。だから「Rustのように書きたい」という要求がNoirへ繋がった。
第8章 · Noir 0.40 — AztecのRust風DSL
**Noir**はAztecが作ったRust風ZK言語。2026年は0.40.x ラインが活発に進化中で、回路を**関数型Rust**のように書ける。
// Noir 例 — 二数の積を証明、因子は非公開
fn main(a: Field, b: Field, c: pub Field) {
assert(a * b == c);
}
Noirの強み:
- **バックエンド分離** — 同じNoirコードをBarretenberg(PLONK・HONK)、Plonky2、RecursionProverといった複数のバックエンドで証明する。
- **標準ライブラリ** — ハッシュ(Poseidon、Pedersen)、署名(ECDSA、Schnorr)、マークル木が標準装備。
- **開発体験** — Rust文法、LSP、`nargo` CLI(ビルド・テスト・証明)、`noirjs` JSバインディング。
- **Aztecとの統合** — Aztec L2コントラクトの非公開関数はすべてNoirで書かれる。
Noir のワークフロー
nargo new my_project
cd my_project
nargo check
nargo execute # 証人生成
nargo prove # 証明生成
nargo verify # 検証
Noirの限界: 回路の本質(有限体上の算術)から完全に自由になることはできない。動的長配列、任意のループといった「プログラマの本能」は依然として回路コストに換算しなければならない。それでもCircomより参入障壁ははるかに低い。
第9章 · Cairo 2 + StarkNet — STARK親和的フルスタック
**Cairo**はStarkWareが作ったSTARK親和的なプログラミング言語。第一世代Cairo 0はアセンブリに近かったが、**Cairo 2.x**はRust影響の強い本格的高級言語だ。
Cairoのコア概念:
- **Cairo-VM** — すべてのCairoプログラムが走るSTARK-friendly VM。そのトレースがそのままSTARK証明の対象。
- **Sierra IR** — Cairoソースから Cairo-VM バイトコードへ至る中間表現。常に「証明可能」を保証する。
- **Starknet 0.13.x** — Cairoで書かれたコントラクトが動くL2。2024〜2025年のStwo証明者導入と共に処理量が大きく増えた。
// Cairo 例 — felt252(`F_p`上の元)が標準型
fn main(a: felt252, b: felt252) -> felt252 {
a * b
}
Starknet上にはdYdX v4(以前のv3)、Argent Xウォレット、Briq、Realmsといったゲームが存在する。2026年時点でCairoは「STARKを最初から最後まで一つの言語で扱う」ほぼ唯一のフルスタック体験だ。
第10章 · Risc Zero 1.x — RISC-Vを証明する
**Risc Zero**は2022年登場以来、zkVMカテゴリーを事実上定義した会社だ。2026年の1.x ラインには次が含まれる。
- **zkVM** — RISC-V(rv32im)命令セットを証明。普通のRustコードを`cargo risczero build`でコンパイルすれば証明可能なELFバイナリができる。
- **Bonsai** — Risc Zeroのクラウド証明サービス。重い証明を委託できる。
- **Steel** — EVMコントラクトのviewコールをzkVM内で実行し、EVM状態に関する証明を作る。事実上「EVMプリコンパイル」。
- **Boundless** — 2025年後半に公開された分散証明者ネットワーク。誰でもGPUを提供して証明作業を行い報酬を受け取れる。
// ホスト側 — ゲストコードを zkVM 内で実行
use risc0_zkvm::{default_prover, ExecutorEnv};
fn main() {
let env = ExecutorEnv::builder()
.write(&42_u32).unwrap()
.build().unwrap();
let prover = default_prover();
let receipt = prover.prove(env, MY_GUEST_ELF).unwrap();
receipt.verify(MY_GUEST_ID).unwrap();
}
Risc Zeroの価値は「回路を書かない」ことだ。**既に動作している Rust コードをそのまま証明する**。たとえばHeliosのようなEthereum light clientをzkVM内で回せば、それ自体が「この時点のEthereumヘッダが有効である」という証明になる。
第11章 · SP1 — Succinct LabsのRust優先zkVM
**SP1**(Succinct Processor 1)はSuccinct LabsのRISC-Vベースのzkb-VMだ。2024年公開、2025〜2026年に急速に定着した。
SP1の特徴:
- **FRIベース** — STARK親和的な小さい体上で証明。Risc Zeroの回路ベースアプローチよりproverが効率的。
- **Pure Rust** — ホストもゲストも標準Rust。`sp1-zkvm`クレートで入出力だけマーク。
- **プリコンパイル** — Poseidon、Keccak、sha256、secp256k1、BN254/BLS12-381ペアリングといった重い演算が回路レベルで加速。
- **オンチェイン verifier** — Groth16やPLONKによるラッピングでEthereumメインネットで直接検証可能。
// SP1 ゲストコード — main 内のすべてが証明される
#![no_main]
sp1_zkvm::entrypoint!(main);
fn main() {
let n: u32 = sp1_zkvm::io::read();
let mut sum: u32 = 0;
for i in 1..=n {
sum += i;
}
sp1_zkvm::io::commit(&sum);
}
ベンチマーク面でSP1は同じワークロードでRisc Zeroより速いことが多い。だから「Helios light client zkVM証明」「EVMブロック証明」「コンセンサス証明」のような大型ワークロードのPoCが急速にSP1へ移行した。
第12章 · Plonky3 — Polygon LabsのSTARKツールキット
**Plonky2**(2022)はPolygon Zeroが作ったPLONK + FRIハイブリッドだった。**Plonky3**(2024)はその後継で、「あらゆるSTARKシステムを作れるモジュラーツールキット」へ進化した。
Plonky3の構成要素:
- **field** — Goldilocks、BabyBear、Mersenne31といった小さなprime fieldの集合。
- **STARK フレームワーク** — AIR定義、トレース生成、FRI証明者。
- **commitment scheme** — Merkle、FRI、recursive aggregation。
- **バックエンド互換** — RISC-V zkVM(Validaなど)、Custom AIRがすべて同じPlonky3の上に乗る。
+------------------------------+
| Plonky3 コア |
| Field, AIR, FRI, Merkle |
+---------+--------------+-----+
| |
zkVM 実装(Valida) Custom AIR(Polygon zkEVM type 1)
Plonky3を直接触ることは少ないが、「なぜSP1とPolygon zkEVMが速いのか」の半分を担う。2026年のZKインフラの見えない背骨だ。
第13章 · Powdr・Jolt・EZKL — 新世代のツールキット
既存システムの上にもう一層の抽象を重ねる、興味深い三プロジェクト。
- **Powdr** — zkVMを作る「工場道具」。ドメイン特化zkVM(例えばBitcoin検証専用zkVM)を作るときに使う。AIR記述、命令セット定義、prover バックエンド選択まで一つの道具で。
- **Jolt** — a16z cryptoが発表したzkVM。**Lasso**(lookup singularity)+ **Spartan**(R1CS sumcheck)を核とする。ほぼすべてのRISC-V命令をlookup tableの一回参照で処理するという発想が新鮮だった。
- **EZKL** — ZKML(ZK Machine Learning)の事実上の標準ツール。ONNXモデルを受け取り、回路に還元して証明を作る。「このMLモデルがこの入力に対しこの出力を出した」を非公開で証明する。
この三つはZKが単一のシステムではなく**レイヤーケーキ**になったことを示している。誰かはPlonky3でzkVMを作り、誰かはPowdrの上にドメイン特化zkVMを作り、誰かはEZKLでML推論をその上に重ねる。
第14章 · Helios・zkEmail・zkTLS — web2をオンチェインへ
ZK応用の新しい波は「チェーン内のデータ」ではなく「web2データをオンチェインに持ち込む」ことだ。
- **Helios** — a16zが作ったEthereum light client。zkVM内で回せば「この時点のEthereum状態」の証明になる。cross-chain信頼の土台。
- **zkEmail** — DKIM署名されたメールをZKで証明。「abc アット google.com から来たメール」を内容を露出せずに証明する。会員登録・ソーシャルリカバリ・KYCに応用。
- **TLSNotary / zkTLS** — TLSセッションで受け取ったデータを第三者検証可能な形で封印。「この時刻 nytimes.com の応答にこの文があった」を証明する。Reclaim Protocolがこれを一般向けに使う。
- **Anon Aadhaar / zkPassport** — インドのAadhaar QRやICAO 9303電子パスポートの署名をZKで検証する。身分証を露出せずに「成人だ」「韓国人だ」のような事実だけを公開する。
このカテゴリは2024〜2026年に最も急速に成長したZK応用領域だ。**オンチェイン資産ではなくオフチェイン事実**を証明する。
第15章 · L2 zk-rollupの景色 — メインネットで動くZK
2026年メインネットで最大のZK利用先はやはり**L2 rollup**だ。主要プレイヤーを整理する。
| ロールアップ | 証明系 | 特徴 |
| --- | --- | --- |
| zkSync Era | Boojum(STARK + SNARK ラッピング) | 最大TVL、独自VM(EraVM) |
| Linea | gnarkベースのPLONK | ConsenSys、EVM type 2 |
| Polygon zkEVM | Plonky2 から Plonky3 | EVM type 2/3 |
| Scroll | HALO2 | EVM type 2、モジュラー回路 |
| Taiko | SGX + ZK 多重証明 | based rollup、EVM type 1目標 |
| Mantle | OP Stack + EigenDA + ZK | optimistic-zk ハイブリッド |
| Aztec | Noir + PLONK + UltraHONK | プライバシー優先 L2 |
| Starknet | Cairo + Stwo | 非EVM、最も異なる道 |
大半のロールアップはSTARKで証明を作って最後にSNARKでラップしオンチェインに上げる同じパターンを使う。違いは「どの段階のEVM互換を目指すか」(type 1 〜 type 4)と「どの回路ライブラリを作るか」だ。
第16章 · EigenLayerとEigenDA — ZK隣接のモジュラー基盤
**EigenLayer**はZKそのものではないが、ZK ロールアップのコスト構造を変える鍵となるインフラだ。Ethereumに ステーキングされたETHを**再ステーキング(restaking)** して、そのセキュリティを他サービス(AVS、Actively Validated Service)へ貸す。
**EigenDA**はその上で動くデータ可用性(Data Availability)レイヤだ。ロールアップがcalldataをEthereumメインネットへ直接置く代わりにEigenDAへ置き、メインネットにはKZGコミットメントだけを残す。コストが10倍以上下がる。
ZKロールアップにとってEigenDAは「証明生成コストはもはや問題ではないが、データコストは依然高い」という2024〜2025年のボトルネックを解く。Mantle、Celo L2のような場所が既にEigenDAを採用し、2026年にはLinea・ScrollもオプションとしてサポートしているIn 2026.
第17章 · プライバシー応用 — Tornado Cash以降の景色
2022年米国OFACの**Tornado Cash制裁**はZKプライバシー道具全般に大きな衝撃だった。その後の景色は二つに分かれた。
**一方** — 「応用は合法、道具は中立」を掲げる試み。Aztec Network(L2上で非公開ノートと公開ノートを分離)、Aleo(レイヤー1自体がプライベート)、Penumbra(Cosmos上のプライベートDEX)、Manta(EVM互換のプライバシーL2)。これらはユーザー識別・AML・traceabilityをZKで選択的に露出する。
**他方** — RAILGUN、Privacy Pools(Vitalikらの2023年提案)のように合法資金のみを受けるプライバシー風プールをZKで証明する。「この資金が既知のハッキング・犯罪と無関係であること」をZKで証明できなければプールに入れない。
技術的には両者とも同じ道具——Poseidonハッシュ・マークル木・nullifier——の上にある。政策側で分かれるだけだ。
第18章 · ZK 身元(Identity)— zkPassport・Anon Aadhaar・Sismo
ZKの最も直観的な応用の一つは**身元**だ。「私は18歳以上である」のような事実を、身分証丸ごと見せずに証明する。
- **zkPassport** — ICAO 9303標準の電子パスポートのデジタル署名をZKで検証する。国、生年、性別といった属性だけを公開する。iOS/Androidアプリと web SDK。
- **Anon Aadhaar** — インド Aadhaar QRコードのRSA署名をZKで検証。「私はインド人」だけを証明し、12桁の Aadhaar番号は非公開のまま。
- **Reclaim Protocol** — TLSNotaryベースで web2 サービス(Uber、LinkedIn、KakaoTalkなど)のデータをZK証明する。「私は5点のUberドライバーだ」のような事実証明。
- **Sismo** — オンチェインデータからZKベースのattestationを生成する。「このウォレットの所有者はENS DAO投票者だ」のようなZKバッジ。
- **World ID** — Worldcoinが作ったZKベースのsybil耐性身元。虹彩スキャンで1人1ID、使用時はZKでしか露出しない。
ZK身元は「ウォレットアドレスが本当に誰なのか」を初めて解いてくれる——しかも露出なしで。
第19章 · 韓国・日本のZKプロジェクト — 東アジアの景色
ZKの景色は米欧中心に見えるが、東アジアの動きも見逃せない。
**韓国**:
- **Krust(Klaytn ZK)** — KakaoのKlaytnのZKロールアップ研究。2024年Kaia統合以降もZKセキュリティ分析・研究ラインが維持されている。
- **Sphinx Labs** — Cosmos/Ethereum ベースのZK応用。特にZKゲーミング・アイデンティティ領域。
- **Sygnum Korea** — スイスのデジタル資産銀行Sygnumの韓国ライン。ZKベースのプライバシー決済・機関トレーディングPoC。
- **Theta Labs Korea** — ビデオストリーミングにZK適用(コンテンツ権利証明)。
- **Onther / EIP-4337 韓国グループ** — ZKベースのaccount abstraction応用。
**日本**:
- **Astar Network(ZKスタック)** — Polygon CDK ベースの Astar zkEVM。2024年Soneium L2と並び日本web3インフラの二軸。
- **Soneium** — Sony Block Solutions Labsが作ったOP Stack L2。ZK段階はまだだが、2026年にZK段階導入ロードマップが公開されている。
- **zkSync Japan / Polygon Japan** — 両社とも日本法人を通じてゲーミング・決済パイロットを進める。
- **Oasys / imToken Japan** — ゲームチェーン + ZK identity 統合を試みる。
- **Startale Labs** — Astar 創立者の後続プロジェクト、ZKスタック上のゲーミング・決済。
東アジアのZK利用は米国のようにDeFiではなく**ゲーミング・決済・身元**に重心がある。規制環境が違うからだ。
第20章 · 証明コスト — 誰がどれだけ速いか
2026年時点の代表的なzkVMの証明コスト(RISC-Vサイクルあたり、単一GPU基準のおおまかな値):
| システム | 相対速度 | 備考 |
| --- | --- | --- |
| Plonky3 ベース SP1 | 最速グループ | FRI + 小さい体 + プリコンパイル |
| Risc Zero 1.x | 速いグループ | 回路ベース、GPU親和 |
| Jolt | 実験的だが非常に有望 | Lasso + Spartan |
| 通常のCircom/Groth16 | 遅い(小回路に限る) | 回路別セットアップ要 |
要点: zkVMは同じワークロードでも**プリコンパイル**の有無で10倍以上差が出る。SP1が速い理由の半分は、Poseidon、sha256、secp256k1のような重い演算を回路レベルで予め埋め込んだことにある。
**Boundless**、**Succinct Prover Network**、**Nethermind ZK Prover**のような**prover marketplace**が定着すれば、証明者は「自分でGPUを買う」ではなく「市場から買う」資源になる。2026年はその転換の真っ只中だ。
第21章 · ZK + AI — Verifiable MLとデータ来歴
ZKとAIは二方向で出会う。
1. **Verifiable Inference** — 「このモデルがこの入力に対しこの出力を出した」をZKで証明する。EZKLが代表。モデルの重みは非公開のまま推論だけ証明する。医療・金融のようにモデルを公開できない領域で強力。
2. **Verifiable Training / Provenance** — 学習データ、学習手順、結果モデルの完全性をZKで証明する。2024〜2026年は学術段階だが、Modulus Labs、Giza、SpectralのようなフィルムがPoCを出している。
ZKとLLMの結合はもっと面白い。**オンチェインML推論**(小さなLLM、分類器)は2026年に実用圏で、「この応答は本当にGPT-Xから来たのか」のcryptographic attestation はOpenAI・Anthropicが検討中の領域だ。
ZKはAIガバナンスの**検証可能な信頼**レイヤになる可能性が高い。
第22章 · ZK回路作成の実戦的落とし穴
回路を初めて書くとき誰もが落ちる落とし穴がある。
| 落とし穴 | 症状 | 対処 |
| --- | --- | --- |
| 制約不足(under-constrained) | 実は他の値も通る | 全 signal に明示的に `===` か `<==` |
| 非公開と公開の混同 | 秘密が証明に漏れる | input の `private` / `public` 明示 |
| 大整数オーバーフロー | `F_p` モジュラー算術が直観に合わない | range check 回路(LessThan など)使用 |
| 非決定的witness | 同じ入力で別 witness が可能 | witness 計算を決定的に |
| 大規模回路の暴走 | コンパイル・証明が終わらない | 回路分割、recursion、zkVMへ移行 |
| ハッシュ関数の誤用 | sha256 回路が巨大 | Poseidon のようなZK-friendly ハッシュ |
| nullifier 衝突 | 二重支払い可能 | nullifier に一意 seed を含める |
| 誤ったドメイン | 別サービスの nullifier が衝突 | domain separation |
回路セキュリティ監査会社——**Veridise**、**0xPARC ZK Audits**、**Zellic**、**Spearbit**——が2024〜2026年に急成長した。ZKコードは通常のSolidity監査よりも精緻なレビューが必要、という認識が定着した。
第23章 · 実戦的ZK応用シナリオ7選 — どの道具が適切か
具体的なシナリオと推奨ツール。
| シナリオ | 推奨 |
| --- | --- |
| 単一回路 + オンチェイン検証コスト最小 | Circom + Groth16 |
| EVM互換 zkRollup | Polygon zkEVM(Plonky3)/ Scroll(HALO2)/ Linea(gnark) |
| 任意のRustコードの証明 | SP1 もしくは Risc Zero zkVM |
| 非公開コントラクト(プライバシーDeFi) | Aztec + Noir |
| STARK フルスタック | Cairo + Starknet |
| ZKML(モデル推論証明) | EZKL |
| web2 データのZK化 | TLSNotary / Reclaim / zkEmail |
最もよく見る失敗は**単一道具万能主義**だ。zkRollup 会社は回路領域とzkVM領域とZK身元領域の三道具を同時に運用している。道具は問題に従う。
第24章 · 次の5年 — ZKの本格的な大衆化
最後に今後5年の流れ。
1. **zkVMが回路を吸収する。** もう誰もCircomでハッシュ回路を書かない。SP1/Risc Zero のプリコンパイルがそれを吸収する。
2. **Prover marketplace**が一般化する。証明者はGPU市場から買う資源になる。Boundless・Succinct prover network・Nethermind ZK prover など。
3. **L2がtype 1に収束**する。すべての主要 zkRollup が EVM-equivalent を志向する。
4. **プライバシーは選択的**になる。Aztec・Aleo・Penumbra が実証した「デフォルト非公開、選択的公開」モデルが標準になる。
5. **ZK身元**がweb2とweb3を繋ぐ橋になる。zkPassport・Anon Aadhaar 系が普通のアプリのログインオプションになる。
6. **ZK + AI** — verifiable inference が医療・金融・法律のML 採用を加速する。
7. **耐量子性**がますます重要になる。STARK系がSNARK 比で優位を占め始める。
8. **標準化** — IRTF・NIST レベルでZKプリミティブが標準化され、ZKが「暗号ライブラリの一項目」として定着する。
ZKはもはや神秘主義ではない。道具だ。そしてその道具は、普通のエンジニアが使う道具になりつつある。
エピローグ — どこから始めるか
ここまでで道具が多すぎると感じたら、次の学習経路を勧める。
1. **理論** — Vitalik Buterin の "How does a zero-knowledge proof work?" シリーズと Justin Thaler の "Proofs, Arguments, and Zero-Knowledge" 本。
2. **DSL 実習** — `circom` + `snarkjs` で掛け算回路を証明。その後 Semaphore チュートリアル。
3. **zkVM 実習** — SP1 か Risc Zero の fibonacci 例題。Rust コードがそのまま回路になる体験を。
4. **L2 実習** — Scroll か zkSync Era に小さなコントラクトをデプロイ。回路が見えないZK体験。
5. **応用** — zkEmail か Anon Aadhaar のデモ。「ウォレットの向こうのZK」体験。
> 「何を証明したいのか、誰がどこで検証するのか、コストはいくらか」。この三つの問いを持って本文を辿り直せば、道具選択は意外なほど明瞭になる。
— ZK ツーリング 2026、終わり。
References
1. Buterin, V. (2022). "How does a zero-knowledge proof work? An ELI5 explanation." [https://vitalik.eth.limo/general/2022/06/15/using_snarks.html](https://vitalik.eth.limo/general/2022/06/15/using_snarks.html)
2. Thaler, J. (2023). "Proofs, Arguments, and Zero-Knowledge." [https://people.cs.georgetown.edu/jthaler/ProofsArgsAndZK.html](https://people.cs.georgetown.edu/jthaler/ProofsArgsAndZK.html)
3. Groth, J. (2016). "On the Size of Pairing-based Non-interactive Arguments." [https://eprint.iacr.org/2016/260](https://eprint.iacr.org/2016/260)
4. Gabizon, A. et al. (2019). "PLONK: Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge." [https://eprint.iacr.org/2019/953](https://eprint.iacr.org/2019/953)
5. Electric Coin Co. "HALO2." [https://zcash.github.io/halo2/](https://zcash.github.io/halo2/)
6. Ben-Sasson, E. et al. (2018). "Scalable, transparent, and post-quantum secure computational integrity." [https://eprint.iacr.org/2018/046](https://eprint.iacr.org/2018/046)
7. iden3. "Circom 2 Documentation." [https://docs.circom.io/](https://docs.circom.io/)
8. Aztec. "Noir Documentation." [https://noir-lang.org/docs](https://noir-lang.org/docs)
9. StarkWare. "Cairo Book." [https://book.cairo-lang.org/](https://book.cairo-lang.org/)
10. Starknet Foundation. "Starknet Documentation." [https://docs.starknet.io/](https://docs.starknet.io/)
11. Risc Zero. "zkVM Overview." [https://dev.risczero.com/api/zkvm/](https://dev.risczero.com/api/zkvm/)
12. Succinct Labs. "SP1 Book." [https://docs.succinct.xyz/](https://docs.succinct.xyz/)
13. Polygon Labs. "Plonky3 GitHub." [https://github.com/Plonky3/Plonky3](https://github.com/Plonky3/Plonky3)
14. a16z crypto. "Jolt: A simple, fast, modular SNARK." [https://a16zcrypto.com/posts/article/building-jolt/](https://a16zcrypto.com/posts/article/building-jolt/)
15. ZKonduit. "EZKL." [https://docs.ezkl.xyz/](https://docs.ezkl.xyz/)
16. zkSync. "Boojum Whitepaper." [https://zksync.io/research](https://zksync.io/research)
17. Scroll. "Scroll Architecture." [https://scroll.io/blog](https://scroll.io/blog)
18. Aztec Network. "Aztec Protocol Specification." [https://docs.aztec.network/](https://docs.aztec.network/)
19. EigenLayer. "EigenLayer Whitepaper." [https://docs.eigenlayer.xyz/](https://docs.eigenlayer.xyz/)
20. Reclaim Protocol. "TLSNotary and Reclaim." [https://reclaimprotocol.org/](https://reclaimprotocol.org/)
21. zkPassport. "Documentation." [https://zkpassport.id/](https://zkpassport.id/)
22. Anon Aadhaar. "Anon Aadhaar Protocol." [https://anon-aadhaar.pse.dev/](https://anon-aadhaar.pse.dev/)
23. Astar Network. "Astar zkEVM." [https://astar.network/](https://astar.network/)
24. Soneium. "Soneium Documentation." [https://soneium.org/](https://soneium.org/)
25. Veridise. "ZK Audit Reports." [https://veridise.com/](https://veridise.com/)
현재 단락 (1/289)
2020年ごろのゼロ知識証明(Zero-Knowledge Proof, ZKP)は「理論的にエレガントなもの」だった。回路を一行書くのに数学的直観とPhDレベルの忍耐が要り、証明一つに分単位の時間が...