本文讨论了以太坊中多重并发提议者(MCP)机制,旨在解决由领导者主导的共识机制带来的垄断问题。文章探讨了在MCP经济秩序下的确定性区块排序方法,分析了在存在抢跑交易激励下的时间竞争问题,并介绍了部分排序数据集(POD)的概念。最后,文章讨论了采用POD作为MCP的主要数据结构如何缓解MEV攻击,并强调了验证者地理位置分散的重要性。
多重并发提议者 (Multiple Concurrent Proposers, MCP) 最近已成为社区内一个重要的讨论话题,尤其是在引入 BRAID 协议 和 DAG 共识兴起之后。Max 赞成以太坊采用 MCP 的理由是,基于领导者的 共识机制 造成了垄断,在给定的 slot 中,领导者被赋予了巨大的垄断权力。这种权力的集中导致了一些交易的短期审查等问题。
在基于领导者的共识中,每个 slot 的指定领导者拥有提出区块的独家权力,这使得他们能够利用自己的地位来实现利润最大化,例如通过交易重新排序或抢先交易。MCP 旨在通过去中心化区块提议流程来缓解这些问题,从而减少任何单个提议者在给定 slot 中对网络施加的影响。
设 n 代表网络中验证者的数量。验证者的一个子集维护一个本地链,表示为 k < n。协议在某个步骤将需要选择 slot i 处所有本地区块链的联合,并且必须在每个本地链的交易之间应用排序规则。
确定性区块排序:应用确定性规则来排序区块及其交易。在 MEV-SBC '24 活动中, Max 提出了 两种方法:
设 p 为参与 MCP 协议的提议者,负责在 slot i 期间在其本地链中提出一个区块。我们承认,提出此区块需要固有的延迟和处理时间。具体来说,协议允许的最大可容许延迟为 \Delta 时间单位,之后 p 将受到惩罚。
p 可能会策略性地选择将其区块提议延迟到 \Delta - \epsilon (其中 \epsilon > 0 ) 时间单位。这种延迟使 p 能够通过观察和计算其他提议者提交的交易的部分顺序来潜在地利用抢跑机会。通过在错失 slot 惩罚之前策略性地放置他们的区块提议(没有区块被提议,并且不会被 slot i 接受),p 可以包含具有更高 Gas 费用的交易,这种情况为参与抢跑行为提供了明确的激励,并且是 post 中参与时机博弈的主要激励。
在当前的确定性协议规则下,这种时机策略受到激励,因为它允许提议者通过操纵交易顺序来最大化他们的奖励。这种情况强调了对有效机制的需求。然而,更强大的解决方案可能涉及重新审视交易排序规则,以消除这种导致此类剥削行为的时机博弈的具体激励,从而确保更公平和更安全的协议。
关于 MCP 的主要担忧之一是缺乏明确定义的方法来确定交易的顺序。目前仍不确定序列的确立方式以及排序的基础标准,以及客户的影响力将如何发挥——无论是通过拍卖、延迟考虑还是垃圾邮件攻击等机制,正如 Phil 在 SBC '24 上强调的那样。
Common Prefix 团队已经对各种 共识协议进行了透彻的分析,包括基于领导者的、包含列表的和无领导者的共识模型,重点关注它们对审查的抵抗力。作为他们研究的结果,他们开发了部分排序数据集的概念。在此模型中,交易的顺序由客户端记录的时间戳确定,当两个交易同时记录时,这可能会导致缺乏严格的排序。在现有文献中,尚未广泛探讨放弃交易处理中的严格排序的影响,或者至少我不知道有任何关于此事的综合研究。
POD 是 \{(r, T), …, (r’, T’)\} 这样一对的有限序列,其中 r 是 round (slot),T 是一组交易。
如果不能出现记录 round r_{rec} \leq r_{perf} 的新交易,则 round 是完美的,这意味着在 r_{perf} 之前排序没有冲突。
一个 POD 协议 公开了以下方法。
write(tx)
:客户端调用 write(tx)
来写入一个交易 tx
。write_return(tx, π)
:在 write(tx)
之后,协议输出 write_return(tx, π)
,其中 π
是一个记录证书。read_perfect()
:客户端调用 read_perfect()
来读取公告栏中的交易。read_perfect_return(r, D, Π)
:在 read_perfect()
之后,协议输出 read_perfect_return(r, D, Π)
,其中 r
是一个 round,称为过去完美 round,L
是一组交易,D
是一个 POD,Π
是一个过去完美证书。对于 D
中的每个条目 (r', T)
,我们说 T
中的交易在 round r'
处被最终确定。read_all()
:返回直到当前 round 的所有交易,没有过去完美的保证,因此它可以比 read_perfect()
更快地返回。read_all_return(D, Π)
identify(π, Π) → P' ⊆ P
:客户端调用 identify(π, Π) → P' ⊆ P
来识别投票支持交易最终确定的参与方集合 P'
,其中 Π
是一个 POD,π
是由 write_return(tx, π)
返回的证书。Liveness 和 Security 的属性在原始工作中详细说明,以下内容将在后续论证中使用:
公平惩罚:没有诚实的副本会因恶意操作而受到惩罚。如果 identify(π, Π) → P'
,其中 π
是交易 tx
的记录证书,Π
是 POD D
的过去完美证书,则只有当 P'
中的所有参与方都签署 tx
和 D
时才能创建。
POD 的构造如下:客户端将交易发送到网络中的所有验证者,并且必须等待 n - f 个签名以确认其交易已被网络接收,其中 f 是允许的拜占庭验证者的数量。一旦客户端收到签名,他将记录他收到的所有签名的中位数,因为验证者在收到交易时会存在一些延迟和差异。
对于某个 round 的交易读取集,客户端将有两个选项:
采用部分排序数据集 (PODs) 作为 MCP 的主要数据结构引入了一种新的方法,这种方法尚未得到广泛研究,尤其是在其缓解先前描述的 MEV 博弈类型的潜力方面。
在 PODs 中,交易根据其时间戳确定性地排序。虽然这种方法需要处理多个交易共享同一时间戳的情况——或评估此类事件发生的可能性——但它从根本上改变了先前描述的针对其他提案者的区块交易的 timing games 的抢跑激励机制。
考虑一个 slot m 中的情况,其中一个恶意提议者试图抢跑或夹击另一个交易。在之前的确定性排序(基于拍卖和优先级费用)下,这种攻击是可行的,因为提议者可以通过竞标高于他人或利用延迟来操纵他们在排序中的位置。然而,通过在 PODs 中实现的基于时间戳的排序,这种策略发生了显着变化。一个悬而未决的问题仍然是知道可以使用 PODs 或时间戳排序应用哪些策略来提取 MEV,以及与所描述的博弈相比,这些策略是否会对网络的福祉产生更坏的影响。
在这种新的设置中,成为 slot 中最后一个提议者实际上会将该提议者置于交易顺序的最终位置,从而限制他们进行抢跑或夹击的能力(假设所有节点都诚实)。相反,他们只能执行尾随(back-running),这通常被认为不如抢跑或夹击有害。这种排序策略的转变可以有效地降低这些更危险的 MEV 剥削形式的风险。
如果恶意验证者试图通过贿赂提议者来操纵交易顺序,则应对该验证者处以罚款。通过施加此类惩罚,协议可以阻止恶意行为并确保交易排序过程的完整性得到维护。未来的下一个问题之一是如何检测交易记录中的不良行为,或许应用土耳其方法 (Turkey’s Method) 是一种可能的选择,并假设异常值是恶意记录。
然而,情况比看起来更复杂。验证者面临一场新的博弈,其中交易排序受到延迟的影响,这带来了一系列额外的挑战。验证者现在可能会参与延迟博弈,其中与其他验证者或网络节点的地理距离成为获得优势的关键因素。为了缓解这一点,至关重要的是要确保验证者在不同区域之间得到充分的去中心化。
在地理上分散验证者有助于减少基于延迟的优势的影响。聚集在同一位置的验证者可能会导致中心化风险,在这种情况下,少数验证者可能会因其低延迟连接而主导网络。这种中心化可能会破坏交易排序的公平性,并可能重新引入审查的风险。
此外,验证者有动力避免共享同一位置,因为这样做会降低他们可以访问的、用于进行可能的尾随和抓住此类机会的交易的独特性。在同一区域运营的验证者越多,每个人可以捕获的独特交易就越少,从而导致交易费用带来的利润降低,因为这些利润必须在更多验证者之间分配。这种动态鼓励验证者分散开来,从而形成一个更具去中心化和弹性的网络,从而更好地防止基于延迟的博弈和权力的中心化。然而,目前的激励仍然很弱,未来的工作将在于如何为非中心化提供更好的激励。
- 原文链接: ethresear.ch/t/timestamp...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!