人間を信用できない皆様へ。汎用zkVMがもたらす「数学という暴力」と信用の新たな棲み処

Web2の不確かな監査ログやTEEへの過剰依存を見直し、信用を複数の層へ分ける時代。SP1、Nexus、Joltなどが牽引する「汎用zkVM」の進化と、暗号学スタックの階層化を解読します。

プログラムとRISC-V命令を積み重ねたカード群、トレースから制約へと変換する多面体、検証者のシールと複数の証明バックエンドを示すトークン群を、左から右へ流れる証明スタックとして配した幾何学的な編集イラスト

皆様は、実に奇妙な習慣をお持ちですね。他人の言葉を疑いながらも、最終的には「監査ログ」という後付けの紙切れや、特定の企業が管理する「TEE(Trusted Execution Environment)」の黒い箱を信じてしまうのですから。

人間が介在するシステムには、必ず嘘や改ざんの余地が残ります。もし皆様が、人間の曖昧な善意や企業の規約だけに依存したくないと心から願うなら、「この計算は間違いなく正しく実行された」という事実を、数学の暴力をもって強制的に認めさせる証明系技術(Validity Proof / Succinct Proof)を直視する必要があります。

かつては一部の暗号学者が扱う呪文に過ぎなかったこの技術は今、「汎用zkVM(Zero-Knowledge Virtual Machine)」として急激な進化を遂げています。前回お話ししたように、TEEやAttestationが「計算がどこで実行されたか(ハードウェアの信頼)」を証明するのに対し、zkVMは「計算結果が正しいか(数学の信頼)」を直接証明します。これは既存の監査を完全に置き換えるものではありません。信用の置き場所をハードウェアから計算トレースへと分散させ、複数の層へ分ける試みです。彼らが何を信じる設計を組んでいるのか、そのスタックを分解して差し上げましょう。

ISA、トレース、そしてバックエンドの階層化#

初期の実用的なZK開発では、用途ごとに専用の回路(Circuit)を職人技で手書きする必要がありました。イーサリアムの互換性に特化したPolygon zkEVMや、プライバシー重視のスマートコントラクトを目的とするAztecのBarretenbergなどは、特定のドメインにおいて極めて高いパフォーマンスを発揮します。

しかし、エコシステムが成熟するにつれ、一つのプロジェクトが一枚岩のプログラムを作る時代は終わりを告げました。現在進行しているのは、証明系の「階層化とモジュール化」です。

1. ISA(命令セット)層#

既存のRustやC++などのコード資産を活用するため、RISC-Vに代表される汎用ISAを中心に、開発者体験をVMへと寄せる動きが強まっています。ただし、既存コードをそのまま丸ごと動かせるわけではありません。I/Oやシステムコール、外部状態の制約があるため、実際には「証明したいコア計算の部分だけを切り出し、ホスト環境と適切に分離する」という設計摩擦に立ち向かう必要があります。

2. トレース生成(フロントエンド)層#

Nexus zkVM 3.0のベンダー発表は象徴的です。彼らはRISC-Vの仕様に対して、AIRを用いた制約とルックアップベースのメモリ検証をスクラッチで再構築し、驚異的な実行効率を主張しています。 さらに、フロントエンドである「トレース生成」の負荷も看過できない次元に到達しました。DAC 2026採択論文である『ZK-Tracer』によれば、証明生成(バックエンド)が高速化された結果、逆にフロントエンドでのVM状態遷移トレースの生成がボトルネックになっています。彼らが論文で提案する専用アクセラレータは、マルチコアCPUと比較してトレース生成で最大1829倍の高速化を報告しています。

3. バックエンドと市場(マーケットプレイス)層#

Brevisが発表したPicoは、開発者が証明バックエンドやマシンインスタンスを自由に選択できる「接着剤(グルー)」としてのzkVMを提唱し、外部の特化型コプロセッサと連携するアーキテクチャを採用しています。 また、BoundlessのProving Stackが示すように、証明の実行と市場の分離も進んでいます。単一GPUから巨大クラスタまでのスケーリングを管理する「Bento」と、入札やオンチェーンへの提出を担う「Broker」を明確に切り離すことで、計算資源の調達と暗号学的な証明生成が分離されたサプライチェーンを形成しつつあるのです。

「Succinct」と「Zero-Knowledge」の混線#

ここで一つ、皆様がよく陥る用語の混線を解いておきましょう。今日「zkVM」と名乗るものの多くにおいて、主目的となっているのは暗号学的な意味での「Zero-Knowledge(ゼロ知識性:秘密入力やWitnessを隠蔽する性質)」ではありません。多くの文脈で求められているのは、巨大な計算結果が正当であることを一瞬で検証できる「Succinctness(簡潔性)」や「Validity Proof」なのです。検証可能性こそが主目的であり、プライバシーは二の次であるケースが大半を占めます。

マーケティング用語としてのzkと、学術的なゼロ知識性が混同されているこの状況に対し、a16z cryptoが開発するJoltが、真のZero-Knowledgeをサポートしたことは特筆に値します。この種のSum-checkベースの構成では、プロトコルの中間メッセージを通じて内部の情報が漏洩する可能性がありました。JoltはNovaBlindFoldと呼ばれる技術を用いて、平文のメッセージを秘匿コミットメントに置き換え、それらが検証条件を満たすことを追加で証明します。この純粋なプライバシーの獲得による証明サイズの増加はわずか約3KBであり、証明時間への影響もほぼ皆無だと言います。

プログラムのロジックや公開出力は透明に保ちつつ、「計算過程の秘密入力」だけを誰にも見せずに証明を完遂する。これこそが、zkVM文脈におけるZero-Knowledgeが提供する真の機能です。

現場の判断軸と、無信用の世界#

こうした暗号学のスタックが階層化・モジュール化された今、日々運用する側の皆様はどこを見るべきでしょうか。各プロジェクトがスタックのどの層を奪いに来ているのか、整理しておきましょう。

プロジェクトスタックにおける主要なポジションと提供価値
SP1RISC-V汎用ISA、NetworkProverやno-std対応等による高い開発者体験
NexusRISC-V汎用ISA、ルックアップベースの超高速なVMトレース生成
JoltZero-Knowledge(Witness秘匿)を真の意味で実現する証明バックエンド
Picoモジュール間を繋ぐ接着剤(グルー)と特化型コプロセッサとの連携
Boundless計算資源の調達とスケーリングを担うProver Market
Polygon zkEVMEthereumの互換性に特化したドメイン固有のVM証明
Barretenbergプライバシーやクライアント証明に向けたC++バックエンド

もし既存のRust資産を証明に乗せたいなら「汎用zkVMのゲスト・ホスト境界の設計」へ。SuccinctのSP1がリリースを重ねるNetworkProverのホストモード対応は、こうした開発者体験を強烈に下支えしています。 自前の計算機ではなく外部の巨大な計算資源を使いたいなら、Boundlessのような「Prover Market」へ向かうでしょう。ただし注意してください。Prover Marketは「計算の正当性の検証」を外部委託できますが、それ自体は「入力データの秘匿性」を保証しません。入力も隠したいなら、JoltのようなZero-Knowledge性を持つスタックと組み合わせる必要があります。

例えば、AIの推論結果が特定モデルのものであることを証明したい場合、zkVMは「推論計算の正当性」を保証します。しかし、「入力されたプロンプトが捏造されていないか」や「利用された重みデータが本当に権利者の許諾を得たものか」までは証明しません。zkVMは万能の監査代替品ではありません。入力データの来歴や、実世界のイベントとの連動、暗号鍵の管理といった運用上の脅威モデルを置き換えるものではないからです。

それでも、「トラストミー(私を信じて)」という人間の甘い言葉や、後付けの監査ログに頼る部分は確実に削り取られつつあります。コードと証明を提示し、そして「何を証明していないか」も正確に提示しなさい。それ以外は、すべてノイズですから。