なぜオプティミスティックロールアップがZKロールアップよりもイーサリアムのスケーリングの未来をより代表していると言えるのでしょうか?
編纂: James、チェーンキャッチャー
ZK Rollupsは汎用スマートコントラクトシステムの未来になるのでしょうか?この問題についての議論は、私たちがすでに多く耳にしているようです。しかし、数百のDApp、数十万のユーザー、数百万の取引を運営してきたオープンで安全、EVM互換のLayer 2からの実践的な経験に基づくと、ZK Rollupsは汎用スマートコントラクトシステムにはならないと考えています。その理由については、この記事で詳しく説明します。
私たちはArbitrumをOptimistic Rollup(OR)拡張ソリューションとして構築しました。なぜなら、Optimistic Rollupがユーザーの安全性、信頼性、EVM互換のL2に対する現実的なニーズを満たす最良の方法だと信じているからです。私たちはZK RollupsではなくOptimistic Rollupを選択しました。なぜなら、Optimistic Rollupシステムには固有のスケーラビリティとコストの利点があるからです。今日に至るまで、再び選択を求められた場合、答えは依然としてOptimistic Rollupです。なぜそう思うのか、続きを読んでみてください。
内容概要:
人々は、安全性、保証された進捗、可視性、迅速な確定性を提供できる信頼のないブロックチェーンを求めています。彼らは、このブロックチェーン上の取引コストが低く、既存のツールと互換性があることを望んでいます。
上記のサービスと機能を提供する際、ZK Rollupと比較して、私たちはOptimistic Rollupの具体的な詳細を深く研究しました。
Optimistic Rollupは、ZK Rollupの証明を構築するためのオフチェーンコストが非常に高いため、ユーザーが望む機能を低コストで提供できます。
ZK証明は非常に高価であるため、ZKプロトコルに完全に参加するには専用ハードウェアや大規模な並列性が必要であり、ネットワークがより中央集権的になる可能性があります。
ZK Rollupのいわゆる「利点」は、Optimistic Rollupもサポートできるか、重要な安全性または可用性機能を犠牲にする必要があります。
要するに、Optimistic Rollupは運用コストの面で優位性を持っています。なぜなら、コードを実行することは、計算が複雑な暗号証明を計算するよりも「安価」だからです。
最初から始めましょう
まず、イーサリアムについて話す必要があります。イーサリアムユーザーは、スマートコントラクトをデプロイしたり、スマートコントラクトと対話したりするために取引を作成します。イーサリアムの取引を考える方法はいくつかあります。一方では、それを不透明なデータブロックと見なすことができますが、データの内容を確認すると、取引はそれだけではありません。取引とは、スマートコントラクトに何かをするように要求するリクエストであるべきです。たとえば、情報を記録したり、資産を移動したりすることです。
取引がイーサリアムブロックチェーンに公開されると、2つの重要なことが起こります------
第一のこと:ある取引がブロックチェーンに含まれると、イーサリアムは順序付けられた取引セットに基づいて合意に達します。
第二のこと:イーサリアムはこれらの取引を実行し、結果の状態を更新します。
Rollups : Optimistic Rollup と ZK Rollupの共通点は何ですか?
すべてのイーサリアムノードが各取引を実行する場合、コストは非常に高くなりますが、Rollupsはネットワークの負荷を大幅に軽減できる拡張ソリューションの一種です。取引の実際の実行はイーサリアムブロックチェーン上ではなく、Layer 2(「L2」)に移行されます。
しかし、待ってください -- Rollupsはイーサリアムによって保護されるべきではありませんか?確かに、これらの拡張ソリューションの安全性はイーサリアムに依存しています。つまり、取引がLayer 2で発生しても、取引の実行の正確性を保証するために何らかの方法でイーサリアムが必要です。では、イーサリアムはどのようにRollupsの状態を承認できるのでしょうか?
答えは:証明です。Rollupsは、取引を実行せずに自分の正確性をイーサリアムに証明するために特別な証明を使用します。イーサリアムはその正確性を検証できます。
Rollups : Optimistic Rollup と ZK Rollupの違いは何ですか?
これらの「証明」は非常に神秘的に見えます。イーサリアムが実際に取引を実行せずにRollupsの状態を検証できるようにします。これらの証明がどのようなものであり、実際にどのように実現されるのかを知りたいかもしれません。これがさまざまなRollupsスタイルの違いです。
ZK Rollupsは有効性証明(validity proofs)を使用します。これは、ある当事者が簡潔な暗号証明を発行することに依存しており、この「証明」はその当事者が特定の状態で終了するブロックチェーンの有効性を知っていることを確認できます。つまり、「証明を提供する当事者」は、証明を構築する方法を知るためにブロックチェーン取引を実行する必要があり、その後、一連の複雑な暗号操作を通じて「証明」を構築します。これらの「証明」はLayer 1チェーン上のコントラクトによってチェックされます。ZK Rollupsの「証明」は比較的簡潔であり、取引の検証も比較的安価であるため、イーサリアム取引を通じて直接行うことができます。
Optimistic Rollupsは異なるタイプの証明を使用します:詐欺証明(fraud proofs)。その名の通り、Optimistic Rollupsは「積極的で楽観的」です。なぜなら、彼らが更新された状態をイーサリアムブロックチェーンに公開する際、実際には何の「証明」も公開していないからです。誰でも、ある取引の正しい結果に関する声明を含むRollupブロックを公開できます。他のノードが同じ取引を実行する際、最初のノードの主張に異議を唱えることができます。効果的な争議プロトコルは、あらゆる不一致を解決し、正しい側が挑戦に勝つことを保証します。各当事者は、正しい主張のみを公開する強い動機を持っており、不正確な主張に異議を唱えることはありません。したがって、一般的な状況では、すべてのノードが「単純に」すべての取引を実行し、証明コードを呼び出す必要はありません。プロセス全体はLayer 1コントラクトによって管理されます。
さて、どちらのタイプのRollupが優れているのでしょうか?この記事の残りの部分では、いくつかの次元でZK RollupとOptimistic Rollupを比較し、なぜ私たちが未来はOptimistic Rollupに属すると考えているのかを説明します。本質的に、ArbitrumのようなOptimistic Rollupのスケーラビリティは明らかに優れています。
Optimistic Rollup vs . ZK Rollup :コスト
Optimistic RollupとZK Rollupの間で最も重要な違いはコストかもしれません。
Optimistic Rollupはノードに単純にコントラクトを実行させることを要求します。たとえば、コントラクトが加算操作を実行する場合、ノードはその加算操作を実行します。
それに対して、ZK Rollupは複雑な暗号証明を生成する必要があり、加算操作を証明に含めるために何百回もの楕円曲線計算を行う必要があるため、コストが非常に高くなります。さらに重要なのは、ZK Rollupは各コントラクト内の各命令にコストを発生させるため、各命令に対して複雑な暗号証明を生成する必要があり、単に命令を実行するだけではなく、ZK Rollupには固有のコスト劣位が生じます。これは非常に大きな劣位です。
ZK Rollupの支持者は時々、このソリューションは一方が「証明」を作成するだけで済むと主張し、Optimistic Rollupは多くのノードを必要とすると反論します。しかし、大規模なブロックチェーンを運営している場合、どちらの証明システムを使用しても、多くのノードが必要です。真のブロックチェーンは、非変異呼び出し、イベントログの検索、ユーザーに取引データを表示すること、ユーザーがLayer 1に資金を引き出すために必要なデータを提供するなど、さまざまな活動にサービスを提供するために多くのノードを必要とします。Optimistic Rollupブロックチェーンの安全性は、これらのノードがすでに必要なことを行うことに依存しています。すなわち、取引を実行し、ブロックチェーンの正しい状態を追跡することです。
一方、ZK Rollupを使用すると、高価な楕円曲線に基づく証明が生成され、非常に大きな追加コストが発生します。ZK Rollupを大規模に証明するためには、専用ハードウェアデバイスが必要であったり、大規模な並列性をサポートする必要があったり、またはその両方が必要であり、これらは非常に高価です。
結論:Optimistic Rollupシステムは巨大的な固有コストの利点を持っています。
Optimistic Rollup vs . ZK Rollup :EVM互換性
私たちがArbitrumを構築する際の重要な考慮事項の1つは、イーサリアム仮想マシン(EVM)との互換性です。ArbitrumはEVMと完全に互換性があり、同じRPCインターフェースを持ち、EVMと同じバイトコードを受け入れます。つまり、イーサリアム用に書かれたコードは、Arbitrum上で「プラグアンドプレイ」できます。
Optimistic Rollupは、オープンでEVM互換のブロックチェーン(テストネットを含む)を1年以上運営しており、イーサリアムとの真の互換性が非常に挑戦的であることを理解しています。初期段階での95%の互換性はそれほど難しくありませんが、実際には十分ではなく、大量の努力と製品のアーキテクチャを妨げない構築が必要です。
互換性の観点から、ZK Rollupシステムは広範囲にわたって運営されています。しかし、一部の人々はZK Rollupを「古い」ツールと見なしています。なぜなら、彼らはまだ独自の言語を学ぶことを人々に奨励しているからです。さらに、一部のZK Rollupシステムはイーサリアムとの互換性を試みていません。もちろん、イーサリアムの互換性を気にしない開発者やユーザーにとっては、それでも良いのです。
客観的に言えば、EVMは史上最高のオンチェーンツールの1つです。私たちは、EVMと連携している開発者、コード、開発者ツールの数を考慮すると、EVM自体には非常に大きな実際的な利点があると考えています。イーサリアム上にデプロイされたプロジェクトを考えてみてください。そのプロジェクトがRollupに拡張したい場合、開発者は新しい言語でコードを書き直し、新しいセキュリティ監査を委託し、複数のコードベースを維持する必要があります。これらの作業は面倒であり、エラーが発生しやすいです。しかし、まだコードを書いていない新しいプロジェクトにとっても、EVM互換性は非常に重要です。なぜなら、EVMとの互換性は、これらのプロジェクトがEVMの周りに存在するコード、ツール、タレントプールを最大限に活用できることを意味するからです。
いくつかのZK RollupプロジェクトはEVM互換バージョンの実現に取り組んでいますが、声明は曖昧であり、これまでに公開されたコードがZK Rollup上でEVMコントラクトを実行できるかどうかは不明です。一部のシステムは依然としてEVM互換性を持っていません。たとえば、EVM互換を主張するZK Rollup ++システム++の実際の互換性はあまり良くありません。このシステムは------
- ADDMOD、SMOD、MULMOD、EXP、SELFDESTRUCT、CREATE2オペコードの互換性を実現できていない;
- XOR、AND、ORのサポートを取りやめることを検討している;
- 標準取引フォーマットをサポートしていない;
- いかなるプリコンパイルもサポートしていない;
- 取引内のコントラクト呼び出し回数を制限する可能性がある。
ZK Rollupモデルは根本的にEVMと互換性がないように見え、これは明らかにOptimistic Rollupsの実現した完全な互換性とは大きな違いがあります。
明確にしておくべきことは、現在でも特定のアプリケーションに特化したZK Rollupシステムの例(たとえばZcash、ZKSync 1.0、Loopring)が存在することです。実際、これらのシステムはうまく機能していますが、核心的な違いは、特定のアプリケーションに非常に適したZK Rollupの実現に向けて微調整と専門的な最適化が行われていることです。あるチームは、EVMをZK Rollupに互換的に「通す」一般的なコンパイラを研究していると主張していますが、ユーザー定義のZK-EVMコントラクトの証明コストを示すための公共のコードやベンチマークは存在せず、現在の知識と公開されているデータに基づいて、このコストは非常に高いと考えています。
結論:Optimistic Rollupsのみが最低コストで完全なEVM互換性をサポートします。
Optimistic Rollup vs . ZK Rollup : 信頼のない可視性と圧縮
取引アービトラージを設計する際、Optimistic Rollupsの重要な特性の1つは信頼のない可視性です。簡単に言えば、信頼のない可視性とは、誰でも中央集権的な組織の助けを借りずにブロックチェーンの内容を確認または取得できることを意味します。さらに重要なのは、これは単に誰もが時折状態のスナップショットを見ることができるだけでなく、誰もがチェーンの完全な履歴を見ることができることを意味します。つまり、現在の状態に達するまでの過程です。実用的なブロックチェーンは、誰でもノードを運営できるようにし、ノードは非変異呼び出しをサポートし、イベント履歴を検索し、各取引を確認できるようにします。これにより、中央集権的なデータ提供者に依存することなく、信頼のない可視性が実現されます。
率直に言って、一部のZK Rollupシステムは可視性の面でショートカットを取っているようで、彼らが完全なブロックチェーン機能を提供していない事実について話そうとしています。「圧縮」について聞いたとき、注意深く考えてみてください。彼らはチェーンの内容をより効率的にコーディングしていると言っているのでしょうか?(Arbitrumはそうしており、私たちのNitroバージョンではさらに良くなります)それとも、ブロックチェーンの履歴の一部が中央集権的なデータ提供者が後で共有することを望まない限り、根本的に利用できないと言っているのでしょうか?
思い出してください。ZK Rollupの証明は、実際には「証明者」が知っている有効なチェーンを証明するだけですが、「証明」自体はそのチェーンが何であるかを教えてくれません。たとえ「証明」を検証するための十分なデータがあっても、ブロックチェーンの履歴データを再構築するための十分なデータがないかもしれません。
たとえば、アリスがボブに1 ETHを支払う取引を提出し、すぐにボブがチャーリーに1 ETHを支払う連続取引を提出したとします。次に、あなたは証明を検証する必要があります。つまり、アリスは以前よりも1 ETH少なく、ボブの残高は変わらず、チャーリーは以前よりも1 ETH多いということです。
しかし、何が起こったのでしょうか?アリスはボブにお金を払ったのでしょうか?ボブはチャーリーにお金を払ったのでしょうか?もしかしたら、アリスは直接チャーリーにお金を払ったかもしれませんし、アリスが1 ETHを破棄し、チャーリーが受け取った1 ETHは他の誰かが支払ったのかもしれません。その「他の誰か」はボブではなくダイアナかもしれません。ブロックチェーンからボブの支払いの証拠を探しても、可視性を提供しないZK Rollupでは、ボブの支払い取引を区別して見つけることができません。
多くのスマートコントラクトアプリケーションが必要とするのは、いくつかのチェックポイントを知ることではなく、全体のチェーンを理解することです。つまり、何が起こったのか、そして最終的な状態に達するまでの過程を理解することです。ZK Rollupsは時々Optimistic Rollupsよりも優れた「圧縮」を誇っていますが、彼らはブロックチェーンのデータを隠しており、これは「証明者」だけがデータを知っていることを意味します。データが圧縮されているわけではなく、重要なデータを削除する可能性すらあります。もしZK提供者が「全体のブロックチェーンの履歴を公開する必要がない」と言っている場合、実際には彼らはブロックチェーンの可視性を保証できないことを意味しており、ブロックチェーンの可視性を放棄することはOptimistic Rollupが妥協することではありません。
結論:Optimistic Rollupシステムは最低コストで信頼のない可視性を提供できます。
Optimistic Rollup vs . ZK Rollup : 信頼のない 即時確定
Rollupを評価する際、私たちは重要な要件を特定する必要があります。すなわち、Rollupは信頼のない即時確定を提供する必要があります。簡単に言えば、取引を提出した後、あなたと他のすべての人がその取引の結果を迅速かつ確定的に知ることができ、誰もその取引を変更または取り消すことができないことを意味します。
私たちの見解では、即時確定を実現する最良の方法は、取引の順序と取引の実行を分離することです。順序付けは最終的な提案取引シーケンスを生成し、そのシーケンスに従って取引を実行しようとします。取引の実行が決定論的である場合、つまりそれがArbitrumに基づいている場合、取引の順序を決定することは結果を決定するのに十分です。結果は取引順序の決定論的な関数だからです。すべての人が取引の順序を知っていれば、誰でも簡単に結果を特定できます。
シーケンスを完了するには、そのシーケンスをLayer 1チェーンに公開し、誰でも自分で取引を実行できるようにするために十分な情報を含める必要があります。理想的な集約は、できるだけ頻繁に順序付けられた取引データをLayer 1チェーンに公開することです。
Optimistic Rollupシステムでは、Layer 1チェーンに公開するコストが最低であり、実際にArbitrumは通常、約1分ごとに順序付けられた取引データをLayer 1チェーンに公開し、ユーザーに迅速な確定性を提供し、誰も彼らの取引を取り消すことができないことを保証します。さらに、Arbitrumは約1時間ごとに新しいOptimistic Rollup結果主張(Result Assertion)を生成しますが、シーケンスはすでに最終的に決定されており、実行は決定論的であるため、最終的な確定の速度を遅くすることはありません。
原則として、ZK Rollupシステムも同様の方法で運営できます。すなわち、取引の順序(頻繁にLayer 1に公開できる)と、後で行われる検証および時折の有効性証明を分離します。しかし、Optimistic Rollupシステムがデータを公開するのと同じように、この方法で運営されるZK Rollupは、基本的に同じデータをLayer 1チェーンに公開する必要がありますが、上記で議論した(いわゆる)「圧縮」技術はこれをサポートしていません。ZK Rollupは「圧縮」技術を機能させるために、一連のLayer 2取引の有効性をリアルタイムで証明する必要があり、同じLayer 1取引内で、毎回Layer 2取引のバッチを公開するたびにこれを行う必要があります。
したがって、いわゆる「圧縮」技術がZK Rollupで称賛されているにもかかわらず、上記の状況に直面した場合、彼らは2つの選択肢を取らざるを得ません。
1) 約1分ごとに順序付けられた取引と実行証明を公開する:これにより迅速な確定性を維持できますが、毎分ZK証明を生成し、Layer 1チェーンで検証する必要があります。実装によっては、ブロックチェーン上でZK証明を公開するコストは500,000から500万ガスの間と推定されます。
2) 約1時間ごとに順序付けられた取引と証明を公開する:この方法ではZK証明の検証コストがわずかに合理的になりますが、最終確定時間が1時間に延長されます。ユーザーがZK Rollupオペレーターに取引を提出し、それが状況チェーンに公開されるまでの時間の間、ユーザーは自分の取引が含まれるかどうかを保証できず、ZK Rollupのオペレーターを信じるしかありません。
もしあなたがZK Rollupシステムを構築しているなら、上記の2つの選択肢はどちらも受け入れられないことに気付くでしょう。------最初の選択肢はコストが高すぎ、2番目の選択肢は即時確定を提供できません。したがって、最終的に同じタイプのシーケンサー(sequencer)を使用する場合、ArbitrumのZK Rollupバージョンは、私たちのOptimistic Rollupバージョンと基本的に同じデータを公開する必要があります。
もし誰かがZK Rollupが数時間のデータを1点に圧縮できると誇張しているのを聞いたら、心配しないでください。もし彼らが長い時間の終わりに単一のデータポイントを公開しているだけなら、それはその期間中に最終確定性を提供していないことを意味します。
結論:実際的な理由から、ZK RollupシステムはOptimistic Rollupと同じ方法でリアルタイムの確定を処理しなければなりません。
Optimistic Rollup vs . ZK Rollup : 信頼のない 活性
信頼のない活性とは、誰でもシステムに進展を強制できることを意味します。(信頼のないセキュリティ属性は、進捗が正しいことを保証します。)
Optimistic Rollupは、任意のノードが取引を正しく実行したと宣言することを許可します。この声明を提出するには、ノードがチェーンの取引を実行し、その後、プロトコルが声明を確認した後に返還される可能性のある担保を預けるだけで済みます。
ZK Rollupシステムでは、プロセスは任意のノードがブロックチェーンの状態を進めるために必要なZK証明を作成し公開できることを要求しますが、誰もが通常のハードウェアとソフトウェアで実現できるわけではありません。したがって、ZK証明を完了するには、特定の専用ハードウェアを構築または購入し、大規模な並列計算を行う必要があります。通常のデバイスでも、適切なZK証明を構築するためのパスを構築する必要があります。この機能を提供しない、またはそのシステムの証明を生成するコードを公開していないZK提供者は、信頼のないプロセスを提供できず、システムには活性保証がありません。つまり、ZK Rollupのシステムは中央集権的であり、特別なデバイスを持つ証明者だけがプロセスを進めることができます。(現在、主要なZK Rollupが一般ユーザーに対して実行可能な証明を提供するかどうかは不明です。)
結論:Optimistic Rollupシステムでは、信頼のないプロセスを提供することが容易です。
Optimistic Rollup vs . ZK Rollup : ブリッジ
もちろん、ZK Rollupは全くの無価値ではなく、1つの領域で大きな利点があります。すなわち、イーサリアムのクロスチェーン接続です。資金がLayer 1に移動する際、Optimistic Rollupシステムは予想よりも1週間遅延しますが、ZK RollupはZK証明がLayer 1に公開された後、すぐにブリッジを確立できます。しかし、本質的には、これらの2つの方法にはそれほど大きな違いはありません。なぜなら、Optimistic Rollupもユーザーが迅速にブリッジサービスを利用し、低遅延でLayer 2の資金をLayer 1の資金に交換できるからです。したがって、ZKの利点は、ユーザーがクロスチェーンブリッジサービスに支払う小額の手数料を回避できることに主にあります(価格面で一定の競争力があります)。しかし、実際のアプリケーションでは、Optimistic Rollupのパフォーマンスも良好です。なぜなら、現在、Arbitrumからの即時引き出しサービスを提供する多くのリアルタイムの迅速なクロスチェーンブリッジが存在するからです。
強調すべきは、ZK Rollupsのブリッジの利点はそれほど大きくないことです。なぜなら、これはLayer 2からイーサリアムにブリッジするためだけに使用できるからです。かつて(約2019年)、多くの人々はイーサリアムの拡張ソリューションがそれほど早く現れないだろうと考えていました。おそらく、1つか2つのDAppがゆっくりと登場するだけでしょう。しかし、実際のアプリケーションでは、RollupユーザーはLayer 1とLayer 2の間を行き来する必要があることに気づきますが、これはZK Rollupがサポートできないことです。対照的に、Arbitrumは活気あるエコシステムを持ち、数百のDAppがDeFi分野の隅々に広がっており、多くのユーザーがArbitrumに接続し、長期間そこに留まっています。さらに、ユーザーにクロスチェーンサポートを提供する際、Arbitrumはイーサリアムだけでなく、他のLayer 1やサイドチェーンとも接続します。このような直接的なブリッジにおいて、ZK Rollupsの利点はOptimistic Rollupsほど大きくありません。
結論:ZK RollupシステムはLayer 1へのブリッジにおいてわずかな利点がありますが、迅速なブリッジとマルチチェーン使用モデルにおいて、ZK Rollupの実際のアプリケーションは期待ほど良くありません。
まとめ
Optimistic RollupとZK Rollupシステムを包括的に比較した結果、私たちはOptimistic Rollupシステムが明らかに勝者であると考えています。Optimistic Rollupはコストが低く、EVMおよび既存のツールと完全に互換性があり、実際には唯一の真の欠点は、迅速なクロスチェーンブリッジサービスがない場合、Layer 1のブリッジ速度が遅いことです。ZK Rollupの多くの仮定された利点は、ブロックチェーンの可視性や確定時間を犠牲にする必要があり、私たちはこれがユーザーが望むものではないと考えています。
さらに、ZK Rollupが変化を遂げることは難しいようです。EVM互換のコントラクト実行のZK証明は、Optimistic Rollupの実行よりもはるかに高価であり、ZK Rollupは保証された進捗、ブロックチェーンの可視性、分散化の要件を満たすことが難しいです。状況が変わった場合、私たちはArbitrumをZK Rollupベースの取引実行に切り替える用意がありますが、最適化の変更が行われることはないと考えています。
最後に言いたいのは、人々はArbitrumが現在提供している内容とZKシステムが将来的に提供すると主張している内容を比較する傾向がありますが、この比較は実際には無意味です。なぜなら、私たちは既存のシステムと比較する必要があるからです。ArbitrumのようなOptimistic Rollup拡張ソリューションは、汎用スマートコントラクトをサポートする唯一のオープンデプロイシステムです。あるいは、将来のシステムを比較する場合、私たちは将来のArbitrumと将来のZKシステムを比較すべきです。
私たちはArbitrumを継続的に改善しています。たとえば、私たちの次のNitroバージョンでは、ユーザーにより低い取引コストとより良いオンチェーン最適化無損圧縮データを提供します。さらに、私たちは取引アービトラージを改善し、コストを理論的な限界まで引き下げるために疲れを知らずに取り組んでいます。この記事で分析したように、現在存在する2つのシステムとそれぞれの理論的制限を考慮すると、Optimistic Rollupsは明らかに真の勝者です。