本文讨论了blob mempool的未来,特别是在引入PeerDAS后,EL和CL之间出现的不对称性问题。提出了一个基于市场的机制,即带退款的拍卖,以实现blobpool的垂直分片,从而优化带宽使用并防止DoS攻击。同时也讨论了其他可能的解决方案,如水平分片和基于信誉的系统,并提出了针对rollup团队、区块构建者和stakers的关键问题。
由 Mike 和 Julian 与 Francesco 讨论得出
1.2. 为什么我们要在 Glamsterdam 做些什么?
blob 内存池,在本文的剩余部分中我们将其称为 “blobpool”,是尚未包含在区块中的待处理 blob 交易的集合。每个节点都维护 blobpool 的一个视图,并通过拉取任何其尚未收到的已公布的 blob 交易来更新其视图(更多信息请参见 这里)。由于 pull 模型,每个节点应该下载每个 blobpool 交易一次。blobpool 由执行层(简称 EL)维护,默认情况下,节点会下载 blobpool 中的每个 blob。
在共识层(简称 CL)上,验证者必须在证明区块有效性之前确定区块中包含的 blob 交易的可用性(关于 CL 的 blob 下载路径的更多信息,请参见 这里)。目前,数据可用性检查验证区块中包含的每个 blob 交易的完整 blob 数据的可用性。因此,blobpool(EL)和数据可用性检查(CL)之间存在协同作用;两者都下载所有 blob。
Fusaka 包含了 PeerDAS,它改变了 CL 执行的数据可用性检查。CL 不再下载完整的 blob 数据,而仅检查区块中包含的每个 blob 交易的部分列的可用性。这种“垂直”分片是核心的解锁,允许大幅增加每个区块的 blob 数量,因为下载 48 个 blob 的 1/8 列的带宽需求相当于下载 6 个完整的 blob。然而,如果不改变 blobpool,PeerDAS 在 EL 和 CL 之间引入了根本的不对称性。EL 仍然旨在下载所有可用的 blob;CL 只需要检查每个 blob 的某些列的可用性。
按照目前的 6/9(目标/最大)blob 计数,blobpool 消耗的目标带宽为 64 kB/s,最大带宽为 96 kB/s。如果 blob 计数为 48/72,则 blobpool 带宽将跃升至 512/768 kB/s。虽然这个带宽对于大多数节点来说是合理的,但它将迫使一些资源较少的节点限制其 blobpool 视图。此外,让每个节点下载每个 blob 从一开始就消除了垂直分片 CL 数据可用性检查的优势。我们需要更精确地理解和描述 blob 数据在未来将如何进行 gossip 和验证。
Fusaka 的范围已经确定;PeerDAS 将在_没有_协议内机制的情况下实施,以尽量减少 blobpool 中 blob 数量显著增加对带宽的影响。尽管如此,在 Glamsterdam 中实施解决方案似乎是必要的,原因如下:
显而易见的“正确”解决方案是对 blobpool 进行垂直分片,以镜像 DA 检查的垂直分片(如 此处 所述)。换句话说,我们需要一种 blobpool 原生的方式来 gossip blob 列,而不是只 gossip 完整 blob,以便节点可以下载他们在 DA 检查中负责的数据。下图展示了这一点。
\
upload_55eaa9bf01e5c79260a3f683d2246e692596×796 214 KB
我们将 blob 分为两类:公共(绿色)和私有(紫色)。公共 blob 由 blob 发起者进行垂直分片并 gossip 到 blobpool。私有 blob 由构建者进行垂直分片并直接 gossip 到 CL 网络(构建者从 rollup 接收私有 blob,并且在 blob 提交到区块之前不会 gossip 它们)。无论哪种方式,证明者都只下载其分配的列来执行其 DA 检查。如果没有垂直分片的 blobpool,证明者将被迫下载完整的公共 blobpool blob。
垂直 blobpool 分片的_方式_更加细致。第 2 节 概述了一种潜在的机制来启用 blobpool 的垂直分片,而 第 3 节 则放大了范围,更广泛地考虑了这种情况。
在考虑垂直分片的 blobpool 时,DoS 攻击是限制因素。我们如何确保 gossip 的列属于一个支付费用的交易?我们的目标是使用最简单的市场机制来分配对 blobpool 的写入权限。在此模型下,任何 gossip 的列必须来自一个已经支付了在特定 slot 期间将该数据写入 blobpool 的能力的身份。我们专注于强制对每个 slot 可以传播的 blob 数量进行硬性限制的机制,因为这可以防止 DoS 攻击并允许系统以其最大容量运行。最后,我们的目标是提供免费的 blobpool 访问,并为 rollup 提供良好的用户体验。
我们提案的核心部分是一个简单的具有储备价的一级价格拍卖,其中出售 slot n
的 k
个 blobpool 票证。k
等于 blob 限制。
n-2
期间提交 (bid_per_blob, number_of_blobs)
形式的竞标。竞标是执行层交易。n-1
中的系统合约中。只要 blob 的总数不超过 k
(即,如果每个竞标都针对单个 blob,则通过贪婪地选择 k
个最高竞标),并且每个竞标都超过 reserve_price
,系统合约就会选择使拍卖收入最大化的竞标。n
中在垂直分片的 blobpool 中传播他们的 blob。诚实的构建者将其 blob 包含在他们的区块中,诚实的节点一旦 blob 进入 blobpool 就会对其进行采样。n+1
中,每个 blob 都包含在 slot n
中的 blobpool 票证持有者都会收到 reserve_price
的退款。重要的是要注意,通常,对 blobpool 票证的需求将低于 k
,因为 blob 基本费用使用 1559 控制器进行调整,因此只有对 blob 目标的需求,该目标低于限制。目前,目标是每个 slot 6 个 blob,限制是 9 个。这意味着竞标者通常只需要支付 reserve_price
,如果他们确实使用了垂直分片的 blobpool,并且构建者包含了所有 gossip 的 blob,他们将获得退款。你可以将 blobpool 票证视为通常只需要 blob 提交者的存款,他们会在 2 个 slot 中收到退款,从而使该机制免费。
对于对 blob 的需求超过 blob 限制的特殊情况,我们需要实施拟议的拍卖。我们不能退还高于 reserve_price
的竞标,因为那样拍卖将不允许竞标者表达他们在这个特殊情况下对 blobpool 票证的重视程度。
储备价格应该设置得足够高,以暗示攻击者想要阻止其他竞标者访问 blobpool 的实际成本。我们建议使用 EIP-7918 中 blob 的基本费用的 reserve_price
。
在 blobpool 的未来背景下,构建者、证明者和 rollup 之间的交互有许多细微之处需要考虑。
\
upload_ebc48e7cf9988f84af77bf8871f930f22088×950 110 KB
请注意,证明者可以从 blobpool 或 CL 网络获取公共 blob。相比之下,下图显示了私有 blob 流。
\
upload_8fbedb9180c1b545718975459a6347d72076×936 84.5 KB
在这种情况下,证明者的唯一 blob 来源是 CL 网络。
\quad 另一种看待这个问题的方式是,blobpool 向构建者提供了一种 “blob 分发服务”,构建者不再需要在构建区块后立即担心传播 blob,这对于任何私有 blob 都是必需的。考虑到时序博弈的现实情况,这一点尤为重要,在这种情况下,构建者渴望尽可能地延迟其区块(以及私有 blob 数据)的发布。我们认为,这更有理由努力维护 blobpool,以及为什么我们不必期望所有直接通过构建者流动的 blob 成为唯一稳定的结果。
\quad 首先,许多节点可能会选择_不_进行水平分片,因此将继续下载所有 blob。根据对大约 90+% 的 stake 受到专业管理的估计,这可能意味着大多数提议者仍然可以访问所有 blob,并且 blob 包含保证基本保持不变。在这种理想化的结果中,我们可以两全其美,因为居家运营商可以限制 blobpool 的带宽影响,并且 blobpool 继续为 rollup 和构建者提供良好的服务。其次,由于对于居家运营商来说,提议是一项罕见的任务,他们可以通过_仅在他们被选为提议者时_下载所有 blob 来处理带宽的短暂峰值;通过这种方式,他们的带宽峰值将每年只会发生几次。当然,这仍然取决于他们的连接足以处理峰值负载,这在某些地区可能是不可能的。
\quad 无论如何,这些简单的 blobpool 水平分片方法可能可行。
k
个交易,这对于 k
等于 128 或 256 个 blob 的扩展目标来说可能过高。减少拍卖负载的方法包括出售少量的一个 blob 小票证,其余的以至少六个 blob 的大票证出售,或者默认情况下,将票证分配给父区块的票证持有者。这些方法虽然导致了更具表现力但也更复杂的竞标语言,但需要与票务系统的用户体验相协调。希望本文档能够作为讨论 blobpool 未来的起点。至关重要的是,在提出建议之前,我们仍然需要解决许多悬而未决的问题。我们根据这些问题对其影响最大的利益相关者进行划分。
a. 你是否计划继续使用 blobpool 发布你的 blob?
b. 在发送 blob 和将其放入链上之间,你可以容忍多少延迟(以 slot 衡量)?
c. 如果我们按照 第 2 节 中所述运行 blobpool 票证拍卖,参与需要多少工作?你会考虑转到私有通道吗?
d. 如果我们运行拍卖,你想参加每个 slot 的拍卖吗?还是更长的时间范围更可取?
e. 你如何看待一种基于信誉系统的方式来发送 blob?
a. 在决定在区块中包含哪些 blob 时,你在多大程度上依赖于你对 blobpool 的看法?
b. 你更喜欢通过私有通道接收 blob 吗?你为私有 blob 提供哪些包含保证?
c. 需要哪些基础设施变更才能促进每个 slot 的 blob 数量增加 8 倍?这是否会显着影响你构建和分发区块的方式?
a. 你计划如何处理 PeerDAS 下 blob 数量增加导致的带宽增加?
b. 峰值与平均带宽消耗有多重要?
c. 你是否计划在水平分片世界中继续下载所有 blob?
- 原文链接: ethresear.ch/t/on-the-fu...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!