模块化 MEV 系统化整理(Part 1 简介)
撰文:rain and coffee
最大可提取价值,或称 MEV,在 Crypto 中一直都很热。MEV 指的是通过重新排序、插入和审查区块内的交易,以及从良性的 MEV(如套利、清算等)中获取利润,从而从用户身上提取价值。早在 2014 年,它就被/u/pmcgoohan 在 Ethereum subreddit 上首次提及。
可量化 MEV 的最早例子之一是在 CryptoKitties 的热潮中发生的。具体而言,完成 CryptoKitties 怀孕(生下一只新猫),任何人都可以在猫的分娩区块后通过调用智能合约的 giveBirth ()来完成怀孕。随后,用户便可以获得 Eth 奖励。这有可能提前运行,从而产生利润(MEV)。正如 Markus Koch 在 2018 年指出的那样 — 在游戏历史早期,生育小猫的账户只有那么几个。而随着时间的推移,其他账户开始调用 giveBirth (),因为他们看到利润可以免费获得。从数据可以看出,只有少数助产士占了大部分的出生量。
顶级 giveBirth 调用者(助产士)的收入
此外,助产士是通过 gas 费用进行竞争的(因为尽管在代码效率上相对平均,但在实现 giveBirth 调用方面,一些助产士表面上比其他助产士更成功、更有利)。当时做出的结论是,分娩费使 CryptoKitties 的玩法比不需要该机制时更昂贵。这个例子说明 MEV 对终端用户来说等于交易执行不力,因为它在生育期间激增了 gas 费用。
另一个例子是,早在 2017 年中后期,Bancor 上的抢跑运行。2017 年 6 月,Phil Daian(Flashbot 联合创始人)和 Emin(Avax 创始人)指出了这种可能性。他们表明,矿工将能够在 Bancor 上提前进行任何交易,因为矿工可以在他们开采的区块内自由地重新排序交易。同年 8 月,Ivan Bogatyy 在这方面更进一步,建立了一个程序,可以作为一个非矿工(只是一个搜索者!)监测和执行 Bancor 上的前置交易机会 – 因为区块链及其 mempools 是公开的。如果你想了解早期的 MEV 世界,可以阅读这本不错的读物(链接)。
从那时起,MEV 迅速发展,随着 2019 年以来链上经济活动的增加和 DeFi 的出现,它已经成为协议设计的一个重要组成部分。而随着 L2、桥接、应用链等的兴起,研究“模块化”设计空间可能对 MEV 产生的潜在影响是很有意思的。但首先,我们必须概述一下目前 MEV 中的参与者。
在 MEV 生态系统中,有各种各样的参与者。其中搜索者通常是最有利可图的 MEV 参与者(从第一原则的角度来看,虽然更多的“一般”价值最终由构建者和验证者获得,因为他们聚集了许多搜索者的价值)。让我们先解释一下他们是谁。另外还需注意的是,由于协议设计的原因,部分参与者比其他参与者串通得更多。参与者(bar 用户和钱包)包括搜索者(S)、构建者(B)和验证者(V)。在 MEV 供应链中,他们的角色如下:
搜索者:试图通过不同的方法找到链上所有可提取的价值。搜索者与构建者合作,因为搜索者愿意支付高额的 gas 费用,以使他们的交易包括在内。这很重要,因为许多我们认为理所当然的事情,如套利和清算,都是由搜索者执行的。搜索者将交易捆绑在一起,并将其交给构建者。
构建者:把被捆绑在一起的交易拿出来,并把它们放到区块中给到发起者。除了搜索者的交易之外,几个捆绑的交易可以被组合在一起作为一个区块,另外也有可能包含其他用户在 mempool 中的待定交易,捆绑的交易也可以针对特定的区块进行包含。
验证者:验证者发挥共识作用,对区块进行验证。他们向追求利润的搜索者和构建者出售区块空间,并反过来得到部分奖励。请记住,验证者从发行(发起者、证明人、同步)和执行奖励(MEV Tips)中获得奖励。
那么,为什么有些人说 MEV 是有害的,尽管表面上它似乎为生态系统和安全预算提供了价值?因为 MEV 通过优先 gas 拍卖(PGA)进行竞争。PGAs 是一种拍卖,费用通过竞争性出价来获得交易的优先顺序。费用估算者使用 PGA 膨胀的 gas 价格作为参考,导致用户为其交易支付了更多费用。应该指出的是,这主要是在 MEV-Geth/Boost 和 Flashbots 之前的运作方式。MEV- geth 发布后,大部分与 MEV 相关的计算都被从链下移除,取而代之的是一个无需许可的侧中继,允许 MEV 搜索者直接与节点和其他参与者通信。拥堵收费降低。当你对比 vanilla 构建者和 MEV-Boost 的份额时,这也更容易看出。
在其核心,这个问题源于这样一个事实:用户和 bots 在同一个池子里,与他们是否追求 MEV 无关。
-
参与者有巨大的动机去敲诈用户以获取利润。
-
参与者有巨大的动机中心化(向验证者/构建者靠近)。
-
尽管系统是去权限的,但敲诈可以通过协调人的中心化(不管是谁执行共享层的机制,如订购、结算、安全、流动性、消息传递等)而变得可信。
因此,敲诈可以而且会发生(通过中心化)。
此外,参与 MEV 的门槛也越来越高,导致了进一步的中心化。这部分是由于搜索者必须对 MEV 机器人进行不断的维护的事实。竞争是粗暴的,代码也在不断更新。如果你找到一个优势,你更有可能不分享它,尽管区块链是开放的账本,它们最终会被发现。MEV“市场”,如 Flashbots,也是相当中心化的,因为绝大多数区块都是通过 Flashbots 流动的(70%!),尽管 MEV-Boost 中继是去权限的,并且有好几个终端(根据 Flashbots,有 11 个终端)。
需要注意的是,他们有计划将整个 MEV 供应链去中心化,我们相信 Flashbots 团队很清楚当前实施的细微差别。中心化的 Flashbots 中继器并不直接拥有任何验证者的权力。Flashbots 也不能审查与 MEV 无关的交易。验证者仍然可以包括没有经过 Flashbots 中继的交易。Flashbots 显然是一个中心化的力量,但是一个非 Flashbots 世界的替代方案肯定感觉会更糟。由于 MEV-Boost 的参与者比非参与者的平均收入要高,这也导致了利用它的行为者的进一步中心化。
不过不要害怕,答案一直是“我们将去中心化!”虽然,如果 Flashbots 不能就 MEV 的问题达成共识(正如最近 Phil Daian 的播客中所提到的),那么更广泛的社区将如何达成共识?
如果 Flashbots 作为一个系统最终成为一个 DAO,那么它本身就有可能去中心化。这与 Lido 和这里的其他协议有着类似之处。为了摆脱中心化,许多协议说它将成为一个去中心化的 DAO(最终),就像 Flashbots。你可以争辩说,它只是把中心化改成更多的层次。然而,增加更多的层次有着有限的优点。最终,在大多数情况下,有一点去中心化总比没有去中心化要好。不过,这也取决于这种去中心化的可攻击性如何。
那么,为什么行为者的参与是如此重要?
验证者希望收集最多的费用/MEV,以便为其用户的 Eth 提供最高的质押率。这是激励验证者挑选由构建者创造的最高价值区块的一个因素。
构建者将汇总来自用户、MEV搜索者和他们自己的私人订单流的交易,以尽可能地制造最高价值的区块。
拥有独家私人订单流的构建者应该可以创造最有价值的区块。
一个构建者的区块被持续纳入,会激励更多的私人订单流到达这个构建者,因为用户和搜索者希望他们的交易能迅速被纳入。
预先出售未来的区块空间,以便做市商或协议能够为他们的交易或用户确保区块空间。
MEV 区块生产和交易包容动态在本质上创造了一个不公平的市场。如果不直接干预,市场结构就无法得到改善。协议本身必须控制市场,或者有机制来支持它(正如我们所见)。发起者之间的合作(他们在市场上拥有所有的权力)似乎更令人担忧,特别是在一个半去权限,半去中心化的定序器设置中。然而,如果在 MEV 的提取过程中发生了罚没,那么除了交易费用之外,还有什么理由成为一个定序器?
如果你不为安全性释放代币,那么这一点尤其正确,因为你从基础层中获得了安全。因此,人们相信,必须有一个 SBV(搜索者 – 构建者 – 验证者/定序器)供应链。这也可能引致行为者之间的可信社会契约。MEV 在现实中也可能成为一个“问题”,更多的是在应用方面受到攻击,让协议没有直接的干扰。但是在某些情况下,MEV 可以被看作是增加底层协议的安全预算。
在竞争激烈的区块市场中,存在对区块空间的竞争,应用程序最终将转到“MEV”(如优先 gas 费用)。构建者不会在无利可图的恢复上浪费区块空间。MEV 交易的确认速度更快。搜索者将 MEV 转换为优先费,使交易有更高的优先权。因此,应用程序可以将 MEV 纳入设计,并利用它在特定协议内的区块空间市场上购买特权地位。
通过使搜索者和猎手能够轻松地寻找导致 MEV 的良好的可预测状态变化,你可以激励有利的 MEV,增加协议的安全性和效率。将这些有利可图的行动与定序器本身结合起来,他们可以分享这一利润。这将使价值链既落在用户和定序器手中,又增加了协议本身的安全预算。因此,用户分享了他们自己创造的价值。你只能随着一个区块链的成功和采用(成熟度)来扩展它的去中心化。
MEV:有利、有害还是二者并存?
推理 MEV 作用的一种方法是通过链的经济安全角度来看待它。一般来说,这被看作是“保护”该链的价值,被质押的资产数额,或者在比特币的情况下,进行 51% 的攻击所需的资金数额。MEV 是其中的一个重要组成部分,因为它提高了验证者/矿工的收益,因此允许更大的经济价值被质押进来。
以下是两条基本推理路线。其中一条,MEV 被认为是有害的。这里的推理是,从用户那里(不知不觉地)提取的价值对用户体验而言是有害的,而成熟的用户可以从不太成熟的用户那里提取价值。因此,出现了无数防止 MEV 的解决方案,像门槛加密法对交易的预购进行加密,以及用统一的执行价格进行批量拍卖,都是为了防止或尽量减少 MEV 提取。
另一种看法是,MEV 实际上是有帮助的。这里的推理是,MEV 提取提高了被验证者/矿工出售的区块空间的(潜在)价值,因此允许对这些人有更多的收益。由于收益率较高,验证者/矿工愿意投入更多的资产,以获得这些收益率。这将导致该链拥有更多的经济安全。而实现这种经济安全的另一种方式是通过人为地提高收益率,发行更多的原生代币/奖励。然而,这是以代币持有人为代价的,因为他们的资产面临通胀。如果你通过这个观点来看待 MEV,它实际上是一种对代币持有者有利的力量,因为它使他们能够从经济安全中受益,同时面临较少的通胀。
以太坊上验证者的每日Gas和收益
归根结底,就是你想让疼痛落在哪里。通过允许提取 MEV,你限制了达到一定经济安全水平所需的通胀,而以用户体验为代价。因此,发行(通胀)成为达到某些采用指标所需的效用,这最终将允许你将其降低到微不足道的数额,而 MEV 可以为安全预算做出贡献(并作为协议本身的去中心化)。
然而,通过防止或最小化 MEV(如果可能的话),你加强了一般的用户体验,牺牲了代币持有人的利益,因为你需要更多的通胀来维持经济安全。另一个也许更牵强的理由是,对于一个完全理性的行为者来说,提取最大数额的 MEV 可能不是最优的。因为这将成为用户的负担,他们将停止在链上积极从事经济活动,从而使能在用户的整个生命周期中提取的总金额减少。
虽然我们在上一节中通过基础层的视角来看待 MEV,但同样的论点也可以在应用层面上提出(尽管我们认为这些将与应用链交织在一起)。Mekatek 的研究表明,在 DEX 层面上,你要么允许套利并使 LP 受益,要么不允许套利并以牺牲代币持有者的利益用通胀来补偿 LP。这与我们刚刚介绍的基础设施协议层面上的动态相似。
那么,MEV 是好是坏?我们能给出的最公平的答案是,两者都是,也都不是。从一个角度来看,某些形式的 MEV 可以被看作是坏的,但从另一个角度来看,MEV 也有好处。总的来说,我们相信 MEV 既不是好的也不是坏的,它就是这样。
去中心化定序器
当你研究 L2 的 MEV 时,要优化提取多少价值的话题变得特别重要。这是因为,就目前的情况而言,大多数定序器是中心化的。它们完全负责一个区块的排序,因此可以决定提取多少价值。然而,就像 Crypto 中的任何中心化点一样,目标是转成非中心化的定序器,在这一点上,你会遇到与 PoS L1 相同的激励博弈理论。定序器背后的经济学可以显示为:
收益 = 发行量(通胀) 收取的费用总和 – DA 和争端解决的成本
(请记住,在运行硬件的成本方面,也有开销需要计算)。
通过防止或限制从 L2 提取 MEV,你减少了收集的费用总和,因此运行一个定序器或参与一个去中心化的定序器网络的利润减少。此外,在去中心化定序器组的情况下,你需要考虑各种因素。
需要去中心化定序器的原因很清楚 — 它去中心化,并将信任假设从构建 rollup 的中心化团队中移除。目前,rollup 定序器的运作方式是,存在一个单一的定序器(由团队运行)来执行、分批和最终确定所有交易。在定序器故障的情况下,这显然是不理想的。此外,它把大量的信任假设放在了控制定序器和允许升级的多签智能合约的团队身上,另外也有在欺诈的情况下的故障证明。它们有能力重新排序交易并提取 MEV。虽然,目前交易最终确定的方式是在假设定序器不会接触、提取或敲诈任何 MEV 或交易的情况下,这就是给我们提供的软最终性,允许定序器在收到交易后立即最终确定。在某些情况下,比如 ZK rollup,实际的最终性要到 10 个小时后才会达到。如果你查看一下以太坊上 Starkware 的 SHARP stark verifier 合约,就可以发现一个很好的例子,下图就是 ZK 证明(从无数交易中递归证明)的最终确定。这通常是每 3-10 小时进行一次,从处理该批次的第一笔交易开始,这是相当长的争议时间。
这样做是为了降低交易的成本,把尽可能多的交易放在一个证明中,否则,交易的成本会急剧上升。这就是交易在 rollup 中被最终确定的方式 — 它们得到一个软最终性的保证,即最终它们会在底层(在这种情况下是以太坊)被最终确定。在 Optimistic rollups 的情况下,交易反而是分批进行的,状态根(与 ZKRs 相同)与 calldata(交易状态,这只是 ZKRs 的状态差异)一起被发送到 Ethereum 的 L2 合约。由于争议期的要求(回滚欺诈性交易的能力),Optimistic rollup 的交易的实际最终结果要到 7 天左右才会发生。这意味着它们的实际软最终保证会持续相当长的时间,以使观察者能够证明任何已经发生的欺诈行为。这些都是我们在去中心化定序器集时需要解决的问题;软最终性需要得到保证,最终的最终性需要达到,同时允许证明(有效性或欺诈)按预期发挥功能。
下面是一张目前 rollups 运作方式的图片:
请记住,当你依赖 L1 的共识时,L2 的最终性并不是最终性。当你把链上的共识从 rollup 上移到底层的“结算”层时,这部分是你做出的权衡。除非你也在 rollup 上处理共识(这将失去衍生的安全性,但可以获得主权并利用 DA 层来保证数据的可用性)。然而,这里明显的权衡是你分割了流动性,增加了互操作性的难度。
接下来,让我们来探讨一下去中心化 rollup 定序器的一些可能性,以及这对 MEV 会有什么样的影响。
首先,去中心化的定序器意味着去除我们对单一定序器的信任假设,该定序器由一个有激励机制的团队运行,不接触 MEV 也不重新排序交易。这对 MEV 有一定的“保护”作用。然而,当谈及通过代币的绑定将定序器集去中心化,便开启了去许可或半许可的验证者/定序器集提取价值的可能性,因为他们已经被承诺了 rollup 的代币(如 Fuel 代币模型)。这意味着需要有一个机制来确保区块排序的正确性和合适的罚没。这样做的原因是为了确保定序器集保持有效性,保持公平,不对交易进行推断。比如重新排序,将自己的交易放在池子的第一位 — 即使他们支付的 gas 费较少,这通常也需要一个公共的 mempool,或者包含保证。
下面是一些例子:
-
PoS 证明领导者选举。这可能是与 Tendermint 的领导选举(因为我们从基础层获得共识),以及一个罚没模块(如 Cosmos SDK 的模块)类似。这至少是我与之交谈过的大多数 rollup 似乎都会采用的方案。然而,也有其他选择。对于 PoS,如果你允许最大的持有者获得最多的区块百分比,那么它将不可避免地导致中心化。或者也可以转到 MEV 拍卖,因为你用机会成本而不是直接付款来进行投标。
-
公平排序(Arbitrum 特别关注这个问题)。为了使其正常运作,你还需要一个可罚没的债券(为了保持公平的本质,可以对每个人都一样)。在这种设置中,你“支付”[每区块的机会成本 * 质押的区块数] 以获得在该期间提取 MEV 的权利。为了使公平定序发挥作用,你需要一个公平的定序协议,选择一个公平的事件序列来最终发布。这通常是通过诚实的多数假设来实现的,比如以优先服务排序的形式,由各个定序器合并的交易列表进行排序。因此,该系统是先来后到的,具有 51%-N 的诚实性假设。在不诚实的情况下,系统可以承诺进行社会分叉(如果他们有主权的话)。
第二种选择的问题尤其在于,它变成了一场争先恐后的延迟竞赛,这很可能导致构建者和搜索者尽可能地靠近有关的定序器(就像我们在 Trad Fi 中看到的那样,甚至在加密世界中也是通过优化网络延迟来进行的)。这显然会导致地理集中化。
此外,也有一些围绕 MEV 拍卖(为提取 MEV 和提出区块的权利进行竞标)的讨论,以获得排序名额(特别是来自 Optimism 阵营)。然而,我们认为,尽管它具有去许可的性质,但它还是推向了中心化,而且它的进入门槛非常高。尽管前面提到的一些方法也会导致“中心化”,但它不那么明显,对协议也没那么有害。
一般来说,公平排序机制并不能以任何方式“防止”或缓解 MEV,而不会增加相当大的负面影响。然而,像阈值加密、时间锁谜题、批量拍卖和元 mempools(将 mempool 和区块构建器的角色与共享的聚合/定序器层解开 — 这在跨域 MEV 领域可能会变得有用,我们稍后也会触及)可能在提供此类属性方面更成功。
现在我们已经看到了定序器目前是如何运作的,以及一些可能去中心化的方法,现在让我们试着想象一下去中心化的定序器集是怎样的,以及它需要什么来保持最终性保证并确保协议按预期发挥功能。
去中心化定序器的公平排序示例
上面是智能合约 rollup 中的定序器设置,下面我们将展示通过 PoS 领导选举的主权 rollup(DA 层之上的 rollup)会是什么样子。在公平的排序设置中,没有太多的动机去购买和押注所需的代币数量以成为一个定序器,并且定序器集的总加密经济安全性保持相当低。
去中心化定序器 PoS 领导选举的例子
在这种设置中,其运作方式非常简单 — 当选择某一轮的定序器时,委员会只需利用基于质押比重的加权循环方法即可。有了这种方法,任何验证者都可以轻松地计算出某一轮的合格发起者。如果你想阅读 Celestia 上的 NMTs,请查看我们的数据结构文章。(请记住,在这种设置下,争议窗口有可能被降低,因为你不在以太坊这种竞争激烈的区块空间中)。
此外,也有一些关于领导选举随机化的研究和讨论(2017 年在 Tendermint repo 上),而这也可能是一种方法,以获得类似于公平排序的设置,但需要有一个随机的发起者(领导),而不是先到先得的方式。虽然,这不鼓励定序器购买和质押更多的代币(加权轮流激励),但这可能会降低协议的经济安全性。
两种不同设置之间的 MEV 提取不同,并可能导致 MEV 的分配和提取不同。此外还有其他需要注意的问题,比如最终性保证、MEV 的抑制方法,我们将在第二部分中讨论模块化MEV中填充空间的各种参与者,以及如何发生合谋。我们还将研究共享的定序器和元 mempool 的设置 — 所以请关注未来几周的另一个部分。
最后,非常感谢 Mathijs van Esch 参与了本文的写作,并感谢 Josh Bowen 参与了最初导致这一系列文章的讨论。感谢 Mekatek 的审阅。