原題「[ZK series - 1] ZK Rollups: Elephant In the Room」を転送します。
図1:ZKは良いバズワードである
(出典:imgflip)
ブロックチェーン業界の現状は、ゼロ知識(ZK)の時代に例えることができます。どこを見てもZKが目立ちます...ZKを社名に含まない次世代ブロックチェーンプロジェクトは、ますます稀になってきています。技術的な観点からは、ZKがよりスケーラブルでプライベートなブロックチェーンエコシステムに貢献できる有望な技術であることは否定できません。しかし、ZKの複雑な技術的背景により、多くの投資家は、個人投資家と機関投資家の両方が、ZK技術が各プロジェクトにどのような利益をもたらすかを完全に理解することなく、クールで新しく、ブロックチェーンのトリレンマを解決できるかもしれないという「信念」に基づいてZKプロジェクトに投資していることに気付くことがよくあります。
このZKシリーズでは、ZKロールアップの不都合な真実(欠点と欠点)と有益なアプリケーションの両方を探ります。まず、ブロックチェーンのZKプルーフ(ZKP)の2つの中核的な特性である「ゼロ知識」と「簡潔さ」を解き明かします。次に、現在使用されている多数のZKロールアップが、実際には「ゼロ知識」の側面を利用していない方法について説明します。次に、ZK ロールアップの適用が有益ではなく有害である領域を検討し、実装の複雑さなどのよく知られた問題を回避します。最後に、ZKの原則を効果的に具現化し、ZK技術の使用から実際に具体的な利益を実証する模範的なプロジェクトに焦点を当てます。
ロールアップは、トランザクションのバンドルをオフチェーンで実行し、最新の L2 状態の要約データを L1 に保存することで、L1 のスループットの制約に対処するスケーリング ソリューションです。その中でも、ZKロールアップは、オフチェーン計算の有効性証明をオンチェーンで提出することで、迅速に資金を引き出すことができるという点で際立っています。ZKロールアップの問題を掘り下げる前に、そのトランザクションライフサイクルを簡単におさらいしましょう。
図2:ZKロールアップのトランザクションライフサイクル
(出典:Presto Reserach)
(この説明は、完全な ZK ロールアップ プロセスの簡略化されたバージョンであり、各実装はプロトコルによって異なる可能性があることに注意してください。役割を分離すると、L2 にはより多くのエンティティが存在する可能性があります。アグリゲーター、エグゼキューター、プロポーザーなど。データチャンクの階層は、ブロック、チャンク、バッチなど、用途に応じて異なる場合もあります。上記の説明は、集中型シーケンサがトランザクションを実行し、バッチとして統一されたデータチャンク形式を生成する強力な権限を持っている状況を想定しています。
オプティミスティックロールアップとは異なり、ZKP(ZK-SNARKやZK-STARKなど)のおかげで、ZKロールアップは、すべてのトランザクションを再生することなく、簡単な証明を検証するだけで、何千ものトランザクションの実行の正確性を検証できます。では、このZKPとは何で、どのような特徴があるのでしょうか。
その名前が示すように、ZKPは基本的に証明です。証明は、証明者の主張を十分に裏付けることができるものなら何でもかまいません。ボブ(証明者)がアリス(検証者)に自分のラップトップコンピュータの権威について納得させたいとしましょう。これを証明する最も簡単な方法は、Bob が Alice にパスワードを伝え、Alice がラップトップでパスワードを入力して、Bob が権限を持っていることを確認することです。ただし、この検証プロセスは、Alice と Bob の両方にとって満足のいくものではありません。Bob が非常に長くて複雑なパスワードを設定した場合、Alice がそれを正しく入力するのは非常に困難です (Alice がコピーして貼り付けできないと仮定します)。より現実的には、ボブは自分の権限を証明するために、自分のパスワードをアリスに開示することを躊躇するかもしれません。
アリスがボブのパスワードを明かさずにコンピュータの権限を迅速に確認できる検証プロセスがあるとしたらどうでしょうか。たとえば、Bob は指をタップするだけで、Alice の目の前で Touch ID を使用してラップトップのロックを解除できます (これは ZKP の完璧な例ではないことに注意してください)。これは、アリスとボブの両方が、ZKPの2つの主要な特性であるゼロ知識特性と簡潔さ特性の恩恵を受けることができる場所です。
図3:ゼロ知識と簡潔さの高度な直感
(出典:imgflip)
「ゼロ知識」という特性とは、証明者が生成した証明が秘密の証人について何も明らかにせず(つまり、プライベートデータ)、検証者が証明の有効性以外のデータについて何も知らない場合を指します。ブロックチェーンでは、このプロパティを利用して、個々のユーザーのプライバシーを保護することができます。取引ごとにZKPが適用されると、ユーザーは取引の詳細(送金、口座残高の更新、スマートコントラクトの展開、スマートコントラクトの実行など)を一般に公開することなく、自分の行動の正当性を証明することができます(つまり、ユーザーが取引を行うのに十分な資金を持っていることを証明する)。
もう1つの特性である「簡潔さ」とは、大きなサイズのクレームから短くて迅速に検証できる証拠を生成するZKの能力を指します。言い換えれば、それは大きなものをコンパクトなものに統合することです。ブロックチェーンでは、これは特にロールアップで利用されます。ZKPでは、L2の証明者は、L1の検証者に簡潔な証明を提出することで、取引の正しい実行を主張することができます(TBのトランザクションの有効性は、10~100KBの証明で表すことができます)。検証者は、すべてのトランザクションを再生するのではなく、簡潔な証明を検証することで、短時間(つまり、10ms~1秒)で実行の有効性を簡単に確認できます。
前述のZKP特性は、ZKロールアップで十分に活用されています。検証者は、証明者から受け取ったZKPから元のトランザクションデータを推測することはできませんが、簡潔な証明を検証することで、証明者の主張(つまり、新しいL2状態)を効率的に検証することができます。とはいえ、現在のイテレーションのZKロールアップがゼロ知識と簡潔さの特性に完全に準拠しているという主張は誤解を招く恐れがあります。これは、証明者と検証者の間の相互作用のみに焦点を当てる場合に当てはまる可能性がありますが、ZKロールアップには、シーケンサー、証明者、ロールアップノードなど、他のコンポーネントも存在します。「ゼロ知識」の原則は、彼らにも保証されているのでしょうか?
ZKロールアップでZKPとの完全なプライバシーを実現する際の課題は、他の部分が公開され、一部がZKによって非公開にされた場合の潜在的な侵害から生じます。ZKロールアップのトランザクションライフサイクルについて考えてみてください — トランザクションがユーザーからシーケンサーに送信されるときにプライバシーが維持されますか?証明者はどうですか?それとも、L2バッチがDAレイヤーに送信されるときに、個々のアカウント情報のプライバシーが保持されますか?現在、どのシナリオも当てはまりません。
図4:ZKロールアップにおけるプライバシー漏洩
(出典:Presto Research)
主流のZKロールアップのほとんどでは、シーケンサーまたはプローバー(または強力な権限を持つ他の中央集権的なエンティティ)は、送金金額、口座残高の更新、契約の展開、契約の実行など、トランザクションの詳細を明確に可視化できます。簡単な例として、ZKロールアップ ブロックエクスプローラーのいずれかにアクセスすることで、言及されたすべての詳細を簡単に観察できます。それだけでなく、集中型シーケンサーが何らかの理由でサービスを停止し、別のロールアップ ノードがロールアップ状態を復元しようとする状況を考えてみましょう。DA層(ほとんどの場合、L1イーサリアム)から公開されているL2データをすくい上げ、L2の状態を再構築します。このプロセスでは、DAレイヤーに保存されているL2トランザクションを再生できるノードは、各ユーザーのアカウントステータスに関する情報を回復できます。
したがって、「ゼロ知識」という用語は、現在のZKロールアップでは断片化された形で実装されています。これは間違っているとは言えませんが、「ZKはゼロ知識を意味し、完全なプライバシーに等しい」という一般的に認識されている概念とは異なることは明らかです。現在のZKロールアップの目新しさは、トランザクションをオフチェーンで実行する「ゼロ知識」ではなく、「簡潔さ」の特性を活用し、検証者が再実行することなく、実行の有効性を迅速かつスケーラブルに検証するための簡潔な証明を生成することです。
このため、Starknetなどの一部のZKロールアップは、混乱を避けるために自らを「有効性ロールアップ」と呼んでいますが、Aztecのように真のZKプライバシーを保証する他のZKロールアップは、ZK-ZKロールアップとしてラベル付けされています。
前述のように、ZKプライバシーはほとんどのZKロールアップで完全には実装されていません。では、次の目標は何でしょうか?ロールアップのあらゆる部分にZKを完全に展開することで、完全なトランザクションプライバシーを実現しますか?実際、これは単純な問題ではありません。ZKには、技術をさらに成熟させるためには、大幅な技術的進歩が必要であることに加えて、イデオロギー(例えば、私的取引の違法な使用)と実用性(例えば、それが実際に有用であるか)の点で、論争の余地が残っています。完全なトランザクションプライバシーの道徳性を議論することはこの記事の範囲を超えているので、ブロックチェーンプロジェクトが遭遇するZKロールアップの2つの実用性ポイントに注意を向けましょう。
まず、ZKロールアップ自体の実用性について説明しましょう。ZKロールアップの最も魅力的なセールスポイントは、ZKPのおかげで取引の「迅速なファイナリティ」による資産の引き出しの遅延が短いことです。ZKロールアップの特徴を最も効果的に活用している分野は、ゲーム内通貨の入出金が非常に頻繁に発生し、毎秒大量のゲーム内トランザクションが発生しているため、ゲームです。
しかし、ZKロールアップは本当にゲームに最適なスタックと見なすことができるのでしょうか?このためには、ZKロールアップの「高速ファイナリティ」の概念についてもう少し考える必要があります。あるユーザーがZKロールアップベースのスタック上で動作するWeb3ゲームを楽しんでいる状況を想像してみてください。ユーザーは、ゲーム内アイテムをゲーム内通貨に交換し、その資産をゲームから引き出そうとします。
資産を引き出すには、ゲーム内取引を完了する必要があります。つまり、トランザクションは新しいロールアップ状態のコミットメントに含まれなければならず、対応するZKPはL1に提出されなければならず、トランザクションが元に戻らないことを保証できるように、L1イーサリアムで証明が確定するのを待つ必要があります。これらのプロセスがすべて即座に行われるようになれば、ZKロールアップがよく宣伝される「即時取引確認」を実現し、ユーザーが資産をすぐに引き出すことができます。
しかし、現実はそれとはかけ離れています。 L2beatが提供するさまざまなZKロールアップのファイナリティ時間に関する統計によると、zkSync Eraは約2時間、Lineaは3時間、Starknetは平均約8時間かかります。これは、プルーバーからZKPを生成するのに時間がかかり、取引手数料のコストを削減するために、より多くのトランザクションを1つのバッチ(つまり、シングルプルーフ)に含めるために追加の時間がかかるためです。言い換えれば、プルーフの生成と送信のスピードは、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では、トランザクションがブロックに含まれるまでの遅延がほとんどなく、検証にほとんど時間がかからないため、トランザクションは迅速に完了します。シリンのハードフォーク後、各トランザクションを完了するのに平均 6秒しか かかりません。RoninはZKPなしでこれらすべてを達成します。
もちろん、浪人には欠点もあります。中央集権的なバリデーターによって管理されているため、51%の攻撃に対して比較的脆弱です。さらに、イーサリアムを決済レイヤーとして利用していないため、イーサリアムのセキュリティを継承することはできません。クロスチェーンブリッジの使用に関連するセキュリティリスクも存在します。しかし、ユーザーの視点に立って考えてみてください。分散型シーケンシングを使用しない現在のZKロールアップも、単一障害点(SPOF)の問題に悩まされています。イーサリアムは、トランザクションが元に戻る可能性を減らすため、それらに保証を提供しますが、中央集権的なシーケンサーまたはプローバーがダウンすると、ZKロールアップもフリーズします。ZK ロールアップの "ZK" は、実行の正確性の有効性を検証するためにのみ使用されることに注意してください。ZKロールアップと同じ機能を提供するが、より高速で安価な別のプロジェクトがある場合、ZKロールアップはWeb3ゲームのユーザーや開発者にとって最優先スタックとは見なされなくなる可能性があります。
もう一つのポイントは、ZKロールアップのプロトコル実装の実用性です。その中で、ここでは、ZKロールアップでデータの可用性を確保する方法の1つである状態差分パブリッシングに焦点を当てます( Unlocking Dencun Upgrade: Unseen Truth of Scaling DA Layers, Jaehyun Ha, 12Apr24を参照)。
ロールアップでデータの可用性を理解する簡単な方法は、アマチュア登山家がエベレスト登山を認定して記録していると考えることです。最も簡単な方法は、ベースキャンプから山頂までの登山のすべてのステップをビデオに記録することです。ビデオファイルは大きいかもしれませんが、誰でも登山者のエベレスト登頂を確認し、おそらく映像を再生することができます。このアナロジーは、データの可用性を確保するための生のトランザクションデータの公開方法に例えることができます。オプティミスティック ロールアップは、シーケンサーの状態コミットメントについて信頼するものがないため、個々のチャレンジャーを再生して正しい実行を検証するために、このアプローチに従います。ZKロールアップの中で、Polygon zkEVMとScrollはこのアプローチを採用しており、生のL2トランザクションデータを圧縮形式でL1に保存し、必要に応じて誰でもL2トランザクションを再生してロールアップの状態を復元できるようにします。
アマチュア登山家の例に戻ると、著名な登山家がアマチュア登山家と一緒にエベレストに登頂し、登山が完了したことを世界に確認するという別の検証方法があるかもしれません。登山は信頼できる個人によって認定されているため、登山者は文書化のためにすべてのステップを記録する必要がなくなりました。スタート地点で写真を撮り、山頂で写真を撮るだけで十分で、他の人は登山者が山頂に到達したと見なすだけです。このアナロジーは、データの可用性を確保するために使用される状態差分メソッドを反映しています。ZK ロールアップでは、zkSync Era と StarkNet がこのアプローチを採用しており、L2 トランザクションが L1 で実行される前後の状態差分のみを格納し、必要に応じて誰でもジェネシスからの状態差を計算してロールアップの状態を復元できるようにします。
図 6: 生トランザクションの公開と状態差分の公開
(出典:Presto Research)
この状態差分のアプローチは、中間トランザクションの保存をスキップして L1 のストレージ コストを削減できるため、生のトランザクション データの公開アプローチと比較して、コストの点で間違いなく有益です。しかし、一般的には問題ではありませんが、このアプローチではL2トランザクション履歴全体を復元できないという根本的な欠点があり、一部のDAppsでは問題となる可能性があります。
DeFiレンディングプロトコルであるCompoundを例にとり、state-diffアプローチベースのZKロールアップスタックの上に構築されていると仮定しましょう。これらのプロトコルは、毎秒供給金利と借入金利を計算するために、完全な取引履歴を必要とします。しかし、何らかの理由で ZK ロールアップ シーケンサーがダウンし、他のロールアップ ノードが最新の状態を復元しようとするとどうなるでしょうか。状態は復元されますが、すべての中間トランザクションではなく、バッチ間のスナップショットのみを追跡できるため、金利は不正確に復元されます。
本稿では主に、今日のZKロールアップのほとんどに「ZK」はなく、DAppsにはZKPとZKロールアップを利用することが最適な選択ではないかもしれない領域がたくさんあると主張しています。ZKテクノロジーは、非難されることに無邪気さを感じるかもしれません。なぜなら、それ自体に本質的には何の問題もないからです - ただ、その技術的進歩を活用する過程で、DAppsのパフォーマンス低下をもたらす可能性があるからです。しかし、ZKの技術がこの業界に役に立たないと言っているわけではありません。ZKPとZKロールアップが最終的に技術的に成熟すれば、ブロックチェーンのトリレンマを解決するためのさらに優れたソリューションを提供できることは間違いありません。実際、ZKのプライバシーを維持するZKベースのプロジェクトや、ZKPやZKロールアップの利点を効果的に活用する多くの種類のDAppsが存在します。これについては、次の記事で詳しく説明しますので、ご期待ください。
株式
内容
原題「[ZK series - 1] ZK Rollups: Elephant In the Room」を転送します。
図1:ZKは良いバズワードである
(出典:imgflip)
ブロックチェーン業界の現状は、ゼロ知識(ZK)の時代に例えることができます。どこを見てもZKが目立ちます...ZKを社名に含まない次世代ブロックチェーンプロジェクトは、ますます稀になってきています。技術的な観点からは、ZKがよりスケーラブルでプライベートなブロックチェーンエコシステムに貢献できる有望な技術であることは否定できません。しかし、ZKの複雑な技術的背景により、多くの投資家は、個人投資家と機関投資家の両方が、ZK技術が各プロジェクトにどのような利益をもたらすかを完全に理解することなく、クールで新しく、ブロックチェーンのトリレンマを解決できるかもしれないという「信念」に基づいてZKプロジェクトに投資していることに気付くことがよくあります。
このZKシリーズでは、ZKロールアップの不都合な真実(欠点と欠点)と有益なアプリケーションの両方を探ります。まず、ブロックチェーンのZKプルーフ(ZKP)の2つの中核的な特性である「ゼロ知識」と「簡潔さ」を解き明かします。次に、現在使用されている多数のZKロールアップが、実際には「ゼロ知識」の側面を利用していない方法について説明します。次に、ZK ロールアップの適用が有益ではなく有害である領域を検討し、実装の複雑さなどのよく知られた問題を回避します。最後に、ZKの原則を効果的に具現化し、ZK技術の使用から実際に具体的な利益を実証する模範的なプロジェクトに焦点を当てます。
ロールアップは、トランザクションのバンドルをオフチェーンで実行し、最新の L2 状態の要約データを L1 に保存することで、L1 のスループットの制約に対処するスケーリング ソリューションです。その中でも、ZKロールアップは、オフチェーン計算の有効性証明をオンチェーンで提出することで、迅速に資金を引き出すことができるという点で際立っています。ZKロールアップの問題を掘り下げる前に、そのトランザクションライフサイクルを簡単におさらいしましょう。
図2:ZKロールアップのトランザクションライフサイクル
(出典:Presto Reserach)
(この説明は、完全な ZK ロールアップ プロセスの簡略化されたバージョンであり、各実装はプロトコルによって異なる可能性があることに注意してください。役割を分離すると、L2 にはより多くのエンティティが存在する可能性があります。アグリゲーター、エグゼキューター、プロポーザーなど。データチャンクの階層は、ブロック、チャンク、バッチなど、用途に応じて異なる場合もあります。上記の説明は、集中型シーケンサがトランザクションを実行し、バッチとして統一されたデータチャンク形式を生成する強力な権限を持っている状況を想定しています。
オプティミスティックロールアップとは異なり、ZKP(ZK-SNARKやZK-STARKなど)のおかげで、ZKロールアップは、すべてのトランザクションを再生することなく、簡単な証明を検証するだけで、何千ものトランザクションの実行の正確性を検証できます。では、このZKPとは何で、どのような特徴があるのでしょうか。
その名前が示すように、ZKPは基本的に証明です。証明は、証明者の主張を十分に裏付けることができるものなら何でもかまいません。ボブ(証明者)がアリス(検証者)に自分のラップトップコンピュータの権威について納得させたいとしましょう。これを証明する最も簡単な方法は、Bob が Alice にパスワードを伝え、Alice がラップトップでパスワードを入力して、Bob が権限を持っていることを確認することです。ただし、この検証プロセスは、Alice と Bob の両方にとって満足のいくものではありません。Bob が非常に長くて複雑なパスワードを設定した場合、Alice がそれを正しく入力するのは非常に困難です (Alice がコピーして貼り付けできないと仮定します)。より現実的には、ボブは自分の権限を証明するために、自分のパスワードをアリスに開示することを躊躇するかもしれません。
アリスがボブのパスワードを明かさずにコンピュータの権限を迅速に確認できる検証プロセスがあるとしたらどうでしょうか。たとえば、Bob は指をタップするだけで、Alice の目の前で Touch ID を使用してラップトップのロックを解除できます (これは ZKP の完璧な例ではないことに注意してください)。これは、アリスとボブの両方が、ZKPの2つの主要な特性であるゼロ知識特性と簡潔さ特性の恩恵を受けることができる場所です。
図3:ゼロ知識と簡潔さの高度な直感
(出典:imgflip)
「ゼロ知識」という特性とは、証明者が生成した証明が秘密の証人について何も明らかにせず(つまり、プライベートデータ)、検証者が証明の有効性以外のデータについて何も知らない場合を指します。ブロックチェーンでは、このプロパティを利用して、個々のユーザーのプライバシーを保護することができます。取引ごとにZKPが適用されると、ユーザーは取引の詳細(送金、口座残高の更新、スマートコントラクトの展開、スマートコントラクトの実行など)を一般に公開することなく、自分の行動の正当性を証明することができます(つまり、ユーザーが取引を行うのに十分な資金を持っていることを証明する)。
もう1つの特性である「簡潔さ」とは、大きなサイズのクレームから短くて迅速に検証できる証拠を生成するZKの能力を指します。言い換えれば、それは大きなものをコンパクトなものに統合することです。ブロックチェーンでは、これは特にロールアップで利用されます。ZKPでは、L2の証明者は、L1の検証者に簡潔な証明を提出することで、取引の正しい実行を主張することができます(TBのトランザクションの有効性は、10~100KBの証明で表すことができます)。検証者は、すべてのトランザクションを再生するのではなく、簡潔な証明を検証することで、短時間(つまり、10ms~1秒)で実行の有効性を簡単に確認できます。
前述のZKP特性は、ZKロールアップで十分に活用されています。検証者は、証明者から受け取ったZKPから元のトランザクションデータを推測することはできませんが、簡潔な証明を検証することで、証明者の主張(つまり、新しいL2状態)を効率的に検証することができます。とはいえ、現在のイテレーションのZKロールアップがゼロ知識と簡潔さの特性に完全に準拠しているという主張は誤解を招く恐れがあります。これは、証明者と検証者の間の相互作用のみに焦点を当てる場合に当てはまる可能性がありますが、ZKロールアップには、シーケンサー、証明者、ロールアップノードなど、他のコンポーネントも存在します。「ゼロ知識」の原則は、彼らにも保証されているのでしょうか?
ZKロールアップでZKPとの完全なプライバシーを実現する際の課題は、他の部分が公開され、一部がZKによって非公開にされた場合の潜在的な侵害から生じます。ZKロールアップのトランザクションライフサイクルについて考えてみてください — トランザクションがユーザーからシーケンサーに送信されるときにプライバシーが維持されますか?証明者はどうですか?それとも、L2バッチがDAレイヤーに送信されるときに、個々のアカウント情報のプライバシーが保持されますか?現在、どのシナリオも当てはまりません。
図4:ZKロールアップにおけるプライバシー漏洩
(出典:Presto Research)
主流のZKロールアップのほとんどでは、シーケンサーまたはプローバー(または強力な権限を持つ他の中央集権的なエンティティ)は、送金金額、口座残高の更新、契約の展開、契約の実行など、トランザクションの詳細を明確に可視化できます。簡単な例として、ZKロールアップ ブロックエクスプローラーのいずれかにアクセスすることで、言及されたすべての詳細を簡単に観察できます。それだけでなく、集中型シーケンサーが何らかの理由でサービスを停止し、別のロールアップ ノードがロールアップ状態を復元しようとする状況を考えてみましょう。DA層(ほとんどの場合、L1イーサリアム)から公開されているL2データをすくい上げ、L2の状態を再構築します。このプロセスでは、DAレイヤーに保存されているL2トランザクションを再生できるノードは、各ユーザーのアカウントステータスに関する情報を回復できます。
したがって、「ゼロ知識」という用語は、現在のZKロールアップでは断片化された形で実装されています。これは間違っているとは言えませんが、「ZKはゼロ知識を意味し、完全なプライバシーに等しい」という一般的に認識されている概念とは異なることは明らかです。現在のZKロールアップの目新しさは、トランザクションをオフチェーンで実行する「ゼロ知識」ではなく、「簡潔さ」の特性を活用し、検証者が再実行することなく、実行の有効性を迅速かつスケーラブルに検証するための簡潔な証明を生成することです。
このため、Starknetなどの一部のZKロールアップは、混乱を避けるために自らを「有効性ロールアップ」と呼んでいますが、Aztecのように真のZKプライバシーを保証する他のZKロールアップは、ZK-ZKロールアップとしてラベル付けされています。
前述のように、ZKプライバシーはほとんどのZKロールアップで完全には実装されていません。では、次の目標は何でしょうか?ロールアップのあらゆる部分にZKを完全に展開することで、完全なトランザクションプライバシーを実現しますか?実際、これは単純な問題ではありません。ZKには、技術をさらに成熟させるためには、大幅な技術的進歩が必要であることに加えて、イデオロギー(例えば、私的取引の違法な使用)と実用性(例えば、それが実際に有用であるか)の点で、論争の余地が残っています。完全なトランザクションプライバシーの道徳性を議論することはこの記事の範囲を超えているので、ブロックチェーンプロジェクトが遭遇するZKロールアップの2つの実用性ポイントに注意を向けましょう。
まず、ZKロールアップ自体の実用性について説明しましょう。ZKロールアップの最も魅力的なセールスポイントは、ZKPのおかげで取引の「迅速なファイナリティ」による資産の引き出しの遅延が短いことです。ZKロールアップの特徴を最も効果的に活用している分野は、ゲーム内通貨の入出金が非常に頻繁に発生し、毎秒大量のゲーム内トランザクションが発生しているため、ゲームです。
しかし、ZKロールアップは本当にゲームに最適なスタックと見なすことができるのでしょうか?このためには、ZKロールアップの「高速ファイナリティ」の概念についてもう少し考える必要があります。あるユーザーがZKロールアップベースのスタック上で動作するWeb3ゲームを楽しんでいる状況を想像してみてください。ユーザーは、ゲーム内アイテムをゲーム内通貨に交換し、その資産をゲームから引き出そうとします。
資産を引き出すには、ゲーム内取引を完了する必要があります。つまり、トランザクションは新しいロールアップ状態のコミットメントに含まれなければならず、対応するZKPはL1に提出されなければならず、トランザクションが元に戻らないことを保証できるように、L1イーサリアムで証明が確定するのを待つ必要があります。これらのプロセスがすべて即座に行われるようになれば、ZKロールアップがよく宣伝される「即時取引確認」を実現し、ユーザーが資産をすぐに引き出すことができます。
しかし、現実はそれとはかけ離れています。 L2beatが提供するさまざまなZKロールアップのファイナリティ時間に関する統計によると、zkSync Eraは約2時間、Lineaは3時間、Starknetは平均約8時間かかります。これは、プルーバーからZKPを生成するのに時間がかかり、取引手数料のコストを削減するために、より多くのトランザクションを1つのバッチ(つまり、シングルプルーフ)に含めるために追加の時間がかかるためです。言い換えれば、プルーフの生成と送信のスピードは、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では、トランザクションがブロックに含まれるまでの遅延がほとんどなく、検証にほとんど時間がかからないため、トランザクションは迅速に完了します。シリンのハードフォーク後、各トランザクションを完了するのに平均 6秒しか かかりません。RoninはZKPなしでこれらすべてを達成します。
もちろん、浪人には欠点もあります。中央集権的なバリデーターによって管理されているため、51%の攻撃に対して比較的脆弱です。さらに、イーサリアムを決済レイヤーとして利用していないため、イーサリアムのセキュリティを継承することはできません。クロスチェーンブリッジの使用に関連するセキュリティリスクも存在します。しかし、ユーザーの視点に立って考えてみてください。分散型シーケンシングを使用しない現在のZKロールアップも、単一障害点(SPOF)の問題に悩まされています。イーサリアムは、トランザクションが元に戻る可能性を減らすため、それらに保証を提供しますが、中央集権的なシーケンサーまたはプローバーがダウンすると、ZKロールアップもフリーズします。ZK ロールアップの "ZK" は、実行の正確性の有効性を検証するためにのみ使用されることに注意してください。ZKロールアップと同じ機能を提供するが、より高速で安価な別のプロジェクトがある場合、ZKロールアップはWeb3ゲームのユーザーや開発者にとって最優先スタックとは見なされなくなる可能性があります。
もう一つのポイントは、ZKロールアップのプロトコル実装の実用性です。その中で、ここでは、ZKロールアップでデータの可用性を確保する方法の1つである状態差分パブリッシングに焦点を当てます( Unlocking Dencun Upgrade: Unseen Truth of Scaling DA Layers, Jaehyun Ha, 12Apr24を参照)。
ロールアップでデータの可用性を理解する簡単な方法は、アマチュア登山家がエベレスト登山を認定して記録していると考えることです。最も簡単な方法は、ベースキャンプから山頂までの登山のすべてのステップをビデオに記録することです。ビデオファイルは大きいかもしれませんが、誰でも登山者のエベレスト登頂を確認し、おそらく映像を再生することができます。このアナロジーは、データの可用性を確保するための生のトランザクションデータの公開方法に例えることができます。オプティミスティック ロールアップは、シーケンサーの状態コミットメントについて信頼するものがないため、個々のチャレンジャーを再生して正しい実行を検証するために、このアプローチに従います。ZKロールアップの中で、Polygon zkEVMとScrollはこのアプローチを採用しており、生のL2トランザクションデータを圧縮形式でL1に保存し、必要に応じて誰でもL2トランザクションを再生してロールアップの状態を復元できるようにします。
アマチュア登山家の例に戻ると、著名な登山家がアマチュア登山家と一緒にエベレストに登頂し、登山が完了したことを世界に確認するという別の検証方法があるかもしれません。登山は信頼できる個人によって認定されているため、登山者は文書化のためにすべてのステップを記録する必要がなくなりました。スタート地点で写真を撮り、山頂で写真を撮るだけで十分で、他の人は登山者が山頂に到達したと見なすだけです。このアナロジーは、データの可用性を確保するために使用される状態差分メソッドを反映しています。ZK ロールアップでは、zkSync Era と StarkNet がこのアプローチを採用しており、L2 トランザクションが L1 で実行される前後の状態差分のみを格納し、必要に応じて誰でもジェネシスからの状態差を計算してロールアップの状態を復元できるようにします。
図 6: 生トランザクションの公開と状態差分の公開
(出典:Presto Research)
この状態差分のアプローチは、中間トランザクションの保存をスキップして L1 のストレージ コストを削減できるため、生のトランザクション データの公開アプローチと比較して、コストの点で間違いなく有益です。しかし、一般的には問題ではありませんが、このアプローチではL2トランザクション履歴全体を復元できないという根本的な欠点があり、一部のDAppsでは問題となる可能性があります。
DeFiレンディングプロトコルであるCompoundを例にとり、state-diffアプローチベースのZKロールアップスタックの上に構築されていると仮定しましょう。これらのプロトコルは、毎秒供給金利と借入金利を計算するために、完全な取引履歴を必要とします。しかし、何らかの理由で ZK ロールアップ シーケンサーがダウンし、他のロールアップ ノードが最新の状態を復元しようとするとどうなるでしょうか。状態は復元されますが、すべての中間トランザクションではなく、バッチ間のスナップショットのみを追跡できるため、金利は不正確に復元されます。
本稿では主に、今日のZKロールアップのほとんどに「ZK」はなく、DAppsにはZKPとZKロールアップを利用することが最適な選択ではないかもしれない領域がたくさんあると主張しています。ZKテクノロジーは、非難されることに無邪気さを感じるかもしれません。なぜなら、それ自体に本質的には何の問題もないからです - ただ、その技術的進歩を活用する過程で、DAppsのパフォーマンス低下をもたらす可能性があるからです。しかし、ZKの技術がこの業界に役に立たないと言っているわけではありません。ZKPとZKロールアップが最終的に技術的に成熟すれば、ブロックチェーンのトリレンマを解決するためのさらに優れたソリューションを提供できることは間違いありません。実際、ZKのプライバシーを維持するZKベースのプロジェクトや、ZKPやZKロールアップの利点を効果的に活用する多くの種類のDAppsが存在します。これについては、次の記事で詳しく説明しますので、ご期待ください。