ゼロ知識証明
命題が真であることを、命題の中身や前提となる秘密値を一切開示せず、第三者が機械的に検証できる暗号プリミティブ。
定義
ゼロ知識証明 (ZKP) は、証明者 (prover) が検証者 (verifier) に対し、ある命題が真である事実だけを納得させ、命題の根拠となる秘密値については一切の情報を漏らさない対話・非対話プロトコルを指す。Goldwasser, Micali, Rackoff が 1985 年に概念を導入し、現代では「完全性」「健全性」「ゼロ知識性」の三性質で形式化される。
実装上は非対話型 (NIZK) が主流であり、SNARK 系 (Groth16, PLONK, Halo2) と STARK 系が代表的な構成。証明サイズ・検証時間・信頼セットアップの有無でトレードオフを持つ。回路 (制約系) として表現された計算であれば、入力を秘匿したまま結果の正当性を証明できる。
ZKP の有用性は二点に集約される。第一に、秘密を開示せずに性質を証明できる点 (プライバシー)。第二に、計算量の重い検証を短い証明で代替できる点 (スケーラビリティ)。Lemma Oracle は前者を主軸に用いる。
Lemma Oracle での実装
Lemma の中核アーキテクチャは、来歴・属性・AI 推論履歴を docHash として固定し、ZK 回路上で「ある来歴チェーンが存在する」「ある属性が範囲内にある」事実だけを取り出して証明する。コンテンツや個人情報を相手側へ渡す必要がない。
実装系は Poseidonハッシュ による回路内部のメモリ効率化、コミットメント による段階的開示、選択的開示 による属性レベルの粒度制御を組み合わせる。最終的な証明は EVM 互換チェーン上でも安価に検証可能なサイズに収まる。
ZKP は Lemma のすべてのプロダクト (Civic / Critical / Compliance / Trust402) に共通する基盤である。判断根拠は秘匿しつつ、検証だけを公開できるという性質が、規制適合と機密性を同時に満たす唯一の経路となる。