ZK ロールアップとオプティミスティック ロールアップを 1 つの記事で理解する: イーサリアムの重要な拡張方向
編集者注: この記事は以下から引用しましたブルーフォックスノート (ID:lanhubiji)、許可を得てOdailyによって転載されました。
ブルーフォックスノート (ID:lanhubiji)
導入
、許可を得てOdailyによって転載されました。
前書き: スケーラビリティは長年にわたってパブリック チェーンを悩ませてきました。スケーラビリティのためのソリューションは、概念実証または研究開発のいずれかにあります。 Optimistic Rollup と Zk Rollup もスケーラビリティ ソリューションであり、暗号通貨コミュニティから大きな関心を集めています。では、オプティミスティック ロールアップと ZK ロールアップとは一体何なのでしょうか?イーサリアムのスケーリングの将来を勝ち取るのはどの技術的なルートでしょうか?道がどれほど曲がりくねっていても、これまでの取り組み(プラズマやその他の技術的ソリューションなど)が役に立ったとしても、イーサリアムの拡大は進んでおり、主流のシナリオを満たすことが不可能ではありません。この記事の著者は Alex Gluchowski で、翻訳者は Blue Fox Notes コミュニティの「JOKO」です。
副題
導入
オプティミスティック ロールアップは、短期的にイーサリアム上で汎用スマート コントラクトをスケーリングするための有望な技術です。十分に迅速に構築できれば、セキュリティとスケーラビリティの間で合理的なトレードオフを保ちながら、既存の dApps とサービスを簡単に移行する方法を提供できます。これにより、ETH1.0は増大する需要に対応できるようになります。
ZK ロールアップはより複雑な手法です。現在、トークン転送や特定のアプリケーションに使用できます。ただし、汎用スマート コントラクトへの実装にはもう少し時間がかかり、EVM を ZKP に効率的にラップするにはさらに多くの研究作業が必要になります。 (Blue Fox 注: ZKP はゼロ知識証明を指します)
ただし、ZK Rollup が完全に開発されると、既存のすべての Ethereum dApp とサービスはスムーズかつ簡単に移行できるようになります。
ZK ロールアップは、オプティミスティック ロールアップに関するいくつかの基本的な問題を解決します。
引き出しにかかる時間が 1 ~ 2 週間から数分に短縮されました。
Rollup 101
迅速な取引確認と数量無制限の終了をサポートします。
プライバシーはデフォルトで導入されます。
楽観的ロールアップは ZK ロールアップにとって朗報です。レイヤ 2 スケーリングへの移行には、ウォレット、オラクル、dApps、およびユーザーの習慣に対する大きな変更が必要です。オプティミスティック ロールアップは、この移行に向けてエコシステムを準備するのに役立ち、ZK ロールアップの上にまだ構築できないこれらの dApp にスケーラビリティをもたらします。これにより、ZK Rollup は成熟するのに十分な時間を与えられ、イーサリアムの成長の勢いを維持しながら完全にシームレスな導入が可能になります。
副題
※ロールアップとは何ですか?
Rollup は、Plasma のようなレイヤー 2 スケーラビリティ ソリューションです。単一のメインチェーン コントラクトがすべての資金を保持し、より大きな「サイドチェーン」(通常はアカウント、残高、およびそれらの状態のマークル ツリー)プロミスの状態を簡潔に暗号化します。サイドチェーンの状態は、ユーザーとオペレーターによってオフチェーンで維持され、レイヤー 1 ストレージに依存しません (これが最大のスケーリングの利点が得られる場所です)。
Rollup と Plasma の違いは、レイヤー 1 ネットワークを介して各トランザクションの一部のデータを公開することで、Plasms の大きな問題であるデータの可用性を解決することです (イーサリアムでは、tx CALLDATA がこの目的にのみ使用されます)。
そのため、数千のトランザクションを 1 つのロールアップ ブロックにまとめることができます。このアプローチのコストは厳密に線形に増加しますが (トランザクション数では O(n))、CALLDATA はレイヤー 1 のストレージとコンピューティングよりも安価であるため、実際にはスループットを 100 倍向上させることができます。
Rollup は、Vitalik Buterin によってお気に入りのレイヤー 2 スケーラビリティ ソリューションとして繰り返し認識されています。状態遷移の正確性を保証する方法に応じて、ZK ロールアップとオプティミスティック ロールアップの 2 つのロールアップ方法があります。
ZK-Rollup では、オペレーターは状態遷移ごとに SNARK (Blue Fox Notes: 知識の簡潔な非対話型引数) を生成する必要があり、これはメインチェーン上のロールアップ コントラクトによって検証されます。この SNARK は、アカウント残高を正しい方法で更新し、マークル ルートを古いものから新しいものに移行する、所有者によって正しく署名された一連のトランザクションが存在することを証明します。したがって、オペレータは無効または操作されたステータスを送信することはできません。
*オプティミスティックロールアップとは何ですか?
*Optimistic Rollup
Optimistic Rollup では、新しい状態ルートはオペレーターによって公開されるため、Rollup スマート コントラクトによって毎回チェックする必要はありません。代わりに、誰もが状態遷移が正しく行われることを望んでいます。ただし、間違った状態遷移が発行された場合、他のオペレーターまたはユーザー (レイヤー 1 ロールアップ コントラクトで何が起こっているかを観察し、すべてのトランザクションを実行する必要がある) は、間違ったトランザクションを指摘し、間違ったブロックを元に戻すことができるため、デポジットが減少します。悪意のあるオペレーターから。オプティミスティック ロールアップの概念は、もともとジョン アドラーによって提案されました。
次に、ZK ロールアップと Optimsitc ロールアップを比較してみましょう。
副題
柔軟性: 一般的なコンピューティング
*ZK Rollup
Optimistic Rollup は特定のアプリケーションに使用できますが、Plasma Group の最も重要なイノベーションは OVM (Optimistic Vitual Machine) です。 OVM は、任意のスマート コントラクト ロジックの実装をサポートします。
スマート コントラクトの構成可能性を含め、イーサリアムで実装できるほぼすべてのものは OVM でも実装できます。これは、EVM、EWASM、またはその他の仮想マシンに基づいています。 OVM の優れた点は、EVM と一緒に使用すると、Solidity でのコードの作成がサポートされることです。したがって、ほとんどの既存のコード ベースを Optimistic Rollup に簡単に移植できます。
OVM が既存の EVM バイトコードを直接再利用できれば理想的ですが、それほど単純ではない可能性があります。適切に実装するには、トランザクション データ (CALLDATA) 形式の変更が必要であり、不正行為を証明するために複雑な Truebit/Plasma Leap スタイルのチャレンジ/レスポンス プロトコルの実装が必要です。
これにより、EVM からの逸脱が発生し、エッジ ケースが正しく処理されなくなる可能性があります。つまり、現在の OVM 契約に対応するためには、まだいくつかの作業を行う必要があります。もう 1 つの実装上の課題は、大きなブロックの不正行為を証明するには、レイヤー 1 ブロックのガス制限が許可するよりも多くのガスが必要になる可能性があることです。さて、これらの不正行為の証拠は複数の ETH トランザクションに分割する必要があります。
現在までのところ、既存のすべての ZK-Rollup 実装は、トークン転送やアトミック スワップなどの特定の操作に重点を置いています。これには主な理由がいくつかあります。
まず、異なる ZKP に対する簡潔な再帰的証明を組み合わせる効率的な手法はなく、異なるスマート コントラクトの実行を 1 つのブロックに集約する必要があります。私たちの最良のアプローチは、楕円曲線上のループで Groth16 (Coda によって使用される) を使用することです。これは長いフィールドにわたる計算を必要とし、大規模な計算には完全に非効率です。
STARK 検証者は、証明された計算ステートメントの各制約を少なくとも 1 回実行する必要があります。これは、異種スマート コントラクトのコレクションを反復処理できないことを意味します。
SNORKの出現ですべてが変わりました。 SNORK は、わずかに異なる暗号プリミティブのセット (有名な多項式コミットメント スキーム) に基づいた新世代の ZKP です。ソニックのショーン・ボウが先駆者となり、2019年夏にはPLONKとマーリンが続いた。これらすべてに 1 つの共通点があります。それは、信頼できるセットアップが依然として必要である一方で、それが汎用的で更新可能であるということです。一度実行すると、さまざまなプログラムに何度でも再利用できます。
*Optimistic Rollup
ただし、これらの証明システムで使用される Kate 多項式コミットメント スキームでは、再帰のための効率的な楕円曲線ループが依然として必要ですが、これは現在利用できません。だからこそ私たちは、Halo、SuperSonic、Fractal などの最新の完全に簡潔で透明な (信頼できるセットアップが不要な) 証明システムや、Matter Labs チームが最近取り組んでいるエキサイティングなものに興奮しています。
簡単に言えば、ZKP 上に汎用スマート コントラクトを構築する際の障壁は取り除かれました。 ZK Rollup は、シームレスな構成可能性や相互運用性など、EVM と同じプログラミング モデルを完全にサポートできます。 Solidity 開発者の学習曲線は 1 日を超えるべきではありませんが、最初の契約には専用の DSL が必要になる場合があります。最終的に、ZKP 証明者テクノロジーの現在の開発ペースを考慮すると、既存のすべての ETH (さらには EWASM) コントラクトが最小限の労力で効率的に移植されることが期待されます。
副題
スケーラビリティとトランザクションコスト
John Adler 氏によると、EIP2028/イスタンブール以降、現在の推定では転送 TX あたり約 4,000 ガスになります。
これは約100tpsに相当します。
*ZK Rollup
BLS 集約署名を使用すると、この数値は最大約 500tps に達する可能性があります (EVM の互換性を壊さないために、tx パラメータはおそらく長期間保持されます)。
EVM の互換性が壊れている場合、理論的にはスループットが ZKP の制限まで増加する可能性があります。
実際のスループット上限 (トークン転送): 500tps
今のところはおそらく大丈夫です。
Matter Testnet の各転送 TX のパブリック データ コストは現在 16 バイトですが、EIP2028/イスタンブールの後は 272gas かかります。
さらに、証拠の償却費がかかり、約 300,000 ガスになることが予想されます。
最悪のケースを想定し、コストを証明するために 100 万ガスが必要な場合でも、推定転送限界は依然として 2140tps を超えます。
一部の議論では、ZKP は計算コストが高く、したがって高価であると主張する人々の声が聞こえます。実際、計算コストはガスコストに比べれば無視できますが、検閲に強い分散化による本当のボトルネックはガスコストです。また、この要因は時間の経過とともに大幅に減少すると予想されます。
実用的なスループット上限 (トークン転送): 2000tps 以上 - Visa の規模と同様。
ただし、多くのユースケースでは、状態遷移デルタをリファクタリングすることなく、大きなチャンクを公開データから (ZK 回路証明に移動することで) 省略できるため、ZK ロールアップはさらに節約になります。
重要な洞察は、オプティミスティック ロールアップでは常にユーザーが完全なトランザクション入力を公開する必要があるのに対し、ZK ロールアップでは、1) トランザクション入力から状態遷移に影響を与えない監視を差し引いたもの、2) トランザクションのみの出力から選択できるということです。この選択は、それほど複雑にすることなく非常にエレガントに実装できます。
Gnosis の Dfusion オランダ DEX のような契約では、ストレージに直接影響を与えず、計算結果を検証するためにのみ使用される大量のデータセット入力が必要です。
メタトランザクション
副題
安全性
*Optimistic Rollup
メタトランザクション
どちらのタイプのロールアップも、メタトランザクションとアカウントの抽象化のサポートに適しています。
副題
安全性
支払いチャネルとは異なり、ロールアップ内のすべての資金は単一のスマート コントラクトによって保持されます。ロールアップは最も有望な拡張方向であるため、多くのユーザーがロールアップに移行するはずであり、多くの価値がこのタイプの契約に集中しています。数千万ドル(または数十億ドル)相当の資産を保有するロールアップ コントラクトは、有名なハッカーにとって非常に魅力的なハニーポットとなっており、攻撃の機会があれば、どれほど高度なものであっても、攻撃を進めようとする可能性があります。
オプティミスティック ロールアップのセキュリティ モデルは、次の 2 つの前提に基づいています。
1. n ノードのうち少なくとも 1 つの正直なノードがすべてのオプティミスティック ロールアップ トランザクションを実行し、無効な状態遷移が発行された場合に不正証明を提出します。
2. 基盤となるレイヤー 1 ネットワークは検閲に対して強い耐性を持っています
*N 個のノードのうち少なくとも 1 人の正直なノード参加者
最初の点については、実際にトランザクションを監視および実行するのは Rollup のオペレータだけであるというのが現実的な期待です。一般のユーザーには、高いトランザクション負荷を処理するインセンティブも技術的能力もありません (もしできるとしたら、スケーリングはどこから来るのでしょうか?) 幸いなことに、オペレーターは、無効なブロックに基づいているため、自然にお互いのブロックの正しさをチェックする動機を持っています。 -構築されたブロックの資産が減少します。
十分な信頼できる参加者がいる場合、N 個のノードのうち 1 人の誠実なノード オペレーターがいることは合理的な仮定です。ただし、アクティブな攻撃者の数は限られている (数百?) ため、一部の高度な攻撃には、すべての事業者のインフラストラクチャをターゲットにする (非常に困難だが不可能ではない)、開発エンジニアに賄賂や恐喝を行って悪意のあるコードを密かにインストールさせる、ロールアップ ソフトウェア アップデートの配布をターゲットにする、などの攻撃が含まれる可能性があります。もちろん、これらの攻撃を組み合わせた攻撃である可能性もあります。
これらの攻撃は実行するのが難しく、積極的に防御する必要がありますが、特にオプティミスティック ロールアップへの攻撃が成功するまで気付かれないため、同じ方法でイーサリアム マイナーを攻撃するよりもはるかに現実的です。
*強力なレイヤー 1 の検閲防止
2 番目の仮定は難しいものです。実際、イーサリアムの設計は、通常の検閲に対して非常に効果的な経済メカニズムを提供します。ただし、対抗メカニズムが存在すると、これらのメカニズムは機能しなくなります。攻撃者は、マイナーに対する 51% 攻撃を調整する完全に自動化された贈収賄メカニズムを作成する可能性があります。これにより、誠実なマイナーがブロックに不正行為の証拠を含めることができなくなります。
興味深いことに、関与した鉱山労働者にとって、明らかに検閲によるものである場合に激怒したコミュニティの反応によって発生した社会的コストを除けば、攻撃の直接コストはゼロでした。この部分も注意が必要です。なぜなら、このメカニズムは攻撃への参加者にもっともらしい否認を提供するからです。「攻撃者の多数派の信頼できるコミットメントを考慮すると、私が参加しなければ、私のブロックは破棄されることになるので、私は利益のためにそれを行うべきではありません」 、しかし損失を避けるためです。」
残念ながら、PoW の下では、このような攻撃は非常に現実的です。参加した匿名のマイナーを罰する効果的な方法はありません。 PoS への移行後、広範な社会的合意が得られれば、コミュニティはマイナーのステークを削減することでマイナーを罰することができるようになります。
結局のところ、このような検閲攻撃はネットワーク全体に対する攻撃とみなされる可能性がありますが、マイナーはプロトコルに誠実に従っているだけであり、最善の経済的利益に反する方法で行動する義務はないと主張することもできます。
しかし、DAO の分岐後は、控えめに言っても、非常に物議を醸す議論となり、結果は予測できません。 Vitalik が実施した最近のコミュニティ世論調査では、攻撃のレベルに関係なく、ユーザーを救出するための不変ブロックチェーンに対する人間の介入に有権者の 63% が反対しました。言うまでもなく、ほとんどのバリデーターの権利と利益をクリアすることは言うまでもなく、たとえ 1 人のバリデーター (Blue Fox 注: ここでは約束された資金を指します) の権利と利益をクリアすることさえ非常に困難です。
最近、共謀に関するさらなる研究が発表され、PoS 環境における不正証明に対する新たな攻撃も発表されており、オプティミスティック ロールアップにおける検閲攻撃のリスクが、PoS では少なくとも PoW と同じくらい高いことが示唆されています。
*ZK Rollup
この攻撃に対抗するより現実的な方法は、UASF (User Activated Soft Fork) のコミュニティを迅速に動員して、マイナーに特定のトランザクションを強制的に含めることです。このシナリオはエンジニアリングと社会の両方の観点から見て複雑であり、不正行為の証拠を提出するには、少なくとも 1 週間、できれば 2 週間という比較的長い異議申し立て期間が必ず必要になります。
同時に、主要なDeFi事業者がそのような分岐の結果を決定するのに有利な立場にあることを考えると、大規模な混乱イベントを回避することが彼らの最大の利益になります。したがって、彼らの最善の選択肢は、攻撃者を静かに追跡することかもしれません (これにより、イーサリアムが最長のチェーンに留まり、ソフトフォークが成功するよりも論争が少なくなります)。
全体として、不正行為の証拠の審査のリスクは比較的低いですが、無視できるものではありません。
したがって、ZK ロールアップは、暗号化の世界の基本的なアイデアをより完全に体現しています。つまり、暗号化とゲーム理論のインセンティブを通じて信頼できる当事者を置き換え、回復力を達成するというものです。ただし、完全を期すために、ZK ロールアップに特有の潜在的なリスクについて言及する必要があります。
暗号化
信頼できる設定
ZK ロールアップで使用される ZKP が普遍的な信頼できるセットアップを必要とする場合、「N 人に 1 人」の正直な参加者という仮定にたどり着きます。参加者の数と質によっては、これが許容できるリスクである場合もあれば、許容できないリスクである場合もあります。しかし、セキュリティはセキュリティです。だからこそ、効率的なトラストレス SNARK の最新の開発、特に Matter Labs が構築しているものに非常に興奮しています。
暗号化
最新世代の SNARK は、Groth16 よりも実績のある暗号化プリミティブを使用しています。 Matter Lab の取り組みは FRI に基づいているため、ポスト量子セキュリティを備えているとさえ言えます。ただし、完全に落ち着かせるには、次の 2 つの緩和戦略を適用する必要があります。
*Optimistic Rollup
*RSA チャレンジと同様に、多額の報奨金は実際の製品バージョンよりも低いセキュリティ パラメーターで展開する必要があります。実際の攻撃が発見された場合、研究者は製品コードが侵害される何年も前にこの課題を克服します。
*すべての状態遷移は、基本的に二重検証のための保護層として機能する ZKR のオペレーターによってのみ送信される必要があります。
副題
レイテンシー (検証可能なファイナリティに達するまでに必要な時間)
*ZK Rollup
上記のセキュリティ セクションで説明した問題のため、オプティミスティック ロールアップは、不正行為を証明するための 1 ~ 2 週間のチャレンジ ウィンドウの間のみ安全です。この時間が経過するまでトランザクションは最終的なものとみなされず、内部ロールアップ tx も終了も最終的なものではありません。
エンド ユーザーにとって残念なことに、トランザクションが最終的なものであるかどうかを確認するには、最後のチャレンジ期間全体を通じてすべてのトランザクションを実行するより簡単な方法はありません。単一のオペレーター ノードのバグまたは (ハッキング) によっても元に戻される可能性があるため、ユーザーはブロックのファイナリティを保証するために純粋にゲーム理論に頼ることはできないことに注意することが重要です。
ファイナリティタイム (PoS の下): 1 週間
現在の ZKP は大量の計算を必要とします。現在、1000tx のブロックの場合、一般的なサーバー ハードウェアでプルーフ生成時間は 20 分です。進行中の GPU 実証プログラムの実装 (Matter Labs および Coda の実装) では、少なくとも 10 倍の TX スピードアップが約束されています。それほど遠くない将来、専用のハードウェアがより高いコンピューティング能力を持つようになるかもしれません。最終的には、1 分以内にブロックの完成が確認されると予想されます。
決勝時間(現在):20分
副題
ロールアップトランザクション内の迅速な確認
副題
プライバシー
*Optimistic Rollup
資金を素早く引き出す
*ZK Rollup
高速終了は、高速内部ロールアップ確認に似ています。オペレーターは流動性プロバイダーと提携して、ロールアップで終了トランザクションが最終的なものになるのを待たずに、代替可能なトークンをユーザーに即座に引き出すことができます。これには、ファイナリティまでの時間に比例して、多額の担保が必要になります。オプティミスティック ロールアップの場合、近い将来の現実のファイナリティ タイムが 1 週間で、ZK ロールアップが 5 分であると仮定すると、同じ週次の出金額をサポートするには、オプティミスティック ロールアップが ZK ロールアップの 2000 倍の担保を必要とします。
プライバシー
結論は
Optimistic Rollup は、レイヤー 2 イーサリアムで利用可能なあらゆるプライバシー ソリューション (ミキサーなど) をサポートできます。オプティミスティック ロールアップ自体もレイヤー 2 であるため、その上に実装されるプライバシー ソリューションはレイヤー 3 になります。これにより、プライバシー サービスがより分散化され、匿名性セットが小さくなる可能性があり、プライバシーが非常に現実的ではなくなります (トランザクションがデフォルトで隠蔽されていない zcash でもこれを確認できます)。
真のプライバシーを実現するには、システムがデフォルトでプライバシーをサポートしている必要があります。技術的な観点から見ると、ZK Rollup は、特定の状況下でデフォルトでプロトコル レベルでトークン転送のプライベート トランザクションを簡単にサポートでき、パブリック スマート コントラクトとプライベート スマート コントラクトを区別することもできます。
同時に、完全に匿名の zcash スタイルのトランザクション (つまり、金額を隠すだけでなくトランザクションの参加者も隠す) を構築するには、ZK ロールアップのストレージ モデルをアカウントベースのモデルから次のように変更する必要があります。 UTXO ベースのモデルでは、多くの問題が発生しますが、発生する可能性は低いです。
結論は
Optimistic Rollup は現在 PoC 段階にあります。 (Blue Fox Notes: PoC は概念実証段階を指します。長期的および実装の観点から、Blue Fox Notes は ZK ロールアップについてより楽観的です) 私たちは、すぐに製品レベルの実装を達成したいと考えています。既存のコードを移植するのが比較的簡単であることが証明されれば、プロジェクトは徐々にそれを採用し、新しいインフラストラクチャを構築し始めます。レイヤー 2 サポートがウォレットに登場し、オラクルがオプティミスティック ロールアップなどにブロードキャストし始めるでしょう。







