EIP-7594,正式名称为 PeerDAS - 点对点数据可用性采样,是一项核心的以太坊改进提案,引入了一种网络协议来实现数据可用性采样(DAS)。[1] 其主要目标是显著扩展以太坊的数据可用性层,建立在EIP-4844(Proto-Danksharding)奠定的基础上。通过允许网络节点验证大量数据(称为“blobs”)的可用性,同时仅下载一小部分,PeerDAS旨在提高Layer 2 Rollup的数据吞吐量,从而降低其运营成本,而无需增加单个节点的硬件要求。[2] 这种增强支持以太坊的可扩展性,同时保持去中心化。该提案是以太坊“Pectra”网络升级的关键组成部分。[1]
EIP-7594 解决了继 Dencun 升级实施 EIP-4844 之后,以太坊扩展其数据层的下一个主要步骤。[3] 虽然 EIP-4844 引入了 blob 作为 rollup 向 以太坊 发布数据的一种经济有效的方式,但其初始设计仍然要求节点下载一个区块中所有 blob 的完整内容。这种“完全复制”模型具有固有的可扩展性限制,吞吐量上限约为每秒 31 KB。[4] 为了朝着“完全 Danksharding”发展,并将每个区块的 blob 数量从目标 3 个增加到可能的 64 个或 128 个,一个强大的 DAS 机制变得必要。[3]
PeerDAS 解决的核心问题是“数据可用性问题”。这指的是恶意区块生产者可能发布区块头但隐瞒 blob 中包含的实际交易数据的场景。对于 Layer 2 rollup 来说,这是一个关键的安全风险,因为它可能阻止用户验证状态更改、质疑欺诈交易或执行强制提款。[4]
PeerDAS 通过使节点能够获得高度的统计置信度来降低这种风险,即一个区块的所有数据都是可用的,而无需下载整个数据集。[1] 该设计理念优先考虑简单性和安全性,利用以太坊共识层中现有的、经过“实战检验”的对等网络组件,例如 discv5 发现协议和 gossipsub 消息传播协议。[3]
PeerDAS 的概念最初是由 以太坊基金会 的主要研究人员于 2023 年 9 月在以太坊研究论坛上以“草图”的形式提出的。[3] 该提案于 2024 年 1 月 12 日正式确立并创建为 EIP-7594。[1] EIP 的作者包括一群著名的 以太坊 研究人员:Danny Ryan、Dankrad Feist、Francesco D'Amato、Hsiao-Wei Wang、Alex Stokes、Anton Nashatyrev、Csaba Kiraly、Dmitry S.、Suphanat Chunhapanya、Daniel Lubarov 和 protolambda。[1] [3] [2]
EIP-7594 提案于 2024 年初进入“最后征求意见”状态,截止日期为 2025 年 10 月 28 日。[1] 以太坊 核心开发者确认将其纳入 Pectra 网络升级,预计将于 2025 年部署。[2] Pectra 升级是以太坊路线图中的一个重要事件,它将 PeerDAS 与其他主要提案(如 EIP-7251 (MaxEB) 和 EIP-7702 (账户抽象))结合在一起。[2] 一些媒体也用推测性的名称“Fusaka”来指代携带 FIP-7594 的升级,预计于 2025 年 12 月进行。[4]
PeerDAS 的实施计划旨在逐步进行,以确保网络稳定。最初阶段计划以每个区块 10 个 blob 的容量启动,并计划在后续较小的硬分叉中增加到 14 个,最终目标是每个区块 48 个 blob。预计这些未来的调整将是通过 EIP-7892 等配套提案促进的微小配置更改。[4]
PeerDAS通过结合数据处理技术和复杂的点对点网络协议来实现其目标。
该协议直接构建在 EIP-4844 引入的 blob 数据结构之上,但增加了多个处理层以实现采样。
单元格 KZG 证明。这些是密码学证明,允许节点验证特定单元格是否属于其相应的 blob 的 KZG 承诺,而无需下载整个 blob。 [1]cell_proofs。此设计中的一个关键效率在于,生成这些证明的计算密集型任务外包给 blob 交易发送者。区块生产者和其他网络节点只需要执行成本低得多的证明验证,从而保持关键路径上的区块生产精简。 [1]PeerDAS 的核心是其网络层,该层组织节点以分发、保管和服务数据样本。
每个节点被确定性地和伪随机地分配一组特定的数据来维护,或称为“保管”。这种分配是节点唯一ID、当前纪元和一个custody_size参数的公共函数。这确保了存储数据的责任分布在整个网络中。虽然诚实节点有一个最低的CUSTODY_REQUIREMENT,但参与者可以自愿保管和服务比最低要求更多的数据。他们可以在他们的以太坊 节点记录(ENR)中宣传这种更高的容量,允许其他对等方发现他们。选择保管100%所有数据的节点被称为“超级完整节点”或“DAS提供商”。 [3]
节点使用基于 DHT 的机制,如 discv5(以太坊信标链已使用)来查找对等节点,特别是搜索那些声明托管所需数据样本的节点。为了分发样本本身,网络为每一行和每一列建立专用的 gossipsub 主题(例如,row_5,column_8)。节点加入与其分配托管的数据相对应的 gossip 子网,在这些特定通道上接收和提供可验证的数据样本。[3]
验证过程通过抽样进行。每个槽位,节点都会向其对等方查询一组随机选择的样本,以验证数据的可用性。通过使用公共托管分配函数,节点可以识别哪些对等方应该拥有给定的样本。如果节点成功接收到区块所需的唯一样本数量,则可以从统计学上确定整个数据集已由区块生产者提供。 [2]
PeerDAS 包含强大的网络自愈机制。如果节点成功获取了行或列的足够部分样本(例如,超过 50%),它可以使用纠删码在本地重建缺失的样本。重建后,节点会将这些新恢复的样本“交叉播种”到相应的正交子网。例如,如果节点重建了 row_5 并且也是 column_8 子网的一部分,那么它会将坐标 (5, 8) 处的样本传播到 column_8 子网,帮助修复网络数据中的任何缺口。 [3]
PeerDAS的实施引入了一个新的硬性限制,即每笔交易6个blob。客户端必须在包括交易提交、网络传播和区块处理的各个阶段强制执行此规则。此外,验证者比普通全节点承担更高的托管要求,在假设他们拥有更多资源的情况下,为网络创建更强大的骨干。 [1]
PeerDAS 的设计遵循特定的技术选择,旨在优化效率、安全性和易于实现性。
一个关键的决定是按列而不是按行组织采样。选择列采样(节点检索跨所有 blob 的垂直切片)主要有两个原因。首先,它简化了重构,因为节点可能已经从公共交易内存池中获得了许多不同 blob 的片段。其次,它允许交易发送者在区块构建之前“在关键路径之外”执行数据扩展和证明生成的大量计算工作。基于行的采样方法将需要区块生产者完成此计算,从而给区块生产过程增加显著的负载和延迟。 [1]
基于对等点的采样系统的使用提供了冗余,因为如果一个对等点是恶意的或离线的,节点可以简单地查询另一个对等点。它还实现了透明的扩展:拥有更多资源的节点可以自愿保管更多数据,从而有机地增强网络的性能和稳健性,而无需协议级别的更改。 [1]
PeerDAS旨在通过网络层面的规则来保护网络免受数据扣留攻击,并强制诚实参与。
PeerDAS 主要解决的安全风险是数据扣留攻击,即恶意区块生产者发布有效的区块头,但扣留底层的 blob 数据。对此的防御措施是伪随机抽样方案。每个节点独立且随机地请求足够数量的样本,使得攻击者在不被众多节点检测到的情况下隐藏大量数据的可能性在统计上极低。[1]
这种安全性在数学上是可以量化的,而且非常高。根据 EIP 的分析,在类似主网的参数(一个由 10,000 个抽样节点组成的网络)下,攻击者欺骗仅 200 个节点(网络中的 2%)的概率上限约为 10⁻²⁰。欺骗 300 个节点(3%)的概率可以忽略不计,为 10⁻¹⁰¹。这使得成功的大规模数据扣留攻击在实践中实际上是不可能的。[1]
该协议通过共识规则和点对点激励相结合的方式来执行。
blob 数据结构,并实现了安全扩展 blob 容量所需的完整 DAS 机制,从而实现了 Danksharding 路线图的下一阶段。 [2]EIP-7594 被设计为与 EIP-4844 完全向后兼容。它扩展了 blob 及其相关交易的功能,而不会破坏 Dencun 升级中已实现的任何现有功能。 [1]