zkEVM
なぜzk EVMが必要なのか?
大枠としては複数のチェーンを持って処理を分担することが目的。
大局的に見ると...
EthereumだけではTxを賄いきれない→L2(Excution Layer)によるスケーリングが必要→zk-Rollupが有効→zkEVMが必要
https://scrapbox.io/files/62efc29a6c6bc300209f3f60.png
では、なぜそのようなチェーンはgethのようなEVMをそのまま使わずにzk EVMを必要とするのか?
前提として、zk-Rollupはゼロ知識証明を利用し、「Txの処理を確かに行ったこと(validity proof)」をバッチして Ethereumに渡し、セキュリティを担保するという代物。
つまり、ただ処理(excution)を行うだけでなくそれをZKPするプロセスが含まれる。これが普通のEVMとは違うポイント。
何が難しいのか
議論されているポイント
どのくらいgasコストが下がるのか
安全性の根拠
DA戦略
理想的なzk-rollupでは、データ(ユーザが完全な状態を再構築するために必要。Data Availabiliry)とValidity Proof(ゼロ知識証明)の両方をオンチェーンで公開する必要がある
しかし、Ethereumの設定を考えると、データをオンチェーンで公開するとガス代が発生する。
ガス代を抑えたいのに...!という思いはありつつも信頼性を損なわない理想的ななzk-rollupの構成
このようなDAの問題に対し、以下のようなハイブリッド型のソリューションがある。
Validium:データはオフチェーンで保存し、有効性証明のみをオンチェーンで公開する。
Volition:一部のTxでは、データとValidity Proofの両方がオンチェーンに残り、残りの取引ではValidity Proofのみがオンチェーンになる
多くのプロジェクトでは、どのDA戦略をとるかユーザーに委ねており、それぞれの実装が施されている。
誰がバッチするのか
一般的にTxをまとめる人、ZKPする人、L1<-> L2でやりとりする人が存在する
https://scrapbox.io/files/62efc349bd972b001d814e80.png