ZKコプロセッサは、検証可能性を維持しながらブロックチェーンから計算をオフロードするために構築されています。その中心には、主に3つのコンポーネントが含まれています: プルーバーエンジン、バリファイアコントラクト、および仮想マシン(zkVMまたは回路ランタイム)。
プロバエンジンは、オフチェーンで計算を実行し、計算が正しく行われたことを示す暗号学的証明を生成する責任があります。このエンジンは入力データを受け取り、定義されたロジックまたはプログラムを通じて処理し、簡潔なゼロ知識証明を出力します。プロバは通常、計算リソース(CPUやGPUなど)を必要とする重いプロセスであり、使用される証明システムの種類によって異なります。
検証者契約はオンチェーンに展開されており、設計上軽量です。その唯一の目的は、提出された証明の正確性を検証することです。これは、証明者が使用するのと同じ論理から数学的に導出された検証キーを保持しています。スマートコントラクトが証明を受け取ると、それをキーに対してチェックし、結果が有効かどうかを確認します。このプロセスは、オンチェーンでの完全な計算を実行するのと比較して高速かつ安価です。
zkVMまたは算術回路はプログラムのロジックを定義します。これは証明者のためのランタイム環境として機能します。一部のシステムでは、これは低レベルのDSLで書かれたカスタム回路であり、他のシステムでは高レベルの言語でコードを解釈できるフルバーチャルマシンを使用します。これらのコンポーネントは、信頼のないオフチェーン実行と簡潔なオンチェーン検証を可能にします。
ZKコプロセッサの開発をサポートするために、いくつかのツールとフレームワークが登場しています。Circomは最も早く、広く使用されている回路言語の一つです。開発者は宣言的な構文を使用して算術回路を定義することができます。これらの回路は、その後、Groth16やPLONKなどの証明システムにコンパイルされます。Circomはその柔軟性で知られていますが、学習曲線が急であり、手動での回路設計が必要です。
Noirは、ZK開発を容易にするために設計された比較的新しい言語です。Aztecによって開発されたNoirは、制約システムの複雑さを多く抽象化したRustに似た言語です。これは自動的にゼロ知識回路にコンパイルされ、読みやすい構文でプライベートプログラムを書くことが容易になります。
言語を超えて、zkVMはゼロ知識に優しい環境で汎用コードを実行できる能力のために注目を集めています。Risc Zeroは、最も高度なzkVM実装の1つを提供しています。これはRISC-V命令セットをエミュレートし、開発者がRustまたはCで書かれた任意のプログラムをゼロ知識証明として実行できるようにします。Succinctによって開発されたSP1は、同様のアプローチを取りますが、証明システム全体でのパフォーマンスとポータビリティの最適化を目指しています。
これらの環境は、ZKコプロセッサがどれだけ表現力があり、効率的で、コンポーザブルであるかを決定するため、非常に重要です。低レベルの回路はパフォーマンスが重要なアプリケーションには依然として有用ですが、zkVMはより広範な開発者の採用と迅速な反復を可能にしています。
ZKコプロセッサが実際にどのように機能するかを理解するために、Risc ZeroのAxiomやBonsaiのようなシステムの実行フローを考えてみましょう。
Axiomのモデルでは、開発者が過去のEthereumデータに対してクエリを定義します。例えば、特定のユーザーが過去のブロックで特定の残高を保持していたかどうかを確認することです。このクエリはAxiomのオフチェインコプロセッサに送信されます。コプロセッサは関連するオンチェインデータを取得し、クエリを処理し、zkVMを使用してロジックを実行します。計算が完了すると、コプロセッサは結果の正確性を証明するゼロ知識証明を生成します。この証明はチェーン上の検証契約に提出され、検証されると、スマート契約が結果を完全に信頼して使用できるようになります。
Risc ZeroのBonsaiは、同様の構造に従っていますが、プロセスを一般化しています。開発者はRustのような高水準言語でアプリケーションロジックを書きます。このコードはzkVMイメージにコンパイルされ、Bonsaiのインフラストラクチャを使用してオフチェーンで実行されます。実行後、証明が生成され、オンチェーンバリファイアを介して任意のブロックチェーンに再投稿することができます。
このアーキテクチャは、開発者がブロックチェーンに過負荷をかけることなく、強力で信頼最小化されたロジックを構築することを可能にします。また、複数の契約やアプリケーションに役立つ再利用可能で構成可能な証明を可能にします。
ZKコプロセッサの強みは、それが可能にする信頼モデルにあります。中央集権的なオラクルやオフチェーン計算提供者とは異なり、ZKコプロセッサは計算を行うエンティティをユーザーが信頼する必要がありません。代わりに、信頼は数学に移転されます。
この信頼の核心は、ゼロ知識証明の構造にあります。これらの証明は、無効な計算、たとえ1ビットの間違いであっても、検証が失敗するように設計されています。検証者契約は、暗号的仮定が成立していると仮定した場合、偽の結果を受け入れるように騙されることはありません。
さらに、検証者は公開入力、証明、および検証キーのみを必要とするため、証明者のアイデンティティや行動に依存しません。任意の第三者が証明を生成でき、検証を通過すれば受け入れられます。これは、証明者が分散化され、許可なしで、さらにはインセンティブを受けることができることを意味しており、これは証明ネットワークでさらに探求される特徴です。
暗号保証とブロックチェーンの確定性を組み合わせることで、ZKコプロセッサは中央集権的サービス、信頼、またはマルチシグ合意に依存しない新しいトラストレス実行レイヤーを可能にします。
ZKコプロセッサは、計算が信頼を最小化し、コスト効率が高く、プライベートである必要がある分野で実際の traction を見出しています。DeFi では、オンチェーンにすべてのデータを保存することなく、時間加重平均価格、資産保有状況、またはカスタムリスクモデルを計算できます。これにより、ガスコストを増加させたり、ブロックチェーンを膨張させることなく、よりスマートな金融契約を実現できます。
クロスチェーンアプリケーションにおいて、ZKコプロセッサはライトクライアントとして機能します。すべてのチェーンにフルノードを実行する代わりに、アプリケーションは別のチェーンの状態の簡潔な証明を検証できます。これにより、ブリッジやメッセージングプロトコルが大幅に簡素化され、セキュリティと相互運用性が向上します。
レイヤー2エコシステムは、ロールアップロジックを最適化する方法としてZKコプロセッサを採用しています。すべてのインタラクションをロールアップ回路内で実行するのではなく、ロールアップは、詐欺検出、オラクル検証、またはユーザー定義ロジックなどの特定のタスクを外部のZKコプロセッサに委任することができます。これにより、証明コストが削減され、ロールアップがよりモジュラーになります。
ZKコプロセッサは、このようにして重要なインフラストラクチャコンポーネントとして浮上しています。彼らは、非中央集権性やパフォーマンスを損なうことなく、ブロックチェーンができることを拡張します。ツールやランタイムが成熟するにつれて、彼らはあらゆる高度な分散型アプリケーションの開発スタックにおけるデフォルトの選択肢になる可能性が高いです。