Validiumを解雇?Dankshardingの提案者の視点からLayer2を再理解する
著者:Faust、ギーク web3
導入:最近、Danksharding の提案者、イーサリアム財団の研究者 Dankrad Feist が Twitter で物議を醸す発言をしました。彼は明確にETH を DA 層(データ可用性層)として使用しないモジュラー ブロックチェーンは Rollup ではなく、イーサリアム Layer2 でもないと指摘しました。Dankrad の言葉によれば、Arbitrum Nova や Immutable X、Mantle は、ETH の外(独自に構築した DAC というオフチェーン DA ネットワーク)で取引データを公開しているため、Layer2 のリストから"除名"されるべきです。
同時に、Dankrad は Plasmas や状態チャネルのように、チェーン上のデータ可用性(Data Availability)を必要とせずに安全性を確保できるソリューションは依然として Layer2 と見なされるが、Validium(ETH を DA 層として使用しない ZKRollup)は Layer2 とは見なされないと述べました。
Dankrad の発言は、Rollup 分野の多くの創業者や研究者から疑問を呼び起こしました。多くの"Layer2"プロジェクトはコスト削減のために ETH を DA(データ可用性)層として使用していないため、これらのプロジェクトを L2 リストから排除すれば、かなりの数のスケーリングネットワークに影響を及ぼすことになります。また、Validium が L2 と見なされないのであれば、Plasma も L2 としての資格がないはずです。
これに対して、Dankrad は、Plasma ユーザーが DA が利用できない場合(つまり、オフチェーンの DA 層ネットワークがデータを保持し、取引データを公開しない場合)でも、自分の資産を安全に L1 に撤退させることができると述べました。しかし同じ状況下で、Validium(大多数が StarkEx ソリューションを採用しているプロジェクトは Validium)はユーザーが L1 に資金を撤退できず、資金が凍結される可能性があります。
明らかに、Dankrad は「安全性の有無」に基づいて、拡張プロジェクトがイーサリアム Layer2 であるかどうかを定義しようとしています。「安全性」の観点から考えると、Validium はオーダーラーの故障 + DA 層によるデータ保持攻撃(新しいデータを隠す)の極端な状況下で、ユーザーの資産を L2 に凍結させ、L1 に引き出せなくする可能性があります。一方、Plasma は Validium とは設計が異なるため、ほとんどの場合、Validium よりも安全性の保証は劣りますが、オーダーラーの故障 + DA 層によるデータ保持攻撃の際には、ユーザーが資産を安全に L1 に撤退させることを許可します。したがって、Dankrad の主張には一理あります。
この記事は Dankrad の視点から出発し、Layer2 の詳細をさらに分析することで、Validium が厳密な意味での「Layer2」ではない理由を深く理解することを目的としています。
Layer2 をどう定義するか?
ethereum.org のウェブサイトや多くのイーサリアムコミュニティメンバーの定義によれば、Layer2 は「イーサリアムのスケーリング + イーサリアムの安全性を継承する独立したブロックチェーン」です。まず、「イーサリアムのスケーリング」とは、イーサリアムが処理できないトラフィックを分流し、TPS の負担を軽減することを指します。「イーサリアムの安全性を継承する」とは、実際には「イーサリアムを利用して自らの安全性を確保する」と解釈できます。
例えば、Layer2 上のすべての取引 Tx は ETH 上で最終決済を行う必要があり、データに誤りのある Tx は通過しません。Layer2 のブロックをロールバックする場合、まずイーサリアムのブロックをロールバックする必要があります。イーサリアムのメインネットが 51% 攻撃のようなブロックロールバックを受けない限り、L2 ブロックはロールバックされません。
Layer2 の安全性をさらに探求する場合、実際には多くの極端な状況を考慮する必要があります。例えば、L2 プロジェクトが運営を停止した場合、オーダーラー Sequencer が故障した場合、オフチェーン DA 層がダウンした場合、これらの極端な事象が発生した際に、ユーザーは L2 上の資金を安全に L1 に撤退させることができるのでしょうか?
Layer2 の「強制引き出し」メカニズム
L2 コントラクトのアップグレードやマルチシグのリスクなどの要因を考慮しない場合、実際には Arbitrum や StarkEx はユーザーに強制引き出しの出口を設定しています。仮に L2 のオーダーラーが審査攻撃を行い、意図的にユーザーの取引/引き出しリクエストを拒否したり、完全にダウンした場合、Arbitrum ユーザーは L1 上の Sequencer Inbox コントラクトの force Inclusion 関数を呼び出し、取引データを直接 L1 に提出できます。もし 24 時間以内にオーダーラーがこの「強制包含」を必要とする取引/引き出しを処理しなければ、その取引は Rollup の取引シーケンスに直接含まれ、L2 ユーザーに「安全出口」を提供します。
対照的に、逃生舱 Escape Hetch メカニズムを持つ StarkEx ソリューションはさらに優れています。もし L2 ユーザーが L1 に提出した強制引き出しリクエストが 7 日のウィンドウ期間終了時にオーダーラーからの応答を得られなければ、そのユーザーは freeze Request 機能を呼び出して L2 を凍結期間に入れることができます。この時、L2 のオーダーラーは L1 上で L2 の状態を更新できなくなり、L2 の状態が凍結された後は 1 年間解凍できません。
L2 状態が凍結された後、ユーザーは現在の状態に関連する Merkle Proof を構築し、L2 上に XX の資金があることを証明し、L1 上の逃生舱 Escape Hetch 関連コントラクトを通じて引き出すことができます。これが StarkEx ソリューションが提供する「全額引き出し」サービスです。たとえ L2 プロジェクトが消滅し、オーダーラーが永続的に故障しても、ユーザーは資金を L2 から撤退させる方法があります。
しかし、ここには一つの問題があります:StarkEx ソリューションを使用している L2 の大多数は Validium(例えば Immutable X や ApeX)であり、DA に必要なデータを ETH に公開しないため、現在の L2 状態ツリーの情報はオフチェーンに存在します。ユーザーがオフチェーンで Merkle Proof を構築するためのデータを取得できない場合(例えば、オフチェーン DA 層がデータ保持攻撃を行った場合)、逃生舱を通じて引き出すことはできません。
ここまでで、記事の冒頭で言及された Dankrad が Validium が安全でないと考える理由は明確になりました:Validium は Rollup のように DA のデータをオンチェーンに送信しないため、ユーザーは「強制引き出し」に必要な Merkle Proof を構築できない可能性があるからです。
Validium と Plasma のデータ保持攻撃時の違い
実際、Validium のオーダーラーは L1 チェーン上に L2 の最新の Stateroot(状態ツリーの根)を公開し、次に Validity Proof(ZK Proof)を提出して、新しい Stateroot の生成過程に関与する状態変化(ユーザーの資金の変化)が正しいことを証明します。
(画像出典:eckoDAO)
しかし、Stateroot のみではこの時点の状態ツリー world state trie を復元することはできず、各 L2 アカウントの具体的な状態(資金残高を含む)を知ることができません。そのため、L2 ユーザーは現在の合法 Stateroot に対応する Merkle Proof を構築できません。これが Validium の不利な点です。
(Merkle Proof は実際には root 生成過程に必要なデータであり、図中の暗い部分です。対応する Stateroot の Merkle Proof を構築するには、状態ツリーの構造を知る必要があり、DA データが必要です)
ここで DAC というものを強調する必要があります。Validium の DA に関するデータ、例えばオーダーラーが最新に処理した一連の取引は、データ可用性委員会 DAC(Data Availability Committee)という L2 専用の DA ネットワークに同期されます。DAC は複数のノードサーバーで構成され、一般的には L2 の公式およびコミュニティメンバーや他の団体が運営および監視を担当します(ただし、これは表面的なものであり、実際に DAC メンバーが誰であるかは外部からは確認が難しいです)。
興味深いのは、Validium の DAC メンバーは頻繁に L1 にマルチシグを提出する必要があり、L2 オーダーラーが L1 に提出した新しい Stateroot と Validity Proof が DAC に同期された DA データと一致することを証明します。DAC のマルチシグ提出後、新しい Stateroot と Validity Proof は合法と見なされます。
現在、Immutable X の DAC は 5/7 のマルチシグを採用しており、dYdX は ZKRollup ですが、DAC もあり、1/2 のマルチシグを使用しています。(dYdX は L1 に State diff(状態変化)を公開するだけで、完全な取引データを公開しません。しかし、過去の記録から State diff を取得すれば、すべての L2 アドレスの資産残高を復元でき、その際に Merkle Proof を構築して全額引き出しが可能です)。
Dankrad の見解には一理あります。Validium の DAC メンバーが共謀し、データ保持攻撃を仕掛けると、他の L2 ノードがこの時点の最新データを同期できず、現在の合法 root に対応する Merkle Proof を構築できなくなります(この時点以降の DA データが利用できなくなり、利用できるのは以前の DA データです)。
しかし、Dankrad が考慮しているのは理論上の極端な状況だけであり、現実にはほとんどの Validium オーダーラーが新しく処理された取引データをリアルタイムで他の L2 ノードにブロードキャストしており、その中には誠実なノードも含まれています。1 つの誠実なノードが DA データをタイムリーに取得できれば、ユーザーは L2 から安全に撤退できます。
では、Validium に存在する理論上の問題は、なぜ Plasma には存在しないのでしょうか?それは Plasma が合法 Stateroot を判定する方法が Validium とは異なり、詐欺証明ウィンドウ期間があるからです。Plasma は OPRollup の前の L2 スケーリングソリューションであり、OPR と同様に詐欺証明によって L2 の安全性を保証します。
Plasma は OPR と同様にウィンドウ期間の設定があり、オーダーラーが発表した新しい stateroot はすぐには合法と見なされず、ウィンドウ期間が終了し、L2 ノードが詐欺証明を発表しないのを待つ必要があります。したがって、Plasma と OPR の現在の合法 Stateroot は、数日前に提出されたものであり(これは私たちが見る星光が実際にはずっと前に発せられたものであるのと同じです)、ユーザーは過去の DA データを取得することができます。
同時に、詐欺証明メカニズムがこの時点で機能する前提は、この時点の L2 の DA が利用可能であること、つまり Plasma の Verifier ノードがこの時点の DA に関するデータを取得できることです。そうすれば、この時点の詐欺証明を生成できます(必要があれば)。
それではすべてが簡単になります:Plasma が正常に機能する前提は、この時点の L2 の DA データが利用可能であることです。この時点から L2 の DA が利用できなくなった場合、ユーザーは安全に資金を撤退させることができるのでしょうか?
この問題は分析が難しくありません。Plasma のウィンドウ期間が 7 日であると仮定すると、ある時点 T0 から新しい DA データが利用できなくなった場合(DAC がデータ保持攻撃を行い、誠実な L2 ノードが T0 以降のデータを取得できないようにする)、T0 およびその後の合法 Stateroot は T0 時点前に提出されたものであり、T0 時点前の歴史データは追跡可能であるため、ユーザーは Merkle Proof を構築して強制引き出しを行うことができます。
多くの人が異常をすぐに察知できなくても、ウィンドウ期間が存在するため(OP は 7 日)、T0 時点に提出された Stateroot がまだ合法化されておらず、T0 より前の DA データが追跡可能であれば、ユーザーは安全に L2 から資金を撤退させることができます。
まとめ
ここまでで、Validium と Plasma の安全性の違いを大まかに整理できます:
Validium のオーダーラーが Stateroot を発表した後、すぐに Validity Proof と DAC のマルチシグを発表すれば、それは合法となり、最新の合法 Stateroot になります。ユーザーや誠実な L2 ノードがデータ保持攻撃に遭遇し、現在の合法 Stateroot に対応する Merkle Proof を構築できない場合、L1 に引き出すことができません。
一方、Plasma が新しい Stateroot を提出した後は、ウィンドウ期間が終了するまで合法とは見なされず、この時点の合法 Stateroot は過去に提出されたものです。ウィンドウ期間(ARB は 3 日、OP は 7 日)が存在するため、新しく提出された Stateroot の DA データが利用できなくても、ユーザーは現在の合法 Stateroot の DA データ(合法 root は過去に提出されたもの)を持っており、十分な時間があるため、L1 に強制引き出しを行うことができます。
したがって、Dankrad の言うことには一理あります。データ保持攻撃が発生した場合、Validium にはユーザーの資産を L2 に閉じ込める可能性がありますが、Plasma にはその問題は存在しません。
(下の図で Dankrad が言っていることには少し誤りがあります。Plasma は過去の合法 Stateroot に対応する Merkle Proof を構築して引き出すことを許可すべきではありません。なぜなら、それは二重支払いを引き起こす可能性があるからです)
したがって、オフチェーン DA 層のデータ保持攻撃は多くの安全上のリスクを引き起こす可能性がありますが、Celestia が解決しようとしているのはまさにこの問題です。さらに、ほとんどの Layer2 プロジェクトは L2 ノードとオーダーラーがオフチェーンで同期を保つサービスポートを提供しているため、Dankrad の懸念は実際には理論上のものであり、現実のものではありません。
もし私たちが卵の中から骨を探すような態度で、さらに極端な仮定を提起すると、すべての Plasma オフチェーンノードが利用できなくなった場合、L2 ノードを経由したことのない普通のユーザーは L1 に強制引き出しを行うことができなくなります。しかし、このような事態が発生する確率は、パブリックチェーンのすべてのノードが集団的に永久にダウンする確率と同等であり、永遠に発生しない可能性があります。
したがって、多くの場合、私たちは実際には発生しない事柄について話しているだけです。まるでアメリカのドラマ『チェルノブイリ』で KGB 副議長が主人公に言った名言のように:「なぜ起こるはずのないことを心配するのですか?」