本文分析了以太坊中区块提议者的 timing game 演变及其对验证者的影响,重点研究了 Kiln 等实体通过延迟区块提议来获取优势的行为,以及这种行为如何导致更高的 missed head votes 率。文章还探讨了不同节点运营商(如 Lido、Coinbase 和 Kiln)在区块提议时间上的行为差异,以及可能的协调策略,并讨论了针对此类协调行为的潜在解决方案。
现在,提议者时序博弈不再是一个新现象,并且已经被分析过,这里,这里和这里。
在接下来的研究文章中,我想展示提议者时序博弈的演变,并分析它们对证明者的影响。通过对 Lido、Coinbase 和 Kiln 的节点运营商的案例研究,我们深入探讨区块提议时序及其对 Ethereum 共识的影响。
截至 2024 年 8 月,区块构建市场在很大程度上是外包的,其中约 90%由 mevboost 区块构建者处理。实际上,两个构建者,Titan Builder 和 Beaverbuild,产生了大约 80% 的链上区块。
Kiln 是推动时序博弈最远的实体之一,将区块提议延迟到 slot 中的 3-3.5 秒 标记。
在当今的 mevboost 环境中,区块传播主要由中继处理。 虽然提议者在从中继收到区块后仍然会传播区块,但中继通常具有更好的网络连接性,因此可以更快地完成。但是,时序仍然由提议者控制,他们可以延迟其
getHeader
调用以参与时序博弈。
此图表显示了时序博弈的演变。我们可以看到,来自 Kiln 验证器的区块随着时间的推移出现得越来越晚。
这对网络产生影响:对于 Kiln 提议者提议的区块,错过/错误的 head 投票率明显更高:
\
missed_head_votes_over_proposers1200×550 26.1 KB
之前的分析 表明,等待的时间越长,预期的错过 head 投票数就越高(“slot 中第二个 5 秒内看到 80% 的证明”)。Kiln 提议区块非常晚,导致一些证明者错过它们,转而投票给父区块。鉴于每个 slot 大约有 32,000 个验证器被分配,这导致大约 10% 的验证器投票给错误的区块。
让我们检查三个大型节点运营商的证明行为,并比较他们如何响应 在 slot 中不同时间提议的区块。 下图说明了在 slot 中的几秒内,正确和及时 head 投票的分布。
对于早期区块,我们观察到 Lido 和 Coinbase 都显示出其投票模式中特有的“U”形,这可能是由不同的地理位置或客户端软件引起的。相比之下,Kiln 显示出一个突出的峰值,略微落后于 Coinbase 和 Lido 的第一个峰值。但是,对于 late 区块,Kiln 证明者也显示出“U”形模式。
当在 slot 期间在 p2p 网络中的 4 秒标记处首次看到区块时,大多数 Lido 证明者比大多数 Kiln 或 Coinbase 证明者提前最多 2 秒进行证明。 这种模式不一定表明 Kiln 正在执行“个人策略”。相反,这可能归因于运行不同的客户端或使用不同的地理位置。
在下图中,我们比较了节点运营商在不同提议者上的表现。例如,高于 y=1 的条形图,Lido 的绿色条形图,表明 Lido 证明者错过了更多来自 Kiln 提议者的区块的 head 投票。同时,Lido 证明者对 Lido 区块的表现更好。1 处的虚线表示作为提议者的所有实体的错过 head 投票的平均份额。低于 1 的条形图意味着与平均水平相比,特定实体与相应提议者一起错过的 head 投票更少。
\
missed_head_votes_over_proposers_percentage1200×550 28.1 KB
重要的是,预计每个节点运营商在其本地区块上的表现最佳。即使没有协调预言机,也可以通过将节点共址来实现这一点。
为了快速总结我们所看到的:
Kiln 证明者通常表现良好。 之前的分析 表明,Kiln 在运行高性能验证器方面做得非常出色。有关 Kiln 证明性能的更多详细信息,请参阅此分析。
Kiln 造成压力。 现在,我们知道 Kiln 区块给其他证明者造成压力,但不一定给 Kiln 的证明者造成压力。
解释原因。 目前很难回应“如何?”。一种可能的解释可能是 Kiln 的验证器高度共址,许多验证器在同一台机器上运行,或者具有非常密集的 peering。另一个原因可能是跨多个节点的协调行为,无论是通过自定义 peering/私有网格网络,还是通过连接其验证器的另一个额外的通信层。后者被认为更加中心化,因为它更多地利用了规模经济。
当检查 Lido 和 Coinbase 对每个实体提议的区块的(正确和及时)证明时序时,可以观察到类似的模式 (2024.07.26-2024.08.03)。
有趣的是,Kiln 为他们自己的 late 区块开发了一个“U”形分布,范围从 3.8 \Rightarrow 6.13.8⇒6.1,Lido 在 4.2 秒处有一个峰值,Coinbase 在 slot 中的第 4 秒开始有一个平台期,在第 6 秒处有一个小峰值。
让我们将重点转移到重组的区块。从节点运营商的角度来看,一种策略可能是永远不要投票重组自己的区块。简而言之,“如果提议者是我,永远不要投票给父区块作为 head”。
我将在下文中用_本地区块_代替称其为实体的自己的区块。
下图显示了证明者投票给重组区块与投票给父区块的百分比。红色部分显示了该实体所有证明者中投票给由该实体构建的重组区块的百分比。
\
votes_for_local_reorged_block1200×550 31.2 KB
Kiln 显示出异常行为。虽然大多数节点运营商的证明者正确地投票给父区块而不是本地区块,但 Kiln 的证明者似乎无视这一规范。超过 10% 的 Kiln 证明者试图通过投票给本地区块来保持本地区块在链上。 如果采用这种策略,如果它们阻止本地区块被重组,它们可能会证明因不正确的 head 投票而造成的损失是合理的。但是,这些策略通常在 Ethereum 社区中不受欢迎:“不要玩弄共识”。
该图表使用 365 天的数据。因此,如果在过去一年中实施了一些复杂的策略,则红色部分将按比例缩小。
关于协调证明,作为社区,我们似乎接受在同一节点上运行的验证器投票给相同的检查点。
我们可能不希望任何额外的努力跨越物理机器的边界来改善跨验证器的协调。这是每个人都可以构建的,超出了规范所描述的。这种协调可能具有不同的形式:
我认为,跨越界限进入后一种形式的协调(级别 2 和 3)是有问题的,节点运营商应承担责任。最后,对于涉及静态 peering 和私有网格网络的策略可能存在灰色区域。
这种设置可以用于运行(恶意)策略,例如:
在讨论_协调_时,重要的是区分两种类型:
一种潜在的解决方案来对抗复杂的协调验证器行为是 EIP-7716: 反关联惩罚",该方案建议根据验证器之间的相关性来缩放惩罚。
在此处找到此分析的代码这里。
标题 | 作者 |
---|---|
Timing.pics | DotPics 网站 |
时序博弈:影响和可能的缓解措施 | Caspar & Mike |
深入研究证明 - 定量分析 | Toni |
以太坊权益证明中的时间、slot 和事件排序 | Georgios & Mike |
时间就是金钱:权益证明协议中的战略时序博弈 | Caspar 等人 |
贿赂时间:衡量区块构建市场 | Toni 等人 |
PBS 环境中人为延迟的成本 | Chorus One |
区块延迟对共识层影响的实证分析 | Kiln |
关于时序博弈的 P2P 演示 (Youtube) | P2P_org |
时间就是金钱 (Youtube) | Caspar |
- 原文链接: ethresear.ch/t/on-attest...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!