Web3.com Ventures の独自調査分析

0x魚学者

導入

「zk-Rollups」はおそらく、今年最も注目を集めた Web 3 の流行語です。ここ数日で zk-Sync の v2.0「baby alpha」メインネットがリリースされ、この興奮は最高潮に達しました [1]。しかし、これらすべてのバズワードの背後にある「zk-Rollups」とは実際には何を指すのでしょうか?では、zk-Sync はどこに関係するのでしょうか?この記事では、zk-Rollups の原理と実践を深く掘り下げ、プロジェクトとしての zk-Sync v2.0 の主要な技術的特徴を説明し、この待望のテクノロジーの潜在的な将来の影響を探っていきたいと思います。

zk-Rollupsの原理

そもそも、なぜ zk-Rollups が必要なのでしょうか。もちろん、Ethereum は素晴らしいです。しかし、現状では、ネットワークは根本的に規模の不経済です。ネットワーク アクティビティが増加すると、特にネットワーク アクティビティが一度に急増した場合は、ガス価格が法外に高くなります。過去数年間で Ethereum の使用と普及が進むにつれて、現在の限られたスケーラビリティがネットワークのアキレス腱となっています。

ここで「ロールアップ」が登場します。Ethereum ロールアップは、本質的には Ethereum にさらなるスケーラビリティを提供し、それによって Ethereum 固有の規模の不経済性を修正する「プラグイン」です。このアイデアの背後にある直感は単純です。A 地点から B 地点まで運ぶ必要がある 5 つのアイテムがあると想像してください。これを行う「通常の」方法は、アイテム 1 を運び、アイテム 2 を運ぶ、というように次々に運ぶことです。しかし、これは明らかに時間がかかり、面倒です。「ロールアップ」は、基本的に 5 つのアイテムすべてを 1 つのバッグに「転がして」、5 回ではなく 1 回の移動で済むようにします。

ただし、注意点が 2 つあります。

  1. ロールアップがすべてを「適合」できることをどのように確認するのでしょうか?

  2. ロールアップが偽装されていないことをどのように確認すればよいでしょうか?

zk-Rollup は、これら 2 つの問題を解決するために「ゼロ知識証明」を活用する、ロールアップ テクノロジの代表的なタイプの 1 つです (もう 1 つは Optimistic Rollups)。これらの問題に対処するために、zk-Rollup は一定数のトランザクションをまとめて L2 で計算を行い、状態の変更と「有効性証明」の両方を L1 の検証者に送信して、計算が整合性を持って行われたことを示します。この「有効性証明」は「ゼロ知識証明」の形で行われます。これは、自分が何を知っているかを伝えずに、何かを知っていることを相手に伝える数学的な方法です。

ゼロ知識証明の簡単な例としては、コード自動採点器(CSの宿題用)が挙げられます。自動採点器は、ランダムに生成されたテストケースを多数提供する「検証者」であり、あなたは「証明者」であり、すべてのテストケースに合格して、正しいコードであることを証明する必要があります。その間、コードを自動採点器に直接共有することはありません。そして、あなたは「ゼロ知識証明」を行い、自分が何を知っているかを言わずに、何かを知っていることを証明したことになります。[2]

上記のコード自動採点ツールは「対話型ゼロ知識証明」を使用しており、自動採点ツールとコードプロバイダーが直接「対話」します。対照的に、ほとんどの zk-Rollups は、より数学的に複雑な非対話型証明 (zk-SNARK、つまり Zero Knowledge Succinct Noninteractive ARgument of Knowledge など) を使用しており、対話型証明に比べて時間とスペースの両方を節約できます。zk-SNARK の技術的な詳細はこの記事の範囲外ですが、テストケース合格の基本原理は同じです。

zk-Rollups の究極の目標は、開発者が変更を加えることなくあらゆる Ethereum スマート コントラクトを zk-Rollup チェーンに移植できるようにするゼロ知識 Ethereum 仮想マシン (zk-EVM) です。しかし、これは困難です。すべての「問題」には異なる「テストケース」のセットが必要なので、考えられるすべてのテストケースを解決できる「証明アルゴリズム」を開発することが、ゼロ知識証明と zk-Rollups の技術的なボトルネックとなっています。

ヴィタリック・ブテリン自身は次のように述べています。

一般的に、私の見解では、短期的には、汎用EVM計算では楽観的ロールアップが勝利し、単純な支払い、交換、その他のアプリケーション固有のユースケースではZKロールアップが勝利する可能性が高いですが、中長期的には、ZK-SNARKテクノロジーが向上するにつれて、すべてのユースケースでZKロールアップが勝利するでしょう。[3]

そのため、歴史的にzk-Rollupsは、「テストケース」が明確に定義され、範囲が限定されているアプリケーション固有のユースケース向けに確立された技術にすぎませんでした。しかし、いくつかのプロジェクトは、汎用EVM互換のzk-Rollupアルゴリズムである「丘の上の城」に向けて急速に前進しています。[4]

zk-Sync v2.0

zk-Sync v2.0 は、現在 zk-EVM の開発に取り組んでいる多くのプロジェクトの 1 つにすぎません (他には StarkNet、Polygon Hermez、Scroll などがあります)。EVM から zk-Sync に移植するためにユーザーがコードベースの大部分を再構築する必要があった zk-Sync v1.0 とは異なり、zk-Sync v2.0 では、プログラマーはほとんどまたはまったく変更せずにアプリケーションを展開できます (zk-Sync の主張どおり)。

実際には、すべてのzk-EVMが同じように作られているわけではありません。構成可能性(元のEVM契約にどれだけ近いか)とパフォーマンス(zk-Rollupsの実行速度)の間には明確なトレードオフがあります[6]。このトレードオフの中で、zk-Syncはパフォーマンスを完全に最適化することを選択しました。そのため、構成可能性は犠牲になりました。

Vitalik Buterin の観点では、zk-EVM には次の図にまとめられているように 4 つの異なるタイプがあります。

Vitalikが述べているように、現状のzk-Sync v2.0はタイプ4のzk-EVMであり、EVMとは異なる独自のコンパイラを使用して、Solidityや高級言語で書かれたコントラクトをコンパイルすることができます。zk-Syncはコンパイラの設計を完全に制御できるため、速度とスループットを積極的に最適化することができます。その代償として、一部のDAppsとEVMデバッグツールチェーンはzk-Sync v2.0と互換性がない可能性があります。本質的に、zk-SyncはEthereumと同じカーシェルですが、エンジンが交換されています[5]。

実際、Matter Labsは開発者向けドキュメントで、スマートコントラクトの「読み取り」操作はコードを変更せずに統合できるが、スマートコントラクトの「書き込み」操作には「L1とL2の根本的な違い」のために「追加のコード」が必要であると主張しています[6]。実際、これは少し誤解を招くものです。これは、L1とL2の「根本的な違い」によるものではなく、Matter Labsが追求することにしたzk-Rollupのタイプ、つまりタイプ4ロールアップによるものです。zk-Syncは基本的に異なるコンパイラとバイトコードを使用するタイプ4ロールアップであるため、スマートコントラクトには異なるアドレスがあり、バイトコードの分析に依存するデバッガーインフラストラクチャはzk-Sync v2.0では動作しない可能性があります[7]。

将来、zk-Sync は EVM バイトコードのネイティブ サポートをさらに追加し、システムがこれらの「エッジ ケース」のより広範な範囲をサポートするタイプ 3 ロールアップに徐々に移行できるようにする可能性があります。しかし、基本的に速度と引き換えに互換性を広げている Polygon Hermez および Scroll Labs のタイプ 2 ロールアップと比較して、zk-Sync のタイプ 4 またはタイプ 3 の zk-Rollup が成功するには、2 つの重要な前提条件を満たす必要があります。まず、zk-Sync のカスタム コンパイラと互換性のない重要でないプロジェクトはごくわずかです。次に、zk-Sync の実行速度はタイプ 2 の zk-EVM と比較して質的に異なります。

残念ながら、私個人としては、そうはならないだろうと考えています。高度な開発エコシステムはどれも、便利でモジュール化されたデバッグおよびテストツールを含む、成熟した「スキャフォールディング」インフラストラクチャに依存しています。Vitalik の仮説どおり、EVM ネイティブのデバッグツールの大部分がバイトコードの違いのために zk-Sync に移植できない場合、zk-Sync は独自のテストおよびデバッグツールスイートを開発する必要があります。これは余分なオーバーヘッドであり、Polygon Hermez や Scroll などのより構成可能なタイプ 2 zk-EVM の競合製品と比較して、L2 ソリューションとしての zk-Sync の採用速度を最終的に妨げる可能性があります。

zk-Rollups の将来

zk-EVM をめぐる競争には多くのプレーヤーが参加しており、完全に機能する zk-EVM が登場するのは時間の問題だと言えます。しかし、その先は何でしょうか? 道路は、道路上に建物がある限り役立ちます。zk-Rollup の長期的な強みは、そのソリューションを使用するプロジェクトから生まれます。

現在、DeFi、GameFi、モバイル アプリケーションが zk-Rollup インフラストラクチャの主な受益者です。DeFi と GameFi はどちらも、多くの人が使用している環境で繁栄するため、基本的に規模の経済性があります。モバイル ウォレットなどのモバイル アプリケーションは、デスクトップ PC を購入するのが面倒な (または購入できない) 大衆消費者への扉を開きます。したがって、これらの状況で zk-Rollup を使用することは非常に理にかなっています。

しかし、これはzk-Rollupsの有用性の限界ではありません。むしろ、これは始まりに過ぎません。zk-RollupsはEthereumにとって、5Gがインターネットにとってであるようなものです。5GがIoTアプリケーションとシステムの新しい世界を可能にするのと同じように、zk-Rollupsは「モノのブロックチェーン」への扉を開き、冷蔵庫、時計、信号機など、私たちの物理的な世界のデジタル家電をEthereumで保護されたスマートコントラクトと統合できるようにします。

IoT に対する最大の反対意見の 1 つは、ビッグ テックが日常生活に介入できるようになるというものです。しかし、「モノのブロックチェーン」があれば、スマート家電が中央データベースで危険にさらされることを心配することなく、IoT の利便性を享受できます。利便性かプライバシーかではなく、利便性とプライバシーの両方を実現できます。それが zk-Rollups が約束する世界です。

🐦 @0xfishylosopher

📅 2022年10月31日

この情報は純粋に教育目的であり、財務アドバイスとして受け取られるべきではありません。表現されたすべての見解は著者のものであり、必ずしも Web3.com Ventures によって承認されているわけではありません。

参考文献

[1] https://blog.matter-labs.io/baby-alpha-has-arrived-5b10798bc623

[2] https://pages.cs.wisc.edu/~mkowalcz/628.pdfより改変

[3] https://vitalik.ca/general/2021/01/05/rollup.html

[4] https://www.coindesk.com/tech/2022/07/20/the-sudden-rise-of-evm-compatibility-zk-rollups/

[5] https://cryptobriefing.com/the-race-scale-ethereum-zkevm-rollups/

[6] https://docs.zksync.io/dev/contracts/#porting-smart-contracts

[7] https://vitalik.ca/general/2022/08/04/zkevm.html