zkEVMとzkSync:ビギナーズガイド
Alice Orlova
Pontem Networkの各コンテンツはこちら!
この記事では、zkEVMの仕組みと、なぜzkEVMが重要なイノベーションなのかを説明します。
ゼロ知識証明とロールアップの概要
ゼロ知識証明とは何ですか?
ゼロ知識証明(zkプルーフ)とは、「ある情報を知っていることを、その情報やデータの提出を求めることなく証明する方法」です。
例えば、あるユーザーが、海賊の宝が埋まっている場所を知っていることを、地図を出さずに確認するにはどうすればいいでしょうか。あるいは、相手の口座残高を見ることなく、相手が銀行で自分より多くの資産を持っているかどうかをチェックすることができるでしょうか?
ゼロ知識証明は、それを可能にします。実際にはこの技術は、ブロックチェーンウォレットの所有権のようなブロックチェーンのデータを検証するために使われることがほとんどです。この「ゼロ知識」という言葉は、相手(検証者)があなたの持つ情報について具体的に何も知る必要がないことに由来しています。これは、プライバシーを重視するブロックチェーン領域では極めて重要なことです。
ゼロ知識証明の詳しい解説は、こちらの記事をご覧ください。
ZKロールアップとオプティミスティックロールアップの比較
ブロックチェーンにおいて、ロールアップはスケーリングソリューションの一種であり、L2ネットワークです。トランザクションの束は、メインブロックチェーンを離れ、より高速で安価なセカンダリーチェーンによって処理されます。そして、それらを小さなパッケージ(1つのトランザクション)にまとめ、メインブロックチェーン(L1)に送り返します。これによって、L1の負荷が軽減され、ガス代も削減されます。
Ethereumは常にスケーリングに苦労しているため、多くのロールアップはEthereum上に構築されています。ロールアップは、dApps、取引所、NFTなど、独自のエコシステムを持つことができます。Ethereumの2大ロールアップチェーンArbitrumとOptimismを聞いたことがある人も多いのではないでしょうか。
ロールアップが解決しなければならない大きな問題は、処理したトランザクションが有効であることをメインチェーンに証明する方法です。これをどのように解決するかによって、ロールアップにはオプティミスティックとzkの2種類があります。
オプティミスティック・ロールアップ (Arbitrum, Optimism, Metis, Boba)
オプティミスティックロールアップは、メインネットから取得した取引は全て有効であると仮定しているため、ダブルチェックすることなく、単純に全てを確認します。ある取引が不正であると考える人がいれば、それに異議を唱えることができます。そして、ネットワークは不正の証明をチェックし、取引をキャンセルしてメインネットで再実行し、無効であることが判明した場合には、その取引を送った人を罰する仕組みです。
OptimismとArbitrumは、ユーザーが取引に異議を唱えるのに7日間を与えます。このため、ロールアップからEthereumに暗号を送り返すには1週間かかります。
エンドユーザーの視点から見ると、オプティミスティックロールアップを使用するのは簡単です。MetaMaskにArbitrumまたはOptimismを追加し、メインネットからロールアップに暗号資産(例えばETH)をブリッジします。その後、トークンを他のアドレスに送ったり、スワップしたり、ファームしたりと、通常通り取引できます。終了後、トークンをEthereumに戻したい場合は、再びブリッジをかけますが、この場合は7日間待つ必要があります。
zkロールアップ
zkロールアップは、ゼロ知識証明を使って、トランザクションの中身を知らなくてもトランザクションが有効であることをチェックします。ロールアップされたパッケージには、Succinct Non-Interactive Argument of Knowledge (SNARK)と呼ばれるものがあります。この証明は非常に軽量であるため、ZKロールアップは、取引データ全体をメインネットに移植するオプティミスティックよりも高速かつ効率的に機能します。
もう一つの利点は、人々が取引に異議を唱えるための時間的余裕が必要ないことです。ユーザーはすぐにEthereumに資金を送り返すことが可能です。
zkロールアップの欠点は、その技術的な複雑さです。1985年に初めて提案されたゼロ知識証明は、ブロックチェーンやdAppsのために設計されたものではありません。それ以前の世代のzkプロトコルは、いくつかの欠点があります:
- 証明の計算には多くのリソースが必要→スケーラビリティの問題
- トラストレスや分散型に設計されていない→セキュリティリスクあり
- スマートコントラクトをサポートしない→dAppsを動かせない。2021年以前のzkロールアップでは、トークンの交換や移転など、1つのことしかできませんでした。
これらの問題に対する部分的な解決策として、Scalable Transparent Argument of Knowledge (STARK)という証明形式があります。これはStarkWareによって開発され、同プロジェクトのStarkNetロールアップで使用されています。
しかし、STARKの各証明はSNARKの証明の最大100倍の大きさであり、ガスコストの上昇を招きます。その上、StarkNetは異なるコーディング言語(CairoとSolidity)を使用しているため、直接EVMと互換性がありません。
しかし、2023年には、全く新しい世代のZKソリューションが登場すると考えられています。ZKを搭載した本格的なEthereum互換の仮想マシン、つまりzkEVMです。
ゼロ知識EVMとは?ロールアップとどう違うのか?
ゼロ知識EVM(zkEVM)とは、zk証明と互換性のあるEthereum Virtual Machine(EVM)の実装です。この定義を紐解いてみましょう。
EVM
ブロックチェーンの仮想マシン(VM)は、スマートコントラクトを実行するためのサンドボックス型の環境です。人間が読めるコントラクトコードを、機械が理解できるいわゆるバイトコードに変換します。Ethereumのバイトコードは、「STOP」「SUBTRACT」「GASPRICE」など、140の短いオペコード(コマンド)で構成されています。
また、仮想マシンは、物理サーバーに起こりうるあらゆるダメージからdAppsを保護するだけでなく、互いに保護し合うように機能します。さらに、EVMはステートマシンとして機能し、ブロックチェーンの状態が新しい入力に反応してどのように変化するかを決定します。
Ethereum仮想マシン(EVM)は、ブロックチェーンの仮想マシンの中で最も有名なものです。Ethereumの全ノードはEVMのインスタンスを実行しており、EVMなしではスマートコントラクトを実行することができません。Ethereumのレイヤーアーキテクチャはこのようにイメージすることができます:
ハードウェア(サーバーマシン)→ノード→EVM→スマートコントラクトとdApps
zkEVMと単純なZKロールアップの比較
簡単に言えば、zkEVMは、Ethereumメインネットが行う全てのことを行うことができるzkロールアップです。SolidityまたはVyperの人間が読めるコードをバイトコードにコンパイルして、スマートコントラクトを実行し、ブロックチェーンの状態を更新します。例えば、Matter LabsのzkSync 2.0は、ブロックチェーンにダメージを与える可能性があるため、「SELFDESTRUCT」コマンドをサポートしません。
zkEVMは、スマートコントラクトのコードが正しい方法で読み込まれ実行されたこと、トランザクションが有効であること、状態遷移が正しいことを検証するために、常にゼロ知識証明を生成しています。
zkEVMチェーン上で、Ethereum用に構築されたあらゆるdAppを、メインネットの数分の一のコストで迅速に実行でき、しかも同じレベルのセキュリティを維持できる点が画期的です。ゼロ知識証明のプライバシーは、Ethereumエコシステムのパワーと多様性と組み合わされています。
互換性があるのか、同等なのか?
ScrollのシニアリサーチャーToghrul Maharramovが指摘するように、3つの異なるものを区別する必要があります:
- EVMの互換性 — Solidityのスマートコントラクトコードを、zkロールアップに特有のVMバイトコードに変換
- EVMの等価性 — EVMのバイトコードを、zkロールアップのVMが使用するバイトコードに変換
- Full zkEVM — EVMコードの実行がロールアップ内で有効であることを証明
このような技術的な区別に基づいて、あるzkEVMが「本物の」zkEVMかどうかを議論することができます。例えば、Toghrul Maharramov自身は、PolygonのHermez(「完全なEVM同等L2」と位置づけられる)は、EVMとは異なるバイトコードを使っているため、本当のEVM同等ではないと主張しました。
zkEVMの定義にこだわるのは私たちの仕事ではありませんし、業界全体で統一された定義があるわけでもありません。この記事では、zkEVMとは、コードを書き直すことなくEthereum dAppsを実行できるzkロールアップのことを指します。
zkEVMの利点
- コードを書き換えることなく、全てのEthereum dAppsとスマートコントラクトをサポートします
- Ethereumツーリングに対応: MetaMask、Truffle、Remix、Ganache、コードライブラリなど。
- 全ての取引の正当性が保証される → セキュリティ、紛争解決の必要なし
- ゼロ知識証明が提出されると同時にメインネット上で取引が確定する→イーサリアムへのブリッジバックが早い
- 短いゼロ知識証明のみがメインネットに掲載される(対フルトランザクションデータ)→ユーザーのガス代が安くなる
- Ethereumの不便なコンセンサスプロセス(全てのフルノードが同じ計算を行う必要)を複製する必要がない → スケーラビリティとパフォーマンス
これらの利点には代償が必要です。前述のように、ゼロ知識証明を生成するには多くのリソースが必要です。さらに、EVMの全てがすぐにakテクノロジーと互換性を持つわけではないので、大量の新しいコードを書かなければなりません。その結果、zkEVMを構築するためには、投資家の支援が必要になります。例えば、Matter LabsはzkSyncのために4億5,000万ドル以上を調達しました。
Vitalik Buterinがこちらの記事で説明しているように、zkEVMの開発者は、Ethereumの完全な互換性を優先するか、ZK証明の計算速度を優先するかを選ぶことができます。zkネットワークがEthereumやEVMのように見えれば見えるほど、証明生成は遅くなります。これからわかるように、主要プロジェクトであるzkSync、Polygon Hermez、Scrollは、新しいリリースが出るたびに、ますますイーサリアムとの互換性を目指しています。
Ethereumとの相互作用:2つのアプローチ
zkSync CEOのAlex Gluchowskiが最近のインタビューで説明したように、zkのL2がL1と相互作用できる方法は2つあります:
- アグリゲーション:zkソリューションは、主にロールアップとして機能します。同じような取引(同じ通貨ペアのスワップ、NFTのミントなど)をバッチに十分な量になるまで集約し、メインネットで確認するのです。デメリットは、十分な操作を集約するのに数時間かかることがあり、ユーザー体験が損なわれることです。
- ネイティブ機能:dAppsはL2に移行し、そこでネイティブに動作します。メインネットの最終処理にはまだ時間がかかりますが、L2のエコシステム内ではトランザクションがほぼ瞬時に行われるため、ユーザーに影響はありません。欠点は、ロールアップに移行を促すためにdAppsを説得する必要があるということです。これは、zkSyncが取ったアプローチです。
製品化可能なzkEVMへの競争
2022年7月の2日間で、3社が自社のzkEVMに関する重要なアップデートをリリースしました:
1つ目は、Scroll— Ethereum Foundationと共同開発された完全なオープンソース/コミュニティ中心のプロジェクトです。2022年7月19日、同プロジェクトはプレアルファテストネットへのテスター参加を呼びかけました。
2つ目は、Alex GluchowskiとAlexandr Vlasovによって2018年に設立されたベルリンの開発スタジオ「Matter Labs」です。そのzkSync 1.0は2020年にローンチされましたが、スマートコントラクトをサポートしないままでした。次にリリースされたzkSync 2.0は真のEVM互換性を持つことになり、同スタジオは「メインネットまで100日」というブログ記事で、「初のEVM互換のzkロールアップ」と自称しています。
3つ目は、ブロックチェーン分野の真の巨人であるPolygonでした。同日(7月20日)、Polygon Hermez zkEVMを発表し、ゼロ知識証明システムのソースコードを公開しました。Polygonはこれを「初のEVM相当のzk L2」と呼び、セロ知識証明生成の大幅な高速化を約束しました。
2大チームがともに「ファースト」という言葉を使ったことで、レースは始まりました。そして次のラウンドは2022年10月に開催されました:
- 10日、Polygon Hermezが公開テストネットをリリース。
- 同日にはScrollがPre-Alphaテストネットでスマートコントラクトを有効化し、28日にはMatter LabsがzkSync 2.0メインネットのクローズドアルファを開始しました。
エンドユーザーにとっては、EVM互換のzkソリューションの進展は業界全体にとって大きな勝利であるため、どのプロジェクトがこの競争に勝つかは重要ではありません。そこで、ここでは主なzkEVMとその仕組み、それを使ってできることを検証してみます:
zkSync (Matter Labs)
zkSyncは、Solidityスマートコントラクトをサポートし、エコシステムが機能するメインネットを既に持っている唯一のzkEVMです。メインネットは、既に一般ユーザーも使うことができます。
zkSyncはEthereumよりはるかに安価ですが、無料ではありません。ガス代は2つの要素に依存します:
- ゼロ知識の計算コスト
- 現在のイーサリアムガス価格
2023年3月現在、zkSyncメインネットでは、トークン送金にガス代0.05ドル、スワップは0.11ドルかかります(Ethereumはそれぞれ0.8ドル、4ドルです)。Ethereumメインネットへの出金には15分~かかりますが、zkSyncの活動レベルが高いほど、確定が早くなります。これは、バッチを作成するために十分な類似のトランザクションを収集するのにかかる時間が短いためです。
ZkSync Lite (1.0)
zkSync 1.0は2020年6月にメインネットで稼働し、zkSync Liteという新しい名前で今も稼働しています。スマートコントラクトはサポートしていませんが、暗号の支払い、スワップ、NFTのミンティングが可能です。Gitcoinのグラントプラットフォームは、ほぼ全ての取引にzkSync 1.0を使用しています。
2023年3月現在、このネットワークのTVLは、30日間で130万件のトランザクションがあり$59Mに達しています。
ZkSync Era
zkSync 2.0は、2021年5月にテストネットで、2022年10月にプライベートメインネットでリリースされました(Baby Alpha launch)。2023年2月にはzkSync Eraに改名され、登録されたエコシステムパートナーに開放されました(Fair Onboarding Alpha launch)。3月にはメインネットが全てのユーザーにも開放されています。
zkSyncのプラットフォームは完全にオープンソースであるため、開発者はMatter Labsのコードに基づいて独自のzkEVM実装を構築することができます。
1.0と比較した主なイノベーションは、ほとんどのEthereum opcodeのサポートが追加されたことです。システムはSolidityスマートコントラクトをzkEVMバイトコードにコンパイルできるようになりました。
これを実現するために、SolidityのコントラクトコードはYulと呼ばれる中間言語に翻訳されます。この結果は、LLVMコンパイラ(フロントエンドから送られてくるさまざまな言語の人間が読めるコードを、さまざまな種類のバイトコード(zkEVMオペコード)に翻訳できるフレームワーク)に渡されます。LLVMは、2000年にイリノイ大学で始まったグローバルなオープンソースのイニシアチブです。
Solidityに加えて、Matter Labsは新しいスマートコントラクト言語「Zinc」を開発しました。これは安全で、ゼロ知識証明技術に最適化されています。Zincは、Aptos Moveと同じくRustをベースにしています。チームはまた、ZincのコードをzkEVMのオペコードに変換するためのLLVMコンパイラのフロントエンドを構築しました。
サードパーティの開発者は、自分が最も使いやすい言語(Rust、Javaなど)でzkSync用のdAppsを書くために、他のコーディング言語用のコンパイラ・フロントエンドを追加できるようになる予定です。今のところ、チームはSolidityのサポートに重点を置いています。
なお、zkSyncはトークンを持っておらず、トークンのリリース日もまだ発表していません。誰かがあなたにzkSyncやZKSトークンを売ろうとしたら、それは詐欺ですのでご注意ください。
ZkSyncエコシステム
2023年3月現在、Uniswap、Aave、1inch、Curve、Sushi、Chainlinkなど、300以上のプロジェクトが既にzkSync上での展開を約束しています。
このように、zkSyncはEthereumのL2に過ぎないというのは、適切ではないかもしれません。メインネットのフルローンチ時には、最大のL2エコシステムとなる可能性が高いと言えます。
zkSync Eraとエコシステムを試す
- MetaMaskをEthereum Goerli testnetに切り替えます。ネットワークリストにGoerliが表示されない場合は「show test networks」をトグルしてください。
- testnet ETHの入手:Goerli testnet ETHのための蛇口はかなりあります — 例えば、この蛇口や、こちらで更新されたリストをチェックしてください。少なくとも0.02ETHを入手するようにします。
- 以下のパラメータを使用してzkSync testnetをMetaMaskに追加します:
・ネットワーク名:ZkSync Testnet — Goerli
・ネットワークURL: https://zksync2-testnet.zksync.dev
・チェーンID:280
・通貨記号:ETH
・ブロックエクスプローラーURL: https://zksync2-testnet.zkscan.io/また、https://goerli.portal.zksync.io/ で接続することで、自動的にネットワークを追加できます。 - Ethereum GoerliからzkSync GoerliへETHをブリッジします。https://goerli.portal.zksync.io/ のMetaMaskと接続し、 ブリッジへと進みます。ガス代が高すぎる(0.01ETH以上)ようであれば、少し待つことを検討してください。 ブリッジ自体は5分程度で完了し、送金額とは別に最大0.02ETHのガスが必要です。
- zkSync Eraの蛇口から、DAI、LINK、その他のトークンを無料で入手する。それがうまくいかない場合は、テストネットのDEXでETHを別のトークンに交換するだけです(下記参照)。
- zkSync EraのdAppsと相互作用する:いくつかのdAppsはすでにzkSync Era testnetでライブになっています。また、DeFi dAppsのテストネットの流動性は浅いので、非常にあり得ないスワップレートと多くのペアをスワップする難しさを覚悟しておいてください。
- テストネットのdAppsは以下の通りです:
- Mute.io — zkSync上のAMM
- MUX — 分離型証拠金によるレバレッジ取引プラットフォーム
- Mint Square — NFTを自分でミントできる
Polygon Hermez
もともとEthereumスケーリングのサイドチェーンとして構築されたPolygonは、現在、DeFi TVLによるL1チェーンで5番目に大きい(11億ドル以上)プロジェクトとなっています。2021年8月、Polygonはトレジャリーから10億ドルをzkソリューションの開発に充て、独自のzkロールアップを構築していたブロックチェーンスタートアップHermez Networkを買収しました。これがPolygon Hermezの原点となっています。
新しいzkEVMのソースコードは、2022年7月にGitHubにアップロードされました。10月10日、Polygonはパブリックテストネットをローンチしましたが、まだ完全なEVM相当ではなく、容量も限られ、外部の開発者やテスターに公開されています。
Polygon HermezとdAppsとの相互作用
- MetaMaskにHermezを追加:
・ネットワーク名: Polygon zkEVM testnet
・RPC URL:https://rpc.public.zkevm-test.net
・チェーンID:1442
・通貨記号:ETH
・ブロックエクスプローラーURL: https://explorer.public.zkevm-test.net - 蛇口からGoerliのETHを入手(上記zkSyncのチュートリアルを参照)
- GoerliからPolygon HermezのテストネットにETHをブリッジ
- dAppsとの相互作用:現状相互作用するものはあまりありませんが、UniswapとAaveはHermezにデプロイすることを約束しています。
Scroll
Scroll zkEVMは、Ethereum財団のPrivacy and Scaling Explorationsグループと共同で開発されています。このグループは、zkソリューションの提案を研究し、助成金を分配し、新しいゼロ知識技術を積極的に作り出しています。
L2のアーキテクチャの中心は、Scrollノードです。ノードのシーケンサーは、ロールアップメンプールからトランザクションを受け取り、それを確認し、新しいスクロールブロックを形成します。次に、ノードの別の部分であるコーディネーターが、ブロックに関する情報(実行トレース)をローラー(ゼロ知識証明の生成に特化したノード)に送ります。証明の準備が整うと、ScrollノードのRelayerモジュールがそれをL1に投稿するようにします。
Pre-Alpha Testnetは2022年8月にリリースされ、2023年2月までに1500万件以上のトランザクションを処理しています。2月27日、ScrollはAlpha Testnetを開始しており、こちらから参加することができます。このテストネットでは、毎日約25万件の取引が行われています。
3月6日、ScrollはPolychain Capital、IOSG Ventures、Sequoia Capital、その他のVCファンドが主導する5千万ドルの新たな資金調達ラウンドを発表しました。これにより、同プロジェクトの評価額は18億ドルという素晴らしいものになりました。
手順はzkSyncやHermezと同じで、MetaMaskにScrollを追加し、Goerli ETHをいくつかブリッジして、いくつかのdAppsを試す形です。
サイトには、ネットワークをMetaMaskに自動的に追加する便利なボタンがありますが、以下はそのパラメータです:
・ネットワーク名:Scroll Alpha Testnet
・ネットワークURL: https://alpha-rpc.scroll.io/l2
・チェーンID:534353
・通貨記号 ETH
・ブロックエクスプローラー URL:https://blockscout.scroll.io
Scrollのブロックエクスプローラーでは、自分の取引がゼロ知識証明で検証され、Ethereumメインネットに提出されていることを確認することができます。
Alpha Testnetがローンチしたのはごく最近で、2023年3月時点では、アクティブなDEXやDeFIアプリはありません。それでも、Scrollを使ってできる楽しいことはいくつかあります:
- Tictactoeをプレイ:全ての技はオンチェーンに保存されます。
- chatbotに話しかける:OpenAIの技術を使っていて、Scrollについていろいろなことを聞くことができます。
- Scroll Guardiansをプレイ:メタバースを救うために仲間と一緒にモンスターを退治するアドベンチャーゲームです。
- Scroll Kingdomsをプレイ:ステーキングRPGです
ScrollはすでにUniswapコミュニティに統合案を提出しています。この提案は受け入れられており、おそらく近い将来UniswapがScrollにデプロイされることが期待できるでしょう。そして他のDeFi dAppsも続く可能性があります。
zkEVMは2023年の最も興味深いブロックチェーントピックの1つになる可能性がありますので、今後もこのトレンドについてレポートを続けていきます。今後の記事にもご期待ください!