
Vitalik のDA問題と検閲耐性引き出しに関する不正確な発言を正す
TechFlow厳選深潮セレクト

Vitalik のDA問題と検閲耐性引き出しに関する不正確な発言を正す
Plasmaの安全な引き出しはDAシステムに依存せず、検閲耐性のある引き出しも必ずしもDAシステムへの依存を必要としない。
著者:Faust、Geek Web3
2024年1月16日、イーサリアムLayer2プロジェクトTaikoの創設者Daniel Wangが投稿し、AAウォレットSoul Walletの創設者である曾嘉俊氏とやり取りしたツイートに対して、Vitalikは次のように述べました。「Rollupの鍵は無条件のセキュリティ保証にある。つまり、誰からも攻撃されても、資産を引き出せるということだ。もしDA(データ可用性)が外部システム(イーサリアム以外)に依存しているなら、これは実現できない。」


Vitalikはこのツイートの後半でValidium(ZK二層ネットワークにおいてイーサリアムを使わずDAデータを発行する方式)に対する自身の見解にも言及しており、多くの注目を集めました(以前から業界では「イーサリアム財団はLayer2=Rollupと考えている」と噂されていました)。
(強調しておく必要があります:イーサリアムコミュニティが議論するDAという概念は、「長期間前の履歴データを検索できるか」ではなく、「Layer2で新たに生成されたデータを取得できるか」を指します。新しいデータをイーサリアム上に発行しなければ、Layer2ノードは最新のL2ブロックを正常に解析できなくなる可能性があります)
しかし、「イーサリアムLayer2定義をめぐる論争」や「DA War」についてはすでに多くの人々が耳にしています。本稿ではそのような話題には一切触れず、むしろVitalikの発言の前半部分、すなわち本文冒頭で引用した一文に焦点を当てます。
Vitalikはここで、Rollupが信頼不要な検閲耐性引き出しを実現できることを示しました。つまり、すべてのLayer2ノードが協力しない場合でも、自分の資産をLayer2から撤退させることができるのです。そして彼は、このような「無条件の安全な引き出し」を実現できるのはRollupだけだと指摘し、他のDAデータ発行方式に依存するLayer2ではこれが不可能だと主張しました。
しかし実際には、Vitalikのこの発言は厳密ではありません。
まず第一に、Layer1からLayer2へ橋渡しされた資産のみがETHチェーンに戻すことが可能であり、単なるLayer2ネイティブ資産はLayer1へ移動できません(Layer2ネイティブ資産がLayer1上でブリッジ資産コントラクトを展開していない限り)。

Vitalikが言うように「全員があなたを敵対している」状況では、L1-L2ブリッジ資産は引き出すことができますが、「Layer2ネイティブトークン」は引き出せません。このとき、通常のwithdraw、forced withdraw、あるいはEscape Hatchを使ったとしても意味がありません。
第二に、「条件不要の安全な引き出し」は必ずしもDAシステムに依存する必要はありません。Rollup以前の初期Layer2スキームであるPlasma(イーサリアムチェーン外でDAデータを発行する)では、DAシステムに障害が生じたとき(つまりデータ保持攻撃が発生し、ソーター/委員会以外の者が新しい取引データ/ステート変換情報を受信できない場合)、ユーザーは過去のデータを使って資産証明を提出し、安全にLayer2から脱出できます。
言い換えれば、Plasmaの安全な引き出しはDAシステムに依存しておらず、検閲耐性引き出しもまたDAシステムへの依存を必須とするものではありません(ただし履歴データの取得可能性は保証される必要があります)。しかも、これはイーサリアム財団のDankrad(Danksharding提唱者)本人が明言したことですし、広く認められた一般原則でもあります。


過去のGeek Web3記事参照:『データ保持攻撃と詐欺証明:なぜPlasmaはスマートコントラクトをサポートしないのか』
さらに言えば、CelestiaやBlobstreamを除いても、データ保持攻撃/DA障害の問題は、ETHをDAレイヤーとしなくても解決可能です。例えばArbitrumチームとRedstoneチームが現在実装しようとしている「データ可用性チャレンジ(Data Availability Challenge)」では、ソーターがチェーン上にDAコミットメント(実際にはdatahash)だけを発行し、「チェーン外にデータを公開済み」と宣言することを許可しています。誰かがチェーン外で新しく生成されたデータを取得できない場合、チェーン上のDAコミットメントに対してチャレンジを発動でき、ソーターにデータをチェーン上に開示するよう要求できます。
この仕組みは非常に簡潔であり、Celestia、Avail、EigenDAといったサードパーティDAに依存する必要がなく、Layer2プロジェクト側が自らチェーン外DACノードを設定すればよいだけです。いわばCelestiaキラーとも言えます。
以下では、筆者はVitalikが言う「条件不要の安全な引き出し」と彼が言及しなかった「データ可用性チャレンジ」について解説し、なぜCelestiaやAvail、EigenDAなどのサードパーティDAプロジェクトが、チェーン外DAかつ安全性を追求するLayer2にとって必須ではないのかをお伝えしたいと思います。
また、我々は以前「ビットコインLayer2リスク評価指標」に関する記事の中で、検閲耐性引き出しがDAシステムよりも基本的かつ重要であると述べましたが、今回の記事でもこの観点をさらに詳しく説明します。

エスケープハッチ:Vitalikが言う「条件不要の安全な引き出し」

実際、Vitalikの発言はそれほど難解ではありません。これはZK Rollupのエスケープハッチについて語っています。エスケープハッチとは、Layer1上で直接トリガーされる引き出しモードのことです。このモードが起動すると、Rollupコントラクトは凍結状態になり、ソーターからの新しいデータの受付を拒否し、誰でもMerkle Proofを提示してLayer2上の自分の資産残高を証明し、公式ブリッジ預入アドレスから資産を移動できるようになります。

より正確に言えば、エスケープハッチモードは、ユーザーのトランザクションがLayer2ソーターによって長期間拒否された後に、当該ユーザーがLayer1上で手動でトリガーできる「信頼不要な引き出しメカニズム」です。
ただし、エスケープハッチモードを有効化する前に、ソーターに拒否されたユーザーは、Layer1上のRollupコントラクト内で強制引き出し関数を呼び出し、強制引き出しリクエストを送信し、イベントを発火させてLayer2ノードに「誰かが強制引き出しを要求した」ことを知らせる必要があります。


(Layer2ノードはすべてイーサリアムgethクライアントを実行しており、イーサリアムブロックを受信するため、強制引き出しイベントの発火を監視できます)
もし強制引き出しリクエストが長期間無視された場合、ユーザーは自らエスケープハッチモードを起動できます(Loopringプロトコルではデフォルトで15日、StarkExスキームでは7日)。その後の操作手順は本文冒頭で述べた通りで、ユーザーが自分の資産に対応するMerkle Proofを提出し、Layer2での資産状況を証明して、Rollup関連コントラクトから資産を引き出すことができます。
Merkle Proofを作成するには、まず完全なL2状態を把握する必要があります。そのため、L2フルノードにデータを要求する必要があります。Vitalikが言うような極端な状況が発生し、どのLayer2ノードも協力しない場合、自分でLayer2フルノードを立ち上げ、イーサリアムネットワークを通じて、L2ソーターがイーサリアム上に公開した履歴データを取得し、Layer2創世ブロックから一つずつ同期して最終状態を算出し、Merkle Proofを構築することで、エスケープハッチによる安全な引き出しが可能になります。

明らかに、この時点での「検閲耐性」は、イーサリアム/Layer1そのものと同等です。古い履歴データを提供してくれるイーサリアムフルノードさえあればよく、ほぼ信頼不要(trustless)に近くなります。
しかしEIP-4844以降、イーサリアムフルノードは一部の履歴データを自動的に破棄するため、18日以上前のLayer2履歴データがETHノード全体でバックアップされなくなり、その結果、エスケープハッチによる引き出しの検閲耐性は、今日のように信頼不要に近づけなくなります。
EIP-4844以降は、限られた数の、すべての履歴データを保存しているイーサリアムノードがデータを提供してくれるという前提が必要になります(Layer2ネイティブノードは通常数が少ないため、ここでは考慮しません)。このとき、Layer1履歴データの検索可能性/Layer2エスケープハッチ引き出しの信頼仮定は、現在の「信頼不要」または「0」から「1/N」へと変わります。つまりN個のノードのうち1つがデータを提供してくれると仮定するのです。
EthStorageチームはこのNを拡大しようと努力しており、より多くのノードが古い履歴データを保存するようインセンティブを与えています。もし1/Nの分母が十分大きければ、分数値は依然0に近く、信頼仮定をほとんど導入していないことに近づきます。これにより、EIP-4844後の履歴データ検索問題はある程度解決されるかもしれません。

エスケープハッチとDAの関係――Validiumの身代金攻撃
ここで再び要約しましょう:エスケープハッチとは、Merkle Proofを通じて自分のLayer2資産状況を証明し、Layer1上で信頼不要に資産を引き出す仕組みです。
Vitalikが、引き出しに関わる資産の安全性にDAが前提となると述べた理由は、主にValidium方式が「データ保持攻撃」により引き出しができなくなることに関連しています(staterootのみを公開し、対応する取引データは公開しない)。
具体的な原理は次の通りです。ソーターが取引データを保持し、イーサリアムチェーン上にはMerkle Root(stateroot)だけを公開し、有効性証明を利用して新しいstaterootを正当なものとして承認させる可能性があります。


このとき、合法なstaterootに対応する完全な状態が誰にも分からないため、対応するMerkle Proofを作成できず、エスケープハッチによる引き出しができません。ソーターがデータをあなたに解放しない限り、引き出しは不可能であり、Arbitrumのある技術責任者はこれを「身代金問題」と呼んでいます(私は「身代金攻撃」と呼ぶのが好きです)。

しかしチェーン外DAのValidiumが「身代金攻撃」を容易に起こしてしまうのは、その仕組み設計が不十分だからです。引き出し行動に関連するチャレンジ機構やデータ可用性チャレンジを導入すれば、理論的には身代金攻撃の問題を解決できます。
ちなみに前段で触れた、古い履歴データを使って引き出し可能なPlasmaは、Validiumのような「身代金攻撃」を起こしません。Plasmaもチェーン外DA(チェーン外DA+チェーン上での詐欺証明検証)ですが、同様の問題は起きません。
参考資料:データ保持攻撃と詐欺証明:Plasmaがスマートコントラクトをサポートしない理由
つまり、検閲耐性引き出し/エスケープハッチは必ずしもDAに依存するわけではなく、すべては引き出しフローのメカニズム設計次第です。Vitalikが検閲耐性引き出しとDAを結びつけてしまうのは、Validiumやスマートコントラクト型Rollupといった既存スキームから出発し、すでに一種の思考の枠に囚われているからです。
しかし、これといってすべてのチェーン外DAを持つLayer2がValidiumと同じ問題を抱えるわけではありません。スマートコントラクト型Rollupがすべての終着点であるとは限らず、革新は常に起こり得ます(後述のデータ可用性チャレンジなど)。
逆に言えば、もし最初からエスケープハッチや検閲耐性引き出しを考慮しないLayer2設計であれば、そのLayer2は確実に信頼不要性/安全性に欠けます。言い換えれば、優れたDAおよび証明システムは検閲耐性引き出しを実現するための十分条件ではありますが、必要条件ではありません。
だからこそ、私たちの過去の記事では、Layer2のバケツ理論において検閲耐性引き出しがDAや証明システムよりも基礎的な弱点であると述べた根拠があるのです。
参考資料:『バケツ理論で解体するビットコイン/イーサリアムLayer2のセキュリティモデルとリスク指標』

Celestiaキラー:ArbitrumとRedstoneのデータ可用性チャレンジ
エスケープハッチとDAの関係について述べたところで、今度はDA自体に戻ってみましょう。Layer2がDAデータをイーサリアム上に発行しなくても、ソーターによる「データ保持攻撃」を回避することは可能です。
RedstoneやArbitrum、Metisなどはすべて「データ可用性チャレンジ」メカニズムの研究開発を行っており、ソーターがチェーン上にDAコミットメント(datahash)+staterootだけを発行し、「チェーン外にステート変換パラメータ(取引データ)を公開済み」と宣言できるようにしています。誰かがチェーン外で新しく生成されたデータを取得できない場合、チェーン上のDAコミットメントに対してチャレンジを発動し、ソーターにデータをチェーン上に開示するよう要求できます。

ソーターがチャレンジを受けた後、ETHチェーン上にデータを適時に公開しなかった場合、その前に発行されたdatahash/コミットメントは無効とされ、関連するstaterootも無効となります。明らかに、これはデータ保持問題(staterootだけを公開し、対応する取引データを公開しない)を直接解決します。
明らかに、ValidiumやOptimiumといったチェーン外DAのLayer2に比べ、これには「データ可用性チャレンジ」という機能が追加されています。しかし、このシンプルな設計だけで、CelestiaやAvail、EigenDAなどに対して有力な競争力を与えます。DACを自ら設定し、データ可用性チャレンジを導入すれば、Celestiaに依存する必要はなくなります。
ただし、データ可用性チャレンジには解決すべき経済的問題もあります。ZkSyncの創設者は、Arbitrumの技術責任者との議論の中で、データ可用性チャレンジは理論上Dos攻撃を受けやすいと指摘しています。例えば、ソーターがチェーン上で数千のDAコミットメントを高速に発行し、対応する完全なデータを公開しないまま保持することで、すべてのチャレンジャーの資金を尽きさせ、その後無効なブロックを発行してユーザーの資産を盗む可能性があります。

もちろん、この仮定はあまりに極端であり、本質的には攻撃者と防御者のゲーム理論の問題です。実際に、ソーターの方が悪意あるチャレンジャーからのDos攻撃を受けやすく、連続チャレンジによりRollup並みの状態にまで低下する可能性があります。データ可用性チャレンジを巡る攻防の駆け引きは非常に興味深く、対応するメカニズム設計はArbitrum、Redstone、Metis各プロジェクトの知恵を試されることになるでしょう(このテーマは別途記事にできるほど深いです)。

いずれにせよ、データ可用性チャレンジはLayer2のDA設計に新たな革新をもたらし、ビットコインLayer2エコシステムにおいても重要な役割を果たすことになるでしょう。
TechFlow公式コミュニティへようこそ
Telegram購読グループ:https://t.me/TechFlowDaily
Twitter公式アカウント:https://x.com/TechFlowPost
Twitter英語アカウント:https://x.com/BlockFlow_News










