ある記事では、zkEVM ソリューションを整理しています: zkSync、StarkNet、Polygon zkEVM、Scroll
コンピレーション: ディープ タイド TechFlow
コンピレーション: ディープ タイド TechFlow
有効性ロールアップとしても知られる ZK ロールアップは、トランザクションをオフチェーンで処理し、単一の圧縮トランザクションとしてメイン チェーンにマージできるようにする、イーサリアムを拡張する革新的な方法です。このプロセスにより、メインチェーンのセキュリティと分散化を維持しながら、トランザクションのスループットが向上し、手数料が削減されます。
ZK ロールアップの顕著な機能の 1 つは、ゼロ知識証明 (ZKP) の使用です。これは、証明者が追加情報を明らかにすることなく、ステートメントが真実であることを検証者に証明できる暗号証明の一種です。
ZK ロールアップの場合、ZKP はオフチェーン トランザクションの整合性を保証し、証明者がトランザクションの詳細を明らかにすることなく、また新しい状態を受け入れる前に検証者にすべてのトランザクションをチェックさせることなく、トランザクションのバッチの正当性を証明できるようにします。
ZK ロールアップは、イーサリアム上に追加の信頼仮定を導入せず、セキュリティのためにイーサリアムと数学に依存しているため、オプティミスティック ロールアップよりも高いレベルのセキュリティを提供します。オプティミスティック ロールアップは、ゲーム理論と 1/n 正直なノードの仮定に依存しています。これは、トランザクション バッチごとに、悪意のあるトランザクションに挑戦できる正直なノードが常に少なくとも 1 つ存在することを意味します。
一方、シーケンサーや証明者としても知られる ZK ロールアップのオペレーターには、ユーザーの資金がオンのままである一方で、トランザクション バッチを収集して ZK プルーフを生成することが「単に」役割であるため、ユーザーの資金を侵害する可能性はまったくありません。イーサリアム L1、イーサリアムは、L2 によって送信された ZK プルーフを検証し、基礎となるトランザクションを完了する最終的な責任を負います。
妥当性証明は、状態データに対して複雑な多項式計算を実行することによって生成されます。状態データが無効な場合、有効性の証明は生成できません。 L1 の検証者は有効性証明を検証するために状態データを入力するため、証明者が状態データを変更すると、検証者は証明を受け入れなくなります。
オプティミスティック ロールアップと比較して、ZK ロールアップには、ファイナリティの高速化とデータの可用性の効率化という 2 つの利点もあります。
まず、ファイナリティが高速化されます。有効性の証明が提供されている限り、トランザクションはイーサリアム上で確認されるため、オプティミスティック ロールアップでは異議がないことを確認するために 1 週間待つ必要があるため、トランザクションは合法かつ最終的なものとみなされます。
2 番目に、ZK ロールアップはデータの可用性の点でより効率的です。公開する必要があるのは状態の違いのみであるため、検証のためにすべてのトランザクションを再構築する代わりに、オプティミスティック ロールアップは完全なデータを公開する必要があるため、誰もがトランザクションを再構築し、最終的にはトランザクションに異議を唱えることができます。
その結果、ZK ロールアップはイーサリアム上のデータ帯域幅 (ZK 回線を含むトランザクションの実行に使用するシステムに関係なく、すべてのロールアップが共有する必要がある希少なリソース) で使用するデータ帯域幅が少なくなり、ユーザーはさらに安い手数料 (または手数料ゼロ) を得ることができます。 。
Zk ロールアップはイーサリアムのスケーラビリティに対する究極のソリューションと考えられていますが、イーサリアム仮想マシン (EVM) は ZK 回線をサポートするように設計されていないため、実装は困難です。この問題を解決するために、多くの組織や研究者は、ゼロ知識証明計算と互換性のある方法でスマート コントラクトを実行できる、zkEVM と呼ばれるロールアップ対応の仮想マシンの作成を試みてきました。
Vitalik によって提案された 4 つの zkEVM 分類
注意しなければならないことは次のとおりです。
注意しなければならないことは次のとおりです。
zkEVM がイーサリアムの機能に近づくほど、Zk プルーフの生成に時間がかかり、コストが高くなります。
一方で、ブロックチェーンやロールアップがイーサリアムの仕様や標準に準拠していれば、開発者はその上にアプリケーションを構築し、イーサリアムのエコシステムに統合することが容易になります。
結論として、イーサリアムとの互換性が高いブロックチェーンは競争上の優位性を持つ可能性があります。
最初のカテゴリ: zk ロールアップは、イーサリアムとまったく同等であり、ハッシュ、状態ツリー、トランザクション ツリー、プリコンパイル、またはその他のコンセンサス ロジックを含むすべての部分でイーサリアムを正確に複製します。これまでのところ、イーサリアムと同等の性能を達成した zkEVM はありません。
2 番目のカテゴリ: EVM と完全に同等の Zk ロールアップは、EVM と同等であるように努めていますが、イーサリアムと完全に同等ではありません。これらは既存のアプリケーションと完全に互換性がありますが、開発を容易にし、プルーフをより速く生成できるようにイーサリアムに若干の変更が加えられています。 Scroll と zkEVM Polygon は理論的にはこのカテゴリに属しますが、実際には現在 3 番目のグループに属しています。
3 番目のカテゴリ: EVM とほぼ同等。証明の生成を高速化するために、より多くの要素と同等性が犠牲になります。現在、Polygon zkEVM と Scroll がこのカテゴリに分類されます。多くの場合、このカテゴリは 2 番目のカテゴリへの出発点となります。
4 番目のカテゴリ: 高水準言語の同等性。Solidity で書かれたスマート コントラクトを受け入れ、それを別の zk フレンドリーなカスタム言語に変換することを意味します。 zkSync と StarkNet はこのカテゴリに分類されますが、zkSync は時間の経過とともに EVM バイトコードとの互換性を追加し、最終的にはより高いタイプに移行する可能性があります。
Vitalik によって提案された分類は現在最も一般的で公平ですが、他の分類方法もあります。
Immutable が提案する 4 つの分類
NFT 専用の StarkWare ベースの L2 である Immutable は、そのブログ投稿の 1 つで次の有用な分類法を提供しています。

これらのカテゴリは、Vitalik の分類よりも明確に、スタックの特定のレベル (高級言語、バイトコード、またはランタイム環境) でイーサリアムとの互換性または同等性に達した既存の zkEVM に基づいています。
堅牢性と互換性があります。イーサリアムとの互換性は高級言語レベルの Solidity で実装されており、開発者はイーサリアム上で使い慣れた言語でスマート コントラクトを書き続けることができます。ただし、これらのロールアップは、Solidity を中間表現に即座に変換し、その後バイトコードでコンパイルされ、カスタム環境で実行されます。具体的には、これらの L2 はトランスパイラーを使用して、Solidity コードをカスタム VM 用の読み取り可能なコード (StarkWare の場合は Cairo、zkSync の場合は LLVM-IR) に変換します。一部の Solidity 機能はこれらのトランスパイラーではサポートされていないため、開発者はスマート コントラクトを調整する必要がある場合があります。例: zkSync と StarkNet。
EVM対応。言語レベルから見ると、これらのロールアップは EVM と互換性がありますが、独自のバイトコードを持っています。つまり、Solidity は EVM オペコード/バイトコードに直接コンパイルし、カスタム VM ランタイム セクション コードの前にカスタム ワードに変換できます。実際、これらのロールアップはほとんどの Ethereum プログラムと互換性がありますが、一部のアプリケーションは書き直す必要がある場合があります。また、一部のバイトコード機能 (プリコンパイルなど) はサポートされていません。例: ポリゴン zkEVM。
EVMと同等。これらのロールアップは、VM 自体は EVM とは異なりますが、EVM オペコードとバイトコードを直接読み取ることができる zk 検証回路を作成します。これらのロールアップは既存のアプリケーションと完全に互換性がありますが、開発を容易にし、プルーフの生成を迅速化するために、イーサリアムにいくつかの小さな変更を加えることができます。例: スクロール。
イーサリアムと同等。これは、Polygon が行ったのと同様に、すべてのコンポーネントでイーサリアムを複製することを意味します。今のところ、このカテゴリに該当する zk ロールアップはありません。
このフレームワークと Immutable によって提案されたフレームワークを組み合わせ、いくつかの追加情報を追加すると、次の図の概要が示され、パフォーマンス データが利用可能になる前にさまざまな zkEVM 実装を比較する際に考慮すべき設計の相違点と類似点が強調表示されます。

zkSync 2.0
zkSync 2.0 (メインネットのローンチ直前に zkSync Era にブランド変更されました) は、Solidity プログラミング言語と完全に互換性のある Ethereum ネットワーク用のスケーリング ソリューションです。 zkSync を使用すると、ユーザーは zkSync Rollup と zkSync Porter の 2 種類のデータ可用性から選択できます。前者はデータをイーサリアム上に直接公開するため、イーサリアム L1 と同じくらい安全になります。一方、後者はデータをオフチェーンに保存するため、より高速かつ安価なトランザクションが実現しますが、セキュリティ レベルは低くなります。
zkSync は、Solidity で書かれたスマート コントラクト コードを Yul に変換し、Yul を LLVM-IR に変換して、それを zkSync の EVM コード セット用に特別に設計されたカスタム回路互換バイトに再コンパイルできるため、EVM と互換性があります。これには中間ステップが必要ですが、アカウントの抽象化など、EVM 以外の他の機能を追加することもできます。さらに、zkSync の会社である Matter Labs は、イーサリアム ツールキットとの互換性を徐々に高めることを計画しており、次の目標の一環として、スケーラビリティと相互運用性の分野で最初の 3 層プロトタイプである zkSync Opportunity を立ち上げる準備をしています。テストネット。
この記事の執筆時点では、zkSync Era は開始されたばかりであるため、そのパフォーマンスについてコメントするのは時期尚早です。単純なトランザクションのみをサポートする zkSync 1.0 (現在は zkSync Lite として知られています) は、最大の zk ロールアップの 1 つであり、TVL によれば 8,300 万ドル以上のロックと 1,900 万件以上の累積トランザクションを抱えていますが、StarkNet の TVL は 1,900 万ドル強です。累計取引高400万。
StarkNet
StarkNet は、オフチェーン トランザクションの整合性を確保するために、STARK (Scalable Transparent ARgument of Knowledge) と呼ばれる別のタイプのゼロ知識証明を採用するタイプ 4 / Solidity 準拠の zk ロールアップです。 STARK は SNARK よりも効率的でスケーラブルであると考えられていますが、より複雑な技術的な設定が必要になる場合があります。
StarkNet はスマート コントラクトもサポートしていますが、STARK の使用と、StarkNet コントラクトと StarkNet OS がカイロ言語で書かれているため、その機能は比較的小規模です。開発を容易にするために、StarkWare は最近、Rust をエミュレートする Cairo 1.0 にアップグレードされました。 zkSync 時代と同様に、StarkNet は、EVM 内でプログラムを実行する代わりに、カスタム バイトコードを使用してまったく新しい専用の VM を作成するため、「Solidity 互換」として分類できます。 StarkWare は、Warp トランスレータを使用して、Solidity コードを Cairo VM バイトコードに変換します。
ただし、zkSync Era や他の zkEVM 実装とは異なり、StarkNet チームの目標は EVM や他の Ethereum コンポーネントとの互換性ではなく、カスタム クライアント API、JavaScript ライブラリ、ウォレット システム 。イーサリアム互換ツールに StarkNet サポートを手動で追加させます。 Cairo 1.0 では、Cairo 1.0 と Cairo バイトコードの間の新しい中間表現層として Sierra (Secure Intermediate Representation) も導入されましたが、Warp トランスパイラは一部の Solidity 機能をサポートしておらず、EVM 互換性に関して zkSync Era に匹敵するにはまだ遠い状況です。
Polygon zkEVM
Polygon zkEVM は、カスタム言語 zkASM を使用して zkEVM コードを解釈し、非 EVM ランタイム環境でスマート コントラクトの実行を検証する zk ロールアップです。このプロジェクトは 2021 年に開始され、2 億 5,000 万ドルで Hermez Network を買収し、STARK と SNARK のセキュリティと効率性を組み合わせた EVM と同等のシステムの開発を開始しました。 STARK はトランザクション状態の有効性証明を生成するために使用されますが、SNARK は STARK 証明の正確性を評価するために使用されます。これらのソリューションを組み合わせることで、セキュリティ、スピード、低取引手数料が実現します。
2022 年 7 月、Polygon は、Polygon Hermez から Polygon zkEVM へのブランド変更を発表しましたが、この記事の執筆時点では立ち上げられたばかりです。 Polygon zkEVM の最新のテストネット リリースでは再帰が導入されており、1 つの ZK 有効性証明で他の ZK 証明のバッチを検証できるようになり、各証明で複数のトランザクションを検証できます。この機能は、既存の代替手段よりも 100 倍高速で、イーサリアム自体とネイティブ互換性のある再帰的 SNARK である Plonky 2 によって強化されています。
Polygon zkEVM に加えて、Polygon はデータの可用性のみに最適化されたブロックチェーンである Polygon Avail も開発しました。ネットワークはパーミッションレスであり、既存の DAC (データ可用性委員会) とは異なり、誰でもバリデーターとして参加でき、ネットワーク セキュリティを提供するために数百のノードが連携します。 Avail は Polygon Hermez (Rollup) とペアで動作し、Ethereum で公開する代わりに Hermez から状態データをアップロードし、Validium と Rollup の間のソリューションを提供します。
Polygon が提供する仕様は EVM 互換性と表現する方が適切であると指摘する専門家もいますが、チームは最初の完全に EVM と同等のソリューションを作成するために懸命に取り組んでいます。
Scroll
Scroll は、Scroll チームが Ethereum Foundation の PSE (Privacy and Scaling Explorations) グループと協力して開発した EVM と同等の zk-rollup であり、マシン (EVM) は完全な互換性があります。これは、開発者が EVM 互換言語を使用してスマート コントラクトを作成し、それを Scroll にデプロイできることを意味します。 Scroll は現在 EVM オペコードをサポートしていませんが、1:1 オペコード マッピングを構築し、コンパイラなしで EVM オペコードを直接受け入れることでサポートする予定です。
Scroll のアーキテクチャには、集中型シリアル化ノードと分散型プルーフ ネットワークが含まれています。集中型シリアル化ノードは、トランザクションの順序付け、ブロックの作成、およびデータの可用性を確保するためにイーサリアム上のロールアップ コントラクトにトランザクション データをコールデータとして送信する責任を負います。 Scroll はシリアル化ノードを段階的に分散化する予定です。一方、Roller と呼ばれる分散型プルーフ ジェネレーターは、分散コンピューティング能力を活用してプルーフを生成し、L1 ネットワーク上で公開します。ローラーはランダムに選択され、異なるブロックの複数のプルーフを異なるローラー上で並行して生成して速度を上げることができます。
*注意: 現在はオンチェーン データの可用性のみがサポートされていますが、Scroll の元の設計には Validium モードも含まれていました。
実際、Scroll と Polygon はどちらも、zkEVM の構築にバイトコード レベルのアプローチを採用しています。このアプローチでは、翻訳ステップが完全に排除されます。つまり、これらの zkEVM は、コンパイルおよび解釈されるまで、Solidity コードを他の言語に翻訳しません。ただし、Scroll と Ethereum の唯一の違いはランタイム環境ですが、Polygon はカスタム VM を作成して最適化し、EVM バイトコードをその VM のバイトコードに変換します。 Scroll とは異なり、Polygon のランタイム (「zkExecutor」) は、EVM オペコードの代わりにカスタムの「zkASM」オペコード (図のマイクロオペレーション) を実行して、EVM 解釈を最適化します (つまり、EVM を直接証明するのではなく制約の数を減らします)。 Polygon zkEVM は、Solidity コード、ツール、アプリケーションと 100% 互換性があるわけではありませんが、ほとんどは互換性があります。
これらは汎用 zkEVM 実装の展開に焦点を当てた最も注目すべきプロジェクトですが、他のアプリケーション固有のプロジェクトも実際に zk テクノロジーを使用しています。
ループは、分散型交換 (DEX) プロトコルをサポートするアプリケーション固有の zk-rollup です。 Loopring は、誰でも zk 証明を使用して dex を構築できるプラットフォームでもあります。 Immutable X は、NFT トランザクションとゲーム用に StarkWare 上に構築された別のアプリ固有の zk-rollup です。 Aztec はプライバシーを重視したイーサリアムベースの zk ロールアップで、ユーザーのプライバシーを保護しながらデータの透明性とプロトコルの可用性を維持するためにデータを暗号化します。さらに、Aztec は PLONK 証明システムを発明し、これは zkSync や他のプロジェクトでも使用されています。
Immutable X、Sorare、rhino.fi、ApeX、dYdX、その他多くのプロトコルは StarkEx 上に構築されています。 StarkEx ZK-Rollup を使用するプロジェクトでは、データはコールデータとしてイーサリアムに送信され、オンチェーンで公開されます。 Validium モードでは、データはオフチェーンに保存され、ハッシュのみがオンチェーンに保存されます。 Rollup モードではより優れたセキュリティが保証されますが (ユーザーは台帳状態を再作成するために Ethereum ブロックチェーンと対話するだけで済みます)、Validium モードではより低いコストとより高いプライバシーが保証されます。
全体として、zkSync Lite は最大の zk ロールアップですが、StarkWare は StarkEx 上に構築されたプロジェクトを含む最大のエコシステムを持ち、最大の TVL と市場シェアも持っています。

要約する
結論として、zk-rollup はブロックチェーン ネットワークをスケーリングするための有望なソリューションであり、さまざまなニーズや要件を満たすさまざまな実装を提供します。いくつかの分類が存在しますが、それらはおおよその解釈であり、定義や技術的な違いについての合意が得られていないことに注意する必要があります。
Scroll の共同創設者である Sandy Peng 氏が認めているように、「どの定義についても明確な合意はありません。」「Scroll の研究チーム全体が」特定の物語や特定の認識を支持していますが、それは明確なものではありません。私たちの研究チームは、すべてが何を意味するかについてさえ同意していません。 」
それにもかかわらず、zk ロールアップ実装全体でいくつかの共通の傾向が現れました。
まず、それらはすべてデータ可用性に対してハイブリッド アプローチを採用しているようで、従来のオンチェーン データ ストレージのロールアップ バージョンとオフチェーン データ ストレージの有効バージョンを提供しています。 Avail CEOのAnurag Arjun氏はBlockworksに対し、「私の意見では、すべてのロールアップにはロールアップバージョンと検証バージョンがあることがわかるだろう」と語った。
第二に、彼らは実際に実行するまでは純粋なオープンソース コードを避けることがほとんどですが、これは Arbitrum や Optimism のような楽観的なロールアップとの激しい競争にも関係しています。 Zk ロールアップはより効率的になることが期待されていますが、技術的に達成するのはより困難です。
さらに、上の表から明らかなように、楽観的なロールアップ、特に Arbitrum は先行者利益の恩恵を受けており、アプリケーション、取引量、市場シェアの点で市場をリードしています。成功したことが証明されれば、オプティミスティック ロールアップは有効性証明モデルをすでに確立されているユーザー ベースと統合できる可能性があります (たとえば、オプティミズムのアップグレード Bedrock は有効性証明を導入する可能性があります)。
さらに、すべての実装は効率化のために集中型シーケンサーから始まりましたが、集中化の問題に対処するために徐々に分散化することを目指しています。興味深いことに、分散型ソーターにはネイティブ トークンの経済的インセンティブが必要な場合があるため、言及されたすべてのプロジェクトはこのステップを踏む必要があります。
最後に、過去 1 年間にこれらの zkEVM 実装によって達成された驚くべき成果により、zk テクノロジー全般に対する新たな関心が高まり、企業はプルーフ生成の速度を上げるための新しい zk ハードウェアの開発など、開発のさまざまな側面に焦点を当てています。
元のリンク


