如,合约可能要求调用它的人向合约转移 applicationPriorityFee = 99 * proposerPriorityFee 的 ETH。 这个新费用由发送交易的 searcher 支付,因此它会影响该 searcher 的行为。如果一个机会中有 100 ETH 的 MEV,获胜的交易现在只会设置 1 ETH 的优先费用,因为这将导致总支付为 100 ETH(1 ETH 给区块提议者, 99 ETH 给智能合约)。任何更高的优先费用都会使交易变得无利可图;任何更低的优先费用都会导致机会被设置更高费用的竞争者抢走。这意味着智能合约捕捉了交易中 99% 的 MEV。 我们称由智能合约施加的这个额外费用为 MEV 税。MEV 税让应用程序劫持优先排序以谋取自身利益,使其能够为用户重新捕获 MEV,而不是让其泄漏给区块提议者。 如果该费用作为的 priorityFeePerGas 函数增长足够快,那么只有微不足道的 MEV 会累积到提议者那里。由于 priorityFeePerGas 以 wei(一亿亿分之一 ETH)为单位计价,我们有很多精度可以利用。例如,只要 MEV 税的敏感度足够高,以至于 priorityFeePerGas 为 50, 000 时会导致税额高得令人望而却步,那么支付给提议者的总金额将少于$ 0.01 。 然而,有一个重要的注意事项。如在“限制”部分所讨论的,MEV 税只有在区块提议者遵循某些规则(我们称之为“竞争优先排序”)时才有效,而不是为了最大化自己的收入而偏离这些规则。以去信任的方式强制执行这些规则是一个悬而未决的问题。 单一应用的 MEV 捕获 在一个保证使用竞争优先排序构建区块的链上,MEV 税可以用来缓解 MEV 的三个重要问题:让 DEX 接口改善交换者的交易执行;让 AMM 减少其 LP 的套利损失;以及让钱包通过出售回跑用户的权利来减少用户的 MEV 泄漏。 DEX 路由器 searcher 在基于意图的 DEX 路由协议(如 UniswapX 和1inch Fusion)中,用户(Alice)签署一个交换意图,searcher 竞争以最佳价格来路由或填充该意图。 当前版本的 UniswapX 使用两种机制来运行这种竞争:荷兰拍卖,Alice 的限价随时间变化直到被 searcher 填充,以及初始的链下报价请求(RFQ)拍卖以设定该荷兰拍卖的起始价格。 在保证竞争优先排序的平台上,UniswapX 可以用一种机制代替这些:MEV 税。它可以通过让用户签署一个可以立即由任何人填充的订单来实现,但执行价格是交易优先费用的函数。 例如,如果 Alice 有一个卖出 1 ETH 的 UniswapX 订单,她可以定义订单的执行价格为 minimumPrice + ($ 0.01 * priorityFeePerGas).minimumPrice 可以是她预期明显低于当前价格的固定值。 searcher 将通过提交交易来竞争填充 Alice 的订单。任何具有最高优先费用且不回退的交易将填充订单,这应该保证交易者获得 searcher 能找到的最佳价格。(在“限制”部分讨论了一些对此的例外情况。) 如果 Alice 的最低价格是 3, 000 美元,而当前 ETH 价格是 3, 500 美元,获胜交易中的 priorityFeePerGas 大约为 50, 000 。(注意,在一个花费 200, 000 gas 的交易中,这将导致仅向区块提议者支付约 100 亿 wei(约 0.000035 美元)。 与 UniswapX 中使用的现有机制相比,这具有一些潜在的优势。 使用 MEV 税的订单可以比使用荷兰拍卖的订单更快且以更好的价格完成。如本文所述,链上荷兰拍卖由于区块间的价格变动会泄漏一些价值给 MEV,并且可能需要多个区块才能完成。相比之下,使用 MEV 税的订单通常可以在下一个区块中完成,同时捕获其 MEV 的绝大部分。 与链下 RFQ 不同,使用 MEV 税填充订单的拍卖将在链上交易执行时原子发生。这意味着获胜的竞标者可以保证只有在其链上交易成功时才会填充订单。这可以使链上流动性(如 AMM)更容易与链下流动性竞争,这意味着 UniswapX 可以作为多池子系统(如 Uniswap v4)的更有效路由器。 自动做市商(AMM) 通常,AMM 会因套利者在区块顶部以陈旧价格进行交易而泄漏价值,如在《 loss-vs-rebalancing 》的论文中所讨论的。我们可以使用 MEV 税让 AMM 捕捉这些 MEV。为了简单起见,我们将讨论如何在没有集中流动性的 AMM 上实现这一点。(如果你对如何在有集中流动性的情况下解决此类问题感兴趣,Sorella 将很快发布一个解决方案。) AMM 可以通过根据交易的优先费用收取额外费用来捕捉 MEV,允许其拍卖出区块中优先交易的权利。有许多计算和计价该费用的方法。我们将讨论一种可以说是中立的方法——以池子流动性单位 sqrt(xy)表示。获胜的交易将是那些使池子流动性增加最多的交易。 当在区块中的池子上执行第一笔交易时, x_end * y_end > x_start * y_start 池子可以强制执行条件(作为 a 一些常量): x_end * y_end > (sqrt(x_start * y_start) + a*priorityFeePerGas)^ 2 这个公式将激励套利交易者交易到真实价格,在该交易之后,池子的中点价格应为真实价格。 在那第一笔交易之后,交易可以像在 Uniswap v2那样工作,使用固定的交换费用。希望在不支付额外 MEV 税的情况下进行交易的不知情交易者将设置较低的优先费用。 还有许多其他在 AMM 上实施 MEV 税的方法,它们会产生不同的效果。例如,MEV 税可以以交换的输入或输出代币表示,可以影响池子应用的交换费用百分比,或可以决定用户交易的最低价格。我们认为这是一个有趣的设计空间,值得探索。 尾随拍卖(Backrunning auctions) 上述描述展示了如何设计某些应用程序以避免泄漏 MEV。但是,如果钱包想帮助其用户捕捉他们通过任意交易与任何应用程序交互时产生的 MEV,即使那些应用程序没有包含 MEV 税,该怎么办? 例如,当 Alice 在 AMM 上进行大额交易时,她有时会为“尾随者(backrunners)”创造一个套利机会,以将价格恢复正常。通常,这些机会会泄漏给 MEV,而不是归 Alice 所有。 MEV-Share 和 MEVBlocker 是两个允许用户从其交易中捕获 MEV 的协议,但它们依赖于复杂的链下拍卖系统。《The Orderflow Auction Design Space 》描述了一些其他解决方案。 当 MEV 税与基于意图的智能合约钱包相结合时,我们可以构建一个替代系统来捕获 Alice 的尾随 MEV。假设 Alice 没有创建在 AMM 上交易的交易,而是签署了任何人都可以提交到 Alice 的智能合约钱包以使其执行该操作的意图。Alice 的智能合约钱包向提交该交易的人收取 MEV 税,该税将支付给 Alice。 提交 Alice 意图的 searcher 拥有尾随她的专有权利,因为他们可以在同一交易中原子性地进行这项操作。因此,如果搜索竞争激烈,所有来自尾随 Alice 的利润都应通过她的 MEV 税归 Alice 所有。 需要注意的是,这个系统可能并不能完全保护用户免受抢先交易攻击,因为抢先交易可能能够避免向用户支付 MEV 税。这个问题(及其一些可能的缓解措施)将在下面的“限制”部分中详细讨论。不过,与没有任何缓解措施的公共内存池系统相比,这至少是一个改进。 其他用例 除了这些例子外,MEV 税的其他潜在用途还包括几乎所有当前使用链下或荷兰拍卖的场景,例如: 像 Oval 这样的协议,通过捕获它们创造的预言机可提取价值(OEV)。 在像 Blend 这样的 NFT 抵押借贷协议中的再融资拍卖。 借贷协议清算,比荷兰拍卖泄漏的价值更少。 跨应用 MEV 捕捉 上述解决方案旨在捕捉与单个应用交互时产生的 MEV。但是,有时 searcher 可以通过在同一交易中与多个应用交互来捕获更多的价值。 如果这些应用中只有一个使用 MEV 税,那么所有来自交易的 MEV 都应该归于使用 MEV 税的应用,无论该 MEV 税高低。 但如果 searcher 的交易与两个使用 MEV 税的应用交互呢?例如,如果某些 MEV 只能通过填充一个 MEV 税的 UniswapX 订单来对抗一个 MEV 税的 AMM 来捕获。 在这种情况下,每个应用捕获的超额 MEV 的相对量由这些应用设定的 MEV 税决定。如果作为 MEV 税的值 app_i 由函数 tax_i(priority) 给出,则可以通过求解以下等式中的优先级来确定获胜交易的优先级:tax_ 1(priorityPerGas) + tax_ 2(priorityPerGas) = total MEV (从技术上讲,我们可以添加第三个术语 priorityPerGas * gasUsed 来说明支付给区块提议者的优先费用,但我们将忽略这一点,因为正如附录 A 中所讨论的,在正常情况下,优先费用可能可以忽略不计。) 在 priorityPerGas (so tax_ 1(priorityPerGas) = a_ 1 * priorityPerGas ) 中线性的 MEV 税的简单情况下,您可以求解每个应用程序收到的 MEV 份额: a_ 1 * priorityPerGas + a_ 2 * priorityPerGas = MEV priorityPerGas = MEV/(a_ 1 + a_ 2) tax_ 1(priorityPerGas) =(a_ 1/(a_ 1+a_ 2))*MEV tax_ 2(priorityPerGas) = (a_ 2/(a_ 1+a_ 2))*MEV 在设置自己的 MEV 税时,应用程序面临权衡 - 更高的税率允许它在发生时捕获更大份额的跨应用程序 MEV,但这意味着如果存在相互竞争的提取方法,它可能会错过一些跨应用程序 MEV。例如,如果有一个 AMM 对每笔交易收取 MEV 税,那么 MEV 税 UniswapX 订单可能由不同的 AMM 或链下填充器填充。 在许多情况下,可能存在一种均衡,其中两个应用设计其 MEV 税以某种方式共享 MEV,从而最大化各自的福利。例如,MEV 税 AMM 可能希望从接近区块顶部的单个知情交易者那里获取价值,但随后希望以较低的固定费用向其他交易者和应用程序(包括使用 MEV 税的交易者和应用程序)提供流动性。在这种情况下,AMM 可能会设置一个相对较低的 MEV 税(例如, $ 0.00001 * priorityFeePerGas ),以便套利交易(如果有的话)在区块的早期发生,然后对区块中的后续交易不收取 MEV 税。像 UniswapX 这样想要与 AMM 交互的应用程序可以设置更高的 MEV 税(比如 $ 0.01 * priorityFeePerGas ),以确保在池子已经套利后包括他们的交易。有了这些相对税收,即使 UniswapX 订单中只有 1 美元的 MEV 和 50, 000 美元的 MEV,AMM 最终也会首先被套利。 我们认为这是一个值得未来研究的广阔设计空间。 局限性 MEV 税有一些复杂性和缺陷。我们认为这些都是未来研究的有趣领域。 激励不兼容性 MEV 税对于垄断区块提议者来说与激励不相容。它们只有在交易包含的公平竞争中才会起作用,这只有在区块提议者遵循我们称之为“竞争性优先排序”的规则而不是最大化自己的收入时才会发生。我们建议这些规则应包括: 优先排序:区块中的交易必须按 priorityFeePerGas 的降序排序。 抗审查:如果区块提议者在构建区块时收到了交易 t 1 ,并且区块未满或包含了交易 t 2 ,且 t 2.priorityFeePerGas < t 1.priorityFeePerGas,则区块必须包含交易 t 1 。 交易前隐私:区块提议者必须通过私有端点接受交易,并且在提交区块前不得将这些交易分享给任何人,也不得使用这些交易的内容来构建自己的交易。 没有最后确定时机。区块提议者必须设定一个明确的时间(blockTime),在此之前他们接受任何人的交易,之后他们不接受任何人的交易。 如果其中一个或多个属性被违反,可能会削弱 MEV 税的效果。违反抗审查的区块提议者可以通过排除竞争交易并提交一个零优先级交易来避开大多数 MEV 税,从而自己获取机会。违反交易前隐私的区块提议者可以从其他交易中窃取 MEV,或者窥视其优先费用,知道需要设置多高的优先费用来超过其他人,而一个能够比其他人更晚提交交易的提议者则可以自由地“最后确定”是否要出价超过其他人,从而造成不利选择问题,最终会抑制竞争。 不幸的是,虽然第一个属性在协议层很容易强制执行,但以不信任的方式强制执行其他属性是一个悬而未决的问题。 在协议层缺乏强制执行的情况下,需要信任一个致力于这些规则的 sequencer 不会偏离这些规则,如果提议者将区块构建外包给竞争性收入最大化的拍卖(例如以太坊主网的 MEV-Boost),区块可能不会遵循它们。 这些问题可以通过一个承诺使用竞争性优先排序构建区块的单一信任排序者来“解决”。也可能通过使用共识、密码学和/或可信执行环境的某种组合来用去中心化机制解决,例如 Sorella 的 Angstrom、Flashbots 的 SUAVE、Leaderless Auctions 或 Multiplicity。 完整区块 当区块完全满时,MEV 税的正常运作会出现例外情况。在这种情况下,区块提议者可能不得不将低优先级的交易排除在外,而不仅仅是将它们包括在区块的后面。由于与使用 MEV 税的应用程序交互的交易很可能有极低的优先费用,这些应用程序可能会被不使用 MEV 税的应用程序或使用极低 MEV 税的应用程序挤出。然而,在使用类似 EIP-1559 机制来设定单独的基础费用的链上,区块完全满的情况应该比较罕见。此外,鉴于区块满时需要延迟一些交易,延迟那些通过设置更高 MEV 税表达较低紧迫性的交易可能是一个合理的结果。 回滚交易 MEV 税实质上依赖于单区块拍卖,其中每一个“出价”都是一笔交易。此类拍卖的一个缺点是,未成功的出价通常会导致回滚交易被包含在链上,支付一些基础费用并使链拥堵。 如果 sequencer 能够完全排除失败的交易,这将缓解这个问题,尽管即使在中心化排序者的情况下也很难实现。(这也不完全遵守上面描述的抗审查属性,尽管该定义可以进行调整。)一个更复杂的 sequencer 可能能够通过允许交易指定它们参与的争议拍卖来优化这个过程,从而使 sequencer 能够跳过它知道会失败的后续交易。 泄露用户意图 MEV 税只有在 searcher 之间存在竞争时才有效,这意味着机会需要在某种程度上广为人知。对于像 AMM 这样的应用程序,机会在链上是可见的,这应该自然而然地发生。但对于基于意图的路由或尾随竞价等应用程序,这意味着应用程序可能需要与 searcher 共享用户的意图。 在某些情况下,在实现用户意图之前广播用户意图而失去的临时隐私可能会以 MEV 税无法收回的方式泄露价值。 例如,假设 Alice 想要使用上述尾随拍卖协议购买低流动性代币。她为她的智能合约钱包发布了一个签名的意向,以在 AMM 上购买该代币,并设置了一些滑点容限。searcher 可以在高优先级交易中竞相将该代币的价格推高到她的滑点容限,而无需填写用户的订单。然后,获胜者 Bob 可以通过在低优先级交易中包含和回跑 Alice 的意图来非竞争性地满足 Alice 的意图,从而夹在 Alice 的交易中并给她一个更糟糕的价格,同时逃避她的 MEV 税。购买 NFT 时可能会发生类似的问题。 请注意,这样的攻击对 Bob 来说是有风险的,因为他无法保证购买代币和将其出售给 Alice 之间的原子性。天真的 Bob 可能会成为“三明治撕裂”陷阱的受害者,在这个陷阱中,Alice 发布了从自己那里购买一个毫无价值的代币意图,导致 Bob 购买它以期夹在她的交易中,但 Alice 在 Bob 能够完成三明治之前撤销了她的意图。 应用程序还可以通过限制与其共享意图的 searcher 集并监控其行为来缓解这种情况,就像许多现有的订单流拍卖一样。 也可以将 MEV 税与具有隐私意识的构建器功能相结合,例如 Flashbots 的 SUAVE 设计中设想的功能。 最后,如果 Alice 认为分享她的意图的成本超过了竞争性搜索的好处,她可以自己构建一个交易并将其直接提交到区块中。如上所述,竞争性优先排序的理想实现将提供区块提议者的交易前隐私。 讨论和前期工作 优先 Gas 拍卖。《Flash Boys 2.0 》 论文研究了去中心化区块链中优先级排序的一些动态,该论文创造了“矿工可提取价值(miner extractable value)”一词。该论文观察到,以太坊矿工(当该网络使用工作量证明时)已经按优先级对交易进行排序,并且套利者依靠这种行为参与“优先 Gas 拍卖”,他们竞标优先被纳入区块的权利,这导致来自去中心化交易所套利的大部分 MEV 累积到矿工身上。 先到先得。通过交易排序规则(例如 Themis 或 Arbitrum One’s current sequencer )来缓解 MEV 的一些尝试侧重于执行不同的排序规则,先到先得(有时称为“公平排序”),其中区块提议者必须按照他们看到的顺序对交易进行排序。 优先排序采用不同的方法 - 平等对待在给定时间段内到达的交易,并按其声明的优先级对它们进行排序。 “公平排序”很难在具有多个验证者的真实网络环境中强制执行甚至定义。它还可能导致浪费的延迟竞赛和垃圾邮件,即使使用单个受信任的 sequencer 也是如此。最后,MEV 税可能能够消除某些“先到先得”的 MEV,例如资产价格不连续“跳跃”的套利利润。优先排序相对于先到先得排序的潜在优势在某种程度上与《Budish, Cramton, Shim ( 2015)》中讨论的离散时间相对于连续时间交换的优势有关。 同时,虽然优先排序似乎默认会向 MEV 泄露价值,但这篇文章展示了如何设计应用程序来重新捕获它。 费用分摊。Blast 是以太坊L2,与交易中访问的智能合约共享部分优先权和基本费用。 MEV 税允许类似的东西(至少对于优先费用),但可以在任何使用竞争性优先排序的链上的应用层实现,而无需对费用分摊提供特殊支持。它们还允许应用程序将自己的税定义为优先费用的自定义函数,从而提供更大的灵活性,并可能提高 MEV 感知应用程序的可组合性。 去信任的解决方案。这篇文章重点关注平台使用竞争性优先排序的动机,以及利用竞争性优先排序平台的方法,而不是讨论如何去信任地执行它。 之前已经对竞争性优先排序所需的其他每个属性进行了大量讨论。例如,在 《 Fox, Pai, Resnick ( 2023)》中,作者讨论了在没有审查阻力的情况下链上拍卖中的漏洞,并描述了使用多个并发提议者的抗审查拍卖的设计。但是,它们不建议交易的特定顺序。 还有其他关于构建信任最小化区块构建机制的研究,包括 Flashbots 的 SUAVE、Sorella 的 Angstrom、Leaderless Auctions、Espresso 和 Offchain Labs 的去中心化 Timeboost,以及 Péter Szilági 的强制公共交易打包。 结论 我们希望这篇文章鼓励 L2 考虑使用优先级排序(OP 堆栈默认支持),并激励应用程序在支持的情况下尝试 MEV 税。 我们还希望它能激发对 L1 和 L2 上信任最小化竞争优先排序协议的进一步研究。 脚注 在这篇文章中,我们使用“提议者”来指代确定特定区块中包含哪些交易的参与者或过程。在以太坊 L2 上,这个角色通常由“sequencer”担任。在以太坊 L1 上,它由一个特定的以太坊验证者填充,称为提议者,尽管提议者通常将构建区块的任务外包给“中继者”和“构建者”参与的竞争性拍卖。如何划分这些职责的细节超出了本文的范围。 每个 Gas 的优先费用实际上并未在交易中明确指定,但可以在交易中计算。该交易指定了 Gas 价格,但以太坊也收取基本费用,该费用从 Gas 价格中取出并销毁。就 MEV 税而言,应忽略基本费用,因为它不受交易商的控制。每 Gas 的优先费用(即流向区块提议者的交易费用部分的价格)可以在 Solidity 中计算为 priorityGasPrice = tx.gasprice - block.basefee 。 我们可以简单地定义“MEV”以排除任何 searcher 的利润,而仅指将流向验证者的价值。 请注意, proposerPriorityFee 在合同期间实际上无法计算交易中使用的总 gas priorityFeePerGas 量(等于交易中使用的总 Gas)的倍数,因为无法知道交易最终将使用多少 Gas。但是,这通常无关紧要,因为我们所需要的只是它的上限。为了安全起见,您可以 priorityFeePerGas 乘以 3000 万——这是以太坊区块中当前的最大 Gas。高估这个值只会意味着 MEV 税占 MEV 的更大比例。 假设一笔交易不能超过 3000 万 Gas, priorityFeePerGas 那么 50, 000 将导致 1500 gwei 的 Gas 支付——按 4000 美元的 ETH 价格计算,约为 0.006 美元。 如果 priorityFeePerGas 设置为套利者的利润为零,则利润最大化套利交易应与函数最大化 AMM 上的相同交易相对应。 Arbitrum 已经讨论过用一种称为 Timeboost 的优先级排序形式来取代它,但截至撰写本文时,这种形式尚未投入生产。 来源:金色财经lg...