原标题:《On Attestations, Block Propagation, and Timing Games》
作者:Nero_eth
编译:Tia、Techub News
如今,提议者计时博弈非常普遍,许多研究都分析了这一现象。
本文将带您了解提议者计时博弈的演变,并分析其对见证人的影响。通过对Lido、Coinbase 和Kiln 节点运营商的案例研究,我们将深入探讨区块提案计时游戏及其对以太坊共识的影响。
截至2024 年8 月,区块构建市场大部分是外包的,约90% 的区块是由mevboost 区块构建者建造的。其中,Titan Builder 和Beaverbuild 建造了大约80% 的区块。
Kiln 是驱动计时游戏的主要实体之一,在单个时隙内将区块提案延迟3-3.5 秒。
在当前的mevboost环境中,区块传播主要通过中继来完成。虽然提议者在从中继器接收到块后仍然会传播该块,但中继器通常具有更好的网络连接,因此可以更快地完成传播。然而,时间仍然由提议者控制,他们可以延迟他们的“getHeader”调用来玩弄时间。
该图显示了计时游戏的演变。我们可以看到,随着时间的推移,Kiln 验证者提出的区块在时隙内相对滞后。
这对网络有影响:Kiln 提议者提出的区块有明显更高的错过/错误区块头投票。
之前的分析表明,等待时间越长,错过区块头投票的预期数量就越高(“80% 的见证人出现在时隙的第5 秒”)。 Kiln 很晚才提出区块,导致一些见证人错过了它们并投票给父区块。每个插槽将分配大约32,000 个验证者,这将导致大约10% 的错误区块投票。
让我们看一下三个大型节点运营商的见证行为,并比较他们在不同时间对提议区块的反应。下图展示了槽秒内区块头投票正确及时的分布情况。
对于早期区块,我们观察到Lido 和Coinbase 的投票模式呈典型的“U”形,这可能是由于不同的地理位置或客户端软件造成的。相比之下,Kiln 显示出一个明显的峰值,略落后于Coinbase 和Lido 的第一个峰值。然而,对于后来的街区,窑的见证也呈现出“U”形图案。
当区块在4 秒时首次出现在槽中时(由于是P2P 网络,每个节点接收区块的时间不同),Lido 见证人比Kiln 或Coinbase 见证人最多早2 秒进行见证。这种模式并不一定表明Kiln 正在执行“个人策略”。相反,这可能是由于客户或地理位置的差异造成的。
谁影响了谁?
下图中,我们比较了不同提议者下节点算子的性能。例如,上面y=1 的绿色部分表明,当Kiln 作为提议者提议一个区块时,Lido 见证人将更有可能错过区块头投票。然而,当Lido作为提议者时,Lido见证人是最及时见证区块的。虚线1 表示作为提议者的所有实体中错过区块头投票的平均份额。低于1 的条意味着与平均值相比,特定实体在与其各自的提议者合并时错过的区块头投票更少。
值得注意的是,节点运营商在处理自己提议的区块时表现最佳。
快速总结一下我们所看到的情况:
当其他算子作为提议者提议区块时,大多数算子的表现相对一致。当Kiln 作为提议者提出区块时,Figment、Lido、Kraken 和EtherFi 表现不佳。当Kiln 作为提议者提议区块时,只有Kiln 和Binance 表现更好。窑作为见证者做得很好。早期分析表明,Kiln 在高性能验证器方面表现出色。有关Kiln Witness 性能的更多详细信息,请参阅此分析。
但Kiln造成了压力。我们现在知道Kiln 提出的区块给其他见证人带来了压力,但对Kiln 的见证人没有压力。
目前,很难解释“如何”。一种可能的解释是Kiln 的验证器高度集中、协同运行或具有非常密集的点对点连接。另一个原因可能是验证器通过自定义对等/专用网络或通过其他附加通信层连接它们的协调行为。后者被认为本质上更加集中,因为它更加强调规模经济。
当我们查看Lido 和Coinbase 作为提议者提出一个区块时的(正确且及时的)证明时间时,我们可以观察到类似的模式。
有趣的是,Kiln 为自己的后期区块开发了一个“U”形分布,从3.8 秒到6.1 秒,而Lido 在4.2 秒处达到峰值,Coinbase 在4 秒处开始出现峰值。稳定期,在6 秒处有一个小峰值。
防止您自己提议的块被重组
让我们把注意力转向重组后的区块。从节点运营商的角度来看,一种策略可能是永远不投票给自我重组的区块。简单地说,“如果提案者是我,永远不要将父块投票作为块头”。
在下面的章节中,我将使用“本地块”来表示“自提议块”。
下图显示了投票支持重组区块的见证人与投票支持父区块的见证人的百分比。红色部分显示实体投票支持重组区块的见证人百分比。
Kiln 表现出异常行为。虽然大多数节点运营商的见证人诚实地投票支持正确的块头而不是本地块,但Kiln 的见证人却不然。超过10% 的Kiln 见证人试图通过投票来将本地区块保留在链上。如果采用这样的策略,他们可能会因为投票错误的区块头而蒙受损失。然而,这些策略在以太坊社区中经常受到轻视:“不要玩弄共识”。
该图表使用365 天的数据。因此,如果过去一年内实施了一些复杂的策略,红色部分的比例就会相应变小。
但我们如何看待其他层面的合作呢?
关于见证人协作,作为一个社区,我们似乎接受在同一节点上运行的验证者投票给相同检查点的事实。
我们可能不想做出任何努力来改善跨物理机器边界的验证者之间的协作。这应该是每个人都可以构建的东西。这种合作可能采取不同的形式:
第1 级- 具有静态对等互连的回退机制:为多个物理机提供中央备用/备份节点。这也可能是一个断路器,一些特别容错的机器,充当消息的私人中继。具有改进的对等连接、专用网络或类似设置的设置也可能属于此类别。 2 级- If-else 规则:硬编码规则,在某些插槽中等待更长时间。这些将安装在多台物理机器上,允许它们根据预定义的规则“协作”。第3 级- 僵尸网络:有一个集中式预言机,与所有验证者进行通信,并提供投票检查点和应发布投票的时间戳。我认为后两种协作形式(2级和3级)是有问题的,节点运营者应该承担责任。最后,涉及静态对等互连和专用网络的政策可能存在灰色地带。
此类设置可用于运行(恶意)策略,例如:
确保不同的检查点永远不会在多个物理机器上进行投票。确保您永远不会对重组您自己提案的区块进行投票。基于连续提议者的协作(诚实的重组客户(y/n))。审查当事人的证词。不投票支持某个政党的区块。其他。在讨论协作时,区分两种类型很重要:
协作行为发生在同一物理机上运行的验证器之间。协作行为是由于运行相同的修改后的客户端软件或依赖相同的集中式预言机而产生的。针对复杂协作验证者行为的一个潜在解决方案是EIP-7716:反相关惩罚,它建议根据验证者之间的相关性调整惩罚。