背景#
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 に完全なソリューションを提供します。