📚

【完全保存版】zkEVMとは何か

2023/05/04に公開

0 はじめに

この記事は、こちらの記事を翻訳・編集したものです。
https://blog.thirdweb.com/zkevm/

① Ethereumの課題について

イーサリアム・ブロックチェーンが直面する最大の課題の1つはスケーラビリティです。

https://pol.techtec.world/blockchain-usecase/algorand/blockchain-trilemma-ppos

1秒間にわずか15件のトランザクションしか処理できないEVMは、ネットワークの人気が高まるにつれて簡単に過負荷になり、トランザクション速度の低下、ガス料金の上昇、Web3エコシステムの包括性の低下につながる。

② スケーリング競争の過熱化について

にもかかわらず、イーサリアム財団は、スケーラビリティを向上させるためにセキュリティと分散化を犠牲にするつもりはないことに同意しています。

サイドチェーン、レイヤー2ネットワーク、optimisticロールアップなどのソリューションを促し、イーサリアムのスケーリング競争は過熱しています。

③ ブロックチェーンのトリレンマへの潜在的な解決策

スケーリングソリューションの「聖杯」であり、ブロックチェーンのトリレンマ(スケーラビリティ、セキュリティ、分散化) の3つの特性すべてに対する潜在的な回答であるzkEVMは、ポリゴン、コンセンシス、zkSyncが独自のzkEVMメインネットを構築しています。


https://inc4.net/the-future-of-scaling-on-ethereum-l2-projects-to-follow/

しかし、そもそもzkEVMとは何なのでしょうか? なぜ他のスケーリングソリューションより優れているのでしょうか?また、どのように使用するのでしょうか?

このブログ記事では、zkEVMとは何かどのように動作するのかなぜ究極のEthereumスケーリングソリューションと考えられているのか、そしてどのようにその上でスマートコントラクトを開発できるのかを説明します。

1 zkEVM(zero-knowledge Ethereum Virtual Machine)とは?

① zkEVMの目的

zkEVMは、Ethereumベースのアプリケーションに高いスケーラビリティを提供する、Ethereum互換のソフトウェアコンピューティング環境です。

Ethereumとの互換性があるため、既存のEthereum dAppsは、セキュリティや分散化を損なうことなく、より高速で拡張性のあるzkEVMに簡単に移行できます。


https://blog.chain.link/zkevm/

② zkEVMの概要

zkEVMはその名の通り、Ethereum Virtual Machine(EVM)ゼロ知識証明(ZKP) という2つの画期的なブロックチェーン技術を結びつけています。

zkEVMが何をするのか、なぜ重要なのかを理解するために、これらの技術を紐解いてみましょう。

③ イーサリアム仮想マシン(EVM)

1) コントラクト計算(smart contract computation)

EVMは、Ethereumブロックチェーン上でスマートコントラクト実行するソフトウェア環境です。

これを 「コントラクト計算(smart contract computation)」 と呼びます。


https://ethereum.org/en/developers/docs/evm/?ref=blog.thirdweb.com

2) 状態計算(state computation)

EVMはまた、各スマートコントラクトを実行した後、イーサリアムチェーンの有効な状態を計算し更新します。

これは 「状態計算(state computation)」 と呼ばれます。

3) なぜ通常オンチェーンで実行されるべきなのか

その上、EVMはイーサリアムネットワークのすべてのルールを実施する責任があります。

コントラクト計算をオンチェーンで実行することで、EVMは、すべてのスマートコントラクトの実行がネットワークのルールの範囲内で行われていることを疑う余地なく真に知ることができます

4) オンチェーンでの実行の2つの限界

1. 計算速度の限界

まず、EVMは、数千のノードからなる分散型ネットワークに依存して、スマートコントラクト状態計算を個別に代行させ、コンセンサスを得ます。

これにより、ネットワークは高度に分散化された状態に保たれますが、計算速度は遅くなります。

2. 計算データのスペースの限界

次に、イーサリアムの各ブロックには、取引データとガスのためのスペースが限られているため、各ブロックには計算データのためのスペースが限られていることになります。

これらの要因によって、イーサリアムの計算能力は一定期間内に制限されます。その結果、EVMはある限界を超えてスケールすることができません。

5) コントラクト計算の状態計算からの分離について

コントラクト計算をイーサリアムの状態計算から分離することで、ネットワークをスケーラブルにすることができます。

しかし、コントラクト計算をオフチェーンにすることは、EVMが計算のルールを決めなくなることを意味するため、大きな挑戦となります。

そこで、ゼロ知識証明の出番となるのです。

④ ゼロ知識証明(ZKP)

1) ZKPの概要

ZKPは、人やコンピュータがある情報や計算の詳細を明らかにすることなく、その知識を証明することができる暗号技術です。


https://ja.wikipedia.org/wiki/ゼロ知識証明

長年の研究と実験の末、開発者はついに、セキュリティを損なうことなくZKPをイーサリアムに効果的に統合する方法を発見しました。それがzkEVMに結実したのです。

2) zkEVMの概要

zkEVMは、イーサリアムのネットワーク外でコントラクト状態計算を実行する仮想マシンの設定です。

zkEVMが新しい状態に移行すると、状態遷移のZKPイーサリアムノードに提出し、EVMのルール内で計算が行われたことを証明します。


https://jelvix.com/blog/ethereum-smart-contracts

3) ノードでの処理

そして、これにはイーサリアムノードとトランザクションや計算の詳細を共有する必要はありません。

その結果、イーサリアムノードは、計算そのものではなく、計算と状態の簡潔な証明を処理するだけでよくなります。

そして、最小限の、しかし証明可能な正当なデータに基づいて、イーサリアムチェーンの状態を更新することができます。

4) zkEVMの効果

これにより、イーサリアムネットワーク上の計算の必要性が大幅に削減されます。

その結果、zkEVMはイーサリアムアプリケーションに比類ないスケーラビリティを提供し、より低い計算コスト最高のセキュリティおよび分散化を実現します。


https://101blockchains.com/zksnarks-vs-zkstarks/

さて、zkEVMとは何か、何をするものなのかがわかったところで、その動作を見てみましょう!

2 zkEVMはどのように動作するのか?

zkEVMの動作は大きく3つのステップに分けることができます。

1.オフチェーン計算
2.証明(プルーフ)生成
3.オンチェーン検証

ここでは、各ステップで起こることを説明します。

① オフチェーン計算

zkEVM は、スマートコントラクトのトランザクションを実行するためにオフチェーン計算を実行する実行環境を持ちます。


https://blog.chain.link/zkevm/

そのため、zkEVM は現在の状態コントラクトトランザクションの詳細を取得し、最終的な状態を生成します。

② 証明(プルーフ)生成

計算が完了すると、zkEVM は証明回路を使用して計算の詳細をすべて特定し、ゼロ知識証明を生成します。


https://blog.chain.link/zkevm/

証明回路は、有効なZKPを作成するために3つの要素を評価します:

1) バイトコードとオペコード

バイトコードはスマートコントラクトコードの機械可読形式であり、オペコードはバイトコード内の具体的な個々の命令です。


https://coinsbench.com/about-evm-opcode-gas-ethereum-accounts-9f0896f09d04

証明回路は、実行されたスマートコントラクトのバイトコードとオペコード真正性有効性をチェックします。

2) 入力値と出力値

証明回路は、プログラムが計算前に正しい情報と値を取得したかどうかを検証します。

また、計算後にプログラムが正しい値を記録したかどうかも検証します。

3) 計算

最後に、オペコードの実行が正しい順序で行われたかどうかを検証します。

③ オンチェーン検証

1) 正当性の検証

ZKP生成後、初期状態最終状態のデータとともに証明書がイーサリアムベースの検証コントラクトに提出されます。

このコントラクトは、ZKPに対して必要な計算を実行し、その正当性を検証するために自己実行します。

2) 状態の更新

ノードによって検証されると、EVMはEthereumの状態を更新します。

しかし、なぜzkEVMが他のスケーリングソリューションよりも優れているのでしょうか?

サイドチェーン、ロールアップ、その他のタイプのチェーン、そしてそれらの比較について潜入してみましょう。

3 なぜzkEVMは他のスケーリングソリューションよりも「優れている」のでしょうか?

① zkEVMの特徴

zkEVMは、Ethereumスケーリングソリューションの聖杯とみなされています。

開発者やユーザーにとってネットワークを高度にスケーラブルでコスト効率の良いものにするだけでなく、プライバシー、セキュリティ、分散化をそのまま維持することができるからです。

② zkEVMの競合について

しかし、ロールアップサイドチェーンなど、他にも多くのzkEVMの競合が存在します。

では、zkEVMの何が優れているのでしょうか?

これを理解するために、他のソリューションが何をしているのか、さっそく見ていきましょう:

1) サイドチェーン

サイドチェーンは、独自のルールコンセンサスメカニズムを持つ独立したチェーンです。


https://www.youtube.com/watch?v=7pWxCklcNsU&t=124s

しかし、データとトークンの転送のためにイーサリアムのネットワークと通信することができます。

2) ロールアップ

ロールアップレイヤー2のネットワークで、別のチェーンでトランザクションを処理し、スマートコントラクトを使用してバッチにロールアップし、情報を中継してイーサリアムに公開します。


https://www.youtube.com/watch?v=7pWxCklcNsU&t=124s

ロールアップには2つのタイプがあります。

a. Optimistic rollups(楽観的ロールアップ)

レイヤー2上のすべての取引が正当なものであると仮定し、即座に実行します。

間違った取引は、イーサリアム上で記録が公開される前の一定期間内に異議を申し立て、修正することができます。


https://www.youtube.com/watch?v=7pWxCklcNsU&t=124s

検証者は、ネットワークのルールに従って実行するインセンティブと、そうでない場合の罰則を持ちます。

b. ZK rollups

このロールアップは、レイヤー2チェーン上のすべてのトランザクションを個別に検証し、検証されたトランザクションを1つに束ねてイーサリアム上で公開します。

楽観的な仮定ではなく、証明に基づいて実行されます。


https://www.youtube.com/watch?v=7pWxCklcNsU&t=124s

ただし、単純な決済に限定されます。

3) zkEVMがこれらのソリューションより優れている点は何?

1. 高速なファイナリティ

zkEVMは、他のスケーリングソリューションよりも高速なファイナリティを提供します。

2. セキュリティ

zkEVMはセキュリティの仮定を行わず、代わりに証明可能な正当な計算に依存するため、より高いセキュリティが保証されます。

3. プライバシー

すべてのトランザクションに対して ZKP を生成することで、zkEVM は他のスケーリング・ソリューションにはない、トランザクションのプライバシーを確保することができます。

4. プログラマビリティ

zkEVMEVM完全に互換性があり、ZK ロールアップのような他のスケーラビリティ対応製品よりも優れたプログラマビリティを提供します。

5. スケーラビリティ

zkEVM は、計算をオフチェーンで行うことで、セキュリティや分散化を損なうことなく、比類ないスケーラビリティを提供できます。

サイドチェーンやロールアップは、ブロックチェーンの3つの主要な特徴のうち1つを妥協していることが多いです。

4 機能別zkEVMの一覧

現在、Ethereumネットワークのスケールアップを期待できる人気のライブzkEVMは3つあります。

① Polygon zkEVM

Polygon zkEVMは、Ethereumをスケールするための分散型レイヤー2ネットワークです。

2023年3月27日に稼動しました。


https://polygon.technology/polygon-zkevm

このネットワークは、EVMとのオペコードの互換性を維持しながら、暗号化されたゼロ知識証明を使用しています。それは2つのことを意味します:

  • a. 開発者は、既存のEthereumツールやインフラを使用して、Polygon zkEVM上で新しいコントラクトやアプリケーションを構築できる。

  • b. イーサリアム上で構築できるものはすべて、Polygon zkEVM上でも構築可能である。

Ethereumの上にあるPolygonのゼロ知識ロールアップは、複数のトランザクションを1つのバッチにロールアップし、Ethereumネットワークに安全にブロードキャストすることを支援します。

こうしてイーサリアムに高速なトランザクションをもたらします。

② ConsenSys zkEVM

MetaMask を開発した ConsenSyS 社が設計した ConsenSys zkEVM は、Polygon zkEVM とよく似ています。

EVMバイトコードとの互換性は100% で、EVM互換のチェーンとの相互運用性を最大限に高めています。


https://consensys.net/zkevm/

ConsenSysは、開発者が既存のdappsをzkEVM上に**「変更なしで数分で」デプロイできると主張**しています。

チェーンはまだ稼働していませんが、コンセンシスはテストネットの立ち上げを2023年3月28日に予定しています。(この記事の当時はまだでしたが、予定通りローンチされました)

③ zkSync zkEVM

Matter Labsが開発したzkSyncは、現在、zkEVMレースをリードしています。

同社は2020年12月にzkを搭載したネットワークの初期バージョンである 「zkSync Lite Mainnet」 を発表しました。


https://docs.zksync.io/userdocs/

ただ、zkSync Liteはシンプルな決済にしか対応していませんでした。

その後、Matter Labsは2022年10月に本格的なzkEVM環境であるzkSync Eraへの開発者向けゲートを開きました。


https://zksync.io/

2023年3月24日には、zkSync Era Mainnetが誰でも利用できるようになりました。

5 zkEVMでWeb3アプリを構築する方法

Polygon、ConsenSysその他のzkEVMを使ったビルドは、thirdwebのweb3開発者ツールを使って始めることができ、すべて無料で利用できます。

ご質問がある場合は、Discordコミュニティで33,000人以上の他のビルダーと一緒にお気軽にご参加ください!

https://blog.thirdweb.com/guides/how-to-deploy-a-smart-contract-to-polyon-zkevm-testnet/

https://blog.thirdweb.com/guides/deploy-a-smart-contract-to-consesnsy-zkevm-testnet/

6 よくある質問(FAQ)

① zkEVMは他のスケーリングソリューションとどう違うのか?

zkEVM はオフチェーンで高速計算を行い、プログラマビリティ、セキュリティ、分散化を損なうことなく、計算の検証可能なゼロ知識証明を Ethereum と共有します。

他のスケーリングソリューションは、これらの機能の1つまたは複数を妥協しています。

② zkEVM は、イーサリアム以外のチェーンと互換性がありますか?

はい、zkEVMはEVMと互換性があるため、EVMと互換性のあるブロックチェーンで動作することができます。

③ EVMとzkEVMの違いは何ですか?

EVMはイーサリアムネットワークのネイティブな仮想マシンですが、zkEVMはゼロ知識証明を使用してオフチェーンのスマートコントラクト計算環境を構築し、EVMのスケーラビリティの課題を解決するために新たに設計した仮想マシンです。

④ zkEVMのユースケースにはどのようなものがありますか?

zkEVMを使用することで、Ethereumのようなパブリックチェーンのように、個人情報を公開台帳上で公に共有しない、真のプライベートアプリケーションを構築できます。

さらに、イーサリアムで構築するようなあらゆるタイプのアプリケーションを、よりスケーラビリティのある形で開発することができます。

7 結論から言うと zkEVMは未来なのか?

zkEVMは、イーサリアムネットワークとそのアプリケーションにより大きなスケーラビリティをもたらす、新しいコンピューティングエコシステムを作り出します。

このコンセプトは、長年の研究開発をバランスの取れたシステムにまとめ、開発者の学習曲線が緩やかで、スケーラブルなイーサリアム互換アプリケーションの構築をほぼ即座に開始できるようにします。

このブログ記事で、zkEVMとは何か、他のイーサリアム・スケーリング・ソリューションとの比較、そしてzkEVMでブロックチェーン・ベースのアプリケーションを構築することを検討する理由について、理解を深めていただけたと思います。

ご質問がある場合は、当社の Discord コミュニティで 33,000 人以上のビルダーに参加するか、スマートアカウントの開始方法についてチームに直接お問い合わせください。

https://discord.com/invite/thirdweb?ref=blog.thirdweb.com

また、スマートアカウントでWeb3アプリの構築を始めたい方は、thirdwebのWeb3ツール&SDKをご利用ください(無料です)!

Discussion