本文提出了一种抗MEV的动态定价拍卖机制,用于销售执行提案权。该机制通过让验证者观察订单,并利用RANDAO对同一Slot内的订单进行排序,从而减少信标提议者的权力,降低MEV。同时,动态定价根据未完成的订单总数和当前订单量进行调整,并将支付费用销毁,从而实现高聚合MEV销毁。
通过 RANDAO 排序的 EA 和 ET 之间婚姻的执行提案(她说愿意)。
作者:Anders。特别感谢 Barnabé 帮助我提高这篇文章的清晰度。还要感谢 Thomas、Julian 和 Francesco 的宝贵反馈。
作为确立提议者–构建者分离(ePBS)的一部分,信标验证器作为执行提议者的角色受到了审查。执行票 (ET),最初作为 证明者–提议者分离 引入,是一种通过从票池中随机抽取来选择执行提议者的机制,旨在将信标验证器从选择过程中分离出来。然而,出售票的机制尚未确定,目前正在考虑几种替代方案。一个值得注意的担忧是,执行票的出售可能会导致最大可提取价值 (MEV)。如果该机制由共识层管理,并且信标提议者对价格或购买者的选择施加过多的影响,那么该设计可能会重蹈其旨在解决的问题之一,即新的 MEV 来源成为一个担忧。执行层自动售货机提出了类似的问题。因此,如果追求 ET,一个具有 MEV 抵抗性的拍卖机制可能是可取的。
执行拍卖 (EA) 是一种相关的机制,用于选择未来的执行提议者,省略了票池。它依赖于一个 MEV 定价拍卖,其中竞标者首先出价以设定 MEV 燃烧的下限,最后通过小费进行竞标,以便被提议者选中。人们对 MEV 定价拍卖的可行性提出了担忧(1, 2, 3),原因是初始阶段的竞标激励不足。最近有人建议,通过考虑 staking 元游戏可以解决这个问题,其中 staker 必须尽早竞标,以剥夺其他 staker 的收入。然而,这种解决方案意味着 EA 将导致 staker-构建者集成度的提高,这也可能是一个 令人担忧的原因。因此,即使在不利用票池的情况下选择执行提议者时,探索另一种拍卖机制似乎也是有益的。
本文介绍了一种具有 MEV 抵抗性的动态定价拍卖,用于出售执行提案权。构建者在借记账户中持有储备金,并为票 (ET) 或执行提案Slot(类似于 EA)下达具有约束力的采购订单。最终价格根据总的未结订单以及当前正在进行的订单/票动态调整,与 EIP-1559 有些相似之处,并且付款会被销毁。订单通过证明者的观察在Slot级别进行划分,以消除信标提议者在促进拍卖中的代理权,从而减少新的 MEV。这会产生很高的总体 MEV 燃烧。在该设计的一个版本中,被称为执行票拍卖 (ETA),在同一Slot中收到的订单通过利用 RANDAO 进行提案排序。在另一个仅适用于 ET 的版本中,在同一Slot中收到的订单会被集体铸造成票。由于 RANDAO 目前的限制,该机制只能提前至少一个 epoch 拍卖提案权。
图 1 显示了建议的购买机制。构建者通过公共 P2P 层发送采购订单(一次一张票/执行Slot)。他们指定最高价格,并在共识中持有一个借记账户,以保证他们的采购订单有足够的资金支持。该账户使用单独的交易进行注资(参见讨论)。
信标证明者观察所有订单,直到观察截止时间,例如在Slot边界前 2 秒执行。信标提议者收集所有订单(平均每个Slot会有一个采购订单),包括他们可能在其Slot的最后几秒钟内找到的订单。订单作为一个组添加到信标区块中,稍后将从跨区块调度的虚拟先进先出 (FIFO) 队列中弹出。该队列可能只有一个Slot长,具体取决于实现。
如果信标提议者未能包含他们观察到的采购订单,证明者会拒绝该区块。到目前为止,该机制与 MEV 定价拍卖(例如,MEV 平滑、MEV 燃烧、EA)相似,但是证明者的任务是简单地观察所有购买,而不是设置投标下限。另一个可能想到的设计是 FOCIL 风格的包含列表 (IL),但是没有新的主动参与者以 IL 委员会的形式出现。
图 1. 购买流程的示意图。蓝色订单由构建者的借记账户支持,并由证明者观察(紫色箭头)。随后,信标提议者将所有传入订单添加到信标区块中(深红色箭头)。执行有效性检查以确保订单得到充分支持。最后处理订单——使用 RANDAO 来确定在相关Slot内收到多个订单的情况下的顺序(黄色),或者使用集体铸造(红色)。在 ETA 中,订单直接排队等待提议。
一旦一个Slot的订单被添加到信标区块中,就会对至少包含一个新订单的构建者执行有效性检查(图 1 中的青色)。如果构建者在队列中的未结(尚未处理)订单没有得到其借记账户的充分支持,则会丢弃该构建者的所有待处理订单。也可能会处以罚款。如第 4 节所述,订单在添加时直接定价,或者例如,在排序时定价。确定的购买价格从借记账户中扣除并销毁。采购订单的剩余 ETH 随后会被虚拟释放,以便可以用来支持新的采购订单。然后对订单进行排序,并将其排队等待提案(黄色箭头)或添加到票池中(红色箭头),如第 3 节所述。
来自同一Slot的采购订单以未排序的方式添加到信标区块中。来自同一Slot的订单的后续排序在不同的设计之间有所不同。
ET 的自然策略是集体铸造,其中来自同一Slot的所有订单同时铸造一张票,如 Figure 1 中的红色箭头所示。下一小节中用于 ETA 的 RANDAO 也可以使用相同的设置应用于 ET(虚线黄色箭头)。但是,唯一真正的好处(仍然是微不足道的)是促进更均匀地补充票池。
在同一Slot中收到的采购订单可以直接由 RANDAO 排序,完全跳过票池。也许执行票拍卖 (ETA) 会是一个合适的名称。实际上,有了这种设计,买家将有一个订单的预计到达时间,如果一个Slot中有一个以上的订单,就无法预先准确地知道这个时间。Barnabé 关于 ET 和确定性的讨论(1, 2)与此相关。
只有在 RANDAO 更新后才能对订单进行排序。因此,有一个初始的不符合条件窗口 W,在此期间订单无法产生执行提案。RANDAO 每 32 个Slot更新一次,但是所提出的机制不能保证每个Slot都有一个新订单;实际上,模式将是Slot中没有订单。因此,拍卖和Slot提案之间的安全距离需要比 32 个Slot稍长一些。排序后的订单可以理解为坐在第二个 FIFO 队列中,等待提案。请注意,如果需要,ETA 可以将队列设置为容纳与票池一样多的提案权。
动态定价的探索将把已处理的订单称为“票”,尽管在 ETA 设计中,这些订单只是坐在有序队列中等待提案。该协议力求确保在任何时候都有 \hat{T} 张未结票。新票的价格应由当前未结票的数量 T 以及当前购买和采购订单 T_p 的供应量来决定,这些供应量是在一定长度的窗口 W_T 中测量的,在某些版本中,该窗口可以只有一个Slot长。
将票的饱和度定义为 T_s=T-\hat{T}。如果 T_s<0,则票太少,并且该协议通常希望每个Slot出售一张以上的票。如果 T_s>0,则票太多,并且通常希望出售少于一张。增量 T_{\delta}=T_p-W_T 给出了相对于每个Slot一张票的期望值的采购订单,这是一张票被执行提议者消耗的速度。如果 T_{\delta}<0,则该协议出售的票少于一张,并且通常希望出售更多。如果 T_{\delta}>0,则它出售更多,并且通常希望出售更少。
如果 T_s 和 T_{\delta} 均为负,则该协议应降低票价以出售更多票。如果 T_s 和 T_{\delta} 均为正,则应提高价格以出售更少的票。不那么简单的问题是如何处理一个变量为负而另一个变量为正的情况,如何开窗销售以及如何快速调整价格。
就像在 EIP-1559 中一样,票的价格在相对的基础上进行调整,每个Slot逐渐按当前价格的一定比例进行调整。但是,为了提高 MEV 抵抗性并适应手头的问题,与 EIP-1559 相比,三个差异似乎很有用:(1)价格应取决于当前 slot 中包含的订单,而不仅仅是前一个 slot 中的订单;(2)区块永远不应“满”,以免票价变得非常高;(3)该机制应该是“二维的”,因为它既考虑了票的饱和度又考虑了增量。
本小节首先探索这种定价机制的最简单实现,然后逐步扩展。在最简单的设计中,W_T=1,并且可以在添加到信标区块时直接对订单进行定价。如果有一个新订单(T_{\delta}=0)并且未结票的数量是所需的(T_s=0),则价格保持不变。如果有许多新订单(预期的 MEV 突然激增),则定价机制将大幅提高价格。例如,如果收到 100 个订单,则它们的购买价格可能会提高几个数量级;确切的规范需要根据其他拍卖参数(如票池的大小)来确定。构建者当然会实时跟踪传入的订单并更新他们对最终购买价格的估计。因此,即使在预期的 MEV 突然上涨期间,也只有在推导出的价格与预期的 MEV 相匹配时才会出现新的订单。
作为另一种选择,W_T 可以更长,在订单添加到信标区块后的 W 个Slot设置价格。在 Figure 1 中,W=3。然后可以选择一个跨越 4 个Slot直到包括处理Slot的不对称窗口。最重要的好处是 MEV 在峰值期间的抵抗力,这将在第 4.3 节中进一步讨论。其他潜在的好处包括更好的定价粒度、定价订单时更完整的图片以及在 ETA 中将定价和排序订单时的边际简化。当然,有人可能会争辩说,这张图片已经是“完整的”,因为构建者可以在当前的Slot中指示预期的 MEV,尽管他们可能没有完全具备实时评估传入订单的能力。也有人可能会争辩说,W>0 和 W_T>1 对于构建者和开发人员来说,不必要地增加了不确定性和分析复杂度。例如,构建者可能会在峰值前几个Slot下订单,但仍然需要支付接近他们将要收到的 MEV 的实际预期价值(定价更接近提案时间)。
现在将提供一个基本的例子。如果要采用这种通用机制,则价格控制器的确切形式必须通过推理价格应如何快速适应购买票的意愿、对票饱和度的敏感性、饱和度和增量之间的相互作用、对 MEV 诱导的敏感性(参见下一小节)以及通过运行购买过程的模拟来确定。
前一小节中的票的饱和度和增量首先按窗口长度和所需的未结票数量进行加权
w_s=\frac{T_s}{c_s\hat{T}}, \quad w_{\delta}=\frac{T_{\delta}}{c_{\delta}W_T},
使用常量 c_s=2^3 和 c_{\delta}=2^6。应用于每个Slot的票价的百分比变化 w 为
w=(1+w_s)(1+w_{\delta})^k。
这篇文章使用 k=2,确保随着 T_{\delta} 的增长,价格呈非线性响应。这在较短的窗口 W_T 中可能特别相关。设置 k=3 也是可行的。然后,可以增加常量 c_{\delta},以便在较低的票增量下提供更好的定价粒度,同时仍然提供一些关于一个Slot中可能出现的订单数量的保证。价格 p 从其在前一个Slot p_0 的水平更新到其在当前Slot p_1 的水平,如
p_1=w \times p_0。
图 2 说明了对于 \hat{T}=4096 和 W_T=32,根据 w 得出的价格表是什么样子。黄色带规定没有价格变化 (w=1),并且穿过黑线的交点,这些黑线对应于中性的票增量(x 轴)和饱和度(y 轴)。有人建议 更高 的 \hat{T}。这个问题涉及范围广泛的 考虑事项,这些考虑事项不是这篇文章的重点。
图 2. 对于 W_T=32 的基本示例,票价的百分比变化随票的销售增量和池中票的总体饱和度而变化。黑线表示中性增量(每个Slot出售一张票)和饱和度(T=\hat{T})。
图 3 显示了在 W_T=1 时使用与以前相同的方程和设置的价格表。如果在测量Slot内没有产生订单,则 T_{\delta}=-1。请注意,颜色图是按对数缩放的,以捕获如果产生 64 个订单而导致 w 大幅增加的情况。当 T_W=32(图 2)时,订单的大幅跳跃将影响连续 32 个Slot的价格(假设是不对称窗口),然后才会进行购买,因此每个Slot的 w 自然会更低。
图 3. 对于 W_T=1 的基本示例,票价的百分比变化随票的销售增量和池中票的总体饱和度而变化。黑线表示中性增量(在该Slot中出售一张票)和饱和度(T=\hat{T})。
在 W_T=1 时不同 T_{\delta} 的相对变化如图 4 所示,在中性的票饱和度 (T_s=0) 下。使用此设置对 0 到 4 个订单实行的价格变化为 {0.969, 1, 1.031 1.063 1.096}。通过增加 k,可以在进一步提高价格的同时,在较低的订单数量下保留相同的粒度。
图 4. 对于 W_T=1 的基本示例,重点是在中性饱和度下跨 T_{\delta} 的相对价格变化 w。如果在一个Slot中产生 60 个订单,则价格会急剧上涨。
图 5 而是绘制了在 T_{\delta}=-1 时跨 T_s 的响应。换句话说,它显示了如果没有注册采购订单,价格将如何变化。
图 5. 对于 W_T=1 的基本示例,重点是在没有采购订单产生时跨 T_s 的相对价格变化 w。
在概述的定价机制中,信标提议者在较短的窗口 T_W 有机会获得一些 MEV。这发生在证明者已经观察到采购订单和Slot边界之间,对购买票的兴趣突然激增时。
设 n_a 是如果峰值发生在证明者观察截止日期(图 1 中的紫色箭头)之前,则在该Slot中会产生的订单的均衡数量。构建者跟踪传入的订单并计算当前的票价,然后将其与更新的预期 MEV V_e 进行比较,从而产生 n_a 订单。如果峰值出现在证明者截止日期之后,则提议者具有专有权,并且可以(获得报酬)仅包含订单的子集 n_p。提议者的剩余 MEV 来自于为其允许通过的每个订单提供较低的预期购买价格。这是一种垄断定价机制,其中提议者以接近 V_e-p_1 的价格出售位置。它确定 n_p 以根据收入函数最大化其收入 R(n_p):
\text{最大化} \quad R(n) = n (V_e(n) - p_1(n))。
在这里,p_1(n) 基于上一小节中提供的价格方程。另请注意,如果产生许多采购订单,则 V_e 可能会逐渐下降(如果存在临时峰值);因此 V_e(n)。
快速编辑:一些添加/调整和引用上一小节,我忘记了这样做。
如上一小节所述,更长的窗口 W_T 有助于进一步消除 MEV。原因现在很清楚:当前Slot的投标将根据后续Slot中也产生的信息,通过更长的窗口进行定价。这意味着提议者在突然激增期间的杠杆作用较小,因为构建者将需要根据证明者也观察到的投标来付款(以公平的市场价格)。在 Figure 2 中,价格将在包含在区块后的 32 个Slot设置,并受到这些Slot中投标的影响。另一种在没有更长窗口的情况下实现类似效果的方法是根据下一个Slot中计算的价格收费。在这里重要的是要注意,下一个Slot的投标人不能实质性地造成当前Slot投标人的损失。他们还必须支付接近当前Slot投标人的价格,因为在短窗口Slot之间价格不会大幅下降,只会上升(另请注意第 4.4 节中对最高价格的讨论)。然而,关于定价的构建者的高度不确定性的缺点可能很重要。
如果单个Slot内购买的票的数量过多,价格上涨的速度更快,则提议者的潜在收入也可能减少。然后,提议者可以出售更少的位置。此外,通过让下一个Slot中的价格变化不大,可以缓和投标数量(以及潜在的价格)的波动。实现此目的的一种方法是让 w 随着投标的增加而更快地上涨,将当前Slot中的价格设置为
p_1=w \times p_0,
但是不要在使用值 p^*_0 作为 p_0 给下一个Slot定价时,包含全部价格变化
p^*_0=\left(1+\frac{1-w}{c_w}\right) \times p_0。
然后将常量 c_w 设置为高于 1。在价值预期飙升到新的基线 V_e 期间,价格理论上会在随后的Slot中保持相当固定(在一个新的更高水平),每个Slot中的订单数量会逐渐减少,直到它以每个Slot一个采购订单的正常速度进行。然而,请注意,如果 V_e 来自临时机会上涨,则提议者仍然可以提取一些 MEV,因为很多价值可能取决于尽早进入。这还取决于机制是 ET 还是 ETA,以及票池的大小。同样重要的是,价格上涨意味着放弃一些投标粒度。讨论提供了一些关于投标粒度以及提议者提取 MEV 的能力的进一步思考。
作为结论,应该始终记住,大型票池可以缓解票的预期价值的波动。买方不一定购买在接下来的几个 epoch 内出售票的权利,而是在接下来的几个小时、几天、几周或几个月内,具体取决于 \hat{T} 的设置——并且事实证明,当在更长的时间内测量时,以太坊中的 MEV 水平 非常稳定。
每个买家都为其订单指定最高价格。这是需要由借记账户支持的价值。如果在定价时最高价格不足,则实际价格更高,构建者将不会收到票/Slot。但是构建者可能会下未支持的订单来饿死竞争对手,这将降低购买价格。似乎不希望强迫构建者分析每个竞争对手的余额,以确定哪些投标是真实的,哪些是“虚假的”。避免这种情况的一种简单方法是惩罚构建者,原因是他们在购买时下的订单最终没有得到支持。这可以与设置有效性规则结合使用,该规则要求一些最低最高价格,无论是相对于投标时的现行价格,还是/和作为固定总最低值。
然而,惩罚构建者会加剧另一个潜在问题。在预期 MEV 出现意外峰值期间,在当前购买价格接近其规定的最高价格的情况下,构建者可能会“清算”其竞争对手的投标。构建者可能会输入新的投标,迫使其他构建者退出,以惩罚他们并获得更便宜的票。因此,该机制可以通过规定绝对最高购买价格来减少可玩性和风险,以及提高构建者的资本效率。投标绝对最高的构建者保证不会被清算,并且始终会收到票。这并不意味着协议会烧毁更少的 MEV,而仅仅意味着在预期 MEV 极高的情况下,暂时会有更高数量的投标,其中每个订单实际上获得一个期望的具有利润Slot的机会较低。
如果要遵循此路径,应将绝对最大值设置为多少?在 Flashbots 提供的 数据 中,数据跨越 2022 年最后一个季度到 2023 年第三季度之间的 270 万个区块,64 个Slot的最高平均 REV 为 19.5 ETH。峰值平均值因一些 REV 为数百 ETH 的虚假区块而倾斜,这些区块可能很难预先预测。因此,此平均值并不代表构建者提前投标多个Slot所期望的实际 MEV。将窗口扩大 4 倍至 256,最高平均值几乎下降 4 倍至 5.25。因此,将绝对最大值设置为 5 ETH 大概不会影响拍卖,即使在极端的市场情况下也是如此,因为几乎永远不会达到该价格。
本文介绍了一种具有 MEV 抵抗性的动态定价拍卖,用于出售执行提案权,这与 ET 和 EA 的研究相关。它旨在消除信标提议者的代理权,从而减少 MEV。这是通过使每个订单都导致销售,并且在同一Slot中进入的每个订单都具有相同的预期销售价格来实现的。执行票拍卖 (ETA) 通过利用 RANDAO 直接对订单进行排序以进行提案。否则,根据 ET 提案,可以将同一Slot中产生的订单集体铸造成票,并在以后的阶段进行排序。
如果采用这种拍卖机制,动态定价步骤将需要进行大量分析。一个敏感的部分是在缓和订单供应变化的同时,仍然提供足够的定价粒度之间的平衡。较高的 k 在这里可能很有用。另一种潜在途径是不太频繁地举行拍卖。Slot中订单的预期时序也将很有趣——可以尽早下订单以饿死其他人,或稍晚下订单以获取更好的信息。甚至可以推测,有些构建者会一直等到证明者截止日期之后,然后向提议者支付一小笔费用,以获得独家的截止日期后包含(好处是避免了竞争条件)。
为构建者的借记账户注资或从中提款的交易将需要与有效性检查同步,以避免竞争条件。如果希望构建者在执行提案阶段受到削减或处罚,则可能需要扩大借记账户的作用。换句话说,借记账户也可能充当一种权益。
就像 MEV 定价拍卖一样,根据某些观察截止日期接受或拒绝区块的证明者也可能很敏感。但是,特别是这种设计应该希望如此,因为平均每个区块只有一张订单要观察,并且稍后在区块中投标的价值较低(甚至可能是负数)。在执行层管理的拍卖的潜在好处是“内生”组件,从而促进更高的燃烧;如果当前的票持有者可以通过 MEV 从未来的票持有者那里提取价值,则票的价值就会增加。但是,如果单个参与者可以垄断拍卖(IL 在这里可能很有用),则这种方式会引起可玩性问题。因此,如此处提出的,源自共识层的 MEV 抵抗机制看起来像是一个可行的方向。
使协议更具 MEV 抵抗性的做法,通过让证明者观察交易、通过 RANDAO 对其进行排序以及价格按Slot划分的方式进行调整,似乎很诱人地复制所提议设计的一些方面用于交易处理。但是,交易的要求与本文分析的执行权的采购订单的要求不同(例如,时间,数量)。因此,不幸的是,将本文的想法直接转化为交易处理可能很困难。但是,所提出的机制或许可以提供一些启发。
应该注意的是,多区块 MEV 是一个单独的关注话题。所提出的机制可以抵抗在购买阶段诱导 MEV,但不排除多区块 MEV。这是一个普遍的问题,也是目前尚未充分探索的话题。同样,审查抵抗是拍卖机制未解决的重要问题。已经提出了各种策略,例如 IL(1, 2, 3)。所提出的拍卖机制是否可以是同时解决其他问题的总体架构的一部分,仍有待探索。
- 原文链接: ethresear.ch/t/mev-resis...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!