有効性ロールアップがイーサリアムを拡張する最も有望な方法である理由?

著者: StarkWare; コンパイラ: Bumpman

### まとめ

  • **有効性ロールアップは、安全かつ分散型の方法でイーサリアムのスループットを向上させる最も有望な方法です。zkEVM と Cairo VM (CVM) は、有効性ロールアップで使用される 2 種類の VM です。 **
  • **zkEVM は、パフォーマンスとスケーラビリティを犠牲にして、イーサリアムとの互換性に重点を置いています。 **
  • **Starknet で使用される Cairo VM は、互換性よりもパフォーマンスとスケーラビリティを優先します。 **

イーサリアムのスケーリングについて話すとき、ロールアップは今年のホットな話題です。さまざまなタイプのロールアップの中で、zk-rollup とも呼ばれる Validity Rollups (VR) が、安全かつ分散型の方法でイーサリアムのスループットを向上させる最も有望な方法であると私たちは考えています。このスケーリング ソリューションの中心となるのは、有効性の証明を使用した検証可能な計算です。仕組みは次のとおりです。

オペレーターは、イーサリアムのメインネットですべてのトランザクションを処理するのではなく、トランザクションの実行をオフチェーン環境にオフロードします。このオフチェーン環境はレイヤー 2、つまりイーサリアムの上で実行されるレイヤーとして機能します。

多数のトランザクションを処理した後、レイヤー 2 オペレーターは、オフチェーン実行の整合性を検証するための有効性の証明とともに、イーサリアムの状態に適用する結果を返します。この証明は、バッチ内のすべてのトランザクションが有効であり、オンチェーン検証コントラクトによって自律的に検証されることを保証します。これにより、イーサリアムは結果をその状態に適用できるようになります。

なぜ Validity Rollups がイーサリアムの最も有望な拡張方法なのか?

有効性ロールアップ

注: 有効性ロールアップは、誤ってゼロナレッジ ロールアップと呼ばれることがよくありますが、これは正確ではありません。ほとんどの有効性ロールアップでは ZKP は使用されず、プライバシー目的でも使用されません。したがって、「有効性ロールアップ」という用語の方が正確です。

オフチェーン仮想マシン

続行する前に、最初に答える必要がある質問は次のとおりです。 **仮想マシン (VM) とは何ですか?簡単に言えば、Windows オペレーティング システムを実行している Mac と同じように、プログラムを実行できる環境です。いくつかの入力に対して計算を実行した後、状態間を遷移します。 Ethereum Virtual Machine (EVM) は、Ethereum スマート コントラクトを実行する VM です。 **

** ゼロ知識仮想マシン (zkVM) は、プログラム出力とともに、簡単に検証できる有効性の証明を生成できるプログラム実行環境です。 **この有効性の証明は、プログラムが正しく実行されたことを証明します。 **「zkEVM」という用語が使用される場合、それは通常、イーサリアム仮想マシン (EVM) を利用し、EVM の実行を証明できるアグリゲーションを指します。 **EVM 自体がこれらの証明を生成するのではなく、EVM の実行結果から始まる別の証明メカニズムによって証明が生成されるため、この用語は誤解を招く可能性があります。また、これらの証明はプライバシーに関するものではなく、有効性に関するものであるため、正確にゼロ知識証明ではありません。ただし、一貫性を保つために、この記事では従来の用語「zkEVM」を使用することにします。

すべての Validity Rollup は有効性の証明によって Ethereum を拡張することを目的としていますが、オフチェーン トランザクションを実行する VM の選択が異なります。多くの Validity Rollup は EVM の設計を複製することを選択し (そのため「zkEVM ロールアップ」という用語)、L2 ロールアップで Ethereum を複製しようとします。 Starknet は、有効性証明の効率を最適化するために特別に設計された新しいタイプの VM、Cairo VM (CVM) を使用します。

これら 2 つの方法にはそれぞれ長所と短所がありますが、zkEVM はイーサリアムとの互換性のためにパフォーマンスを犠牲にするのに対し、Cairo VM は互換性やスケーラビリティよりもパフォーマンスを優先します。

zkEVM アプローチ

**zkEVM は、Ethereum エクスペリエンスをレイヤー 2 ブロックチェーンに完全にもたらすことを目的とした Validity Rollup です。これは、イーサリアム開発環境をロールアップとして複製することを目的としています。 **zkEVM を使用すると、開発者は、スマート コントラクトを作成したり、スマート コントラクトをよりスケーラブルなソリューションに移植したりするときに、コードを変更したり、EVM ツール (およびスマート コントラクト) を放棄したりする必要がありません。

このアプローチの主な欠点は、有効性証明のスケーリングの可能性が低下することです。 zkEVM はイーサリアムとの互換性を目指しているため、速度が遅く、リソースをより多く消費します。 CVM とは異なり、EVM は証明効率を念頭に置いて設計されていません。これにより、効率とスケーラビリティを向上させる最適化の使用が制限され、最終的にはシステム全体のパフォーマンスに影響を及ぼします。

EVM の確率

zkEVM アプローチの中心的な課題は、EVM の元の設計図に根ざしています。EVM は、有効性証明のコンテキストで動作するように設計されていません。その結果、その機能をミラーリングしようとしても、有効性証明の可能性を最大限に引き出すことができず、最適レベルの効率が得られません。この非効率性は、最終的にシステム全体のパフォーマンスを低下させます。 EVM と有効性証明との互換性は、次の要因によって妨げられます。

**EVM はスタックベースのモデルを使用しますが、効率証明はレジスタベースのモデルの方が効率的です。 EVM のスタックベースの性質により、EVM の実行の正しさを証明し、ネイティブ ツールチェーンに直接サポートを提供することがより困難になります。 **

イーサリアムのストレージ レイアウトは Keccak と大きなマークル パトリシア ツリーに大きく依存していますが、どちらも正当性の証明には不利であり、大きな証明負担を課します。たとえば、Keccak は x86 アーキテクチャ (通常はこの上で EVM を実行します) では非常に高速ですが、証明するのに 90k ステップかかります (組み込みの特別なビルド)。一方、Pedersen (zk に適したハッシュ関数) には 32 のステップが必要です。再帰的圧縮を使用する場合でも、zkEVM で Keccak を使用すると、最終的にはユーザーが支払う大量の証明者リソースが必要になります。

その結果、さまざまな zkEVM は、イーサリアム ツールにさまざまなレベルのサポートを提供するように設計されています。zkEVM とイーサリアムとの互換性が高くなるほど、パフォーマンスは低くなります。 (zkEVM タイプの詳細については、記事の最後までスキップしてください。)

なぜ Validity Rollups がイーサリアムの最も有望な拡張方法なのか?

カイロと VM のアプローチ

zkEVM ソリューションは、長期的なパフォーマンスとスケーラビリティよりも互換性を優先し、「EVM を有効性ロールアップで機能させる」ことに多くの開発時間を費やしています。もう 1 つのオプションがあります。それは、新しい専用の仮想マシンを使用し、追加のレイヤーとしてイーサリアム ツールのサポートをその上に追加することです。これは、2021 年 11 月に開始される許可不要の有効性ロールアップである Starknet が採用したアプローチです。 Starknet は、完全に構成可能なネットワーク上で汎用スマート コントラクト プラットフォームを提供する最初の Validity Rollup です。

Starknet は、同名の高級言語である Cairo-VM (CVM) を使用します。 Cairo-VM は、プログラム実行の正当性証明を効率的に生成するために設計された VM です。

Cairo (仮想マシンと言語) を使用すると、次のようになります。

  1. 最適化の有効性の証明 - すべての命令には有効な代数表現がある

  2. 証明可能なプログラムを作成するための Rust に似た言語

  3. 高レベルの Cairo と Cairo アセンブリ (VM 命令) の間の中間表現 (Sierra) により、Cairo コードの効率的な実行が可能になります。

新しい言語を開発すると、それが満たすべき特定のニーズに合わせて言語を調整したり、これまで満たされていなかったニーズを満たす機能を装備したりすることができます。

カイロとコーディング多元主義

ある計算の有効性についての証明を作成するには、まずその計算を説明する一連の数学的制約として表現する必要があります。効率を高めるために計算を最適化するという課題と、専用のツールが必要なため、このプロセスは難しい場合があります。

Cairo 言語はもともと、このタスクを簡素化し、StarkEx に機能や複雑なビジネス ロジックを簡単に追加できるように設計されました。 Cairo プログラムは代数機械コード (一連の数値) にコンパイルされ、固定 VM によって実行されます。 Cairo では、計算を記述する数学的制約を生成する複雑さ (妥当性証明という厄介な問題) が抽象化され、固定された制約セット (合計 50 未満の制約) によって取り込まれます。その結果、開発者は、基礎となる数学やインフラストラクチャを理解する必要がなく、使い慣れた構文を使用してコードを記述するだけで、妥当性証明を利用してアプリケーションを拡張できます。

Starknet はイノベーションを重視しており、これはコーディングに対する多様なアプローチに反映されています。 STARK を使用して最適に拡張するカイロの能力は、カイロでネイティブに契約を作成する人に限定されません。開発者は、自分にとって最適な方法を選択できます。

Cairo でネイティブにコードを作成: Cairo 1.0 のリリースにより、開発者は人間工学に基づいた安全な Rust 言語を使用できるようになり、プログラム ロジックの作成が容易になり、エラーが発生しにくくなります。

**Solidity の互換性:**Solidity 開発者は、Cairo VM で使用できるコードを作成できます。このアプローチは、イーサリアムと同様の開発者エクスペリエンスを提供し、Solidity スマート コントラクトを Starknet に移植できるようにします。これを実現するには 2 つの方法があります。

**翻訳: **翻訳は、あるプログラミング言語で書かれたソース コードを別の言語に変換するプロセスです。 Nethermind チームは、Solidity コードを Cairo にトランスパイルするための Warp トランスパイラーを作成しました。 Warp は、Solidity スマート コントラクトを Starknet に移植できるようにし、実質的に Type 4 zkEVM にします。これは、最小限の変更で Uniswap コントラクトを翻訳および展開するために使用されています。

Starknet の zkEVM: Cairo VM は、別の VM の実行を証明するために使用できます。 Kakarot はカイロで書かれた zkEVM で、Starknet 上でイーサリアム スマート コントラクトを実行するために使用できます。 Cairo VM と zkEVM は競合するアプローチではありません。Cairo VM と zkEVM のどちらかを選択するのではなく、Cairo VM と zkEVM の両方を使用することができます。

Cairo はその短い存在にもかかわらず、TVL によって 4 番目に人気のあるスマート コントラクト言語であり、3 億 5,000 万ドルを超える資金を受けています。

要約

**zkEVM は、イーサリアム環境をロールアップとして複製し、開発者が使い慣れたイーサリアム ツールを使用できるようにすることを目的としています。ただし、このアプローチは有効性証明の可能性を最大限に発揮できず、リソースを大量に消費する可能性があります。 **

Cairo VM は、EVM の制限のない正当性証明システム用に設計されています。これは、Cairo 1.0 と呼ばれる、新しく安全で人間工学に基づいた Rust にインスピレーションを得たプログラミング言語によってサポートされており、STARK プルーフを使用して Ethereum をスケーリングすることで最大の効率を獲得することを目的とした強力なツールを形成しています。

Cairo が毎週何を達成し、Kakarot zkEVM や Warp などの開発者向けのさまざまなオプションが成長するのを見るのはとても楽しいです。 Starknet dApp が実稼働に入り、Cairo の威力が証明されると、将来的にはより野心的なプロジェクトに使用されると考えられます。

上記で概説した STARK スケーリングの 3 つの手段と、間違いなく今後数か月以内に利用可能になるその他の手段のおかげで、開発者はブロックチェーンのスケーリングを前例のない制御できるようになりました。

原文表示
内容は参考用であり、勧誘やオファーではありません。 投資、税務、または法律に関するアドバイスは提供されません。 リスク開示の詳細については、免責事項 を参照してください。
  • 報酬
  • コメント
  • 共有
コメント
0/400
コメントなし
  • ピン
いつでもどこでも暗号資産取引
qrCode
スキャンしてGate.ioアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)