本文档主要讨论了以太坊验证者和本地区块构建者的带宽要求,并针对带宽不足的本地区块构建者提出了解决方案。
概要
在本文档中,我们建议验证者的带宽要求,并为无法满足带宽要求的本地区块构建者提出几种解决方案。
我们还注意到,即使满足带宽要求,仍然可能因为延迟而错过 slots。 如果你的节点在地理位置上与其他网络隔离,那么与其他未隔离的节点相比,消息需要更长的时间才能被网络的其余部分接收,所有其他条件都相同。
当用户提交交易时,他们期望他们的交易在未来的某个时间点被确认到一个区块中,如果该交易是有效的。 我们没有定义什么是有效,但是,不失一般性,可以考虑用户在其帐户中有足够的资金可供花费的情况。
区块构建者是负责将交易包含在区块中的实体。
我们分为两种类型:
区块构建者可以通过两种方式阻止交易被包含:
我们的目标是使这些行为的代价高到令人望而却步,或者对你的交易最终是否被包含无关紧要。
第一个问题通过强制区块构建者在其区块中包含交易来解决,而第二个问题在最坏的情况下通过本地构建来解决,但这是一种罕见的事件。
由复杂的实体完成的区块构建往往倾向于中心化。 目前,两个主要的中心化构建者生产了以太坊中的大部分区块。 这些构建者可以选择(或被胁迫)系统地忽略某些交易,同时包含其他交易。 这不是一个理论问题,因为我们已经看到这种情况发生在与 Tornado Cash 交互的地址的交易中。
包含列表是一种强制区块构建者包含一组交易的机制。 如果一个区块构建者(无论是否中心化)创建了一个区块,如果该区块构建者没有在该区块中包含包含列表中的交易,协议将使用包含列表来惩罚该区块构建者。
FOCIL
最有希望的设计被称为 Fork Choice Inclusion List(FOCIL)。 如果区块构建者不包含有效的交易,那么该区块将被视为无效,除非该区块已满。 换句话说:
通过本地区块构建进行缓解
我们目前处于没有包含列表的情况。 因此,我们依赖本地构建者来缓解选择性交易排除的威胁,因为:
如果区块构建者被迫包含被审查的交易,他们可以选择放弃构建区块。
注意:从技术上讲,如果中心化的区块构建者没有生成区块,那么该区块将由本地区块构建者构建。 这对问题的构成没有影响。
注意:中心化的区块构建者可能由于其他原因而生成无效区块或不生成区块(时间游戏),为简单起见,我们将这些视为相同的情况。
鉴于中心化的区块构建者现在可以自由地忽略被审查的交易,而不会受到太大的影响,因此这种情况只有在包含列表的情况下才可能发生。 因此,让我们假设我们有包含列表。
中心化区块构建的本质
中心化区块构建是一个竞争非常激烈的领域。 如果顶级的区块构建者决定放弃构建区块,那么考虑到他们将损失的利润,另一个中心化的区块构建者最终将开始创建区块。
因此,不构建区块不符合中心化区块构建者的利益。
此外,在包含列表的世界中,审查区块的构建者在经济上处于不利地位,因为他们的选择要么是放弃区块构建,要么是确保每个区块都已满,以便他们可以忽略包含列表。 而非审查区块的构建者只需要从所有可用的交易中构建最佳的区块。
我们还强调,在包含列表的世界中,审查区块的构建者可能会成为目标,以至于他们必须确保他们构建的每个区块都已满。 这可以通过不断地将审查的交易添加到包含列表中来完成。
最终,在包含列表的情况下,顶级区块构建者既进行审查又有利润的情况不太可能发生。
尽管如此,这正是本地区块构建可以发挥作用的地方。
在这种情况下,我们对本地构建者有什么期望?
因此,本地构建者在所有中心化区块构建者都放弃构建区块的罕见和最坏的情况下,充当了关键的后备机制。
显然,我们不能假设本地区块构建者与中心化区块构建者一样强大。 因此,如果区块是由本地区块构建者而不是中心化区块构建者构建的,我们应该预期协议的性能会有所下降。
但是,我们注意到,在实施包含列表的世界中,所有区块构建者都必须能够通过包含列表的内容来构建区块。 例如,如果包含列表中的 blobs 数量为 6,并且本地区块构建者的带宽不足,他们可能无法生成有效的区块。
在 blobs 的情况下,IL 委员会可以为网络提供种子,以确保他们列表上的 blobs 被视为可用。 如果 FOCIL(带有 blobs)包含此内容,那么我们可能不需要本地区块构建者拥有那么多带宽。
尤其是考虑到 IL 列表是在前一个 slot 中发送的。 这仅适用于 PeerDAS,而不适用于 2D DAS,因为 IL 委员会无法假设区块构建者不会添加更多 blobs。
如果没有包含列表,我们所处的世界中,本地区块构建者对于包含被审查的交易非常重要。 本地区块构建者可以根据他们传播区块所需的带宽量来选择他们想要提供的审查阻力。
例如,如果一个区块构建者只有 50 Mbps 的下载速度和 20 Mbps 的上传速度,那么该用户应该修改他们的配置,以尽可能多地包含交易。 这可能是零 blobs 的形式,但区块已满,或者是一个 blob 但区块半满。
为带宽限制配置区块构建
很难指定单个节点应该配置多少 blobs 或交易包含在一个区块中,因为它不仅取决于你的带宽,还取决于你的调制解调器、ISP 以及其他节点离你有多远(延迟)。
相反,我们建议用户通过检查以下内容来确定他们何时未达到最低要求:
然后,区块构建者有责任调整他们包含的 blobs 数量和/或他们包含的全部交易数量。
在这种情况下,本地区块构建者可以选择使用 mev-boost。
如上所述,有了包含列表,本地区块构建者在审查阻力方面的作用变得不那么重要。
本地区块构建者需要确保他们有必要的带宽要求来满足包含列表(如果已满)。
为带宽限制配置区块构建
由于本地区块构建者无法调整他们在区块中包含的交易或 blobs 的数量,并且带宽量与 gas limit 和 blob 目标直接相关,因此,如果本地区块构建者的带宽无法跟上完整包含列表所需的数据,他们可以:
简而言之,一旦我们有了包含列表,在所有中心化区块构建者都停止构建区块的罕见和最坏的情况下,本地区块构建者将仅需要用于审查阻力。
以平均带宽为目标
为带宽设定严格的下限是很困难的,特别是如果网络拓扑像以太坊一样变化,并且不同的实体可能比其他实体需要更多。
例如,完整节点预计不需要像本地区块构建者那样多的上传带宽,因为他们不需要网络中的大多数节点在一定时间限制内证明一个区块。
这意味着它们可能低于平均水平。 此外,我们知道有些节点的带宽为每秒千兆位,而另一些节点的带宽为每秒兆位。
本文档建议我们根据全球平均带宽使用平均带宽。
平均网络带宽
Statista 指出,全球平均下载速度为 92 Mbps,全球平均上传速度为 45 Mbps。 我们注意到,一个人可能居住在带宽良好的国家/地区,但居住在一个带宽不太好的城市。
对于想要在本地构建区块的验证者,我们建议 100 Mbps 的下载速度和 50 Mbps 的上传速度,以符合全球平均水平。
对于想要使用 MEV-boost 的验证者,我们建议减半; 50 Mbps 的下载速度和 25 Mbps 的上传速度。 之所以选择这个速度,有两个原因:
感谢 Parithosh Jayanthi、Kevaundray Wedderburn、Josh Rudolf、Dankrad Feist、Justin Traglia、Ignacio Hagopian、George Kadianakis、Carl Beekhuizen 和 Barnabé Monnot 的贡献。
- 原文链接: hackmd.io/DsDcxDAVShSSLL...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!