この記事はコミュニティからの投稿です。著者は、Manta Networkの共同創設者であるKenny Li氏です。Manta Networkは、ゼロ知識証明技術を利用したプログラム可能なプライバシーレイヤー1プロトコルです。
この記事の見解は投稿者/著者のものであり、必ずしもBinance Academyの見解を反映するものではありません。
概要
ゼロ知識Ethereum仮想マシン (zkEVM) は、ゼロ知識証明 (ZKP) 技術と互換性のある方法でスマートコントラクトを実行できるEthereumステートマシンです。
zkEVMは、Ethereum上のゼロ知識ロールアップ (zk-rollup) の機能を拡張して、分散型アプリケーション (DApps) をサポートします。
zkEVMを使用すると、ZKPを使用して既存のEthereumプロジェクトと新しいEthereumプロジェクトの両方を簡単に展開し、Ethereumエコシステムを強化できます。
はじめに
初期のEthereum開発者は、2014年に最初にネットワークを提案した際、ZKP技術を考慮していませんでした。しかし近年、ZKPは注目を集めており、ブロックチェーンの分野でより重要な役割を果たすことが期待されています。そのため、ZKP技術とEthereum仮想マシンを組み合わせる取り組みが強化されています。
zkEVMとは何かを理解するために、最初にその2つの基本的な概念であるzk-rollupとEVMを簡単に確認しましょう。
Zk-Rollupとは?
ロールアップとは、メインチェーン外の多数のトランザクションをまとめ、データを単一のトランザクションとしてメインネットワークに送り返すスケーリング・ソリューションのことを指します。このプロセスにより、トランザクション実行コストを削減しながら、スループットが向上します。
Ethereumでは、ロールアップ内のトランザクションは圧縮され、単一のトランザクションを認証するコストでEthereumメインネットに送信されます。Ethereumメインネットは決済を提供し、ロールアップに含まれるトランザクションデータを検証します。
zk-rollupは、ZKP技術を使用するロールアップの一種です。ZKP技術は、情報自体を明らかにすることなく情報の有効性を検証できるようにする暗号化技術です。zk-rollupは、すべてのトランザクションデータをEthereumメインネットに提出する必要はありません。状態の違い (ユーザーアカウントのステータスの変更など) と有効性の証明のみが必要であり、その過程でガス手数料が削減されます。
zk-rollupのセキュリティは、暗号化技術を使用して証拠を検証し、信頼性を実現するZKP暗号化技術に由来します。これは、Optimistic Rollupsなどの他のロールアップとは異なります。そのセキュリティは経済ゲーム理論に基づいており、悪質業者は潜在的な損失によって意欲を失い、チャレンジャーはインセンティブによって動機付けられます。
EVMとは?
EVMは、Ethereumアカウントシステムとスマートコントラクトが実行されるステートマシンです。スマートコントラクトが実行されるたびに、EVMが古い状態から新しい状態に移行します。EVMは、あるブロックから別のブロックへの新しい有効な状態を計算するための規則を定義します。
状態はEthereumの重要な概念です。これは、Ethereumの現在の状態を表すマークル・パトリシア・ツリーデータ構造であり、誰でも現在のブロックからジェネシスブロックまでのトランザクション情報を追跡することができます。
Ethereumの維持に関与するすべてのノードは、継続性とコンセンサスを確保するために存在します。これにより、各ノードは正確な現在の状態を確認することができます。EVMは、この一貫性を維持する上で重要な役割を果たします。
ZkEVMはどのように機能するのでしょうか?
EVMはデフォルトでZKPをサポートしていません。zkEVMは、すべての情報が正しいという証拠を提供しながら、Ethereumの状態の継続性を確保することを目的としています。このようにして、セキュリティとプライバシーを維持しながら、これらのプロセスの計算に関与するさまざまな要因が検証されます。
zkEVMは、Ethereum環境をzk-rollupとして複製することでこれを実現します。初期状態を取得し、すべてのトランザクションを計算してから、新しく更新された状態を付随するZKPと共に出力します。この証明は、すべてのトランザクションを個別に検証することなく、初期状態と新しい状態の両方の出力の正確性をチェックする検証者のスマートコントラクトに送信されます。
zkEVMはEVMに基づいているため、開発者はZKP開発作業を行うことなく、Ethereum DAppsとスマートコントラクトをzkEVMに簡単に移植できます。つまり、zkEVMを使用すると、以前はzkEVMなしでサポートされていたトークンスワップと支払いに加えて、zk-rollupがスマートコントラクトを実行できるようになります。
EVMの互換性機能により、開発者は既存のEVMツールとプログラミング言語であるSolidityを使用して、新しいサービスを構築でき、zkEVMによる強化されたセキュリティの恩恵を受けることができます。ユーザーにも同じメリットがあります — 同じDAppsと使い慣れたツールを使用でき、セキュリティとプライバシーも強化されます。
EVMの互換性と同等性
ブロックチェーンがEVM対応と呼ばれる場合、Solidityプログラミング言語で記述されたDAppsをデプロイできる環境を提供することを意味します。Solidityは、Ethereumネットワーク上で実行されるスマートコントラクトを開発するために設計されています。
実際、Ethereumの開発者は、Ethereumから既存のDAppsのコードをコピーして貼り付け、最小限の変更で他のEVM互換チェーンにデプロイすることができます。ユーザーの場合、EVM互換のチェーンアドレスは、Ethereumアドレスと同じです。
これは、アドレスがMetamaskやTrust Walletなどの主流のウォレットと互換性があることを意味します。現在、主要なEVM互換チェーンには、BNB Chain、Avalanche C-Chain、およびPolygonが含まれます。
EVMの互換性をEVMの同等性と混同してはならず、DApp開発者の観点から見ると、レイヤー2のロールアップはレイヤー1Ethereumとほぼ同じです。
オペレーティングシステムの類推を使用すると、EVMの同等性は、ユーザーの以前のコンピューターと新しいコンピューターの両方がAppleのオペレーティングシステムで実行されている場合に、Apple Cloudを介してファイルと設定を復元することに似ています。
対照的に、EVM互換性とは、新しいコンピューターがWindowsシステムに切り替わった場合、元のファイルをクラウドストレージ経由でダウンロードし、変換して好みの設定と古いファイルを復元する必要があることを意味します。
さまざまなタイプのZkEVM
EVMを使用して直接ZKPを生成および検証した場合、非常に時間がかかります。なぜなら、もともとEthereumはZKP技術のサポートを前提とした設計になっていないためです。場合によっては、数時間かかることもあります。ただし、EVMの互換性とZKPの効率についてバランスを取ることが不可欠です。
Ethereumの創設者であるVitalik Buterin氏は、zkEVMを次の4つのタイプに分類しました。ブロックチェーンのトリレンマと同様に、ZKPのパフォーマンス効率とEVMの互換性の間にはそれぞれ異なるトレードオフがあります。
タイプ 1: コンセンサスレベルの同等性 — Ethereumと完全に同等な性質を持つzkEVM
コンセンサスレベルにおいて、タイプ 1 zkEVM — エンシュリンド・ロールアップとも呼ばれる — は、Ethereumと同等であり、zkEVMチェーンの状態とトランザクションはEthereumと同等の性質を持ちます。ブロックの相互検証を行い、Ethereumの実行クライアントで直接使用することができます。
タイプ 1 zkEVMは、Ethereum自体をよりスケーラブルにし、Ethereumメインネットに直接導入することができます。デメリットは、ZKPの効率が非常に悪く、検証に大量の計算が必要になることです。将来的に、大規模な並列バリデーターまたはzk-SNARKs用の特殊な集積回路を使用することで解決することができます。
ZK効率の高いタイプ 1 zkEVMは、zkEVMの最も理想的な形式です。現在、このタイプのzkEVMを構築または調査している多くのプロジェクトが存在します。
タイプ 2: バイトコードレベルの同等性 — EVMと完全に同等
タイプ 2はEVMと完全に同等ですが、Ethereumとは異なります。データ構造 (ブロック構造や状態ツリーなど) の点でEthereumとは異なり、ZKに適していない複数のスタック操作が削除されます。
Ethereumの既存のDApps、デバッグツール、および開発者インフラストラクチャーと完全に互換性があります。バイトコードレベルの同等性は、大幅ではありませんが、証明時間を短縮することができます。タイプ 2の明らかなデメリットは、ZKとの相乗効果がなく、効率が低く高価であることです。
タイプ 2.5: タイプ2に似ているが、ガス手数料が改良
タイプ 2.5はタイプ 2のメリットとデメリットを持ちながら、ガス手数料がわずかに低くなります。
タイプ 3: バイトコードレベルの同等性 — EVMと完全に同等
タイプ 2に基づいて、タイプ 3はさらに互換性を犠牲にして、ZK効率を向上させます。プリコンパイルなど、zkEVMで実装するのが難しい機能を削除するため、この機能を必要とするDAppsで使用される一部のコーディングを書き直す必要があります。
タイプ 4: 開発言語レベルの同等性 — EVMと同等の高レベル言語
タイプ 4 EVMは最高のZKパフォーマンスを備えていますが、互換性は比較的劣っています。
まとめ
zkEVM実装の主な目的は、ZKP計算のサポートをスマートコントラクトの実行に拡張し、その際にDAppsをすべてのEVM互換プロトコルに拡張することです。しかし、ZKPのアプリケーションはこれで終わりではありません。
ZKP技術は、Web2.0のユースケースと互換性がある可能性があります。さまざまなWeb2.0ユースケースをZKPと組み合わせることで、Web3.0アプリケーションをよりスムーズでユーザーフレンドリーにすることができます。また、従来のインターネットブラウザに既に慣れているユーザーに、Web3.0へのアクセスと採用を促進します。
参考文献
免責事項とリスク警告: このコンテンツは、一般的な情報および教育目的でのみ「現状のまま」提供され、いかなる種類の表明または保証もありません。財務、法律、またはその他の専門的なアドバイスとして解釈されるべきではなく、特定の商品やサービスの購入を推奨するものでもありません。適切な専門アドバイザーから独自のアドバイスを求める必要があります。記事が第三者の貢献者によって寄稿されたものである場合、表明された見解は第三者の貢献者に属し、必ずしもBinance Academyの見解を反映するものではないことに注意してください。詳細については、完全な免責事項である、こちら をお読みください。デジタル資産価格は不安定です。投資価値が上下する可能性があり、投資した金額を取り戻すことができない場合があります。投資決定についてはお客様が単独で責任を負い、Binance Academyはお客様が被る可能性のある損失について責任を負いません。この資料は、財務、法律、またはその他の専門的なアドバイスとして解釈されるべきではありません。詳細については、利用規約 およびリスク警告を参照してください。