
Polygon zkEVM は、設計上 EVM 互換の zk-rollup です。スループット、パフォーマンス、効率の向上を目指しています。Plonky2(最先端の zk スケーリング技術)を活用することで、軽量なプルーフを生成できるうえに SNARK の再帰的な検証も可能になっており、ユーザーはプルーフを素早く検証できます。
プルーフ生成時間の短縮に加えて、zkEVM ではトランザクションが非常に安くなり、zkEVM 上のあらゆる分散型アプリケーションのコスト効率が高まります。
現時点では、多くの人に使われる分散型アプリケーションを Ethereum 上で構築しようとするのは現実的ではありません。トランザクションの処理に長い時間がかかるうえに手数料もかなり高く、それがユーザー体験を損ない、意味のある普及を妨げているからです。
この問題の原因は、ネットワークに参加している各ノードがすべてのトランザクションを 1 つ残らず処理しなければならないことにあり、その結果、1 秒あたり 13 件のトランザクションしか処理できません。
Zk-Rollup は、Optimistic Rollup に次ぐ 2 つ目のタイプのロールアップです。Optimistic Rollup が使う遅延期間の仕組みの代わりに、zk-proof と呼ばれる暗号学的なプルーフを生成してバッチにまとめられたトランザクションを検証する点が Optimistic Rollup とは異なり、これによって zk-rollup はより高速になっています。
Zk-rollup はトランザクションを 1 つのバッチにまとめ、トランザクションのプルーフだけを投稿するので、コストがはるかに低くなります。これまで、スマートコントラクトをサポートする ZK-rollup は EVM と互換性がなかったため、開発者は Ethereum エコシステムを離れる必要がありました。
Polygon はさらに一歩進んで、Ethereum のバイトコードをサポートするコード実行環境を備えた ZK-rollup である Polygon zkEVM を構築しました。これにより開発者はコードを一から書き直す手間が省け、スマートコントラクトを簡単に zkEVM へ移行できます。

zkEVM が従来の EVM よりどう優れているのかを話す前に、従来の EVM がどのように動くのかを理解しておく必要があります。
Ethereum 仮想マシン(EVM)は、スマートコントラクトの実行環境として機能するチューリング完全な仮想マシンです。トランザクションが発生すると、すべてのコントラクトのバイトコードがソースからコンパイルされて EVM のストレージにアップロードされ、そこでピアツーピアのノードが実行されます。ノードは、同じトランザクション入力を使って正しい結果にたどり着くことを確認します。
次に、EVM のオペレーションコード(オペコード)が EVM のさまざまなステートとやり取りし、ステートストレージから値を読み取って、新しい値を EVM のストレージに送ります。
最終的に、新しい値は新しいノードによって複製され、次のトランザクションが処理されるまでそのステートが維持されます。

zkEVM もこれと同じ原理で動きますが、データがよりしっかりチェックされるようにさらに一歩踏み込んでいます。EVM で説明したステップに加えて、zkEVM はロードされるバイトコードが正しく、正しいアドレスから来たものかどうかもチェックします。また、ブロックチェーン上のデータが EVM 内のデータと一致することも保証します。
EVM と同じく、zkEVM の主な機能はスマートコントラクトをサポートすることです。L2 のトランザクションをまとめ、ステート遷移を実行し、バリディティプルーフを生成することでそのステート変更が有効であることを証明します。
zkEVM には 5 つの主要なコンポーネントがあります:

シーケンサーはネットワークのユーザーから L2 トランザクションを集め、それらをバッチにまとめて PoE スマートコントラクトに提案します。シーケンサーの役割はパーミッションレスで、自分のマシンで zkNode ソフトウェアを動かしてさえいれば誰でもシーケンサーになれます。これがネットワークの分散性を高めています。
L1 上にバッチを提案したいシーケンサーは、L1 のガス代を支払い、さらに追加のトークン手数料をデポジットしなければなりません。これはスパムを防ぐのに役立つと同時に、シーケンサーが有効なトランザクションだけを提案する動機にもなります。ユーザーが支払うバッチ手数料が、シーケンサーにとってのインセンティブになります。
提案されたバッチは calldata として L1 に投稿されます。新たに参加するパーミッションレスなノードはそのデータを再構築し、自身のステートを同期させます。マイニングされると、L1 のトランザクションによって L2 トランザクションの実行順序が決まります。こうして決定論的な新しいステートが作られますが、この新しいステートが確定するのは、バリディティプルーフが L1 に送られたときです。ここでアグリゲーターの出番となります。

アグリゲーターの役割は、シーケンサーが提案した L2 トランザクションのバッチに対してバリディティプルーフを生成することです。提案されたバッチは位置に従って並べられ、トランザクションデータを含んでいます。
そしてアグリゲーターは、zkProver と呼ばれる専用ハードウェアを使って、各バッチのバリディティプルーフの作成を競い合います。最初にこのプルーフを生成したアグリゲーターは、シーケンサーがデポジットした Matic の手数料を報酬として受け取ります。
アグリゲーターの役割も、zkNode ソフトウェアをインストールしていて zkProver を動かせる人なら誰にでも開かれています。

EVM 等価 - Polygon の zkEVM は「バイトコードレベル」の互換性を持っています。つまり、EVM のオペコードレベルでも Solidity 言語レベルでも完全な互換性があるということです。Ethereum 上で動くすべてのツールやスマートコントラクトは、zkEVM 上でも動かすために一切の変更を必要としません。 セキュア - zkEVM はセキュリティの大部分を Ethereum から継承していますが、それに加えて zk-STARK や zk-SNARK といったゼロ知識証明も活用しています。これにより、ステートの変更が起きたときに、それが正しく行われること、ステートの変更を証明するプルーフが生成されること、そしてそれらのプルーフがオンチェーンで検証できるよう公開されることを保証しています。 分散型かつパーミッションレス - 担いたい役割に応じて必要なツールさえ持っていれば、誰でもネットワークに参加できます。 効率的 - 効率性はネットワークのパフォーマンスにとって鍵となるため、最も効率的なアグリゲーターがバリディティプルーフを提供してインセンティブを得られるようになっています。また、すべての計算はオフチェーンで行われ、zk-proof と必要なデータだけがオンチェーンに保持されます。
zkEVM は通常の仮想マシンの改良版であり、トランザクションをより速く、より安全に実行します。プロジェクト全体は Polygon によってオープンソース化される予定で、Ethereum をより良く、より安く、より速く使う方法を探している人なら誰でも利用できます。
非常に複雑な技術ですが、私たちは全力で開発を進めていて、取り組んでいるものを皆さんにお見せするのが待ちきれません。
最新の記事をメールでお届けします。