三分間で理解する zkEVM:イーサリアムのスケーリングソリューションの宝石
執筆:DeGate,ChainNews
9月1日未明、イーサリアムのスケーリングネットワークArbitrumはメインネットのパブリックテスト版を正式にローンチした。同時にOptimismはすでに一部のホワイトリストアプリに対してオープンしており、これはイーサリアムL2スケーリングソリューションの一つであるOptimistic Rollupが正式に舞台に登場したことを示している。
次に、L2スケーリングソリューションのもう一つの側面、ZK Rollupに目を向けてみよう:
zkSyncは8月31日にその2.0バージョンのローンチを延期すると発表した。zkEVMに基づくzkSync 2.0は、EVMに互換性のある最初のZK Rollupになることが期待されている。
8月13日、Polygonは2.5億ドルでイーサリアムの二層スケーリングソリューションHermezを買収すると発表した。Hermezのコア技術はそのzkEVMソリューションである。
同じく8月13日、イーサリアム財団は定期的に発表する支援しているチームの研究と開発の進捗に関する記事の中で、過去数ヶ月間にzkEVMの研究開発のためにチームを設立したことを資金提供したと述べた。
私たちは、Vitalikが二つのスケーリングソリューションを比較する際に、短期的にはOptimistic Rollupsが一般的なEVM計算で勝つ可能性が高いが、最終的には中長期的に見てZK-SNARK技術の改善に伴い、ZK Rollupsがすべてのシーンで勝つだろうと述べたことを知っている。ここで言う「ZK-SNARK技術の改善」とは、主にzkEVMの成功を指している。
したがって、zkEVMはイーサリアムスケーリングソリューションの王冠の宝石となっている。筆者はこの記事を通じて、読者がzkEVMの基本原理と発展状況を理解できることを願っている。
一、zkEVMの役割
zkEVMの役割を理解するためには、いくつかの前提知識が必要である。
まずイーサリアムについて説明しよう。本質的に、イーサリアムは取引に基づく状態機械である。
イーサリアムの創世状態(Genesis State)から始まり、ブロックごとの取引を通じて最終状態、すなわちイーサリアムの現在の状態に変わる。この状態にはすべてのアカウントアドレスとそのマッピングされたアカウント状態が含まれている。
出典:https://ethfans.org/posts/how-does-ethereum-work-anyway
取引を処理するのはEVM、すなわちThe Ethereum Virtual Machine(イーサリアム仮想マシン)である。EVMはスタックマシンとして動作し、プログラマーはSolidityなどの高級言語を使用してコードを記述し、その後コードはEVMが理解できるEVMバイトコードにコンパイルされ、さまざまなEVM命令の実行基準としてスタック操作が行われ、最終的に新しい状態が生成される。
ここで問題が生じる。ZK Rollupソリューションは、二層上の取引に対してゼロ知識証明を生成し、それを一層に戻して検証する必要があるが、ゼロ知識証明を生成するためには、取引の処理過程がzk回路証明の規範に適合している必要がある。
EVMの設計当初、明らかにゼロ知識証明をサポートすることは考慮されていなかった(結局それは6、7年前であり、ゼロ知識証明はほとんどの人の視野に入っていなかった)。これがzkEVMの意義である:ZK Rollupネットワーク上で動作し、EVMに互換性があり、ゼロ知識証明に優しい仮想マシン。
二、二つの実装戦略
zkEVMには、現在主に二つの実装戦略がある:
EVMの既存の命令セットを直接サポートし、Solidity命令セットと完全に互換性を持つ。この戦略を採用しているのはHermezとイーサリアム財団のzkEVMである。
ゼロ知識証明に優しい新しい仮想マシンを再設計し、EVM開発ツールに適応させてSolidityとの互換性を維持する。この戦略を採用しているのは主にzkSyncである。
第一の戦略については、EVMの既存の命令セットを完全にサポートしているため、EVMと同じコンパイラを使用しており、自然に既存のエコシステムと開発ツールに完全に互換性があり、イーサリアムのセキュリティモデルをより良く継承している。
第二の戦略については、既存のEVM命令セットの制約を受けないため、コードをより柔軟にゼロ知識証明に優しい命令セットにコンパイルでき、すべてのEVMの既存命令セットとの互換性を維持するために必要な困難で重い作業から解放される。
総じて、第一の戦略は互換性が高く、安全性も高いが、作業量が多い。第二の戦略は柔軟性があり、作業量が少ないが、適応に追加の労力を要する。
三、主要なソリューションの比較
Hermez zkEVM
Hermezは第一の戦略を採用しており、すべてのEVM命令セットを中間命令(micro opcode)に翻訳している。
ご存知のように、EVMにはCALL、EXP、CREATEなどの可変長命令があり、これらの命令は本質的にzk回路証明に優しくない。中間命令を利用することで、これらの命令のロジックをより友好的に表現できる。中間命令はuVMで実行され、uVMでは大量の暗号学的ツールを使用してzk完全性を実現し、Plookupアルゴリズムを使用して証明と検証の効率を向上させている。
Hermez zkEVMの実装におけるもう一つの注目点は、二つの証明システムを同時に使用していることである。具体的には、STARK証明を生成し、その後PLONKまたはGroth16を使用してこのSTARK証明に対して証明を生成し、一層で検証する。このプロセスは証明の証明のようなものである。
このようにする理由は、STARKは非常に優れているが、証明の規模が大きく、チェーン上での検証時にコストが高くなるためである。一方、Groth16やPLONKはより小さな証明規模とより速い検証速度を持っている。この二つを組み合わせてお互いの長所を生かすアプローチは、非対称暗号アルゴリズムと対称暗号アルゴリズムの組み合わせ使用のシーンを思い起こさせる。
AppliedZKP zkEVM
AppliedZKP zkEVMもHermezと同様に第一の戦略を採用している。
AppliedZKPはデータバス(Bus Mapping)の考え方を採用し、ストレージと計算を分離している。Bus Mappingで正しいストレージデータを抽出した上で、State proofがデータの一貫性を証明し、EVM proofが計算ロジックの正確性を証明する。
具体的なプロセスは以下の通り:
EVMはBus Mappingを通じて必要な関連状態を読み取る。状態はStorage、Memory、Stackの三部分から構成される。
EVMはopcodeを実行する。
EVMは再びBus Mappingを通じて新しい状態を書き戻す。
このプロセスの中で、State proofはBus Mappingの読み書き情報の一貫性と正確性を担当し、EVM proofはEVMのopcode実行の正確性を担当する。
zkSync EVM
HermezやAppliedZKPとは異なり、zkSyncは第二の戦略を選択した。zkSyncのzkEVMはEVMの複製品ではなく、99%のSolidityコントラクトを実行でき、さまざまな状況(ロールバックや異常事態を含む)で正常に機能することを確保するために新たに設計されたものである。同時に、zkEVMは回路内で効率的にゼロ知識証明を生成することができる。
zkSync EVMはTinyRAMを使用して通常の命令セットを実現し、Gas消費が大きい命令(SHA256/keccakなど)は特別にその回路を実装し、最終的に再帰的集約技術を使用してすべての証明を一つに集約し、効率を向上させる。
出典:https://medium.com/matter-labs/zksync-2-0-hello-ethereum-ca48588de179
zkSyncは同時にzkEVM向けの二つのコンパイラフロントエンドを開発した:YulとZinc。Yulは異なるバックエンドに対してバイトコードにコンパイルできる中間Solidity表現であり、ZincはRustに基づいてスマートコントラクトと汎用ゼロ知識証明回路を開発するための言語である。これにより、開発者にはより大きな選択肢が与えられる。
また、zkSyncは独自のコンパイラを構築する際に、産業用の最先端のコンパイラフレームワークであるLLVMを選択し、コンパイラが十分に完備され、すべてのクラシックな最適化を持つことを確保している。
四、最後に
zkEVM技術は複数の優れたチームの継続的な努力の下で、徐々に成熟してきており、約半年以内に相次いで実現することが期待されている。その時、EVMに互換性のあるZK Rollupスケーリングソリューションは必ずや自らの光を放つだろう。
現在のブロックチェーン技術は前例のない大争鳴の時代に突入している。パブリックチェーンの争いからイーサリアムのスケーリングソリューションの争い、さらには特定のスケーリングソリューションの下でさえ、さまざまなプロジェクトが次々と登場し、競い合っている。筆者は、このブロックチェーン技術が最も活気に満ちた大時代に身を置けることを非常に嬉しく思っている。
参考資料:
2. zkSync 2.0: Hello Ethereum!
3. エピソード175: zkEVM & zkPorter with Matter Labs
4. エピソード194: zkEVM with Jordi & David from Hermez
5. 人気のzkEVMソリューションを探る: AppliedZKP, Matter Labs, Hermez, and Sin7Y