
ZK Rollups:部屋の中の大象
TechFlow厳選深潮セレクト

ZK Rollups:部屋の中の大象
さまざまなタイプのDAppsに対して、ZK ロールアップは最適な開発スタック選択ではない可能性がある。
執筆:Jaehyun Ha
翻訳:TechFlow
概要
-
ゼロ知識証明(ZKPs)は、よりプライベートでスケーラブルなブロックチェーンエコシステムを構築する可能性を秘めているが、ゼロ知識(ZK)に関する多くの側面は誤解されているか、一般的な実装イメージとは異なっている。
-
ZKPsには主に「ゼロ知識性」と「簡潔性」という2つの側面がある。この説明自体は間違っていないが、現在のZKロールアップの多くは「簡潔性」のみを利用しており、トランザクションデータやアカウント情報は完全にゼロ知識またはプライベートになっているわけではない。
-
さまざまなタイプのDAppにとって、ZKロールアップは最適な開発スタックではない可能性がある。たとえば、ZKPの生成は高速ファイナリティのボトルネックとなり、Web3ゲームのパフォーマンスを低下させる可能性があり、また状態差分の公開によるデータ可用性の保証方法は、DeFiレンディングプロトコルのサービスを損なう可能性がある。

図1:ZKはとても流行している buzzword である
出典:imgflip
現在のブロックチェーン業界の状況は、「ゼロ知識(ZK)時代」と例えることができる。どこに行ってもZKの存在感が強く、名称にZKを含まない次世代ブロックチェーンプロジェクトを見つけるのはますます難しくなっている。技術的には、ZKはスケーラビリティとプライバシーを高める有望な技術であり、疑いなく注目されるべきものである。しかし、ZKの技術的背景が複雑なため、個人投資家から機関投資家まで、多くの投資家が「これはかっこよくて新しく、ブロックチェーンのトリレンマを解決できるかもしれない」という思い込みに基づき、各プロジェクトがZK技術から具体的にどのように恩恵を得ているのかを十分に理解せずにZKプロジェクトに投資している。
本ZKシリーズでは、ZKロールアップの見過ごされがちな問題点(デメリットや欠点)と有益な応用例について探る。まず、ブロックチェーンにおけるZK証明(ZKPs)の2つの核心的属性である「ゼロ知識性」と「簡潔性」を解説する。その後、現在運用中の多数のZKロールアップがなぜ「ゼロ知識性」を実際に活用していないのかを考察する。次に、ZKロールアップの実装がむしろ有害となる領域について検討し、実装の複雑さといったよく知られた問題以外にも焦点を当てる。最後に、ZKの原則を真に体現し、ZK技術の利用によって明確な利点を得ている優れたプロジェクトを紹介する。
復習:ZKロールアップにおけるトランザクションライフサイクル
ロールアップは、取引束をオンチェーン外で実行し、最新のL2ステートのサマリー情報をL1上に保存することで、L1のスループット制限を解決するスケーリングソリューションである。その中でも、ZKロールアップの特徴は、オフチェーン計算の有効性証明をオンチェーンに提出することで、資金の迅速な引き出しが可能になる点にある。ZKロールアップの問題点に深く掘り下げる前に、まずはそのトランザクションライフサイクルを簡単に振り返ろう。

図2:ZKロールアップにおけるトランザクションライフサイクル
出典:Presto Research
-
各L2ユーザーがトランザクションを作成し、シーケンサーに送信する。
-
シーケンサーが複数のトランザクションを集約・順序付けし、オフチェーンで実行して新しいロールアップステートを計算する。その後、シーケンサーはこの新しいロールアップステートを「バッチ」としてオンチェーンのステートスマートコントラクトに提出し、対応するL2トランザクションデータをデータブロックとして圧縮してデータ可用性を確保する。
-
このバッチはプローバーに送られ、プローバーがそのバッチ実行の有効性証明(すなわちZKP)を生成する。そして、この有効性証明は追加データ(以前のステートルートなど)とともにL1のバリデータースマートコントラクトに送信され、バリデーターが何を検証しているかを識別できるようにする。
-
バリデーターコントラクトが証明を検証した後、ロールアップのステートが更新され、提出されたバッチ内のL2トランザクションは完了と見なされる。
(なお、この説明はZKロールアッププロセスの単純化されたバージョンであり、実装ごとに異なる場合がある。役割を細分化すれば、L2内にはアグリゲーターや実行者、提案者などさらに多くのエンティティが存在する可能性がある。データブロックの階層も、用途に応じてブロック、ブロックグループ、バッチなど異なる場合がある。上記の説明は、権限の強い集中型シーケンサーがトランザクションの実行を一括管理し、統一的なデータブロック形式(バッチ)を生成するケースを想定している。)
Optimistic Rollupとは異なり、ZKPs(例えばZK-SNARKsやZK-STARKs)のおかげで、ZKロールアップはすべてのトランザクションを再実行することなく、単一の簡単な証明を検証することで数千のトランザクションの正しさを確認できる。では、このZKPとは何か、どのような特性を持つのか?
ZKPsの2つの属性:ゼロ知識性と簡潔性
名前の通り、ZKPは基本的に「証明」である。証明とは、提示者が主張する内容を裏付けるのに十分な情報を指す。たとえばBob(提示者)がAlice(検証者)に対して、自分のノートパソコンに対する管理者権限を持っていることを証明したいとする。最も簡単な方法は、BobがパスワードをAliceに教えることであり、Aliceはそのパスワードを入力してBobが本当に権限を持っているかを検証できる。しかし、この検証プロセスはAliceにとってもBobにとっても満足のいくものではない。もしBobが非常に長くて複雑なパスワードを設定していた場合、Aliceが正確に入力するのは極めて困難である(コピー&ペーストができないと仮定)。もっと現実的な話として、Bobは自身の権限を証明するために、パスワードをAliceに明かしたくないだろう。
もしBobがパスワードを開示せず、Aliceが素早く権限を検証できる方法があればどうだろうか?たとえば、Bobが指紋認証でノートパソコンをロック解除する様子をAliceの前で見せる(これは完璧なZKPの例ではないが注意)。ここに登場するのが、ZKPsの2つの重要な属性である「ゼロ知識性」と「簡潔性」だ。

図3:ゼロ知識性と簡潔性の直感的理解
出典:imgflip
ゼロ知識性(ZK)
ゼロ知識性とは、提示者が生成する証明が、証明の正当性以外に秘密の証人情報(すなわちプライベートデータ)に関する情報を一切漏らさない性質を指す。これにより、検証者はデータの内容を何も知らずに済む。ブロックチェーンにおいて、この属性はユーザー個人のプライバシー保護に利用できる。すべてのトランザクションにZKPsを適用すれば、ユーザーは自身の行動の合法性(たとえば十分な資金があること)を証明しつつ、トランザクションの詳細(送金内容、アカウント残高の更新、スマートコントラクトのデプロイおよび実行など)を一般に公開しないですむ。
簡潔性
簡潔性とは、大規模な主張から短く、迅速に検証可能な証明を生成できること、つまり大きなデータをコンパクトな形式に圧縮できることを意味する。ブロックチェーンでは、特にロールアップにおいてこの性質が活用される。ZKPsを使用することで、L2の検証者はL1の検証者に対して、TB単位のトランザクションの有効性を10~100KB程度の小さな証明で主張できる。これにより、検証者はすべてのトランザクションを再実行せずとも、短時間(10ミリ秒~1秒)で実行の正当性を容易に確認できる。
ZKロールアップは優れているが、それがプライバシーを意味するわけではない
上記のZKPの特性は、ZKロールアップでうまく活用されている。確かに、検証者は提示者から受け取ったZKPから元のトランザクションデータを推測することはできないが、簡潔な証明を検証することで、提示者の主張(新しいL2ステート)を効率的に検証できる。つまり、「現在のZKロールアップがゼロ知識性と簡潔性の両方の属性を完全に満たしている」と断言するのは誤解を招く。これは提示者と検証者のやり取りに注目すれば正しいかもしれないが、ZKロールアップにはシーケンサーや提供者、ロールアップノードなど他の構成要素も存在する。「ゼロ知識性」という原則はこれらに対しても保証されているのだろうか?
いかなるZKロールアップにおいても、ZKPsを用いて完全なプライバシーを実現するのは難しい。一部だけがZKで秘匿され、他が公開されている場合、そこには妥協が生じる。 ZKロールアップのトランザクションライフサイクルを思い浮かべてみよう。ユーザーからシーケンサーへトランザクションが送信された時点で、プライバシーは守られているだろうか?提供者にとっては?あるいはL2のバッチがDA層に提出されたとき、個々のアカウント情報のプライバシーは保護されているだろうか?現時点では、いずれも満たされていない。

図4:ZKロールアップにおけるプライバシーの漏洩
出典:Presto Research
現在の主流なZKロールアップのほとんどでは、シーケンサーや提供者(または権限の高い集中型エンティティ)が、送金額、アカウント残高の更新、コントラクトのデプロイや実行といったトランザクションの詳細を明確に把握できる。簡単な例として、任意のZKロールアップのブロックエクスプローラにアクセスすれば、上記の詳細を誰でも容易に確認できる。さらに、集中型シーケンサーが何らかの理由で停止し、別のロールアップノードがステートを復旧しようとする状況を考えてみよう。このノードはDA層(ほとんどの場合L1イーサリアム)に公開されているL2データから情報を抽出し、L2ステートを再構築する。この過程で、DA層に保存されたL2トランザクションをリプレイできるノードであれば、すべてのユーザーのアカウントステート情報を回復できてしまう。
したがって、現在のZKロールアップにおける「ゼロ知識性」は断片的にしか実装されていない。これは間違いとは言えないが、明らかに「ZK=ゼロ知識=完全なプライバシー」という一般認識とは異なる。現在のZKロールアップの革新性は、「ゼロ知識性」ではなく「簡潔性」にあり、オフチェーンでトランザクションを実行し、検証者向けに簡潔な証明を生成することで、再実行なしに迅速かつスケーラブルに実行の正当性を検証できる点にある。
そのため、Starknetのような一部のZKロールアップは混乱を避けるために自らを「有効性ロールアップ(validity rollups)」と称しており、一方でAztecのように真のZKプライバシーを保証するプロジェクトは「ZK-ZKロールアップ」として自らを位置づけている。
ZKロールアップの実用性を深く考える
前述の通り、現在のZKロールアップの多くは完全なZKプライバシーを実現していない。では、次の目標は何だろうか?ロールアップのすべての部分にZKを全面展開し、完全なトランザクションプライバシーを実現すべきか?実は、これは簡単な問いではない。技術のさらなる成熟に必要な顕著な進歩に加え、思想的(たとえば非合法な目的でのプライベート取引)や実用性(本当に役立つのか?)の観点からも議論の余地がある。完全なトランザクションプライバシーに関する倫理的問題の議論は本稿の範囲を超えるため、ここではブロックチェーンプロジェクトにおいて遭遇するZKロールアップの実用性上の2つの問題に焦点を当てる。
ポイント1:ZKPの生成は高速確定性のボトルネックになり得る
まず、ZKロールアップ自体の実用性について議論しよう。ZKロールアップ最大の魅力は、ZKPのおかげで「高速確定性」が実現され、資産引き出しの遅延が短縮されることにある。TPSの向上と低トランザクション料金は追加のメリットである。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(委任型プルーフ・オブ・ステーク)のコンセンサスアルゴリズムで動作するEVMブロックチェーンである。委任された株式の量に基づいて22のバリデーターを選出し、それらがPoA方式(つまり22のバリデーター間の投票プロセスのみ)でブロックを生成・検証する。そのため、Ronin上ではトランザクションがほぼ遅延なくブロックに取り込まれ、検証時間も非常に短くなる。Shillinハードフォーク以降、平均して6秒で確定するようになった。RoninはZKPをまったく使わずにこれを実現している。
もちろん、Roninにも欠点はある。中央集権的なバリデーターによる管理のため、51%攻撃を受けやすいという相対的なリスクがある。また、イーサリアムを決済レイヤーとして使用しないため、イーサリアムのセキュリティを継承できない。クロスチェーンブリッジの使用にはセキュリティリスクも伴う。しかし、ユーザーの視点からは、これらを気にするだろうか?現在、非中央集権的なソーターを持たないZKロールアップも単一障害点(SPOF)の問題を抱えている。イーサリアムはトランザクションのロールバック可能性を減らすことで保証を提供しているが、中央集権的なシーケンサーやバリデーターが故障すれば、ZKロールアップも凍結する。繰り返すが、ZKロールアップの「ZK」は実行の正当性を検証するためのものに過ぎない。同じ機能をより速く・安く提供する別のプロジェクトがあれば、ZKロールアップはWeb3ゲームのユーザー・開発者の最優先技術スタックではなくなるかもしれない。
ポイント2:状態差分の公開は諸刃の剣である
もう一つの議題は、ZKロールアッププロトコルの実装における実用性である。ここでは、特にZKロールアップでデータ可用性を確保する手法の一つである「状態差分の公開」に注目する(Unlocking Dencun Upgrade: Unseen Truth of Scaling DA Layers, Jaehyun Ha, 12Apr24 参照)。
ロールアップにおけるデータ可用性を理解する簡単な方法として、アマチュア登山家がエベレスト登頂の過程を証明・記録するシナリオを想像してみよう。最もシンプルな方法は、ベースキャンプから頂上までのすべてのステップを動画で撮影することだ。動画ファイルは巨大になるかもしれないが、誰もが登山家のプロセスを検証でき、リプレイも可能になる。これは、データ可用性を確保する「オリジナルトランザクションデータ公開方式」に類似している。Optimistic Rollupはこの方式を採用しており、シーケンサーのステートコミットメントを信用できないため、個々のチャレンジャーが再実行して正しい実行を検証できるようにしている。ZKロールアップでは、Polygon zkEVMやScrollがこの方式を採用し、必要に応じて誰でもL2トランザクションをリプレイしてロールアップのステートを復元できるよう、オリジナルのL2トランザクションデータをL1上に圧縮して保存している。
再びアマチュア登山家の例に戻ると、別の検証方法として、著名な登山家がアマチュア登山家と一緒にエベレストを登ることで、世界に登頂の事実を証明する方法がある。すでに信頼できる人物によって登頂が証明されたため、登山家はすべてのステップを記録する必要はない。出発地点と頂上での1枚の写真だけで十分であり、他の人々は彼が頂上に到達したと信じるだろう。これがデータ可用性を確保する「状態差分方式」の比喩である。ZKロールアップでは、zkSync EraやStarkNetがこの方式を採用しており、L2トランザクションの実行前後のステート差分のみをL1上に保存することで、必要に応じて初期ステートから差分を計算してロールアップのステートを復元できるようにしている。

図6:オリジナルトランザクション公開 vs 状態差分公開
出典:Presto Research
この状態差分方式は、中間のトランザクションを保存する手間が省けるため、L1のストレージコストの削減という点で、オリジナルトランザクションデータ公開方式よりもコスト面で有利である。ただし、これは通常問題にならないものの、潜在的な欠陥もある:この方式では完全なL2トランザクション履歴を復元できないため、特定のDAppにとっては問題となる可能性がある。
DeFiレンディングプロトコルCompoundを例に挙げよう。これを状態差分型ZKロールアップの技術スタック上に構築したと仮定する。このようなプロトコルは、供給・借入金利を毎秒計算するために完全なトランザクション履歴を必要とする。しかし、もしZKロールアップのシーケンサーが故障し、他のロールアップノードが最新ステートを復元しようとした場合、どうなるだろうか?ステートは復元できるかもしれないが、バッチ間のスナップショットしか追跡できないため、金利は不正確に復元されるだろう。
結論
本稿の主張は、現在の大多数のZKロールアップには実際には「ZK」が存在せず、多くのDAppにおいてZKPやZKプロセスの使用は最適な選択ではない可能性があるというものである。ZK技術自体が責められるべきではない。問題は技術そのものではなく、その技術進歩を活用する過程で、DAppの潜在的なパフォーマンス低下を引き起こす可能性がある点にある。しかし、だからといってZK技術が業界にとって無価値というわけではない。ZKPsやZKロールアップの技術が最終的に成熟すれば、ブロックチェーンのトリレンマを解決するより良いソリューションを提供できるだろう。実際、すでにZKプライバシーを維持しているZKベースのプロジェクトも存在し、多くの種類のDAppがZKPやZKロールアップの利点を有効に活用している。
TechFlow公式コミュニティへようこそ
Telegram購読グループ:https://t.me/TechFlowDaily
Twitter公式アカウント:https://x.com/TechFlowPost
Twitter英語アカウント:https://x.com/BlockFlow_News














