データ可用性
データ可用性(DA)とは、ロールアップの状態の背後にあるトランザクションデータが、誰もが読めるどこかに公開されることの保証です。これにより、誰もがロールアップの状態を独立して再構築し、検証できます。RDK は 3 つの DA バックエンドを定義していますが、現在実装されているのは native のみです。
| バックエンド | 内容 | ステータス |
|---|---|---|
native | QoreChain 自体の内部にあるオンチェーンの blob ストレージ | モジュールには実装済み。blob を投稿する公開手段はまだありません(下記参照) |
celestia | 専用のモジュラー DA レイヤーである Celestia への IBC 経由のデータ可用性 | 未実装 |
both | 冗長性のための native と Celestia の併用 | 現時点では native とまったく同じ動作 |
どちらのネットワークでも、まだロールアップは作成されておらず、DA バックエンドも一部しか実装されていません。各バックエンドのステータスは以下に記載しています。いずれかに依存する前に、qorechain-diana テストネットで検証してください。
ネイティブ DA(オンチェーン blob ストレージ)
ネイティブ DA は x/rdk 内のオンチェーン blob ストアです。各 blob はロールアップ ID と blob インデックスでキー付けされ、そのバイト列の SHAKE-256 コミットメント を保持し、保持期間の経過後にプルーニングされますが、コミットメントは保持されます。
モジュールは blob のストレージ、保持、プルーニングを定義していますが、現在のリリースには blob を投稿するためのトランザクションメッセージがありません。送信メッセージがリリースされるまで、決済バッチは data_hash を空のままにする必要があります — native または both のロールアップでデータハッシュを指定したバッチは、対応する blob を保存できないため拒否されます。
主な概念:
- Blob。 blob はロールアップ ID と blob インデックスに関連付けられます。
- コミットメント。 各 blob はそのデータの 32 バイトの SHAKE-256 コミットメントを保持しているため、保存者を信頼することなく、コミットされた内容に対して blob を検証できます。(TypeScript ヘルパー
buildDaBlob()は現在 SHA-256 でハッシュ化するため、そのdataHashはチェーンのコミットメントと一致しません。) - 名前空間。 blob はロールアップ固有の名前空間を保持でき、共有ストレージ内で各ロールアップのデータを論理的に分離します。
- 保持とプルーニング。 ネイティブ blob は
blob_retention_blocks(432,000 ブロック — メインネットの現在のブロック時間 ≈3.2 秒で約 16 日。この数値はブロック時間によって変動します)の間保持された後、オンチェーンストレージを持続可能に保つためにプルーニングされます。プルーニング後は、生の blob データは削除されますがコミットメントのメタデータは保持されるため、バイトがオンチェーンに保存されなくなっても、過去のコミットメントは検証可能なまま残ります。
最大 blob サイズと保持期間は、稼働中のモジュールパラメータによって管理されています。特定の制限を前提に設計する前に、これらをクエリしてください:
qorechaind query rdk config
Celestia DA(Celestia への IBC)
Celestia DA は実装されていません。DA バックエンドが celestia のロールアップはデータを投稿できません(モジュールはエラーを返します)。想定されている設計は、決済を QoreChain 上にアンカーしたまま、専用のモジュラー DA ネットワークである Celestia への IBC を通じてデータ可用性を公開するものですが、現在どちらのネットワークにも IBC チャネルは存在しません(ブリッジアーキテクチャを参照)。native を使用してください。
Both(冗長性)
both バックエンドは、native と Celestia の両方 に書き込むことを意図しています。現時点では both は native とまったく同じ動作をします。保存されるのはネイティブのコピーのみで、Celestia 側は警告をログに記録してスキップされます。独立した 2 つのコピーとして扱わないでください。
バックエンドの選択
| 望むもの... | 選択 |
|---|---|
| 最もシンプルで完全にオンチェーンの、QoreChain のセキュリティを継承する選択肢 | native |
| 専用のモジュラーレイヤーに DA をオフロードする | celestia — 未実装 |
| 2 つのストアにまたがる冗長性 | both — 現時点では native と同じ |
DA がより広い決済の全体像にどのように組み込まれるかについては、ロールアップの概要 を参照してください。より低レベルのモジュールリファレンスについては、ロールアップ開発キット ページを参照してください。