詳細な有効性証明ロールアップと Cairo VM の技術的特性

原文:Scaling Ethereum Efficiently

翻訳・校正:「Starknet Chinese Community」

有効性を証明するために Rollup と Cairo VM の技術的特徴を説明する

概要

  • Proof of Validity Rollup は、安全かつ分散型の方法で Ethereum のスループットを向上させる最も可能性のある方法です。zkEVM と Cairo VM (CVM) は、Validity Proof タイプのロールアップで使用される 2 つの仮想マシン (VM) です。
  • zkEVM は、パフォーマンスとスケーラビリティを犠牲にして、イーサリアムとの互換性に重点を置いています。
  • Starknet が採用する Cairo VM は、互換性よりもパフォーマンスとスケーラビリティを優先します。

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

※イーサリアムメインネット上で各トランザクションを処理するのとは異なり、オペレーターはオフチェーン環境でトランザクションを実行します。オフチェーン環境は L2 で、イーサリアム上で動作するオペレーティング層です。

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

有効性証明のためのロールアップと Cairo VM の詳細な技術的特徴

有効性証明ロールアップ

注: Proof of Validity ロールアップは、誤ってゼロナレッジ ロールアップ (zkRollup) と呼ばれることがよくありますが、これは正確ではありません。ほとんどの Validity Proofs Rollup はゼロ知識証明を採用しておらず、プライバシーを確保するためにも使用されません。したがって、「Validity Proof Rollup」という用語の方が正確です。

オフチェーン仮想マシン

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

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

すべての Proof-of-Validity ロールアップは Proof-of-Validity を使用してイーサリアムを拡張することを目的としていますが、スキームが異なれば、VM がオフチェーン トランザクションを実行する方法についても異なる選択が行われます。多くの有効性証明ロールアップは EVM 設計を複製することを選択し (そのため「zkEVM ロールアップ」という名前が付けられています)、L2 ロールアップでイーサリアムを複製しようとしました。 Starknet は、有効性証明の効率を最適化するように設計された新しい VM である Cairo VM (CVM) を使用します。

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

zkEVM の仕組みを理解する

zkEVM は、L2 ブロックチェーンにイーサリアム エクスペリエンスを完全に導入するために設計された有効性証明ロールアップです。目的は、Ethereum 開発環境を Rollup に複製することです。 zkEVM を使用すると、開発者はスマート コントラクトを作成または拡張ソリューションに移植するときに、コードを調整したり、元の EVM ツール (およびスマート コントラクト) を放棄したりする必要がありません。

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

EVM の確率

zkEVM アプローチの中心的な課題は、EVM の根深いオリジナルのブループリントにあります。このブループリントは、元々は Proof-of-Validity 環境で実行するように設計されていませんでした。そのため、イーサリアムの機能を実現することに全力を注ぐと、正当性証明の潜在能力を最大限に発揮できず、効率が不十分になってしまいます。この非効率性は、最終的にシステム全体のパフォーマンスを低下させます。 EVM と有効性証明との互換性は、次の要因によって妨げられます。

  • EVM はスタックベースのモデルを使用しますが、有効性はレジスタベースのモデルの方が効率的であることが証明されています。 EVM のスタックベースの性質により、EVM の実行の正しさを証明することが本質的により困難になり、ネイティブ ツールチェーンに直接サポートが提供されます。
  • イーサリアムのストレージ レイアウトは Keccak と大きなマークル パトリシア ツリーに大きく依存しており、どちらも非有効性証明に適しており、証明に多大な負担をもたらします。たとえば、Keccak は x86 アーキテクチャでは非常に高速ですが (通常は EVM の実行に使用されます)、証明するには 90k ステップかかります (特別な組み込みが必要です)。一方、Pedersen (ゼロ知識に優しいハッシュ関数) は 32 ステップしか必要としません。再帰圧縮を使用する場合でも、zkEVM で Keccak を使用すると、依然として証明者のリソースが大量に消費され、そのコストは最終的にユーザーが負担することになります。

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

有効性証明のための Rollup と Cairo VM の技術的特徴について説明

Cairo-VM の仕組みを理解する

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

Starknet は Cairo-VM (CVM) を採用し、同じ名前の高級言語 Cairo を作成します。 Cairo-VM は、プログラム実行の有効性証明を効率的に生成するように設計されています。

Cairo (VM とプログラミング言語) を使用すると、次のことが可能になります。

  1. 最適化の有効性の証明、各命令には有効な代数式があります
  2. 証明可能なプログラムを作成するための最新の Rust に似た言語
  3. Cairo コードを効率的に実行できる、高級 Cairo 言語と Cairo アセンブリ (VM 命令) の間の中間式 (Sierra)

まったく新しい言語を開発すると、特定のニーズに合わせて調整したり、以前は利用できなかった機能を組み込んだり、新しいニーズを満たすことができます。

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

ある計算の有効性の証明を作成するには、まずその計算を説明する一連の数学的制約として表現する必要があります。プロセスは複雑で、効率を高めるために計算を最適化することが難しく、特定のツールが必要です。

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

Starknet のイノベーションへの取り組みは、コードの複数化へのアプローチに明らかです。 Cairo は、Cairo ローカル環境とのコントラクトの作成にとどまらず、最適な拡張機能を実現するために STARK テクノロジーを採用しています。開発者は、最適な方法を選択することもできます。

  • カイロでのローカル コーディング: Rust からインスピレーションを得た Cairo 1.0 は、開発者の習慣に沿ってより安全であり、プログラム ロジックの記述が容易になり、エラーが発生しにくくなります。
  • Solidity の互換性: Solidity 開発者は、Cairo VM をサポートするコードを作成できます。このアプローチは、イーサリアムと同様の開発者エクスペリエンスを提供し、Solidity スマート コントラクトの Starknet への移行をサポートします。移行を実装するには 2 つの方法があります。
  • 翻訳: 翻訳は、あるプログラミング言語のソース コードを別の言語に変換するプロセスです。 Nethermind チームは、Solidity コードをカイロにトランスパイルするための Warp トランスパイラーを構築しました。 Warp により、Solidity スマート コントラクトが Starknet に移植可能になり、実質的に 4 番目のタイプの zkEVM になります。現在、Uniswap コントラクトを最小限の変更で翻訳および展開するために使用されています。
  • Starknet の zkEVM: Cairo VM を使用して、別の VM の実行を証明できます。 Kakarot はカイロで書かれた zkEVM で、Starknet 上でイーサリアム スマート コントラクトを実行するために使用できます。 Cairo VM と zkEVM は競合していません。どちらかを選択するのではなく、両方を使用する方が良いでしょう。

Cairo が登場してからそれほど時間が経っていませんが、TVL ランキングによると、Cairo は 4 番目に人気のあるスマート コントラクト プログラミング言語であり、その評価額は 3 億 5,000 万ドルを超えています。

要約

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

Cairo VM は有効性証明用に設計されており、EVM の制限を受けません。 Cairo VM は Cairo 1.0 をサポートします。 Rust 言語からインスピレーションを得た Cairo 1.0 は、開発者の習慣により沿っており、より安全であり、STARK を使用してイーサリアムの効率的な拡張を証明するように設計された強力なツールを形成しています。

Cairo が毎週どのように開発されるかを見るのはエキサイティングであり、Kakarot zkEVM や Warp などの開発者向けの選択肢が増えています。 Starknet dApps が稼働しており、カイロの力を証明しているため、将来的にはカイロがこれまでに見たことのない優れたプロジェクトを生み出すことになると私たちは確信しています。

以上、SATRK 拡大の 3 つの道筋を概説しましたが、今後数か月以内にさらに多くのイノベーションが登場することは間違いありません。開発者はブロックチェーンのスケーリングを前例のないほど制御できるようになりました。

zkEVMタイプ

Vitalik は zkEVM を主に 4 つのタイプに分類しています。

  • 最初のカテゴリはイーサリアムと完全に同等です。イーサリアム エコシステムのどの部分も変更しません。
  • 完全に同等の 2 番目のタイプの EVM: 既存の dApp と互換性があり、プルーフの生成を高速化するためにイーサリアムの設計にいくつかの調整が加えられています。
  • 3 番目のカテゴリは EVM とほぼ同等です。ほとんどの EVM オペコードをサポートし、zkEVM では実装が難しい一部の関数 (プリコンパイルやハッシュ関数など) を削除します。
  • 同等の高級言語の 4 番目のタイプ: Solidity/Vyper でスマート コントラクト コードを作成し、それを有効な証明に適した言語に翻訳します。
原文表示
内容は参考用であり、勧誘やオファーではありません。 投資、税務、または法律に関するアドバイスは提供されません。 リスク開示の詳細については、免責事項 を参照してください。
  • 報酬
  • コメント
  • 共有
コメント
0/400
コメントなし
  • ピン
いつでもどこでも暗号資産取引
qrCode
スキャンしてGate.ioアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • ไทย
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)