はじめに:
データの可用性とは正確には何ですか? ほとんどの人にとって、第一印象は「特定の瞬間の履歴データにアクセスする」ことかもしれませんが、これは実際にはDAの概念の大きな誤解です。 最近、L2BEATの共同創設者とDankshardingの支持者、そしてCelestiaの創設者が、この誤解を解き明かしました。 彼らは、データ可用性(DA)は実際には「データ公開」を指すべきであると指摘しましたが、ほとんどの人はDAを「履歴データの検索可能性」と解釈しており、実際にはデータストレージの問題を伴います。
例えば、少し前にDankradは、Validiumの強制撤退/脱出ハッチのメカニズムについて言及し、Validiumの強制撤退はマークルプルーフを構築するために最新のL2状態を取得する必要があるのに対し、Plasmaは7日前のデータしか必要としないことを指摘しました(これは、正当な状態ルートを決定する方法に関連しています)。
これにより、Dankrad氏は、Validiumはユーザー資金のセキュリティを確保するためにDAを要求しているが、Plasmaはそうではないと明確に指摘しました。 ここで、Dankradのユースケースは、DAと履歴データ取得の違いを指摘しており、DAは新しくリリースされたデータのみを含むことが多いということです。
L2BEATでは、データ可用性(DA)とデータストレージ(DS)の区別がさらに強調されています。 L2BEATのBartek氏は、DAとデータストレージ/履歴データの取得可能性は別物であり、ユーザーが必要なL2データにアクセスできるのは、データを提供するノードが「あなたに親切」であるからに他ならないと繰り返し強調しています。 さらに、L2BEATは、DAを超えて、ロールアップを評価するための新しい指標として、「許可されたデータストレージノードが利用可能かどうか」を使用する予定です。
イーサリアムコミュニティ/イーサリアム財団のメンバーからの声明は、レイヤー2自体のより詳細な定義を提供するだけでなく、将来的にレイヤー2に関連する概念を明確にし、洗練させる意図を示しています。 これは、RollupやL2に関連する多くの用語が明確に説明されていないためで、スマートコントラクトは過去256ブロックのデータしか呼び出せないため、256ブロック(50分)以前のデータは「履歴」と見なされると考える人もいます。
しかし、CelestiaとEthereum Foundationが言及した「ロールアップ」は、厳密には2つの異なるものを指します。 この記事では、DA の概念とデータ ストレージの違いを、DA のソースであるデータ可用性サンプリングからロールアップでの DA の実装方法まで明確にし、データの可用性の真の意味であるデータ公開について説明します。
DAの概念は「データの可用性」の問題に由来し、Celestiaの創設者であるムスタファは次のように説明しています。 DAは、ブロックプロデューサーが新しいブロックを提案したときに、ブロック内のすべてのデータがネットワークに公開されるようにする方法に関するものです。 ブロックプロデューサーがブロック内のすべてのデータを解放しない場合、ブロックに誤ったトランザクションが含まれているかどうかを確認することは不可能です。
ムスタファ氏はまた、イーサリアムロールアップはイーサリアムチェーン上でL2ブロックデータを公開し、データの可用性を確保するためにETHに依存していると指摘しています。 イーサリアムの公式サイトでは、データ可用性の問題は「新しいブロックのデータが利用可能かどうかをどのように検証するか」という質問としてまとめられています。 ライトクライアントの場合、データの可用性の問題は、ブロック全体をダウンロードせずにブロックの可用性を検証することを指します。
また、イーサリアムの公式サイトでは、データの可用性とデータの取得可能性を明確に区別しており、データ可用性とは、ブロックデータが提案されたときにノードがダウンロードする能力、つまりブロックがコンセンサスに達するまでの時間に関するものです。 データ検索可能性とは、ノードがブロックチェーンから履歴情報を取得する能力を指します。 アーカイブにはブロックチェーンの履歴データが必要な場合がありますが、ノードはブロックの検証やトランザクションの処理に履歴データを使用する必要はありません。
Celestiaの中国人コントリビューターであり、W3HitchhikerのパートナーであるRen Hongyi氏の見解では、レイヤー2はイーサリアムが十分に安全で分散化されていることを事前に前提としています。 ソーターは自信を持ってDAデータをイーサリアムに送信でき、このデータはすべてのイーサリアムのフルノードに妨げられることなく伝播されます。 L2フルノード自体がGethクライアントを実行するため、イーサリアムのフルノードのサブセットと見なされ、レイヤー2のDAデータを受信できます。
EthStorageの創設者であるQi Zhou博士の目には、データ可用性(DA)の定義は、ユーザーがネットワークに送信したトランザクションデータを差し控えることはできないということです。 対応する信頼モデルは、レイヤー 1 (L1) 自体のプロトコルのみを信頼するだけでよく、他の信頼の前提を導入する必要はありません。
Qi Zhou氏は、イーサリアムにおけるDAの現在の実装は、基本的にP2Pブロードキャスティング(ゴシッププロトコルを使用)であり、すべてのフルノードが新しいブロックをダウンロードし、伝播し、ロールアップデータを保存すると指摘しています。 ただし、イーサリアムのフルノードは、履歴ブロックを永久に保存するわけではありません。 EIP-4844の実装後、特定の時間(明らかに18日前)のデータが自動的に削除される可能性があります。 世界中のすべての履歴データを格納するアーカイブノードは多くありません。 EthStorageは、イーサリアムエコシステムのこのギャップを埋め、レイヤー2が専用のデータ永続性ノードを確立するのを支援することを計画しています。
イーサリアム財団によるデータの可用性に関する初期の議論は、2017年のヴィタリック・ブテリンのツイートとGitHubのドキュメントで見ることができます。 当時、彼はブロックチェーンのスケーラビリティと効率を確保するために、フルノードのハードウェア構成を増やす必要があると考えていました(フルノードは完全なブロックをダウンロードしてその有効性を検証するものであり、コンセンサスに参加するバリデーターはフルノードのサブセットです)。 しかし、フルノードのハードウェア要件を増やすと、運用コストも増加し、ブロックチェーンの集中化につながります。
この件に関して、Vitalik氏は、高性能フルノードの集中化傾向がもたらすセキュリティリスクに対処するためのスキームを設計することを提案しました。 彼は、イレイジャーコードとデータランダムサンプリングを導入して、ハードウェア能力の低いライトノードが、ブロック全体を知らなくてもブロックに問題がないことを検証できるプロトコルを設計することを計画しました。
彼の最初のアイデアは、実際にはビットコインのホワイトペーパーで言及されているアイデアに関連しており、ライトノードは完全なブロックを受け取る必要はありませんが、ブロックに問題がある場合は正直なフルノードによって警告されると述べています。 この概念は、後の不正証明に拡張することができますが、誠実なフルノードが常に十分なデータを取得できることを保証するものではなく、ブロック提案者が一部のデータの公開を差し控えたかどうかを事後に判断することもできません。
たとえば、ノードAは、ノードBから不完全なブロックを受け取ったと主張する不正の証拠を公開できます。しかし、不完全なブロックがAによって捏造されたのか、Bによって送られたのかを判断することは不可能であり、Vitalikは、この問題は明らかにデータ公開の問題を伴うデータ可用性サンプリング(DAS)によって解決できると指摘しました。
Vitalik氏は、彼の記事「A note on data availability and erasure coding」で、これらの問題とその解決策について簡単に説明しています。 彼は、DA(Data Availability)証明は本質的に不正証明の「補完」であると指摘しました。
しかし、DAの概念を説明するのは簡単ではなく、Vitalik氏のGitHubドキュメントには18回の修正があり、最後の修正は2018年9月25日に提出されている。 その前日の2018年9月24日、Celestiaの創業者であるムスタファとヴィタリックは、後に有名な論文「Fraud and Data Availability Proofs: Maximising Light Client Security and Scaling Blockchains with Dishonest Majorities」を共同執筆しました。
興味深いことに、この論文の筆頭著者はVitalikではなく、Mustafa氏としてリストされています(別の著者は現在、Suiパブリックブロックチェーンの研究者です)。 この論文では、Fraud Proofsの概念に言及し、DAS+2次元消去コーディング+Fraud Proproofsの混合プロトコルを大まかに設計するData Availability Sampling(DAS)の原理を説明しています。 この論文では、DAプルーフシステムが不正プルーフを補完するために必要なものであると具体的に言及しています。
ヴィタリックの視点から見ると、プロトコルは次のように機能します。
パブリックブロックチェーンには、大容量のハードウェアを備えたN個のコンセンサスノード(バリデーター)があり、高いデータスループットと効率が可能になるとします。 このようなブロックチェーンはTPS(Transactions Per Second)が高いかもしれませんが、コンセンサスノードの数であるNは比較的少ないため、ノード間の共謀の確率が高く、より中央集権化されています。
ただし、N個のコンセンサスノードのうち少なくとも1つが正直であると仮定されます。 少なくとも1/Nのバリデーターが誠実で、ブロックが無効な場合に不正の証拠を検出してブロードキャストできる限り、ライトクライアントまたは誠実なバリデーターはネットワークのセキュリティ問題に気づき、悪意のあるノードのスラッシュやソーシャルコンセンサスフォークなどのメカニズムを使用してネットワークを正常に戻すことができます。
ヴィタリックが前述したように、誠実なフルノードがブロックを受信し、一部の部分に欠けていることに気づき、不正の証拠を公開した場合、ブロック提案者がその部分を公開しなかったのか、送信中に他のノードによって保留されたのか、それとも不正の証拠を公開したノードによる偽旗なのかを判断することは困難です。 さらに、大多数のノードが共謀した場合、1/Nの誠実なバリデータが孤立し、新しいブロックを受け取ることができなくなり、データ保留攻撃のシナリオになります。 このような場合、誠実なノードは、それがネットワークの状態が悪いのか、他のノードによる意図的な源泉徴収の陰謀によるものなのかを判断できず、他のノードも孤立しているかどうかを知ることができず、過半数がデータ源泉徴収を共謀したかどうかを判断することが困難になります。
したがって、誠実なバリデーターがブロックの検証に必要なデータを取得できることを非常に高い確率で保証する方法が必要です。また、データ差し込み攻撃の背後にいるのは誰なのか、ブロック提案者が十分なデータを公開できなかったのか、他のノードによって差し控えられたのか、それとも多数派の陰謀なのかを特定します。 明らかに、このセキュリティモデルは、一般的なPoSチェーンで一般的な「正直な多数派の仮定」よりもはるかに多くの保護を提供し、データ可用性サンプリング(DAS)は特定の実装方法です。
ネットワーク内に多数のライトノードがあり、おそらくNの10倍で、それぞれが複数のバリデーターに接続されていると仮定します(簡単にするために、各ライトノードがすべてのN個のバリデーターに接続されていると仮定します)。 これらのライトノードは、バリデーターから複数のデータサンプリングを行い、そのたびにデータのごく一部(ブロックの1%に過ぎないと仮定)をランダムに要求します。 そして、このデータがないバリデーターに、取得したフラグメントを拡散します。 十分なライトノードがあり、データサンプリングの頻度が十分に高い限り、一部のリクエストが拒否されたとしても、ほとんどのリクエストが応答されている限り、すべてのバリデータが最終的にブロックを検証するために必要な量のデータを取得できることを保証できます。 これにより、ブロック提案者以外のノードによるデータ保留の影響を打ち消すことができます。
(画像提供:W3 Hitchhiker)
バリデーターの大多数が共謀して、ライトノードからのほとんどのリクエストに応答することを拒否した場合、人々はチェーンに問題があることに簡単に気づくでしょう(インターネットが貧弱な人がいても、ほとんどのライトノードのリクエストが拒否されることはないからです)。 したがって、前述のスキームは、多数派の陰謀行動を決定する可能性が非常に高いですが、そのような状況自体はまれです。 このアプローチでは、ブロック提案者以外のソースからの不確実性を解決できます。 ブロック提案者が、ブロック内のデータを検証しないのに十分なデータを公開しないなど、データを差し控える場合(2次元イレイジャーコーディングを導入した後、ブロックには2k2kのフラグメントが含まれ、ブロックの元のデータを復元するには、少なくとも約kkのフラグメント、つまり1/4が必要です。 他の人が元のデータを復元するのを防ぐために、提案者は少なくともk+1*k+1フラグメントを差し控える必要があります)、それらは最終的に誠実なバリデーターによって検出され、バリデーターは他の人に警告するために不正の証拠をブロードキャストします。
ヴィタリック氏とムスタファ氏によると、彼らが行ったのは基本的に、すでに他の人が提案していたアイデアを組み合わせて、その上に独自のイノベーションを加えることでした。 概念と実装方法を全体として見ると、「データの可用性」とは、最新のブロックを検証するために必要なデータがブロック提案者によって公開されているかどうか、および検証者が受信できるかどうかを指していることは明らかです。 これは、「履歴データを取得できるかどうか」ではなく、データが「完全に公開されている」かどうかに関するものです。
上記のアサーションで、イーサリアムロールアップでデータ可用性(DA)がどのように実装されているかを見てみましょう。 ロールアップのブロック提案者はシーケンサーとして知られており、イーサリアム上のレイヤー2の状態遷移を検証するために必要なデータを一定間隔で公開します。 具体的には、指定されたコントラクトに対してトランザクションを開始し、DA関連のデータをカスタム入力パラメータに詰め込み、イーサリアムブロックに記録します。 イーサリアムの高度な分散化を考えると、シーケンサーによって提出されたデータは「検証者」によってスムーズに受信されることが保証されます。 ただし、「検証者」の役割を果たすエンティティは、さまざまなロールアップネットワークによって異なります。
例えば、アービトラムの場合、シーケンサーはイーサリアム上の特定のコントラクトにトランザクションのバッチを投稿します。 コントラクト自体はこのデータを検証しませんが、L2フルノードがリッスンするイベントを発行し、シーケンサーがトランザクションのバッチを公開したことを知らせます。 具体的には、ZK Rollupsはイーサリアム上のVerifierコントラクトを「Verifier」として使用します。 ZK ロールアップは、状態の差分 + 有効性の証明、つまり状態の変化に関する情報と有効性の証明を発行するだけで済みます。 Verifier コントラクトは、有効性の証明をチェックして、State Diff と一致するかどうかを確認します。 検証に合格すると、シーケンサーによってパブリッシュされたL2ブロック/バッチが有効と見なされます。
(出典:旧Polygon Hermez白書)
オプティミスティックロールアップは、データのダウンロードとブロックの有効性の検証をL2フルノードのみに依存しているため、イーサリアムにより多くのデータを公開する必要があります。 つまり、少なくとも、各L2トランザクションのデジタル署名(現在、一般的に集約された署名を使用)を開示する必要があります。 コントラクト呼び出しが行われる場合は、トランザクション転送アドレス、リプレイ攻撃を防ぐためのノンス値などに加えて、入力パラメータも開示する必要があります。 ただし、完全なトランザクションデータと比較すると、まだトリミングが残っています。
ZK ロールアップと比較すると、ZK ロールアップは ZK SNARK/STARK の簡潔さを活用して、トランザクションのバッチが実行された後に最終的な状態の変化を開示するだけでよく、有効性の証明を伴うため、オプティミスティック ロールアップの DA (データ可用性) コストが高くなります。一方、オプティミスティック ロールアップは最も面倒な方法しか使用できず、すべてのトランザクションを他の L2 フル ノードで再実行する必要があります。
以前、W3hitchhikerは、EIP-4844とブロブの将来の開発を考慮しない場合、ZKR(ゼロ知識ロールアップ)のスケーリング効果はOPR(オプティミスティックロールアップ)の数倍に達する可能性があると大まかに見積もっていました。 EIP-4337に関連するスマートウォレット(秘密鍵署名の代わりに指紋、虹彩データを使用する)を考慮すると、ZKRの利点はさらに明白になります。
ValidiumとPlasma/Optimiumに関しては、実際にはイーサリアムのオフチェーンDAレイヤーを使用してDAを実現しています。 例えば、妥当性証明システムを採用したImmutableXは、DA関連のデータを公開するためのDAC(Data Availability Committee)ノードをセットで設置しています。MetisはMemlabsでDAデータを公開し、RoochとMantaはCelestiaを使用しています。 現在、DAS(Data Availability Solutions)と不正防止システムの存在により、Celestiaはイーサリアム以外で最も信頼できるDAレイヤープロジェクトの1つです。
はじめに:
データの可用性とは正確には何ですか? ほとんどの人にとって、第一印象は「特定の瞬間の履歴データにアクセスする」ことかもしれませんが、これは実際にはDAの概念の大きな誤解です。 最近、L2BEATの共同創設者とDankshardingの支持者、そしてCelestiaの創設者が、この誤解を解き明かしました。 彼らは、データ可用性(DA)は実際には「データ公開」を指すべきであると指摘しましたが、ほとんどの人はDAを「履歴データの検索可能性」と解釈しており、実際にはデータストレージの問題を伴います。
例えば、少し前にDankradは、Validiumの強制撤退/脱出ハッチのメカニズムについて言及し、Validiumの強制撤退はマークルプルーフを構築するために最新のL2状態を取得する必要があるのに対し、Plasmaは7日前のデータしか必要としないことを指摘しました(これは、正当な状態ルートを決定する方法に関連しています)。
これにより、Dankrad氏は、Validiumはユーザー資金のセキュリティを確保するためにDAを要求しているが、Plasmaはそうではないと明確に指摘しました。 ここで、Dankradのユースケースは、DAと履歴データ取得の違いを指摘しており、DAは新しくリリースされたデータのみを含むことが多いということです。
L2BEATでは、データ可用性(DA)とデータストレージ(DS)の区別がさらに強調されています。 L2BEATのBartek氏は、DAとデータストレージ/履歴データの取得可能性は別物であり、ユーザーが必要なL2データにアクセスできるのは、データを提供するノードが「あなたに親切」であるからに他ならないと繰り返し強調しています。 さらに、L2BEATは、DAを超えて、ロールアップを評価するための新しい指標として、「許可されたデータストレージノードが利用可能かどうか」を使用する予定です。
イーサリアムコミュニティ/イーサリアム財団のメンバーからの声明は、レイヤー2自体のより詳細な定義を提供するだけでなく、将来的にレイヤー2に関連する概念を明確にし、洗練させる意図を示しています。 これは、RollupやL2に関連する多くの用語が明確に説明されていないためで、スマートコントラクトは過去256ブロックのデータしか呼び出せないため、256ブロック(50分)以前のデータは「履歴」と見なされると考える人もいます。
しかし、CelestiaとEthereum Foundationが言及した「ロールアップ」は、厳密には2つの異なるものを指します。 この記事では、DA の概念とデータ ストレージの違いを、DA のソースであるデータ可用性サンプリングからロールアップでの DA の実装方法まで明確にし、データの可用性の真の意味であるデータ公開について説明します。
DAの概念は「データの可用性」の問題に由来し、Celestiaの創設者であるムスタファは次のように説明しています。 DAは、ブロックプロデューサーが新しいブロックを提案したときに、ブロック内のすべてのデータがネットワークに公開されるようにする方法に関するものです。 ブロックプロデューサーがブロック内のすべてのデータを解放しない場合、ブロックに誤ったトランザクションが含まれているかどうかを確認することは不可能です。
ムスタファ氏はまた、イーサリアムロールアップはイーサリアムチェーン上でL2ブロックデータを公開し、データの可用性を確保するためにETHに依存していると指摘しています。 イーサリアムの公式サイトでは、データ可用性の問題は「新しいブロックのデータが利用可能かどうかをどのように検証するか」という質問としてまとめられています。 ライトクライアントの場合、データの可用性の問題は、ブロック全体をダウンロードせずにブロックの可用性を検証することを指します。
また、イーサリアムの公式サイトでは、データの可用性とデータの取得可能性を明確に区別しており、データ可用性とは、ブロックデータが提案されたときにノードがダウンロードする能力、つまりブロックがコンセンサスに達するまでの時間に関するものです。 データ検索可能性とは、ノードがブロックチェーンから履歴情報を取得する能力を指します。 アーカイブにはブロックチェーンの履歴データが必要な場合がありますが、ノードはブロックの検証やトランザクションの処理に履歴データを使用する必要はありません。
Celestiaの中国人コントリビューターであり、W3HitchhikerのパートナーであるRen Hongyi氏の見解では、レイヤー2はイーサリアムが十分に安全で分散化されていることを事前に前提としています。 ソーターは自信を持ってDAデータをイーサリアムに送信でき、このデータはすべてのイーサリアムのフルノードに妨げられることなく伝播されます。 L2フルノード自体がGethクライアントを実行するため、イーサリアムのフルノードのサブセットと見なされ、レイヤー2のDAデータを受信できます。
EthStorageの創設者であるQi Zhou博士の目には、データ可用性(DA)の定義は、ユーザーがネットワークに送信したトランザクションデータを差し控えることはできないということです。 対応する信頼モデルは、レイヤー 1 (L1) 自体のプロトコルのみを信頼するだけでよく、他の信頼の前提を導入する必要はありません。
Qi Zhou氏は、イーサリアムにおけるDAの現在の実装は、基本的にP2Pブロードキャスティング(ゴシッププロトコルを使用)であり、すべてのフルノードが新しいブロックをダウンロードし、伝播し、ロールアップデータを保存すると指摘しています。 ただし、イーサリアムのフルノードは、履歴ブロックを永久に保存するわけではありません。 EIP-4844の実装後、特定の時間(明らかに18日前)のデータが自動的に削除される可能性があります。 世界中のすべての履歴データを格納するアーカイブノードは多くありません。 EthStorageは、イーサリアムエコシステムのこのギャップを埋め、レイヤー2が専用のデータ永続性ノードを確立するのを支援することを計画しています。
イーサリアム財団によるデータの可用性に関する初期の議論は、2017年のヴィタリック・ブテリンのツイートとGitHubのドキュメントで見ることができます。 当時、彼はブロックチェーンのスケーラビリティと効率を確保するために、フルノードのハードウェア構成を増やす必要があると考えていました(フルノードは完全なブロックをダウンロードしてその有効性を検証するものであり、コンセンサスに参加するバリデーターはフルノードのサブセットです)。 しかし、フルノードのハードウェア要件を増やすと、運用コストも増加し、ブロックチェーンの集中化につながります。
この件に関して、Vitalik氏は、高性能フルノードの集中化傾向がもたらすセキュリティリスクに対処するためのスキームを設計することを提案しました。 彼は、イレイジャーコードとデータランダムサンプリングを導入して、ハードウェア能力の低いライトノードが、ブロック全体を知らなくてもブロックに問題がないことを検証できるプロトコルを設計することを計画しました。
彼の最初のアイデアは、実際にはビットコインのホワイトペーパーで言及されているアイデアに関連しており、ライトノードは完全なブロックを受け取る必要はありませんが、ブロックに問題がある場合は正直なフルノードによって警告されると述べています。 この概念は、後の不正証明に拡張することができますが、誠実なフルノードが常に十分なデータを取得できることを保証するものではなく、ブロック提案者が一部のデータの公開を差し控えたかどうかを事後に判断することもできません。
たとえば、ノードAは、ノードBから不完全なブロックを受け取ったと主張する不正の証拠を公開できます。しかし、不完全なブロックがAによって捏造されたのか、Bによって送られたのかを判断することは不可能であり、Vitalikは、この問題は明らかにデータ公開の問題を伴うデータ可用性サンプリング(DAS)によって解決できると指摘しました。
Vitalik氏は、彼の記事「A note on data availability and erasure coding」で、これらの問題とその解決策について簡単に説明しています。 彼は、DA(Data Availability)証明は本質的に不正証明の「補完」であると指摘しました。
しかし、DAの概念を説明するのは簡単ではなく、Vitalik氏のGitHubドキュメントには18回の修正があり、最後の修正は2018年9月25日に提出されている。 その前日の2018年9月24日、Celestiaの創業者であるムスタファとヴィタリックは、後に有名な論文「Fraud and Data Availability Proofs: Maximising Light Client Security and Scaling Blockchains with Dishonest Majorities」を共同執筆しました。
興味深いことに、この論文の筆頭著者はVitalikではなく、Mustafa氏としてリストされています(別の著者は現在、Suiパブリックブロックチェーンの研究者です)。 この論文では、Fraud Proofsの概念に言及し、DAS+2次元消去コーディング+Fraud Proproofsの混合プロトコルを大まかに設計するData Availability Sampling(DAS)の原理を説明しています。 この論文では、DAプルーフシステムが不正プルーフを補完するために必要なものであると具体的に言及しています。
ヴィタリックの視点から見ると、プロトコルは次のように機能します。
パブリックブロックチェーンには、大容量のハードウェアを備えたN個のコンセンサスノード(バリデーター)があり、高いデータスループットと効率が可能になるとします。 このようなブロックチェーンはTPS(Transactions Per Second)が高いかもしれませんが、コンセンサスノードの数であるNは比較的少ないため、ノード間の共謀の確率が高く、より中央集権化されています。
ただし、N個のコンセンサスノードのうち少なくとも1つが正直であると仮定されます。 少なくとも1/Nのバリデーターが誠実で、ブロックが無効な場合に不正の証拠を検出してブロードキャストできる限り、ライトクライアントまたは誠実なバリデーターはネットワークのセキュリティ問題に気づき、悪意のあるノードのスラッシュやソーシャルコンセンサスフォークなどのメカニズムを使用してネットワークを正常に戻すことができます。
ヴィタリックが前述したように、誠実なフルノードがブロックを受信し、一部の部分に欠けていることに気づき、不正の証拠を公開した場合、ブロック提案者がその部分を公開しなかったのか、送信中に他のノードによって保留されたのか、それとも不正の証拠を公開したノードによる偽旗なのかを判断することは困難です。 さらに、大多数のノードが共謀した場合、1/Nの誠実なバリデータが孤立し、新しいブロックを受け取ることができなくなり、データ保留攻撃のシナリオになります。 このような場合、誠実なノードは、それがネットワークの状態が悪いのか、他のノードによる意図的な源泉徴収の陰謀によるものなのかを判断できず、他のノードも孤立しているかどうかを知ることができず、過半数がデータ源泉徴収を共謀したかどうかを判断することが困難になります。
したがって、誠実なバリデーターがブロックの検証に必要なデータを取得できることを非常に高い確率で保証する方法が必要です。また、データ差し込み攻撃の背後にいるのは誰なのか、ブロック提案者が十分なデータを公開できなかったのか、他のノードによって差し控えられたのか、それとも多数派の陰謀なのかを特定します。 明らかに、このセキュリティモデルは、一般的なPoSチェーンで一般的な「正直な多数派の仮定」よりもはるかに多くの保護を提供し、データ可用性サンプリング(DAS)は特定の実装方法です。
ネットワーク内に多数のライトノードがあり、おそらくNの10倍で、それぞれが複数のバリデーターに接続されていると仮定します(簡単にするために、各ライトノードがすべてのN個のバリデーターに接続されていると仮定します)。 これらのライトノードは、バリデーターから複数のデータサンプリングを行い、そのたびにデータのごく一部(ブロックの1%に過ぎないと仮定)をランダムに要求します。 そして、このデータがないバリデーターに、取得したフラグメントを拡散します。 十分なライトノードがあり、データサンプリングの頻度が十分に高い限り、一部のリクエストが拒否されたとしても、ほとんどのリクエストが応答されている限り、すべてのバリデータが最終的にブロックを検証するために必要な量のデータを取得できることを保証できます。 これにより、ブロック提案者以外のノードによるデータ保留の影響を打ち消すことができます。
(画像提供:W3 Hitchhiker)
バリデーターの大多数が共謀して、ライトノードからのほとんどのリクエストに応答することを拒否した場合、人々はチェーンに問題があることに簡単に気づくでしょう(インターネットが貧弱な人がいても、ほとんどのライトノードのリクエストが拒否されることはないからです)。 したがって、前述のスキームは、多数派の陰謀行動を決定する可能性が非常に高いですが、そのような状況自体はまれです。 このアプローチでは、ブロック提案者以外のソースからの不確実性を解決できます。 ブロック提案者が、ブロック内のデータを検証しないのに十分なデータを公開しないなど、データを差し控える場合(2次元イレイジャーコーディングを導入した後、ブロックには2k2kのフラグメントが含まれ、ブロックの元のデータを復元するには、少なくとも約kkのフラグメント、つまり1/4が必要です。 他の人が元のデータを復元するのを防ぐために、提案者は少なくともk+1*k+1フラグメントを差し控える必要があります)、それらは最終的に誠実なバリデーターによって検出され、バリデーターは他の人に警告するために不正の証拠をブロードキャストします。
ヴィタリック氏とムスタファ氏によると、彼らが行ったのは基本的に、すでに他の人が提案していたアイデアを組み合わせて、その上に独自のイノベーションを加えることでした。 概念と実装方法を全体として見ると、「データの可用性」とは、最新のブロックを検証するために必要なデータがブロック提案者によって公開されているかどうか、および検証者が受信できるかどうかを指していることは明らかです。 これは、「履歴データを取得できるかどうか」ではなく、データが「完全に公開されている」かどうかに関するものです。
上記のアサーションで、イーサリアムロールアップでデータ可用性(DA)がどのように実装されているかを見てみましょう。 ロールアップのブロック提案者はシーケンサーとして知られており、イーサリアム上のレイヤー2の状態遷移を検証するために必要なデータを一定間隔で公開します。 具体的には、指定されたコントラクトに対してトランザクションを開始し、DA関連のデータをカスタム入力パラメータに詰め込み、イーサリアムブロックに記録します。 イーサリアムの高度な分散化を考えると、シーケンサーによって提出されたデータは「検証者」によってスムーズに受信されることが保証されます。 ただし、「検証者」の役割を果たすエンティティは、さまざまなロールアップネットワークによって異なります。
例えば、アービトラムの場合、シーケンサーはイーサリアム上の特定のコントラクトにトランザクションのバッチを投稿します。 コントラクト自体はこのデータを検証しませんが、L2フルノードがリッスンするイベントを発行し、シーケンサーがトランザクションのバッチを公開したことを知らせます。 具体的には、ZK Rollupsはイーサリアム上のVerifierコントラクトを「Verifier」として使用します。 ZK ロールアップは、状態の差分 + 有効性の証明、つまり状態の変化に関する情報と有効性の証明を発行するだけで済みます。 Verifier コントラクトは、有効性の証明をチェックして、State Diff と一致するかどうかを確認します。 検証に合格すると、シーケンサーによってパブリッシュされたL2ブロック/バッチが有効と見なされます。
(出典:旧Polygon Hermez白書)
オプティミスティックロールアップは、データのダウンロードとブロックの有効性の検証をL2フルノードのみに依存しているため、イーサリアムにより多くのデータを公開する必要があります。 つまり、少なくとも、各L2トランザクションのデジタル署名(現在、一般的に集約された署名を使用)を開示する必要があります。 コントラクト呼び出しが行われる場合は、トランザクション転送アドレス、リプレイ攻撃を防ぐためのノンス値などに加えて、入力パラメータも開示する必要があります。 ただし、完全なトランザクションデータと比較すると、まだトリミングが残っています。
ZK ロールアップと比較すると、ZK ロールアップは ZK SNARK/STARK の簡潔さを活用して、トランザクションのバッチが実行された後に最終的な状態の変化を開示するだけでよく、有効性の証明を伴うため、オプティミスティック ロールアップの DA (データ可用性) コストが高くなります。一方、オプティミスティック ロールアップは最も面倒な方法しか使用できず、すべてのトランザクションを他の L2 フル ノードで再実行する必要があります。
以前、W3hitchhikerは、EIP-4844とブロブの将来の開発を考慮しない場合、ZKR(ゼロ知識ロールアップ)のスケーリング効果はOPR(オプティミスティックロールアップ)の数倍に達する可能性があると大まかに見積もっていました。 EIP-4337に関連するスマートウォレット(秘密鍵署名の代わりに指紋、虹彩データを使用する)を考慮すると、ZKRの利点はさらに明白になります。
ValidiumとPlasma/Optimiumに関しては、実際にはイーサリアムのオフチェーンDAレイヤーを使用してDAを実現しています。 例えば、妥当性証明システムを採用したImmutableXは、DA関連のデータを公開するためのDAC(Data Availability Committee)ノードをセットで設置しています。MetisはMemlabsでDAデータを公開し、RoochとMantaはCelestiaを使用しています。 現在、DAS(Data Availability Solutions)と不正防止システムの存在により、Celestiaはイーサリアム以外で最も信頼できるDAレイヤープロジェクトの1つです。