ZKロールアップ:部屋の中の象

深潮TechFlow
2024-05-16 15:39:32
コレクション
さまざまなタイプのDAppsにおいて、ZKロールアップは最適な開発スタックの選択肢ではないかもしれません。

原題:[ZKシリーズ - 1] ZKロールアップ:部屋の中の象》

著者:Jaehyun Ha

編纂:深潮TechFlow

概要

  • ゼロ知識証明(ZKP)は、よりプライベートでスケーラブルなブロックチェーンエコシステムを構築することが期待されていますが、ゼロ知識(ZK)に関する多くの側面は誤解されているか、一般的な理解とは異なります。

  • ZKPには主に2つの側面があります:「ゼロ知識」と「簡潔性」。この表現自体は間違っていませんが、ほとんどのZKロールアップは簡潔性の特性のみを利用しており、取引データやアカウント情報は完全にゼロ知識またはプライベートには保たれていません。

  • 様々なタイプのDAppsにとって、ZK ロールアップは最適な開発スタックの選択肢ではないかもしれません。例えば、ZKPの生成が迅速な確定のボトルネックとなり、Web3ゲームのパフォーマンスを低下させる可能性があります。また、状態差に基づくデータ可用性保証方法は、DeFi貸付プロトコルのサービスを損なう可能性があります。

図1:ZKは素晴らしい流行語です

ブロックチェーン業界の現在の状態は、ゼロ知識( ZK )時代に例えることができます。どこに行ってもZKが目立ち、ZKを名前に含まない次世代のブロックチェーンプロジェクトを見つけることはますます難しくなっています。技術的な観点から見ると、ZKはよりスケーラブルでプライベートなブロックチェーンエコシステムに貢献できる有望な技術であることは否定できません。しかし、ZKの複雑な技術的背景のため、多くの投資家は、個人投資家であれ機関投資家であれ、「かっこよく、新しいもので、ブロックチェーンの三難問題を解決できるかもしれない」という理由でZKプロジェクトに投資することが多く、ZK技術が各プロジェクトにどのように利益をもたらすかを完全に理解していません。

このZKシリーズでは、ZKロールアップの無視できない事実(欠点と弱点)とその有益な応用について探ります。まず、ブロックチェーンにおけるZK証明(ZKP)の2つのコア属性、「ゼロ知識」と「簡潔性」を解析します。次に、現在サービス中の多くのZKロールアップがなぜ「ゼロ知識」の側面を真に活用していないのかを議論します。次に、ZKロールアップを適用することが有害であり、実益がない分野を調査し、実装の複雑性などの周知の問題を避けます。最後に、ZK原則を効果的に具現化し、実際にZK技術の使用から明らかな利益を得ている優れたプロジェクトを強調します。

レビュー: ZK ロールアップにおける取引ライフサイクル

ロールアップは、チェーン外で取引束を実行し、最新のL2状態の要約データをL1に保存することでL1のスループット制限を解決するスケーリングソリューションです。その中で、ZKロールアップの際立った特徴は、チェーン上でオフチェーン計算の有効性証明を提出することで資金を迅速に引き出すことができる点です。ZKロールアップの問題を深く掘り下げる前に、その取引ライフサイクルを簡単に振り返りましょう。

図2:ZKロールアップにおける取引ライフサイクル

  1. 各L2ユーザーは取引を生成し、シーケンサーに提出します。

  2. シーケンサーは複数の取引を集約し、順序を付けてから、これらの取引をオフチェーンで実行して新しいロールアップ状態を計算します。その後、シーケンサーはこの新しいロールアップ状態を「バッチ」としてチェーン上の状態スマートコントラクトに提出し、データ可用性を確保するために対応するL2取引データをデータブロックに圧縮します。

  3. このバッチは証明者に送信され、証明者はそのバッチの実行の有効性証明(またはZKP)を作成します。次に、この有効性証明は追加データ(すなわち以前の状態ルート)と共にL1の検証者スマートコントラクトに送信され、検証者が検証している内容を特定するのに役立ちます。

  4. 検証者コントラクトが証明の有効性を確認した後、ロールアップの状態が更新され、提出されたバッチ内のL2取引は完了と見なされます。

(この説明はZKロールアッププロセスの簡略版であり、各実装はプロトコルによって異なる場合があります。役割を区別すると、L2には集約者、実行者、提案者などのより多くのエンティティが存在する可能性があります。データブロックの階層も異なる場合があり、ブロック、ブロックグループ、バッチなど、用途に応じて異なります。上記の説明は、集中型シーケンサーが取引を実行する強力な権限を持ち、統一されたデータブロック形式をバッチとして生成するという状況を仮定しています。)

Optimistic Rollupsとは異なり、ZKPs(例えばZK-SNARKsやZK-STARKs)のおかげで、ZKロールアップは数千の取引の実行の正しさをすべての取引を再生することなく、単純な証明を検証することで確認できます。それでは、このZKPとは何であり、どのような特性を持っているのでしょうか?

ZKPの2つの属性:ゼロ知識と簡潔性

言うまでもなく、ZKPは基本的に証明の一種です。証明は、提供者の主張を十分に支持できるものであれば何でも構いません。ボブ(提供者)がアリス(検証者)に自分のノートパソコンに対する権限を信じてもらいたいと仮定しましょう。これを証明する最も簡単な方法は、ボブがアリスにパスワードを教え、アリスがノートパソコンにそのパスワードを入力してボブが実際に権限を持っていることを確認することです。しかし、この検証プロセスはアリスとボブの両方にとって満足のいくものではありません。ボブが非常に長く複雑なパスワードを設定した場合、アリスが正しく入力するのは非常に難しいでしょう(アリスがコピー&ペーストできないと仮定します)。より現実的には、ボブは自分の権限を証明するためにアリスにパスワードを明かしたくないかもしれません。

もし、アリスがボブにパスワードを明かさせることなく、ボブのコンピュータの権限を迅速に検証できるプロセスがあったらどうでしょうか?例えば、ボブがアリスの前で指紋認証を使ってノートパソコンを解除することができます。これは図3に示されている通りです(これはZKPの完璧な例ではないことに注意してください)。これはアリスとボブの両方がZKPの2つの重要な属性、ゼロ知識属性と簡潔性属性から利益を得ることができる場所です。

図3:ゼロ知識と簡潔性の高次の直感

ゼロ知識( ZK

ゼロ知識属性は、提供者が生成する証明がその有効性を証明する以外に、秘密の証人(すなわちプライベートデータ)に関する情報を漏らさないことを指し、検証者はデータについて何も知らない状態を保ちます。ブロックチェーンにおいて、この属性は個々のユーザーのプライバシーを保護するために使用できます。各取引にZKPを適用すれば、ユーザーは取引の詳細(例えば、送金、アカウント残高の更新、スマートコントラクトのデプロイと実行)を公にさらすことなく、自らの行動の合法性(すなわち、ユーザーが取引を行うのに十分な資金を持っていることを証明する)を証明できます。

簡潔性

簡潔性属性は、ZKが大きなサイズの主張から短く迅速に検証できる証明を生成できることを指します。言い換えれば、大きなものをコンパクトな形式に圧縮します。ブロックチェーンにおいて、これは特にロールアップにおいて重要です。ZKPを使用することで、L2の検証者はL1の検証者に簡潔な証明を提出することで取引の正しい実行を主張できます(TBレベルの取引の有効性は10〜100 KBの証明で表現できます)。その後、検証者はすべての取引を再生するのではなく、簡潔な証明を検証することで、短時間(すなわち10ミリ秒から1秒)で実行の有効性を容易に確認できます。

ZKロールアップは素晴らしいが、プライバシーを意味するわけではない

上記のZKPの特性はZKロールアップでうまく活用されています。提供者から受け取ったZKPから検証者が元の取引データを推測することはできませんが、簡潔な証明を検証することで、提供者の主張(すなわち新しいL2状態)を効果的に検証できます。つまり、現在のZKロールアップが完全にゼロ知識と簡潔性の属性に従っていると主張するのは誤解を招くことです。これは提供者と検証者の相互作用に焦点を当てると正しいかもしれませんが、ZKロールアップにはシーケンサー、提供者、ロールアップノードなどの他の構成要素も存在します。それでは、「ゼロ知識」原則は彼らにも保証されているのでしょうか?

すべての ZK ロールアップにおいてZKPを用いて完全なプライバシーを実現することの課題は、他の部分が公開されている一方で、特定の部分がZKによってプライベートになる場合に生じる妥協から来ています。ZKロールアップの取引ライフサイクルを考えてみてください。取引がユーザーからシーケンサーに送信されるとき、プライバシーは維持されますか?提供者についてはどうでしょう?また、L2バッチがDA層に提出されるとき、個々のアカウント情報のプライバシーは保護されていますか?現在、これらの状況は成り立っていません。

図4:ZKロールアップにおけるプライバシーの漏洩

ほとんどの主流のZKロールアップでは、シーケンサーや提供者(または他の強力な権限を持つ集中化されたエンティティ)が取引の詳細を明確に見ることができます。例えば、任意のZKロールアップブロックエクスプローラーにアクセスすることで、すべての詳細を簡単に観察できます。さらに、集中型シーケンサーが何らかの理由でサービスを停止した場合、別のロールアップノードがロールアップの状態を復元しようとするとどうなるでしょうか?それはDA層(ほとんどの場合はL1 Ethereum)から公開されたL2データから情報を抽出し、L2状態を再構築します。このプロセスでは、DA層に保存されたL2取引を再生できるノードは、各ユーザーアカウントの状態に関する情報を復元できます。

したがって、「ゼロ知識」という用語は現在のZKロールアップにおいて断片的に実施されています。これは間違いとは見なされないかもしれませんが、明らかに、「ZKはゼロ知識と同義で完全なプライバシーを意味する」という一般的な認識とは異なります。現在のZKロールアップの新しさは、「ゼロ知識」ではなく「簡潔性」属性を利用することにあります。すなわち、オフチェーンで取引を実行し、検証者に簡潔な証明を生成して、彼らが迅速かつスケーラブルに実行の有効性を検証できるようにすることです。

この理由から、Starknetのような一部のZKロールアップは「有効性ロールアップ」と呼ばれ、混乱を避けるために、Aztecのような本当にZKプライバシーを確保するプロジェクトはZK-ZKロールアップとラベル付けしています。

ZK ロールアップの実用性を深く考察する

前述のように、ほとんどのZKロールアップは完全なZKプライバシーを実現していません。それでは、次の目標は何でしょうか?ロールアップの各部分にZKを全面的に展開して完全な取引プライバシーを実現することですか?実際、これは簡単な問題ではありません。技術のさらなる成熟には著しい技術的進歩が必要であるだけでなく、ZKはイデオロギー(例えば、プライベート取引の不正使用)や実用性(例えば、本当に役立つのか?)に関しても議論の余地があります。完全な取引プライバシーに関する倫理的な問題の議論は本稿の範囲を超えているため、ブロックチェーンプロジェクトにおけるZKロールアップの2つの実用性の問題に焦点を当てます。

第1点:ZKPの生成は迅速な確定のボトルネックになる可能性がある

まず、ZKロールアップ自体の実用性について議論しましょう。ZKロールアップの最も注目すべきセールスポイントは、取引の「迅速な確定」によって資産引き出しの遅延時間が短縮されることです。これはZKPのおかげです。向上したTPSと低取引手数料は追加の利点です。ZKロールアップの特性を最も効果的に活用できる分野はゲーム業界です。なぜなら、ゲーム内通貨の出入りが非常に頻繁で、毎秒大量のゲーム内取引が発生するからです。

しかし、ZKロールアップは本当にゲームの最適な技術スタックと見なされるのでしょうか?これについては、ZKロールアップにおける「迅速な確定」の概念をより深く考える必要があります。想像してみてください。ユーザーがZKロールアップ技術スタックで動作するWeb3ゲームを楽しんでいます。ユーザーはゲーム内アイテムをゲーム通貨に交換し、その資産をゲームから引き出そうとしています。

資産を引き出すためには、ゲーム内取引が確定される必要があります。これは、取引が新しいロールアップ状態の約束に含まれ、対応するZKPがL1に提出され、取引が不可逆であることを保証するためにL1 Ethereumでの証明の確定を待つ必要があることを意味します。これらのすべてのプロセスが瞬時に発生することができれば、ZKロールアップがしばしば誇張される「即時取引確認」を実現し、ユーザーが資産を即座に引き出すことを可能にします。

しかし、現実はそうではありません。L2beatが提供する異なるZKロールアップの確定時間の統計データによると、zkSync Eraは約2時間、Lineaは3時間、Starknetは平均約8時間かかります。これは、ZKPを生成するのに時間がかかり、取引を1つのバッチ(すなわち単一の証明)に含めて取引手数料を削減するためにも追加の時間が必要だからです。言い換えれば、証明の生成と提出の速度がZKロールアップの迅速な確定を実現する潜在的なボトルネックであり、Web3ゲームにおけるユーザー体験を低下させる可能性があります。

図5:ZKP生成はZKロールアップの迅速な確定の潜在的なボトルネックかもしれません

一方、Roninのようなゲーム向けに最適化されたチェーン(PixelsやAxie InfinityなどのWeb3ゲームをサポート)は、超高速の確定を保証しつつ、分散化と安全性を犠牲にしています。RoninはZKやロールアップに基づくチェーンではありません:それはPoA(権威証明)+ DPoS(委任証明)コンセンサスアルゴリズムの下で動作するEVMブロックチェーンです。委任された株式の数に基づいて22人の検証者を選択し、これらの検証者がPoA方式(すなわち22人の検証者間の投票プロセス)でブロックを生成および検証します。したがって、Roninでは取引が迅速に確定され、ほとんど遅延なくブロックに含まれ、検証時間も非常に短くなります。Shillinハードフォーク後、平均して各取引は6秒で確定されます。RoninはこれをすべてZKPなしで実現しました。

もちろん、Roninにも欠点があります。集中型の検証者によって管理されるため、51%攻撃の脅威に対して相対的に容易にさらされます。また、Ethereumを決済層として使用しないため、Ethereumの安全性を引き継ぐことができません。クロスチェーンブリッジを使用することにも安全リスクがあります。しかし、ユーザーの観点から見ると、彼らはこれを気にするでしょうか?現在、分散化されていないZKロールアップにも単一障害点(SPOF)の問題があります。Ethereumはそれらに保証を提供しますが、取引のロールバックの可能性を減少させますが、集中型のシーケンサーや検証者が故障した場合、ZKロールアップも凍結します。再度注意してください、ZKロールアップの「ZK」は、実行の正しさを検証するための有効性のためにのみ使用されています。もし他のプロジェクトが同じ機能を提供し、より速く安価であれば、ZKロールアップはWeb3ゲームのユーザーや開発者にとって最適な技術スタックとは見なされなくなるかもしれません。

第2点:状態差の公開は両刃の剣

もう1つの点は、ZKロールアッププロトコルの実装の実用性です。ここでは、ZKロールアップにおけるデータ可用性を確保する方法の1つである状態差の公開に焦点を当てます(参照:Dencunアップグレードの解除:DA層のスケーリングの見えない真実、Jaehyun Ha, 12Apr24)。

ロールアップにおけるデータ可用性を理解する簡単な方法は、アマチュア登山者がエベレスト登頂の過程を証明し記録することを想像することです。最も簡単な方法は、ベースキャンプから山頂までの各ステップをビデオで録画することです。ビデオファイルは非常に大きくなるかもしれませんが、誰でも登山者の登頂過程を検証し、ビデオを再生することができます。この比喩は、データ可用性を確保するための原始取引データ公開方法に類似しています。Optimistic Rollupsはこの方法に従い、個々の挑戦者が正しい実行を再生し検証できるようにします。なぜなら、シーケンサーの状態の約束を信頼できないからです。ZKロールアップでは、Polygon zkEVMやScrollがこの方法を採用し、L1に圧縮形式で原始L2取引データを保存し、必要に応じて誰でもL2取引を再生してロールアップの状態を復元できるようにします。

アマチュア登山者の例に戻ると、別の検証方法は、有名な登山者がアマチュア登山者と一緒にエベレストを登ることで、登山が実際に完了したことを世界に証明することです。信頼できる個人によって登山が確認されたため、登山者は記録のために各ステップを記録する必要がなくなります。出発点と山頂で写真を撮るだけで、他の人は登山者が山頂に到達したと考えるでしょう。この比喩は、データ可用性を確保するために使用される状態差方法を反映しています。ZKロールアップでは、zkSync EraやStarkNetがこの方法を採用し、L1上にL2取引の実行前後の状態差のみを保存し、必要に応じて誰でも初期状態から状態差を計算してロールアップの状態を復元できるようにします。

図6:原始取引公開と状態差公開

この状態差方法は、原始取引データ公開方法に比べてコスト面で有利であることは間違いありません。なぜなら、中間取引を保存するステップを省くことでL1のストレージコストを削減できるからです。通常、これは問題ではありませんが、ここには潜在的な欠陥があります:この方法では完全なL2取引履歴を復元することができず、これは特定のDAppsにとって問題になる可能性があります。

例えば、CompoundというDeFi貸付プロトコルを考えてみましょう。仮にそれが状態差に基づくZKロールアップ技術スタックの上に構築されているとします。これらのプロトコルは、供給と借入金利を毎秒計算するために完全な取引履歴を必要とします。しかし、もしZKロールアップのシーケンサーが故障した場合、他のロールアップノードが最新の状態を復元しようとするとどうなるでしょうか?それは状態を復元するかもしれませんが、金利は不正確に復元されます。なぜなら、それはバッチ間のスナップショットしか追跡できず、各中間取引を追跡できないからです。

結論

本稿は主に主張します、今日のほとんどの ZK ロールアップには「ZK」が存在せず、DAppの多くの場所でZKPやZKプログラムを使用することは最適な選択肢ではないかもしれません。ZK技術は非難されるかもしれませんが、それ自体には問題はなく、その技術の進歩を利用する過程で、DAppsの潜在的なパフォーマンス低下をもたらす可能性があります。しかし、これはZK技術がこの業界にとって無用であることを意味するわけではありません。ZKPとZKロールアップが最終的に技術的に成熟すれば、ブロックチェーンの三難問題を解決するためのより良いソリューションを提供できることは確かです。実際、現在すでにZKプライバシーを維持しているZKベースのプロジェクトがあり、ZKPやZKロールアップの利点を効果的に活用している多くのタイプのDAppsも存在します。

ChainCatcherは、広大な読者の皆様に対し、ブロックチェーンを理性的に見るよう呼びかけ、リスク意識を向上させ、各種仮想トークンの発行や投機に注意することを提唱します。当サイト内の全てのコンテンツは市場情報や関係者の見解であり、何らかの投資助言として扱われるものではありません。万が一不適切な内容が含まれていた場合は「通報」することができます。私たちは迅速に対処いたします。
チェーンキャッチャー イノベーターとともにWeb3の世界を構築する