数据可用性(DA):Celestia、Blob 与模块化区块链

系统拆解数据可用性问题:DA 的本质、calldata 成本困境、EIP-4844 Blob 与 Danksharding、纠删码与 DA 采样、Celestia 模块化 DA 层、EigenDA 方案、DA 与 Rollup 的耦合及选型。

一条链「安全」不仅指交易被正确执行,还要求所有数据都能被任何人读取重建。如果执行结果只有少数节点知道,轻节点无法验证、用户无法提款、挑战者无法作证——链就「可用性」上崩塌了。这就是数据可用性(Data Availability, DA)问题的本质。

本文从「DA 为什么重要」讲起:calldata 的成本困境 → EIP-4844 Blob 与 Danksharding → 纠删码与 DA 采样 → Celestia 独立 DA 层 → EigenDA/委员会方案 → DA 与 Rollup 的耦合 → 模块化堆栈 → 选型决策。

前置:/layer2-scaling/(Rollup 与扩容)、/blockchain-fundamentals/(区块链数据模型)、/consensus-mechanisms/(共识与全节点)。


目录


1. DA 问题的本质:数据必须可用吗

可用性 = 可重建性:任何时间点,外部观察者应能拿到「重建链状态所需的全部数据」。完整节点存全部历史可重放;轻节点只存头块,靠采样/见证验证——DA 问题问的正是「怎么让轻节点也确信数据存在且完整,而不用下载全量」。

可用性攻击:恶意出块者只公布区块头、不公布区块体:

出块 → 只公布 header → 轻节点看到 header 却拿不到 body
后果:无法验证交易、无法挑战、无法提款
性质:不是双花,而是「把链变成不透明黑箱」

为什么 DA 是 Rollup 的命门:Optimistic 挑战者需 L2 数据重放验证(缺失即无法挑战);ZK 验证者需数据重建状态;用户需数据执行提款证明——数据缺失即资金被锁。

记忆:DA 问题问的是「数据到底有没有被所有人看到」——执行可以外包给 Rollup,但数据不能被少数人把持,否则安全就变成了「少数人说了算」。


2. 链上 calldata 时代的成本困境

EIP-4844 之前:Rollup 把批次数据写入 L1 的 calldata——每字节都算 L1 gas,L1 拥堵时 base fee 飙涨,L2 成本跟着跳。

calldata 的浪费:calldata 里的数据对 EVM 可见、可被合约读取,但 Rollup 批次数据「只是被存着」,没有合约逻辑需要读它——为「存储」付「执行存储」的价,资源错配。

成本对比(约数):

方式每 1KB 数据说明
calldata高(约 $0.2-2 依 base fee)全量执行计价
Blob低(约 $0.01-0.1)只按容量计价
独立 DA最低用别的链/委员会记账

为什么 Blob 更便宜:blob 数据只做「承诺 + 短期存储」,EVM 不执行不解析;计费与 L1 gas 市场隔离;约 18 天后过期删除(Rollup 已足够重建)。

记忆:calldata 是「给合约读的存储」,blob 是「给外部验证的广播」——把 Rollup 数据从前者挪到后者,就是 EIP-4844 成本革命的全部。


3. Blob:EIP-4844 与 Danksharding

EIP-4844(Proto-Danksharding) 引入 blob 交易类型 0x03:

□ 附 1-6 个 blob(每个约 128KB)
□ 执行层只校验 blob 的 KZG 承诺,不执行内容
□ 共识层把 blob 短暂保留(约 18 天)后允许清理

KZG 承诺:给 blob 内容做多项式承诺指纹——验证者不必下载 blob 也能确认它「没被人中途改过」。

Danksharding(完整版):把 blob 空间按「槽位」切分,让更多 Rollup 共享;配套 PBS(提议者撮合)+ 多维费用市场。4844 已落地,Danksharding 分阶段推进。

Blob 上 Rollup 的落地形态(示意):

blob_versioned_hashes: ["0x01f5..."]
blob_data:
  - rollup_id: arbitrum
    compressed_batch: "0x..."
    state_root: "0x..."

记忆:Blob = 「不执行只承诺」的数据广播通道——EIP-4844 先落地、Danksharding 扩带宽,目标都是让 Rollup 的「数据账单」与 L1 执行市场解耦。


4. 纠删码与 DA 采样

轻节点如何确信数据完整?全量下载太重,随机采样 + 纠删码组合解决:

纠删码:原始数据分 k 块 → 扩展出 n 块(n > k),任意 k 块可还原全部
  → 恶意扣留部分块不影响重建
DA 采样:轻节点随机抽查 c 块,缺块超阈值 → 视为数据不可用
  → 抽查 20 块、每块 50% 被扣的概率是 2^-20

Celestia 的 DAS 示例:区块纠删后分片,轻节点按比例随机采样,样本数量决定可信度,采样成本与区块大小无关。

记忆:纠删码让「少数数据也能还原全部」,采样让「抽查几块就能证明存在」——两者叠加,轻节点的验证成本从「下载整块」降到「只抽几块」,这是 DA 规模化的数学基础。


5. Celestia:模块化 DA 层

Celestia 把自己做成「只做 DA 的链」:不管执行、不管结算,只负责「排序 + 公开数据」:

模块化堆栈:Celestia(DA + 共识) ← Rollup(执行) → 结算(L1 或其他)
Celestia 提供:
  □ 数据广播:Rollup 批次数据写进来
  □ 排序保证:谁先写谁先出(consensus on data order)
  □ 数据可用性证明:DAS + 纠删码,轻节点可验证

为什么需要独立 DA 链:隔离资源(不跟 L1 抢区块空间)、扩容数据带宽、一条 DA 链服务多个 Rollup。

Celestia 上的提交(示意):

namespace: rollup-arbitrum
data: "0x..压缩批次.."
height: 4823901
commitment: "0x..KZG 承诺.."

记忆:Celestia = 「数据批发市场」——执行、结算都外包,只把「排序 + 公开 + 可验证」做到极致,让 Rollup 按需买带宽,不用跟别人挤 L1 的区块空间。


6. 其他 DA 方案:EigenDA 与委员会

EigenDA:基于 EigenLayer 再质押的 DA 服务——用「质押 ETH」当「保证数据会被公开」的信用:Operator 再质押 ETH → 签收/保管数据 → 出错削减质押 → Rollup 拿到「数据可用性证明」。

委员会(Committee)方案:一组可信节点签名「我们保管了数据」;轻节点信任集体签名而非自行采样,t-of-n 诚实假设,成本更低、信任更强。

各 DA 方案对比:

方案信任模型成本典型使用方
L1 calldata无额外信任高早期 Rollup
L1 Blob无额外信任中主网 Rollup
Celestia独立共识 + DAS低模块化 Rollup
EigenDA再质押削减低对主网有耦合的 L2
委员会t-of-n 信任最低私有/联盟链

决策:DA 的「信任模型」决定选型——要 L1 级安全选 Blob,要便宜且能承受跨链信任选 Celestia/EigenDA,联盟场景用委员会;每条 Rollup 都要在「成本、安全、去中心化」里明确自己的 DA 底线。


7. DA 与 Rollup 的耦合关系

DA 选型 = Rollup 安全层级的选择:

□ 用 L1 数据(calldata/Blob):Rollup 安全与 L1 完全对齐
□ 用独立 DA(Celestia):Rollup 安全 = Celestia 安全 + 跨链假设
□ 用 EigenDA:额外引入「削减激励」的安全模型

耦合的影响面:结算依赖(提款证明需 DA 数据,DA 停摆则资金可锁)、挑战依赖(欺诈证明需 DA 数据)、活性(DA 链出问题则 Rollup 无法提交批次)、最终性(DA 确认与 L1 结算的一致性)。

数据不可用攻击对 Rollup 的威胁:恶意排序器提交批次到 DA、却对用户扣下真实数据 → 用户无法重建状态、无法挑战 → 对策是 L1 检测数据缺失后冻结提款/暂停。

记忆:「DA 是 Rollup 的地基」——你选的数据层决定你的安全上限,独立 DA 的便宜是以「多一层信任」为代价,主网 Blob 的贵买的是「与 L1 同寿」的安心。


8. 模块化区块链堆栈

模块化拆分把一条链的四项职责拆给不同层:

┌─────────┬─────────┬─────────┬─────────┐
│ 执行层   │ 结算层   │ DA 层    │ 共识层   │
├─────────┼─────────┼─────────┼─────────┤
│ 跑交易   │ 定最终性 │ 存数据   │ 定顺序   │
│ Rollup  │ L1/结算链│ Blob/DA │ 共识链   │
└─────────┴─────────┴─────────┴─────────┘

模块化组合示例:全模块化(执行 Rollup + 结算 L1 + DA Celestia + 共识 Celestia);半模块化(执行 Rollup + 结算 L1 + DA = L1 Blob,当前主流);单片链(Solana/以太坊主网,四职责一体)。

模块化的代价:跨层信任(每层假设叠加)、互操作(数据跨层需证明/桥)、延迟(多跳确认增加最终性时间)。

决策:不是所有链都该模块化——单链追求极致简单,模块化追求灵活与规模;项目起步用「执行 + L1 结算 + L1 DA」的最简组合,吞吐瓶颈出现再引入独立 DA。


9. 选型:何时用独立 DA

决策树:数据到底放哪?

Q1. 需要与 L1 完全同等级安全吗?
  ├─ 是 → 用 L1 Blob/calldata(主网 Rollup)
  └─ 否 → Q2
Q2. 数据吞吐需求大吗(高频 L2)?
  ├─ 大 → 独立 DA(Celestia/EigenDA)扩带宽
  └─ 小 → L1 Blob 够用
Q3. 能承受「多一层信任 + 跨链假设」吗?
  ├─ 能 → 独立 DA 换取低成本
  └─ 不能 → 回归 L1 数据,用压缩/批量优化成本

关键指标:数据成本/笔交易(选型直接驱动力)、DA 链活性 SLA、结算一致性(数据确认与 L1 结算对齐)、合规/监管(数据存哪个法域、谁可审查)。

决策:「主网级项目用 Blob、吞吐型项目用 Celestia/EigenDA、联盟场景用委员会」——选型前先量化自己的 TPS 与单笔数据成本,再对照 DA 链的信任模型,没有银弹。


10. 速查表与一句话记忆

概念要点
DA 问题数据是否所有人都能拿到重建
可用性攻击只发头块不发数据,链变黑箱
calldata旧时代数据通道,贵
BlobEIP-4844,不执行只承诺,便宜
Danksharding完整版 Blob 扩容
纠删码少数块可还原全部
DA 采样抽查几块概率确认存在
Celestia独立 DA 链,DAS 验证
EigenDA再质押削减当保证
选型主网用 Blob,吞吐用独立 DA

一句话记忆:DA 是「数据被所有人看见」的保证——纠删码让少量数据还原全部、采样让轻节点抽查即信;Blob 用不执行的广播把成本砍掉九成,Celestia/EigenDA 把 DA 独立成市场;选型看「要 L1 级安全(Blob)还是要便宜带宽(独立 DA)」,数据放哪决定 Rollup 的安全地基。


延伸阅读

  • /layer2-scaling/ — Layer2 与 Rollup 扩容
  • /blockchain-fundamentals/ — 区块链数据模型
  • /consensus-mechanisms/ — 共识与全节点
  • /blockchain-mev-pbs/ — 区块构建与 PBS
  • /cross-chain-bridges/ — 跨链与互操作
  • [[blockchain-web3]] — 区块链 Web3 专题

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页

「区块链 Web3」更多文章

  1. 多签钱包与资产托管:Safe、MPC 与密钥管理
  2. 区块链监管合规:MiCA、稳定币与反洗钱实践
  3. Rollup 架构深度:Optimistic、ZK 与结算层设计