01 · Blob
Blob 是数据车厢,不是永久硬盘。
EIP-4844 为 Rollup 开出独立数据通道;EVM 只看承诺,Blob 本体由共识层临时保证可用。
第十八章 · 第二课
以太坊的下一阶段,不是要求每台机器做得更多,而是让它们只检查足以证明全局正确的那一小部分。 Blob 承载数据,DAS 证明数据没有被藏起来,ZK 证明计算没有作弊。
01 · Blob
EIP-4844 为 Rollup 开出独立数据通道;EVM 只看承诺,Blob 本体由共识层临时保证可用。
02 · Danksharding
现代路线不把以太坊拆成多条执行链;它让节点分担数据,并用抽样获得全局可用性信心。
03 · ZK
ZK 可以证明“算对了”,但用户若拿不到数据,仍无法独立重建状态;两种保证必须同时成立。
Orientation
“能扩容”不是一个单一问题。执行、数据、验证分别在问不同的事,也需要不同的技术回答。
想象一家城市级清算所。商户把一整天的交易在店内处理,晚上只把账目摘要和必要凭证送到清算所。清算所不必逐笔重新收银,却必须回答三件事:账是按规则算的吗?任何人都能拿到账本重算吗?最终结果得到全城共同承认了吗?
Rollup 把大量执行移到 L2,再借以太坊获得数据可用性与结算安全。于是,以太坊扩容路线的中心问题从“L1 怎样亲自执行每一笔交易”,转向“L1 怎样以更小负担,仍然提供足够强的验证与数据保证”。本课目录的正式主题是 “Proto-Danksharding、Danksharding 与 ZK 技术”,它恰好对应这套转变。
交易按什么状态机运行?谁实际计算?输入如何得到输出?Rollup 让 L2 承担大部分执行。
验证和重建状态所需的数据,是否在需要时能被网络参与者取得?Blob 与 DAS 处理这一层。
其他人怎样确认执行遵守规则?重放、错误证明与有效性证明是不同的验证路径。
Proto-Danksharding 先建立 Blob 数据通道;PeerDAS 让节点分担并抽样数据;完整 Danksharding 继续扩大这一模式;ZK 则把“重做计算”压缩为“验证证明”。
The bottleneck
在 L2 内执行可以很便宜;为了继承以太坊安全,把数据发布到 L1 往往才是主要成本。
如果 L2 只告诉以太坊“新状态根是 X”,却不公开产生 X 所需的数据,外部观察者就无法重建状态、验证余额,也无法在排序器失灵时自行退出。于是,Rollup 必须向某个数据可用性层发布足够的数据。
EIP-4844 之前,Rollup 主要把这些字节塞进交易的 calldata。Calldata 会进入执行负载并长期保留,价格还与普通 L1 执行共用资源和费用逻辑。对只需要“让数据短期公开,以便任何人抓取并重建 L2”的 Rollup 来说,这像是为了租一辆短途货车,顺便买下整座永久仓库。
EVM 运算、状态读写、证明生成。L2 可横向扩展执行,但证明者仍承担真实计算。
数据传播、下载、短期保存。Blob 数增加会首先碰到 P2P 带宽与传播时延。
所有验证者要做多少工作才能接受区块?DAS 与简洁证明都在压低全网重复检查。
L2 吞吐量 ≠ L1 执行量。在 Rollup 中,L1 更像裁判、公告板与结算层,而不是每笔用户操作的执行者。
EIP-4844
Proto-Danksharding 把完整方案最有用、最兼容的一部分提前上线:Blob 交易格式、承诺和独立费用市场。
Proto-Danksharding 就是 EIP-4844。它没有完成全部数据分片,却先规定了未来 Rollup 应该怎样把数据交给以太坊。这样,Rollup 只需从 calldata 迁移到 Blob 一次;以后底层从“每个节点下载全部 Blob”升级到抽样,交易格式无需推倒重来。
EIP-4844 随 Dencun 于 2024 年 3 月 13 日激活。Pectra 在 2025 年 5 月通过 EIP-7691 提升 Blob 吞吐。Fusaka 于 2025 年 12 月带来 PeerDAS,随后两次 Blob Parameter Only 升级继续提高容量。这个演进说明:Proto 是前向兼容的协议地基,不是临时演示网络。
EIP-4844 上线:目标 3、上限 6 个 Blob/区块。
EIP-7691:目标 6、上限 9,过渡性扩容。
PeerDAS 上线;分步提升到目标 14、上限 21。
二维编码与更大数据容量仍处于未来研究和工程路线。
EIP-4844、EIP-7691 与 PeerDAS 均已上线;BPO2 后 Blob 目标为 14、上限为 21。BPO3 仍是草案,完整 Danksharding / FullDAS 尚未上线。页面后文会严格区分“已上线”“设计方向”和“概念直觉”。
| 能力 | Proto-Danksharding | PeerDAS | 完整 Danksharding / FullDAS |
|---|---|---|---|
| Blob 交易接口 | 已建立 | 沿用 | 继续沿用 |
| 节点下载模式 | 每个共识节点下载全部 Blob | 扩展后按列托管与抽样 | 目标是更完整的二维数据采样 |
| 数据编码 | Blob + KZG 承诺 | 每个 Blob 做一维纠删码扩展 | 跨数据矩阵的二维纠删码 |
| 状态 | 主网已上线 | 主网已上线 | 研究与未来工程路线 |
Blob anatomy
它是与交易绑定的大块二进制数据,但不进入 EVM 的可读内存;链上执行只接触它的密码学指纹。
Blob 是 binary large object 的简称。EIP-4844 的一个 Blob 由 4,096 个字段元素组成,每个元素 32 字节,所以原始容量为 131,072 字节,约 128 KiB。它通常承载压缩后的 L2 交易批次数据。
Blob 交易是类型 0x03 的 EIP-2718 typed transaction。交易正文包含 blob_versioned_hashes 与愿意支付的 Blob 费用;Blob 本体、KZG 承诺与证明作为网络侧的 sidecar 一起传播。执行层可以通过 BLOBHASH 取得版本化哈希,却不能像读取 calldata 那样读取 Blob 每一个字节。
Rollup 需要一段窗口,让任何观察者下载批次、验证或重建 L2 状态。只要数据在窗口内公开,诚实参与者就能把它复制到自己的节点、索引器或归档服务。之后,L1 只需永久保存对数据和结算结果的承诺,不必让所有共识节点永久背负每个字节。
这不是说数据“18 天后必然消失”,而是说协议的共识保证到此为止。要查询古老 Blob,应依赖 L2、归档节点或其他历史数据服务;要验证已经结算的 L1 状态,则依赖链上保存的承诺与状态。
Execution gas
合约计算、状态访问和 calldata 竞争执行资源;基础费随执行区块拥堵反馈。
Blob gas
Blob 竞争专用数据容量;自己的基础费根据 excess blob gas 独立变化。
Interactive lab · 01
以当前主网目标 14 个 Blob/区块作直觉比较,这个批次约占一个目标区块数据容量的 21.4%。实际编码还含元数据、纠错与协议开销。
EVM 不能读取 Blob 本体;共识层也不永久保存。它适合“发布后由外部系统读取并验证”的 Rollup 数据,不适合合约未来随时访问的永久业务数据。
Polynomial commitments
它像能被局部开封验证的密码学封条:承诺很小,任何指定位置的值都能用短证明核对。
先用一个数学视角看 Blob。协议把 4,096 个字段元素解释为某个多项式在一组固定点上的取值。KZG 允许发布者从这份多项式得到一个固定大小的承诺 C。之后,验证者可以检查“在点 z 上,值确实是 y”,而无需把整个多项式塞进证明。
承诺具有绑定性:发布者不能在同一个承诺下随意声称两个不一致的值。点证明则让局部数据能够对照承诺验证。这正是后续数据抽样所需的能力:节点只抽少量单元,也能知道收到的单元属于被区块承诺的那份数据。
字段元素被解释为多项式的编码。
固定大小的密码学承诺绑定整份数据。
证明在 z 处的取值 y 与承诺 C 一致。
Commitment
绑定 Blob 的完整多项式表示;修改任何数据都应导致承诺关系失效。
Opening
某个位置或聚合位置的取值属于这份已承诺数据,而不是节点随手伪造。
Setup
KZG 依赖结构化参考字符串;EIP-4844 使用多人仪式,只要至少一名参与者诚实销毁秘密即可。
KZG 证明“这份局部数据与某个 Blob 承诺一致”;它不证明 L2 状态转换正确,也不自动隐藏数据。字母都来自密码学,不代表解决的是同一个问题。
Data availability
一个完美的承诺可以绑定一份数据,却不能单凭自己证明发布者真的把全部数据交给了网络。
假设恶意区块提议者构造了一份完整 Blob,计算出正确 KZG 承诺,却只向网络发送其中一部分。收到的片段都能通过承诺检查,因此“完整性”没问题;但缺失片段让任何人都无法重建 L2 批次,于是数据并不可用。
这就是数据可用性问题:不是问数据内容是否诚实,而是问重建所需的全部信息是否已经发布。传统做法让每个节点下载全部数据,答案直接但扩展性差。DAS 的目标,是用纠删码和随机抽样把“全量下载”改成“高置信度检查”。
Available
观察者可以下载、重建并独立验证 L2 状态。
Withheld
承诺仍可能存在;没有可用性检查,隐藏数据攻击不会自动暴露。
在 PeerDAS 中,验证者只有在完成规定的数据检查后才应为区块投票。数据可用性不是区块落地后的附加统计,而是区块能否获得规范共识的一部分。
PeerDAS · EIP-7594
PeerDAS 用一维纠删码、列托管、随机分配和对等请求,把“所有人下载所有数据”变成“全网分工 + 可验证抽样”。
PeerDAS 先把每个 Blob 经过 Reed-Solomon 风格的纠删码扩展,相当于增加可恢复冗余;再把扩展后的数据切成可独立验证的 cells,并按跨 Blob 的相同位置组成 128 列。节点不再永久接收每一列,而是根据节点身份和验证者余额承担一组列的托管责任。
一个普通非验证节点至少托管 4 列;每个 slot 的可用性检查至少抽样 8 列。连接验证者的节点至少托管 8 列,并随总有效余额增加托管列数;达到 4,096 ETH 阈值的节点成为托管全部 128 列的 supernode。取得至少 64 列即可重建扩展数据。这里的“托管”是持续保存与服务责任,“抽样”是对当前区块可用性的主动检查,不要混为一谈。
节点从相应 gossip subnet 或对等节点取得列;验证 cell 证明,确认它们与区块里的 KZG 承诺一致;若缺失则主动向其他 peers 请求。纠删码带来的冗余意味着网络只要保有足够列,就能重建并“修复”缺口。大量节点以随机身份覆盖列,使攻击者很难只对所有诚实抽样者隐藏同一关键部分。
最终的安全不是“某个节点抽了 8 列,所以必然完整”,而是纠删码阈值、随机托管分布、对等发现、请求重试、验证者投票规则和足够多独立参与者共同形成的概率与共识保证。
Interactive lab · 02
这是帮助理解的组合概率模型,不是 PeerDAS 网络仿真。真实安全还依赖托管分配、请求路径、节点相关性、攻击者适应性与 fork-choice 规则。
当总 Blob 数增加时,单个普通节点不必按同等比例增加下载量;额外数据被更多节点分担。这保护了家用节点可运行性,同时为 L2 增加数据空间。
Full Danksharding
现代“分片”主要分的是数据传播与验证负担;以太坊仍保持一个统一的执行、共识与结算世界。
早期以太坊分片构想包含多条各自执行交易的 shard chains。Rollup 发展得更快后,路线改变了:L2 负责扩展执行,L1 专注安全结算和大规模数据可用性。Danksharding 因此是 data sharding,不是把账户和合约拆散到许多彼此通信的执行链。
“Dank” 来自研究者 Dankrad Feist 的名字。它的关键设计直觉是:一个区块提议者选择整个数据集合,而不是每个分片各有一个提议者;Blob 使用统一费用市场,数据在逻辑上形成一个大矩阵,再由纠删码与数据可用性采样让网络共同确认。
先把未来兼容的数据接口带到主网。
把全量广播改成一维扩展与列分工。
进一步把整个数据矩阵做二维扩展。
数据容量越大,构建完整区块越需要带宽和专门基础设施。如果要求每个家庭验证者在很短时间内收集、选择和传播全部数据,去中心化会受到压力。Proposer-Builder Separation(PBS)把高资源的区块构建工作与最终提议职责拆开:专业构建者准备区块,随机选出的提议者选择并签名。
今天以太坊已有依赖 MEV-Boost 的协议外 PBS 实践,但协议内 ePBS 仍未上线。完整 Danksharding 与 ePBS 在路线图上高度相关,因为构建者可能处理大数据块,而普通验证者通过 DAS 验证可用性;这仍是一项需要协议设计、审查和客户端实现的未来工作。
| 常见说法 | 准确理解 | 状态 |
|---|---|---|
| “以太坊会拆成很多执行分片” | 当前 Rollup-centric 路线主要扩展 DA;L2 承担执行。 | 旧式执行分片不再是主线 |
| “PeerDAS 就是完整 Danksharding” | PeerDAS 是一维扩展与采样;FullDAS 目标是更完整的二维方案。 | 前者已上线,后者研究中 |
| “未来一定是 64 Blob、固定十万 TPS” | 这些是路线图说明中的量级参考;实际参数会按网络测试演进,TPS 还取决于 L2 编码与压缩。 | 不是当前规范常数 |
| “BPO 不需要共识升级” | BPO 仍是硬分叉,只是配置型、可预编程,无需加入新的客户端逻辑。 | BPO1、BPO2 已完成 |
把“当前主网参数”“下一次已排期参数”“设计可承载上限”和“长期愿景”分四栏。只有第一栏能当作今天使用协议时的事实。
ZK foundations
证明者承担昂贵计算,验证者检查一个短证明;核心价值是正确性与简洁性,隐私只是可选属性。
设想爱丽丝声称:“我知道一个数 x,满足 x² = 9。”最直接的验证方式,是让她公开 x,你重新平方。零知识证明追求更强的形式:爱丽丝给出证明,让你确信她知道满足关系的见证,却不必泄露见证本身。
区块链扩容把这个框架推广到一整批计算。公开声明可以是“旧状态根 S₀ 按这套程序和公开输入执行后得到新状态根 S₁”;私有或庞大的见证则包含交易、签名、账户路径和所有中间执行轨迹。证明者把见证代入约束系统,生成证明 π;L1 验证器只检查公开输入和 π。
Prover · 证明者
交易、签名、状态路径、操作码与每一步中间值被编码成约束见证。
Verifier · 验证者
不重放整批交易,只检查证明与公开状态承诺的关系。
Completeness · 完备性
声明正确、证明者按协议行动时,诚实验证者应接受证明。
Soundness · 可靠性
声明错误时,攻击者生成可接受证明的概率应低到可以忽略。
Zero knowledge · 零知识
验证者除“声明成立”外不学到额外秘密;这项属性只有在系统实际隐藏相应输入时才带来隐私。
在 ZK Rollup 里,工程上最重要的往往是 validity 和 succinctness:证明一个巨大状态转换有效,并让 L1 低成本验证。许多 Rollup 为了数据可用性,会公开足以重建状态的交易数据,所以地址、金额或调用并不天然隐私。
更准确的说法是“使用零知识证明技术的有效性 Rollup”。同一种证明系统可以用于隐私应用,也可以用于完全公开的执行压缩;是否隐私取决于哪些输入被隐藏、哪些信息必须发布,而不是项目名称里有没有 ZK。
| 维度 | Pairing-based SNARK(常见形态) | STARK(常见形态) |
|---|---|---|
| 证明大小与链上验证 | 通常很小、验证便宜 | 证明通常更大,验证路径不同 |
| 设置 | 部分系统需要可信或通用设置;并非所有 SNARK 都相同 | 通常透明设置,不依赖隐藏 trapdoor |
| 主要密码学假设 | 常涉及椭圆曲线与配对 | 主要依赖哈希函数与低度测试 |
| 结论 | 不存在脱离电路、硬件、证明时间、安全参数和递归需求的“绝对赢家”。 | |
Interactive lab · 03
批次增大时,原始执行与证明生成工作继续增长;简洁证明的验证工作增长得慢得多。页面数值只表达复杂度方向,不代表任何项目的真实性能。
你把全网重复执行的成本,转移为证明者的重计算、专用硬件、电路工程和证明系统安全审计。扩容来自职责分工与可廉价重复验证,不是计算凭空消失。
ZK in the roadmap
从已经运行的 L2 有效性证明,到未来可能让 L1 验证者不再重执行整块交易,成熟度与安全边界完全不同。
说“以太坊会用 ZK”太宽泛。你必须追问:谁在证明什么?谁验证?数据放在哪里?证明失败或证明者离线时会怎样?同一种数学工具,放在不同协议层,会改变完全不同的成本和信任边界。
证明某条 L2 从旧状态根到新状态根的批量执行正确。多种系统已经实际运行。
用一个证明验证多个子证明,把许多批次或链的验证成本再次压缩。
证明资格、余额或条件满足,同时隐藏见证;公开信息范围由应用设计决定。
目标是为以太坊 L1 区块执行生成等价证明,让验证者快速验 π;仍是研究与原型。
L2 zkEVM 在另一条 Rollup 状态机上执行 EVM 风格程序,向以太坊上的验证器合约提交有效性证明。以太坊 L1 仍照常由所有验证者执行和验证自己的区块。
L1 zkEVM 的远期目标则是为以太坊主网区块本身生成 Type-1 等价执行证明。若进入协议,验证者可能从“每个人重执行完整区块”转向“少数证明者计算、所有人快速验证”。这对提高 L1 Gas 容量、轻客户端和更小验证硬件有潜在意义,但实时证明、soundness、安全位数、证明大小、递归、客户端多样性与故障回退都必须成熟。
官方路线图明确把 L1 zkEVM 标为尚未集成进生产以太坊客户端。研究基准进展很快,不等于已有确定主网升级日期。课程不会把 EIP 草案或原型性能写成既成事实。
假设 100 个批次各有一个证明。直接在 L1 验证 100 次仍然昂贵。递归证明可以把“这 100 个证明都有效”本身变成一个新证明;更高层再聚合多个 Rollup 的证明。验证成本因此可以多层摊销。
但递归只压缩验证,不会自动发布底层数据。即便一个超级聚合证明完美证明一百万笔交易都算对了,用户仍需要数据来知道自己的余额、构造状态证明、运行节点并在运营者失灵时继续系统。
Synthesis
以太坊既要相信“数据真的公开”,又要相信“执行真的正确”;Blob/KZG/DAS 与 ZK 分别守住不同入口。
现在可以读懂一笔 ZK Rollup 批次的完整路径:L2 执行交易,形成新状态根与执行见证;压缩后的状态重建数据放入 Blob;KZG 把 Blob 绑定到区块;PeerDAS 让验证者确认数据可用;证明者从执行轨迹生成有效性证明;L1 验证器确认状态转换,最终接受新状态根。
这不是一个证明,而是两类保证共同工作:一类来自共识网络对数据可用性的概率与经济保证;另一类来自密码学证明对计算关系的可靠性保证。只满足其中一类,系统仍可能失去 Rollup 应有的安全属性。
| 机制 | 核心问题 | 给出的保证 | 不保证 |
|---|---|---|---|
| Blob / EIP-4844 | Rollup 数据放哪条资源通道? | 专用数据容器、共识窗口、独立费用 | 执行正确、永久历史、固定低价 |
| KZG opening | 收到的局部数据属于哪个承诺? | 局部值与已承诺多项式一致 | 整体可用、L2 业务逻辑正确、隐私 |
| PeerDAS | 不全量下载,怎样判断整体已发布? | 纠删码 + 分布式托管 + 概率抽样 | 永久保存、执行正确 |
| ZK validity proof | 不重执行,怎样判断状态转换正确? | 执行轨迹满足约束与公开输入 | 数据可用、活性、排序器不审查、天然隐私 |
| Ethereum 共识 | 哪一个可用且有效的结果成为规范历史? | PoS 下的排序、最终性与经济安全 | 应用代码无漏洞、桥和升级密钥无风险 |
许多用户操作合并成一个批次。
数据不再占用永久执行存储路径。
每个节点只托管和抽样一部分列。
全网验短证明,而不是全网重做长计算。
Blob 回答“数据放在哪里”,KZG 回答“片段是否属于这份数据”,DAS 回答“整份数据是否可得”,ZK 回答“状态是否按规则算出”,共识回答“哪个结果成为以太坊历史”。
Recap & quiz
真正理解不是记住缩写,而是面对任何扩容方案时,都能准确指出它解决哪一个问题、没有解决哪一个问题。
不是。EVM 不能读取 Blob 字节,只能看到版本化哈希;共识保证窗口也不是永久保存。
不是。BPO2 后目标为 14、单区块上限为 21;目标用于费率反馈。
错误。PeerDAS 随 Fusaka 于 2025 年 12 月上线;FullDAS 才仍属未来路线。
规范区分托管与抽样:非验证节点至少托管 4 列,每 slot 至少抽样 8 列。
不是。KZG 在这里绑定 Blob 并验证打开;不检查 Rollup 执行,也不提供交易隐私。
不一定。扩容使用的核心是 validity 与 succinctness,公开 DA 往往让重建数据可见。
不能。证明能保证状态转换正确,却不能让被隐藏的状态数据自动出现。
现代路线分片数据负担,执行扩容主要交给 L2;以太坊保持统一结算。
答案:B。Blob 是 EVM 不可读的数据 sidecar;合约若需要永久可读数据,应使用其他链上存储路径。
答案:C。Dencun 是 3/6,Pectra 是 6/9,Fusaka 后的 BPO1、BPO2 分步升至 14/21。
答案:A。承诺完整性、整体可用性和执行有效性是三个不同命题。
答案:B。纠删码提供恢复冗余,KZG cell proofs 提供局部完整性,托管与抽样提供分布式可用性检查。
答案:C。Validity 与 DA 正交;只有把重建所需数据交给 Ethereum 保证,才获得标准 Rollup 的 DA 属性。
答案:A。实时证明研究进展不等于协议激活;生产集成、安全性与共识回退仍需完成。
Glossary & primary sources
路线图会变,概念边界不应变。参数和状态以最终 EIP、稳定共识规范与主网公告为优先。
Type-3 交易、Blob 格式、KZG、费用、BLOBHASH、sidecar 与最小服务窗口的基础规范。
Pectra 将 Blob target / max 从 3/6 提至 6/9 的最终规范。
一维扩展、cells、columns、custody、sampling 与 PeerDAS 网络协议。
把 Blob 参数调整拆成配置型硬分叉、独立于大型命名升级的机制。
主网目标 10、上限 15 及对应费用更新参数。
当前主网目标 14、上限 21 的最终配置。
Fusaka 对 Blob 费率响应下界的调整,解释为什么费市也会继续演进。
EIP-4844 主网激活时间和客户端升级背景。
Pectra 激活与 EIP-7691 Blob 吞吐提升。
PeerDAS、BPO1/BPO2 激活日期与主网参数表。
数据可用性抽样、纠删码、列分布与从 PeerDAS 走向 FullDAS 的说明。
Proto-Danksharding 与完整 Danksharding 的高层路线、目的与依赖。
为什么状态承诺不足以替代数据、Rollup 与 Validium 的 DA 区别。
EIP-4844 结构化参考字符串仪式、贡献与 1-of-N 信任模型。
有效性证明、L1 验证器、公开数据、状态最终性与退出流程。
完备性、可靠性、零知识、SNARK 与 STARK 的概念入口。
为 L1 执行生成证明的目标、研究进展与尚未进入生产客户端的状态。
协议内 PBS 的提案结构;用于区分当前协议外实践与未来设计。
资料核对日期:2026-07-26。Blob 参数、BPO 计划、证明性能与路线图状态会变化;使用前请优先核对 Final EIP、稳定共识规范和最新主网公告。
Lesson complete · 18.02
Blob 把数据从执行中拆出来,DAS 把全量下载变成可验证抽样,ZK 把全量重算变成简洁验证。 它们没有让工作消失,而是把工作分配出去,再用密码学与共识把局部检查还原成全局信心。