この記事はコミュニティからの投稿です。著者は Kenny Li 氏で、ゼロ知識証明技術を活用したプログラマブル プライバシー レイヤ 1 プロトコルである Manta Network の共同創設者です。

この記事の見解は寄稿者/著者のものであり、必ずしも Binance Academy の見解を反映しているわけではありません。

TL;DR

  • ゼロ知識イーサリアム仮想マシン (zkEVM) は、ゼロ知識証明 (ZKP) テクノロジーと互換性のある方法でスマート コントラクトを実行できるイーサリアム ステート マシンです。

  • zkEVM は、イーサリアム上のゼロナレッジ ロールアップ (zk-rollups) の機能を拡張して、分散型アプリケーション (DApps) をサポートします。

  • zkEVM を使用すると、ZKP を使用して既存および新しい Ethereum プロジェクトを簡単にデプロイし、Ethereum エコシステムを強化することができます。

導入

オリジナルのイーサリアム開発者は、2014年に初めてネットワークを提案したとき、ZKP技術を考慮していませんでした。しかし、近年、ZKPは注目を集めており、ブロックチェーン分野でより重要な役割を果たすことが期待されています。そのため、ZKP技術とイーサリアムの仮想マシンを組み合わせる取り組みが活発化しています。

zkEVM とは何かを理解するために、まずその 2 つの基本概念である zk-rollups と EVM について簡単に確認してみましょう。

Zk-Rollups とは何ですか?

ロールアップは、メイン チェーン外で多数のトランザクション実行をコンパイルし、データを 1 つのトランザクションとしてメイン ネットワークに送り返すスケーリング ソリューションです。このプロセスにより、スループットが向上し、これらのトランザクションの実行コストが削減されます。

Ethereum では、ロールアップ内のトランザクションは圧縮され、単一のトランザクションを検証するコストで Ethereum メインネットに送信されます。Ethereum メインネットは決済を提供し、ロールアップに含まれるトランザクション データを検証します。

zk-rollup は、ZKP テクノロジを使用するロールアップの一種です。ZKP テクノロジは、情報自体を公開せずに情報の有効性を検証できる暗号化テクノロジです。zk-rollup では、すべてのトランザクション データを Ethereum メインネットに公開する必要はありません。必要なのは状態の違い (ユーザー アカウント ステータスの変更など) と有効性の証明のみで、その過程でガス料金が削減されます。

zk-rollups のセキュリティは、ZKP 暗号化によって実現されます。ZKP 暗号化では、証明を検証し、信頼性のなさを実現するために暗号化手段が使用されます。これは、悪意のある行為者は潜在的な損失によって意欲を失い、挑戦者はインセンティブによってやる気が出るという経済ゲーム理論によってセキュリティが実現される楽観的ロールアップなどの他のロールアップとは異なります。

EVM とは何ですか?

EVM は、Ethereum アカウント システムとスマート コントラクトが実行されるステート マシンです。スマート コントラクトの実行ごとに、EVM が古い状態から新しい状態に移行します。EVM は、ブロック間で新しい有効な状態を計算するためのルールを定義します。

状態は Ethereum の重要な概念です。これは、Ethereum の現在の状態を表す Merkle Patricia Trie データ構造であり、これにより、現在のブロックからジェネシス ブロックまでトランザクション情報を誰でも追跡できます。

Ethereum の維持に関与するすべてのノードは、継続性とコンセンサスを確保するために存在し、各ノードが正確な現在の状態を確認できるようにします。EVM は、この一貫性を維持する上で重要な役割を果たします。

ZkEVM はどのように機能しますか?

EVM はデフォルトでは ZKP をサポートしていません。zkEVM は、すべての情報が正しいことを証明しながら、Ethereum の状態の継続性を確保することを目的としています。このようにして、これらのプロセスの計算に関係するさまざまな要素が検証され、セキュリティとプライバシーが維持されます。

zkEVM は、Ethereum 環境を zk-rollups として複製することでこれを実現します。初期状態を取得し、すべてのトランザクションを計算し、付随する ZKP とともに新しい更新された状態を出力します。この証明は検証者スマート コントラクトに送信され、すべてのトランザクションを個別に検証することなく、初期状態と新しい状態の出力の両方の正確性をチェックします。

zkEVM は EVM をベースとしているため、開発者は ZKP 開発作業を行わなくても、Ethereum DApps とスマート コントラクトを zkEVM に簡単に移植できます。つまり、zkEVM では、これまで zkEVM なしでサポートされていたトークン交換や支払いに加えて、zk-rollups によるスマート コントラクトの実行が可能になります。

EVM の互換性機能により、開発者は既存の EVM ツールとプログラミング言語 Solidity を使用して新しい製品を構築しながら、zkEVM に付属する強化されたセキュリティを活用できます。同じ利点はユーザーにも同様に適用され、セキュリティとプライバシーが強化された状態で、同じ DApp と使い慣れたツールを引き続き使用できます。

EVM の互換性と 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 ロールアップはレイヤー 1 の Ethereum とほぼ同じです。

オペレーティング システムに例えると、EVM の同等性は、ユーザーの以前のコンピューターと新しいコンピューターの両方が Apple のオペレーティング システムで実行されている場合に、Apple Cloud を通じてファイルと設定を復元することに似ています。

対照的に、EVM 互換性とは、新しいコンピューターを Windows システムに切り替えた場合、元のファイルをクラウド ストレージからダウンロードして変換し、優先設定と古いファイルを復元する必要があることを意味します。

さまざまな種類の ZkEVM

Ethereum はもともと ZKP テクノロジーをサポートするように設計されていなかったため、EVM を使用して直接 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-SNARK 専用の集積回路を使用することです。

高い ZK 効率を備えたタイプ 1 zkEVM は、zkEVM の最も理想的な形式です。現在、このタイプの zkEVM を構築または調査するプロジェクトが多数あります。

タイプ2: バイトコードレベルの同等性 - EVMと完全に同等

タイプ 2 は EVM と完全に同等ですが、Ethereum とは異なります。データ構造 (ブロック構造や状態ツリーなど) の点で Ethereum とは異なり、ZK に適さないスタック操作がいくつか削除されます。

これは、Ethereum の既存の DApp、デバッグ ツール、開発者インフラストラクチャと完全に互換性があります。バイトコード レベルの同等性により、証明時間を短縮できますが、大幅には向上しません。タイプ 2 の明らかな欠点は、コストが高く、ZK との相乗効果がなく、効率が低く、コストがかかることです。

タイプ2.5: タイプ2に似ていますが、ガス料金が変更されています

タイプ 2.5 はタイプ 2 の長所と短所を共有しますが、ガス料金がわずかに低くなります。

タイプ3: バイトコードレベルの同等性 - EVMとほぼ同等

タイプ 3 はタイプ 2 をベースに、ZK の効率性を向上させるために互換性をさらに犠牲にしています。プリコンパイルなど、zkEVM で実装するのが難しい機能を削除するため、この機能を必要とする DApps で使用される一部のコーディングを書き直す必要があります。

タイプ4: 開発言語レベルの同等性 - EVMと同等の高級言語

タイプ 4 EVM は ZK パフォーマンスが最も高くなりますが、互換性は比較的劣ります。

終わりに

zkEVM 実装の主な目的は、ZKP 計算のサポートをスマート コントラクト実行に拡張し、それによって DApps をすべての EVM 互換プロトコルに拡張することです。しかし、ZKP のアプリケーションはここで止まりません。

ZKP テクノロジは、Web2 のユースケースと互換性がある可能性があります。さまざまな Web2 のユースケースを ZKP と組み合わせると、Web3 アプリケーションがよりスムーズでユーザーフレンドリーになります。また、従来のインターネット ブラウザに慣れているユーザーも Web3 にアクセスできるようになるため、Web3 の採用が促進されます。

参考文献

  • ゼロ知識証明とは何ですか?ブロックチェーンにどのような影響を与えますか?

  • 楽観的ロールアップとゼロ知識ロールアップ: 違いは何ですか?

  • ゼロ知識証明による暗号の透明性の向上


免責事項とリスク警告:このコンテンツは、一般的な情報と教育目的のみで「現状のまま」提供されており、いかなる表明や保証もありません。財務、法律、その他の専門的なアドバイスとして解釈されるべきではなく、特定の製品やサービスの購入を推奨することを意図したものでもありません。適切な専門アドバイザーから独自のアドバイスを求める必要があります。記事が第三者寄稿者によって寄稿されている場合、表明された見解は第三者寄稿者のものであり、必ずしもBinance Academyの見解を反映するものではないことにご注意ください。詳細については、こちらで完全な免責事項をお読みください。デジタル資産の価格は変動する可能性があります。投資の価値は下落または上昇する可能性があり、投資額が戻ってこない可能性があります。投資決定はお客様自身の責任であり、Binance Academyはお客様が被る損失について責任を負いません。この資料は、財務、法律、その他の専門的なアドバイスとして解釈されるべきではありません。詳細については、利用規約とリスク警告をご覧ください。