该提案旨在通过引入“Blob Notaries”委员会来优化以太坊的blob数据传播。Blob Notaries负责验证和证明blob数据的可用性,生成blob证书,并将数据分片发布到CL。此方法旨在解决当前blob mempool的瓶颈问题,提高blob交易吞吐量,并降低交易成本,同时兼容ePBS等未来升级。
作者:Nicolas, Lorenzo 和 Jonas,来自 Chainbound。
或者,如何在以太坊中将 blob 数据传播 与 共识 分离。
TL;DR: 该提案源于最近关于分片 blob mempool 的讨论,旨在达到以太坊路线图中设定的中期扩容目标。可以总结为:
3.1. 全新的 Blob 交易流程
以太坊的 DA 扩容路线图主要关注通过 DAS(PeerDAS, Proto-Danksharding)在共识层上扩容 DA。这里的核心思想是,数据被安全地分片并分散在验证者集合中,并使用一些机制来确保所讨论的数据是真正可用的,而无需下载所有数据。这将使我们能够将 DA 扩展到每个区块可能包含数百个 blob。
但正如 Mike Neuder 在 最近的一篇文章 中所展示的那样,EL blob mempool(blobpool)并没有受到同样的关注。事实上,在今天的 blobpool 中,每个验证者仍然通过 lazy-pull 机制下载完整的 type 3 交易(包括 blob)。这种不对称性,即使今天不是问题,将来肯定会成为瓶颈。此外,CL 上的 DA 扩容最终会受到(本地)区块构建者的上行链路的限制,因为提议者需要上传整个 blob 包。我们稍后会看到,我们修复 blobpool 的提案也解锁了分布式 blob 发布。
已经提出了许多解决方案来解决上述不对称性。以下是这些方案的简要概述,以及它们的局限性:
弃用 blobpool:从 EL 中删除 blobpool,并依靠构建者提供私有的 blob 包含端点。这里的问题如下:
最新的提案 基于垂直分片,但包含一个市场机制来确定谁可以写入 blobpool。这确保了发布 blob 始终存在前期成本,只有在包含完整的 blob 时才能收回该成本,从而解决了原始提案中的 DoS 问题。我们看到的主要缺点如下:
我们建议引入一个新的委员会(Blob 委员会),它是验证者集合的一个随机子集,具有以下职责:
我们将这些委员会成员称为 Blob 公证人。Blob 公证人能够隔离初始 blob 和交易验证,以防止全网范围的 DoS。此外,在区块生产期间,可以依靠它们作为临时 DA 预言机,因此可以消除本地构建和 PBS 提议热路径中的下载瓶颈。最后,他们可以通过在彼此之间分配工作来提高 blob 传播的吞吐量,从而解锁 分布式 blob 发布。
请注意,这个委员会最终可能会演变成一个独立的验证者角色,偏向更高的带宽使用,这与 rainbow staking 的精神一致。
我们将重点关注提案的 happy path,以避免复杂性而使文章混乱。但是,一些初步问题和答案可以在下面的 实现说明 中找到。
步骤 1:获取 Blob 仲裁证书 (QC)
\
shapes at 25-06-24 14.46.371668×1167 183 KB
此步骤确保在委员会成员之间,有足够多的诚实成员保管 blob 数据并证明该交易有效。QC 是对此的反映。但是,QC 的存在并不能保证网络级别的 DA,因为证明者尚未投票。它们可以被认为是“可信的信号”,但不能保证可用性。
步骤 2:广播到 EL Mempool
\
shapes at 25-06-24 14.49.141860×570 81.1 KB
步骤 3:区块提议和证明
\
shapes at 25-06-24 14.59.082164×575 86.1 KB
BeaconBlockBody
容器上的一个新字段 blob_quorum_certificates
。步骤 4:blob 分片传播
\
shapes at 25-06-24 15.09.582142×1524 218 KB
步骤 5:DA 证明
\
shapes at 25-06-24 15.22.271920×1474 86.1 KB
N
的 执行 必须 有效,并且区块 N-1
的 数据 必须 可用。1. 高 blob 吞吐量
以太坊中的 Blob 吞吐量受到以下因素的限制:
我们的提案尝试通过传统的扩展方法来解决这些限制:
2. CL 上没有 blob 分片垃圾邮件
如果 CL 节点收到不属于任何最近 blob 的分片,它们可以拒绝它,并对共享它的对等方应用必要的声誉惩罚,从而最大限度地减少 DoS 潜力。
作为一项额外的好处,将 DA 检查延迟到下一个 slot 也会最大限度地提高数据及时可用的可能性,因为 blob 公证人现在有整整一个 slot 的时间(大约从上一个 slot 的证明截止日期到当前的 slot 证明截止日期)来传播分片。
3. EL 中更便宜的 blob 交易替换
目前,替换 type 3 交易非常昂贵(例如,Geth 需要 100% 的手续费增长)。这主要是因为网络必须承担在 EL mempool 中传播完整 blob sidecar 的成本。有了 blob 委员会,EL mempool 中的交易只会携带轻量级的 QC,从而使交易替换与其他交易类型一样便宜。
4. 更低的包含 blob 的“延迟成本”
今天的 PBS 中的 blob 交易需要支付间接延迟成本。这是因为具有更多 blob 的区块 需要在 PBS 拍卖中与更轻量级的区块竞争。通过此提案,具有更多 blob 的区块只会对其证书产生边际大小的增加。
5. 对 type 3 IL 交易的简单支持
由于完整的 blob 在 EL mempool 中被轻量级的 DA 证书替换,type 3 交易变得更小,并且可以被 FOCIL 支持。验证 QC 将成为验证 IL 的 CL P2P 验证规则 的一部分。
当前的 ePBS 规范允许将执行和 DA 证明转移到同一个 slot 中,从而允许使用更简单的 fork-choice 规则。但是,由于 QCs 没有自然的“commit”阶段,节点必须依赖较弱的保证来对抗 DoS。
本质上,blob 公证人需要等待 payload 发布后才能开始传播 blob 分片。这样,接收节点就可以验证它们接收到的数据实际上是它们刚从对等方接收到的 payload 的一部分。任何不属于 payload 的分片都将被丢弃,并且发送者将累积负面声誉。为了解决数据竞争,节点甚至可以在判断最近接收到的分片的有效性之前等待 payload。
以下是 slot 结构,遵循最近的 double deadline PTC vote ePBS 设计:
\
shapes at 25-07-07 16.07.432025×772 70.9 KB
证明者会将红色 X 之前收到的 Blob 分片缓存一小段时间,一旦 payload 到达,他们就会对其进行验证。如果它们与 payload 中包含的任何 blob commitment 不匹配,则可以将其丢弃并惩罚发送对等方。如果它们有效,则可以将它们广播给其他对等方。这样,常规证明者只会在知道他们正在传播有效数据时才参与扇出,这是理想的。
engine_newQuorumCertificates
定期发送 (tx_hash, quorum_certificates)
元组来扩展。当在 devp2p 上收到 type 3 交易公告时,只有在已经从 CL 听到了该交易哈希时才提取该交易。engine_forkchoiceUpdated
PayloadAttributes
中,我们还会发送 CL 客户端已经验证过的 QC 列表。虽然这仍然可以确保有效的交易提议,但它可能会在 EL mempool 中引发一些 DoS 问题。1. 关于 EIP-4844 交易信封和证书
我们引入了一个新的 EIP-4844 交易变体,该变体携带 仲裁证书 而不是 blob sidecar。已签名的交易信封不会改变,因为它今天已经不包含 sidecar,而是将 QC 视为一个新的共识层项目。
以下是我们想象 blob 如何存在于协议中的简要概述:
注意:我们不建议创建新的交易类型。EL 规范已经涉及如何看待 EIP-4844 交易的不同表示形式:一种带有 blob sidecar,一种不带 blob sidecar。我们建议添加一个新的变体:不带 blob sidecar 但 带有 QC。
2. 恶意用户可能会将 type 3 交易发送给 blob 公证人,但随后从不在 mempool 中提交交易,从而浪费 blob 公证人的资源
3. 为什么要分离两个证明(执行和 DA)?
- 原文链接: ethresear.ch/t/blob-nota...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!