Ethereum 协议中的 PeerDAS(点对点数据可用性抽样)技术,作为以太坊“ The Surge”扩容阶段的核心,该协议旨在通过 EIP-7594 优化 Layer 2 回滚数据的存储与验证效率。其核心机制涉及将数据块拆分为列单元进行分布式存储,并利用 KZG 承诺与 Reed-Solomon 纠删码确保信息的完整性和可恢复性。 节点通过概率抽样即可验证数据可用性,而无需下载完整原始数据。
PeerDAS 如何提升以太坊的可扩展性
- 引入数据可用性采样 (DAS)
PeerDAS 的核心在于允许节点在无需下载完整数据的情况下,验证数据的可用性。节点只需从对等方请求随机的“列”样本,通过概率方法推断整个数据集是否可用,避免了让单个节点承受过大的带宽和存储压力,使得网络能够处理比之前多得多的数据量。
- 数据分区与托管分配
PeerDAS 改变了数据的存储方式,将其从单一的块转变为分布式的结构:
-
数据列化: 将数据 Blob 划分为更小的单元,称为 列。
-
确定性托管: 网络根据节点 ID 等公开可验证的输入,将节点分配到特定的托管组,负责存储特定的列。这意味着没有任何一个节点需要存储所有列,从而实现了存储负载在全网的水平扩展。
- 利用密码学与冗余技术确保安全
在提升性能的同时, PeerDAS 通过以下技术确保了数据的完整性和稳健性:
-
KZG 承诺:使用 KZG( Kate-Zaverucha-Goldberg)承诺进行高效的密码学验证,确保采样的列与原始数据集匹配,而无需下载全文。
-
纠删码:数据使用 Reed-Solomon 纠删码进行编码并添加冗余列。即使部分数据丢失,只要节点收集到超过 50% 的列,就能重建原始数据集。这种高度的冗余性增强了系统在面对网络故障时的容错能力。
1D PeerDAS 与 2D PeerDAS 区别
1D PeerDAS 和 2D PeerDAS 代表了以太坊实现完全 Danksharding 路线图中两个不同的技术阶段。
- 1D PeerDAS ( 第一阶段 )
扩展方式: 通过水平扩展 (horizontally extending) Blob 来实现。
网络机制: 引入了列子网 (column subnets)。
采样方式: 启用了对等采样 (peer sampling),以提高网络效率
- 2D PeerDAS ( 第二阶段 )
最终目标: 这一阶段将完成 Danksharding。
扩展方式: 在水平扩展的基础上增加了垂直 Blob 扩展 (vertical blob extensions)。
采样方式: 引入了更轻量级的、基于单元 (cell-based) 的对等采样。
核心优势: 支持稳健的分布式重构,并旨在最大化以太坊的可扩展性
数据重建在 PeerDAS 中是如何运作的
在 PeerDAS 中,数据重建是确保以太坊在部分网络节点失效或数据丢失时,仍能保持数据可用性与完整性的关键机制。 其运作过程主要依赖于 纠删码技术和 P2P 网络的分发机制:
- 核心技术:纠删码 (Erasure Coding)
数据重建的基础在于数据在分发前的编码方式。 PeerDAS 使用 Reed-Solomon 纠删码将原始数据 Blob 编码为多个列,并添加冗余的校验列。这种编码方式允许在丢失部分数据的情况下,利用剩余的数据片段还原出原始数据集。
- 重建的触发条件
数据重建通常遵循以下流程:
-
采样与收集: 节点会持续采样其负责托管的列,或者在发现采样失败时通过请求 / 响应协议向对等方获取缺失的列。
-
50% 阈值: 根据 Reed-Solomon 编码的特性,当一个节点累积获得了一个数据 Blob 超过 50% 的总列数时,它就可以利用数学算法完全重建出原始的完整数据集。
- 重建后的再分发
数据重建不仅仅是为了节点自身获取数据,更具有维护网络健壮性的作用:
-
填补空缺: 一旦节点完成数据重建,它会将恢复出的列 重新分发 回网络中。
-
增强弹性: 这种机制能够修复因某些子网临时失效或对等方离线导致的数据“空洞”,显著增强了全网对各种故障的容错能力。
在 1D PeerDAS 阶段,主要侧重于通过列采样提高效率,到了 2D PeerDAS,系统将引入垂直 Blob 扩展和基于单元( cell-based)的采样。
50% 的数据重建阈值是如何确定的
50% 的数据重建阈值是由 PeerDAS 所采用的数学技术—— Reed-Solomon 纠删码的特性决定的。
具体确定的逻辑如下:
-
冗余编码机制: 在 PeerDAS 中,原始数据 Blob 不仅被划分为多个数据列,还会通过 Reed-Solomon 算法添加大量的校验列 (parity columns)。
-
数学恢复特性: 根据纠删码的数学原理,只要节点能够收集到编码后总列数中超过 50% 的部分,就拥有足够的信息通过 Reed-Solomon 解码计算并还原出剩余缺失的所有列。
超级节点如何增强网络冗余
超级节点指的是那些选择存储所有数据列的特定节点。有如下特点:
-
提供完整备份:普通节点通常只根据其节点 ID 被确定性地分配托管特定的列组,而超级节点通过存储全部列,成为了网络中完整数据的可靠来源。
-
提升容错能力:超级节点的存在增加了系统中数据的副本数量,从而显著增强了网络在面对节点离线、子网故障或数据丢失时的抵抗力。
-
确保可恢复性:超级节点持有的完整数据集确保了数据始终是可验证且可恢复的,这对于维护去中心化网络的安全性至关重要。
-
辅助数据分发:虽然来源中主要强调了它们的存储和冗余功能,但持有完整列的节点在 P2P 网络的传播过程中也能更有效地响应其他节点的请求,填补数据空洞。
PeerDAS 如何应对恶意节点分发错误数据列的攻击
- 利用 KZG 承诺进行实时验证
当节点从对等方接收到采样的数据列时,它会利用 KZG 证明来验证这些列是否与原始数据集匹配。允许节点在不下载完整数据的情况下,立刻识别并拒绝任何被篡改或损坏的数据片段,从而防止数据损坏和欺诈行为。
- Reed-Solomon 纠删码的容错性
数据在分发前使用 Reed-Solomon 纠删码进行处理,这为数据集增加了冗余。即使某些恶意节点分发错误数据(被验证拒绝)或拒绝提供数据,只要网络中的节点能够获取到超过 50% 的总列数,就可以通过数学计算完全重建原始数据集。这种高度的冗余性使得系统对恶意节点的攻击具有极强的抵御能力。
- 超级节点提供的额外备份
网络中存在存储所有列的超级节点,提供完整的数据备份。
- 修改后的分叉选择规则
验证者会遵循特定的分叉选择规则,只有在通过采样确认数据可用且经验证无误后,才会对新提案的区块投票。这确保了恶意节点无法通过扣留或伪造数据来诱导网络接受无效的区块,从而维护了区块链的完整性与安全性。