原題: ZK Rollups: Elephant In the Room
原作者:ハ・ジェヒョン
オリジナル編集: Deep Chao TechFlow
ブロックチェーン業界の現状は、ゼロ知識 (ZK) 時代にたとえることができます。 ZK はどこに行っても目立っており、その名前に ZK が含まれていない次世代ブロックチェーン プロジェクトを見つけることはますます稀になってきています。技術的な観点から見ると、ZK がよりスケーラブルでプライベートなブロックチェーン エコシステムに貢献できる有望なテクノロジーであることは否定できません。しかし、ZK の複雑な技術的背景により、個人投資家であれ機関投資家であれ、多くの投資家は、ZK テクノロジーがどのようなメリットをもたらすのかを十分に理解せずに、見た目がクールで斬新で、ブロックチェーンのトリレンマを解決できるかもしれないという「信念」に基づいて ZK プロジェクトに投資することがよくあります。すべてのプロジェクト。
この ZK シリーズでは、ZK ロールアップの不都合な事実 (欠点とデメリット) とその有益な応用方法を探っていきます。まず、ブロックチェーンの ZK 証明 (ZKP) の 2 つの中心的な特性、「ゼロ知識」と「単純さ」を分析します。次に、現在使用されている多数の ZK ロールアップが「ゼロ知識」の側面を真に活用していないことについて説明します。次に、実装の複雑さなどのよく知られた問題を回避しながら、ZK ロールアップの適用が役に立つというよりも有害になる可能性がある領域を見ていきます。最後に、ZK の原則を効果的に具体化し、実際に ZK テクノロジーの使用から明らかなメリットを得ている優れたプロジェクトを紹介します。
復習: ZK ロールアップのトランザクション ライフサイクル
ロールアップは、トランザクションのバンドルをオフチェーンで実行し、最新の L2 状態の概要データを L1 に保存することで、L1 のスループット制限を解決するスケーリング ソリューションです。中でもZK Rollupsの優れた特徴は、オフチェーン計算の有効性をチェーン上で証明するものを提出することで、迅速に資金を引き出すことができることです。 ZK ロールアップの問題を掘り下げる前に、トランザクションのライフサイクルを簡単に確認してみましょう。
図 2: ZK ロールアップのトランザクション ライフ サイクル 出典: Presto Research Center
1. 各 L2 ユーザーはトランザクションを生成し、シーケンサーに送信します。
2. シーケンサーは複数のトランザクションを集約して並べ替え、これらのトランザクションをオフチェーンで実行して新しいロールアップ状態を計算します。その後、シーケンサーはこの新しいロールアップ状態をオンチェーン状態のスマート コントラクトに「バッチ」形式で送信し、対応する L2 トランザクション データをデータ ブロックに圧縮してデータの可用性を確保します。
3. バッチは証明者に送信され、証明者はバッチの実行の有効性証明 (または ZKP) を作成します。この有効性証明は、追加データ (つまり、以前の状態のルート) とともに L1 のバリデーター スマート コントラクトに送信され、バリデーターが何を検証しているのかを識別するのに役立ちます。
4. バリデータ契約チェックが有効であることが証明されると、ロールアップのステータスが更新され、送信されたバッチ内の L2 トランザクションは完了したとみなされます。
(この説明は ZK ロールアップ プロセスの簡略化されたバージョンであり、各実装はプロトコルごとに異なる場合があることに注意してください。役割を区別する場合、L2 にはアグリゲーター、実行者、提案者などのエンティティがさらに存在する可能性があります。 データ ブロック 層上記の説明は、集中シーケンサーがトランザクションを実行し、バッチの統一されたデータ ブロック形式を生成する強力な権限を持っているシナリオを想定しています。
(この説明は ZK ロールアップ プロセスの簡略化されたバージョンであり、各実装はプロトコルごとに異なる場合があることに注意してください。役割を区別する場合、L2 にはアグリゲーター、実行者、提案者などのエンティティがさらに存在する可能性があります。 データ ブロック 層上記の説明は、集中シーケンサーがトランザクションを実行し、バッチの統一されたデータ ブロック形式を生成する強力な権限を持っているシナリオを想定しています。
オプティミスティック ロールアップとは異なり、ZKP (ZK-SNARK や ZK-STARK など) のおかげで、ZK ロールアップは、すべてのトランザクションを再生する必要なく、単純な証明を検証することで数千のトランザクションの実行の正確さを検証できます。では、この ZKP とは何で、どのような特徴があるのでしょうか?
ZKP の 2 つの特性: 知識ゼロとシンプルさ
名前が示すように、ZKP は基本的に証明です。証拠は、プロバイダーの主張を完全に裏付けるものであれば何でも構いません。ボブ (プロバイダー) がアリス (検証者) に自分のラップトップに対する権限があることを納得させたいとします。これを証明する最も簡単な方法は、ボブがアリスにパスワードを伝え、アリスがラップトップにパスワードを入力して、ボブが実際に許可を持っているかどうかを確認することです。しかし、この検証プロセスはアリスとボブの両方にとって満足のいくものではありません。ボブが非常に長く複雑なパスワードを設定した場合、アリスがそれを正しく入力するのは非常に困難になります (アリスがコピー アンド ペーストできないと仮定すると)。もっと現実的に言えば、ボブは自分の権威を証明するためにアリスにパスワードを明かしたくないかもしれません。
ボブがパスワードを明かさなくても、アリスがコンピュータのアクセス許可をすぐに確認できる認証プロセスがあったとしたらどうなるでしょうか?たとえば、図 3 に示すように、ボブは指紋認識を使用してアリスの前でラップトップのロックを解除できます (これは ZKP の完全な例ではないことに注意してください)。ここで、アリスとボブの両方が ZKP の 2 つの重要な特性、つまりゼロ知識特性と単純性特性から恩恵を受けることができます。
図 3: 知識ゼロおよび単純さによる高レベルの直感 出典: imgflip
ゼロ知識 (ZK)
ゼロ知識特性とは、プロバイダーによって生成された証明が、証明の有効性以外の秘密証人に関する情報 (つまり、個人データ) を明らかにせず、検証者がデータを知らないままになるという事実を指します。ブロックチェーンでは、このプロパティを使用して個々のユーザーのプライバシーを保護できます。 ZKP が各トランザクションに適用される場合、ユーザーはトランザクションの詳細 (送金、口座残高の更新、スマート コントラクトの展開、処刑)を一般に公開します。
シンプルさ
単純性という性質は、大きなサイズの宣言から短くて検証可能な証明を生成する ZK の能力を指します。言い換えれば、大きなものをコンパクトな形式に圧縮します。ブロックチェーンでは、これは特にロールアップに使用されます。 ZKP を使用すると、L2 の検証者は、L1 の検証者に簡潔な証明を送信することで、トランザクションが正しく実行されたと主張できます (テラバイトレベルのトランザクションの正当性は、10 ~ 100 KB の証明で表現できます)。バリデーターは、すべてのトランザクションを再実行するのではなく、簡潔な証明を検証することで、実行の正当性を短期間 (つまり、10 ミリ秒から 1 秒) で簡単に確認できます。
ZK Rollup は優れていますが、プライバシーを意味するものではありません
ZKP の上記の機能は、ZK ロールアップでうまく活用されています。バリデーターは、プロバイダーが受信した ZKP から元のトランザクション データを推測することはできませんが、簡潔な証明を検証することで、プロバイダーの主張 (つまり、新しい L2 状態) を効果的に検証できます。そうは言っても、現在の ZK ロールアップがゼロ知識と単純さの特性に完全に準拠していると主張するのは誤解を招くでしょう。これは、プロバイダーとバリデーター間の対話に焦点を当てた場合に当てはまりますが、ZK ロールアップにはシーケンサー、プロバイダー、ロールアップ ノードなどの他のコンポーネントもあります。では、「知識ゼロ」の原則は彼らにも保証されているのでしょうか?
ZK ロールアップの ZKP で完全なプライバシーを実現するという課題は、他の部分が公開されたままで、一部の部分が ZK を通じて非公開になった場合に発生する可能性のある妥協から生じます。 ZK ロールアップのトランザクション ライフサイクルについて考えてみましょう。トランザクションがユーザーからシーケンサーに送信されるとき、プライバシーは維持されますか?プロバイダーについてはどうですか?それとも、L2 バッチが DA レイヤーに送信されるときに、個々のアカウント情報のプライバシーは保護されますか?現在のところ、これらのシナリオはどれも当てはまりません。
図 4: ZK ロールアップでのプライバシー漏洩 出典: Presto Research
ほとんどの主流の ZK ロールアップでは、シーケンサーまたはプロバイダー (または強力な権限を持つその他の集中エンティティ) は、送金金額、口座残高の更新、契約の導入と実行などのトランザクションの詳細を明確に把握できます。簡単な例を挙げると、ZK Rollup ブロック エクスプローラーにアクセスすると、前述の詳細をすべて簡単に確認できます。それだけでなく、集中シーケンサーが何らかの理由でサービスを停止し、別のロールアップ ノードがロールアップ状態を復元しようとする状況も考慮してください。 DA 層 (ほとんどの場合 L1 イーサリアム) の公開されている L2 データから情報を抽出し、L2 状態を再構築します。このプロセス中、DA 層に保存されている L2 トランザクションを再生できるノードは、各ユーザーのアカウントのステータスに関する情報を回復できます。
したがって、「ゼロ知識」という用語は、現在の ZK ロールアップでは断片化された形式で実装されています。これが間違っているとは考えられませんが、ZK が知識ゼロが完全なプライバシーに等しいことを意味するという一般的な認識とは明らかに異なります。現在の ZK ロールアップの新規性は、「知識ゼロ」ではなく「単純さ」という特性を利用していることです。つまり、トランザクションをオフチェーンで実行し、バリデーターが実行の正当性を迅速かつスケーラブルに再検証することなく検証できるように、簡潔な証明を生成します。それらを実行しています。
このため、Starknet などの一部の ZK ロールアップは、混乱を避けるために自らを「有効性ロールアップ」と呼んでいますが、Aztec など、真の ZK プライバシーを保証するものは、自らを ZK-ZK ロールアップと名付けています。
ZK ロールアップの実用性についての徹底的な考察
前述したように、ほとんどの ZK ロールアップは ZK プライバシーを完全には実装していません。それで、私たちの次の目標は何でしょうか? Rollup のあらゆる部分に ZK を完全に導入することで、完全なトランザクション プライバシーを実現しますか?実際、これは単純な質問ではありません。技術をさらに成熟させるには大幅な技術進歩が必要であることに加えて、ZK はイデオロギー (例: 私的取引への違法使用) と実用性 (例: 本当に機能するのか?) の点で依然として物議を醸す問題を抱えています。完全なトランザクション プライバシーの倫理について議論することはこの記事の範囲を超えているため、ブロックチェーン プロジェクトで遭遇する ZK ロールアップに関する 2 つの実際的な問題に焦点を当てます。
ポイント 1: ZKP の生成が高速決定のボトルネックになる可能性がある
まず、ZK ロールアップ自体の有用性について説明します。 ZKロールアップの最も魅力的なセールスポイントは、ZKPのおかげで取引が「迅速に完了」するため、資産引き出しの待ち時間が短縮されることです。 TPSの増加と取引手数料の低さも追加の利点です。 ZK ロールアップ機能はゲーム業界で最も効果的に使用されます。これは、ゲーム内通貨の入出金が非常に頻繁に行われるため、毎秒大量のゲーム内トランザクションが発生するためです。
しかし、ZK Rollups は本当にゲームに最適なテクノロジー スタックと考えられるのでしょうか?この点で、ZK ロールアップの「クイック エンディング」の概念についてさらに深く考える必要があります。ユーザーが ZK ロールアップに基づくテクノロジー スタック上で実行される Web3 ゲームを楽しんでいると想像してください。ユーザーはゲーム内アイテムをゲーム内通貨と交換し、その資産をゲームから引き出しようとします。
しかし、ZK Rollups は本当にゲームに最適なテクノロジー スタックと考えられるのでしょうか?この点で、ZK ロールアップの「クイック エンディング」の概念についてさらに深く考える必要があります。ユーザーが ZK ロールアップに基づくテクノロジー スタック上で実行される Web3 ゲームを楽しんでいると想像してください。ユーザーはゲーム内アイテムをゲーム内通貨と交換し、その資産をゲームから引き出しようとします。
資産を引き出すには、ゲーム内トランザクションを完了する必要があります。これは、トランザクションが新しいロールアップ状態コミットメントに含まれる必要があり、対応する ZKP が L1 に送信される必要があり、トランザクションが不可逆であることを確認するために L1 イーサリアムでの証明の終了を待つ必要があることを意味します。これらすべてのプロセスを瞬時に実行できれば、ZK Rollups がよく宣伝する「即時取引確認」を実現でき、ユーザーはすぐに資産を引き出すことができます。
しかし、現実はそれとは程遠いのです。 L2beat が提供するさまざまな ZK ロールアップの終了時間統計によると、zkSync Era は平均して約 2 時間、Linea は約 3 時間、Starknet は約 8 時間かかります。これは、ZKP の生成に時間がかかり、トランザクション手数料を削減するためにより多くのトランザクションをバッチ (つまり、単一プルーフ) に含めるにも追加の時間がかかるためです。言い換えれば、プルーフの生成と送信の速度が、ZK ロールアップの迅速な終了を実現する上で潜在的なボトルネックとなり、Web3 ゲームのユーザー エクスペリエンスを低下させる可能性があります。
図 5: ZKP の生成は、ZK ロールアップの高速決定のボトルネックの潜在的な原因となる可能性があります: imgflip
一方、Ronin (Pixels や Axie Infinity などの Web3 ゲームをサポート) のようなゲームに最適化されたチェーンは、分散化とセキュリティを犠牲にしながら、超高速のファイナライズを保証します。 Ronin は ZK やロールアップベースのチェーンではありません。PoA (Proof of Authority) + DPoS (Delegated Proof of Stake) コンセンサス アルゴリズムの下で実行される EVM ブロックチェーンです。委任されたシェアの数に基づいて 22 個のバリデーターを選択し、これらのバリデーターは PoA 方式 (つまり、22 個のバリデーターのみの間での投票プロセス) でブロックを生成および検証します。その結果、Ronin ではトランザクションが迅速に完了し、ブロックに含まれるまでの遅延がほとんどなく、検証時間も短くなります。 Shillin のハード フォーク後、各トランザクションが完了するまでにかかる時間は平均でわずか 6 秒です。 Ronin は、ZKP を必要とせずにこれらすべてを実装します。
もちろん、Ronin にも欠点はあります。集中管理されたバリデーターによって管理されるため、51% 攻撃に対して比較的脆弱になります。また、決済レイヤーとしてイーサリアムを使用していないため、イーサリアムのセキュリティを継承することはできません。クロスチェーンブリッジの使用にはセキュリティリスクもあります。しかし、ユーザーの観点から見ると、彼らは気にしていますか?現在、分散ソートを行わない ZK ロールアップにも単一障害点 (SPOF) の問題があります。イーサリアムはトランザクションのロールバックの可能性を減らすためそれらを保証しますが、集中型シーケンサーまたはバリデーターが失敗した場合には ZK ロールアップもフリーズする可能性があります。 ZK ロールアップの「ZK」は、実行の正しさの妥当性を検証するためにのみ使用されることにもう一度注意してください。同じ機能を提供するが、より高速で安価な別のプロジェクトがある場合、ZK ロールアップは Web3 ゲーム ユーザーや開発者が選択するテクノロジ スタックとはみなされなくなる可能性があります。
ポイント2:解放ステータスの違いは諸刃の剣
もう 1 つのポイントは、ZK Rollup プロトコル実装の実用性です。その中でも、ここでは、ZK ロールアップでデータの可用性を確保する方法の 1 つである状態差分リリースに焦点を当てます (Dencun アップグレードのロック解除: DA レイヤーのスケーリングの見えない真実、Jaehyun Ha、12Apr24 を参照)。
ロールアップでのデータの利用可能性を理解する簡単な方法は、アマチュア登山家がエベレストへの登山をデモンストレーションし、記録することを想像することです。最も簡単な方法は、ベースキャンプから山の頂上までのあらゆるステップをビデオに記録することです。ビデオ ファイルは大きくなる可能性がありますが、誰でも登山者の登頂を確認でき、その映像を再生できる可能性があります。この比喩は、データの可用性を確保するための元のトランザクション データ公開アプローチと比較できます。オプティミスティック ロールアップはこのアプローチに従い、シーケンサーの状態コミットメントは信頼できないため、個々の挑戦者が正しい実行を再生して検証します。 ZK ロールアップでは、Polygon zkEVM と Scroll がこのアプローチを使用して、生の L2 トランザクション データを圧縮形式で L1 に保存し、必要に応じて誰でも L2 トランザクションを再生してロールアップの状態を復元できるようにします。
アマチュア登山家の例に戻ると、別の検証方法は、有名な登山家がアマチュア登山家と一緒にエベレストに登り、実際に登頂が完了したことを世界に証明することかもしれません。信頼できる個人によって登山が検証されたため、登山者は記録のためにすべてのステップを記録する必要がなくなりました。登山口と山の頂上で写真を撮るだけで、他の人はその登山者が頂上に到達したと思い込んでしまいます。この比喩は、データの可用性を確保するために使用される状態差アプローチを反映しています。 ZK Rollups では、zkSync Era と StarkNet がこのアプローチを採用しており、L2 トランザクションが L1 で実行される前後の状態の差分のみを保存するため、誰でも初期状態からの状態差を計算して、必要に応じてロールアップの状態を復元できます。
図 6: 元のトランザクションのリリースとステータス差異のリリース 出典: Presto Research
この状態差分方式は、中間トランザクションを保存する手順を省略でき、L1 のストレージコストを削減できるため、元のトランザクションデータ公開方式よりもコスト効率が高いことは間違いありません。これは一般に問題ではありませんが、ここには潜在的な欠陥があります。このアプローチでは完全な L2 トランザクション履歴を回復することができず、一部の DApps では問題になる可能性があります。
DeFi レンディング プロトコルである Compound を例に挙げます。これは、状態の違いに基づいて ZK Rollup テクノロジー スタック上に構築されていると想定されています。これらのプロトコルでは、供給金利と貸出金利を毎秒計算するために完全な取引履歴が必要です。しかし、ZK ロールアップ シーケンサーが失敗し、他のロールアップ ノードが最新の状態を復元しようとした場合はどうなるでしょうか?状態を復元することは可能ですが、各中間トランザクションではなくバッチ間のスナップショットしか追跡できないため、レートは不正確に復元されます。
結論は
この記事は主に、今日のほとんどの ZK ロールアップには「ZK」が存在せず、DApps の多くの場所で ZKP および ZK プログラムを使用することが最良の選択ではない可能性があると主張します。 ZK テクノロジー自体には何も問題がないため、告発されても問題ないと感じるかもしれませんが、そのテクノロジーの進歩を利用する過程で、DApps の潜在的なパフォーマンス低下を引き起こす可能性があります。ただし、これは ZK テクノロジーがこの業界にとって役に立たないと言っているわけではありません。 ZKP と ZK ロールアップが最終的に成熟すると、ブロックチェーンのトリレンマに対するより良いソリューションが提供されることは間違いありません。実際、ZK プライバシーを維持する ZK ベースのプロジェクトがすでに存在しており、ZKP と ZK コンボリューションを効果的に利用する多くの種類の DApps も存在します。
全てのコメント