This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
詳細な有効性証明ロールアップと Cairo VM の技術的特性
出典: Scaling Ethereum Efficiently、編集: Starknet Chinese Community
概要
ロールアップは今年イーサリアムのスケーリングに関するホットな話題でした。さまざまなタイプのロールアップの中で、Validity Proof Rollup (以下、VR または zk-rollup と呼びます) が、安全かつ分散型の方法でイーサリアムのスループットを向上させる最も有望な拡張ソリューションであると考えています。この拡張スキームの中核は、検証可能な計算に対する妥当性証明の使用です。仕組みは次のとおりです。
※イーサリアムメインネット上で各トランザクションを処理するのとは異なり、オペレーターはオフチェーン環境でトランザクションを実行します。オフチェーン環境は L2 で、イーサリアム上で動作するオペレーティング層です。
有効性証明ロールアップ
注: 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 と有効性証明との互換性は、次の要因によって妨げられます。
したがって、さまざまなタイプの zkEVM は、イーサリアム ツールにさまざまなレベルのサポートを提供するように設計されていますが、zkEVM とイーサリアムの互換性が高くなるほど、パフォーマンスは低下します。 (その他の zkEVM タイプについては記事の最後を参照してください)
Cairo-VM の仕組みを理解する
zkEVM ソリューションは、長期的なパフォーマンスとスケーラビリティよりも互換性を優先し、「EVM を Validity Proof Rollup に適したものにする」ことに多くの開発時間を投資してきました。別のオプションもあります。それは、新しい専用の仮想マシンを採用し、イーサリアム ツールをサポートする追加のレイヤーを追加することです。これが Starknet が講じているステップであり、2021 年 11 月に許可不要の有効性証明ロールアップを開始します。 Starknet は、完全に構成可能なネットワークに汎用スマート コントラクト プラットフォームを実装する最初の有効性証明ロールアップです。
Starknet は Cairo-VM (CVM) を採用し、同じ名前の高級言語 Cairo を作成します。 Cairo-VM は、プログラム実行の有効性証明を効率的に生成するように設計されています。
Cairo (VM とプログラミング言語) を使用すると、次のことが可能になります。
まったく新しい言語を開発すると、特定のニーズに合わせて調整したり、以前は利用できなかった機能を組み込んだり、新しいニーズを満たすことができます。
カイロとコーディング多元主義
ある計算の有効性の証明を作成するには、まずその計算を説明する一連の数学的制約として表現する必要があります。プロセスは複雑で、効率を高めるために計算を最適化することが難しく、特定のツールが必要です。
Cairo 言語は、StarkEx が機能や複雑なビジネス ロジックを簡単に追加できるように、このタスクを簡素化するように設計されました。 Cairo プログラムは、一連の数値である代数機械コードにコンパイルされ、単一の固定 VM によって実行されます。 Cairo では、計算を記述する数学的制約を生成する複雑なプロセス (妥当性の証明には非常に難しい) が抽象化され、固定の制約セット (合計 50 未満の制約) として表現されます。これにより、開発者は、基礎となる数学やインフラストラクチャを理解しなくても、使い慣れた構文でコードを記述して、妥当性証明を使用してアプリケーションを拡張できます。
Starknet のイノベーションへの取り組みは、コードの複数化へのアプローチに明らかです。 Cairo は、Cairo ローカル環境とのコントラクトの作成にとどまらず、最適な拡張機能を実現するために STARK テクノロジーを採用しています。開発者は、最適な方法を選択することもできます。
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 つのタイプに分類しています。