背景#
EVM の設計時には、ゼロ知識証明をサポートすることは考慮されていませんでした。これが、EVM 互換のゼロ知識仮想マシンを構築することを困難にし、初期の「ZK-rollup」がスマートコントラクトの実行能力を欠いていた理由でもあります。しかし、研究の進歩に伴い、EVM の計算をゼロ知識証明に包むことが可能になりました。
ZK-EVM とは#
「ゼロ知識イーサリアム仮想マシン(ZK-EVM)」は、プログラムの正確性を検証するためのゼロ知識証明を生成する仮想マシンです。ZK-EVM は、ゼロ知識技術をサポートする方法でスマートコントラクトを実行することを目指しています。
異なる ZK-EVM プロジェクトは、EVM の実行とゼロ知識証明計算を組み合わせるために異なる方法を採用しています。V 神は EVM の等価性に基づいて ZK-EVM を 5 つの異なるタイプに分類しています:
・イーサリアムと完全互換(Type 1)
・アプリケーションレイヤーに関与しない微小な変更をイーサリアムの基盤に加えたもの(Type 2)
・EVM 内の一部の操作の GAS を変更したもの(Type 2.5)
・アプリケーションレイヤーに関与する微小な変更をイーサリアムの基盤に加えたもの(Type 3)
・Solidity や Vyper などの高級言語で書かれたアプリケーションを ZK フレンドリーな言語にコンパイルする高級言語等価(Type 4)
ZK-SNARK とは#
「ZK-SNARK」は、Zero Knowledge Succinct Non-interactive Argument of Knowledge の略で、ゼロ知識証明プロトコルを実現する方法であり、一方(証明者)が他方(検証者)に情報(たとえば鍵や数学問題の解決策)を持っていることを証明することができるようにしますが、実際の情報自体は明らかにしません。
「ゼロ知識証明(ZK-SNARK)」と「ゼロ知識イーサリアム仮想マシン(ZK-EVM)」は zk-rollup に完全なソリューションを提供します。