根据最初 Flash Boys 2.0 中的定义,矿工可提取价值 (MEV)是指矿工可以通过在他们生产的区块中包含、重新排序、插入或忽略交易来获得的额外利润。虽然赢得区块的过程相当民主,但获胜的区块生产者对可以包含在区块中的交易有很大的控制权。 这种权利是 MEV 的根本所在,理论上这种权利应该只能向善。 Flashbots 团队主张将“矿工可提取价值”重新命名为“最大可提取价值”,以涵盖特权参与者(例如 ETH2 中的验证者)可提取的所有价值,而不仅仅是 PoW 系统中的矿工可以提取的价值。
在以太坊交易被包含在一个区块中之前,它先会进入内存池,这是一个可公开访问的暂存区。这也是 MEV 机器人搜索可用于捕获某些 MEV 的交易的地方,例如通过套利市场或清算新的抵押不足的贷款。
例如,假设有一个大的 Uniswap 订单在内存池中购买 SNX / WETH。 MEV 机器人将立即在 Uniswap 大订单后面进行交易,以利用 Uniswap 池中的价格滑点与另一个 AMM 池(如 SushiSwap)中的 SNX/WETH 价格进行套利。这被认为是良性或积极的 MEV,因为它有益于生态系统。
然而,矿工作为链上内容的最终守门人,甚至相对于 MEV 机器人也有一张王牌。拥有“广义抢跑”机器人的矿工可以复制 MEV 机器人的套利交易并将其替换为自己的,从而为自己攫取套利的利润。广义抢跑交易被视为恶性 MEV 交易,或破坏生态系统稳定的交易。审查攻击和中心化 MEV 提取是 Ed Felten 已经确定的关于 MEV 拍卖的两个问题,并对以太坊社区构成重大危险。
Time-bandit 攻击是开创性的 Flash Boys 2.0 论文中确定的另一种 MEV 攻击向量,它有可能破坏共识的稳定性。它们对具有状态的区块链(即以太坊)构成更大的生存风险。在这种攻击中,矿工可以“回滚”链并重新挖掘已经执行的区块以获取利益,从而捕获他们原本不会拥有的 MEV。区块奖励越低,矿工重组区块以获取历史 MEV 的动力就越大。
许多捕获 MEV 的策略需要精确的事务排序。例如,通过在 DEX 上的大订单之前或之后进行交易。清算策略利用反向运行的机器人在价格预言机更新后立即进行交易。一种相对较新的 MEV 策略被称为“叔叔强盗(uncle bandit)”,其中叔块中的交易用于捕获 MEV。
抢跑(front-running):确定了内存池中的目标交易,并且机器人试图通过提交略高的 gas 价格在交易前立即被挖掘。例如,机器人在 Uniswap 上寻找新的交易列表,并会在列表后立即发送大量购买订单以推高价格。
后跑(back-running):机器人通过提交比交易略低的 gas 价格,寻求在目标交易之后立即被挖掘。例如,在价格预言机更新后立即提交清算订单。
夹带(sandwiching):抢跑和后跑的结合。例如,在内存池中识别出一个大的买单,并在买单之前放置一个抢先订单,以较低的价格购买代币。大买单然后推高价格,然后后退机器人出售先行订单代币以获取利润。
叔叔强盗(uncle bandit):正如 Flashbots 的 Alchemy 和 Robert Miller 所详述的那样,机器人能够反跑它在叔块中看到的三明治捆绑(bundle),有效地将叔块用作内存池。
MEV 提取的繁荣促使矿工们运行自己的 MEV 机器人。 Uncle Bandit 攻击是 MEV 提取的一个例子,矿工在这方面具有显着优势,因为他们可以首先看到叔块。随着 MEV 领域的竞争越来越激烈,一些 MEV 参与者已经演变成掠夺者。 Nathan Worsley 的沙门氏菌(Salmonella)合约展示了如何利用模拟逻辑中的缺陷来利用三明治套利机器人。
在公共内存池中提交的机器人,对于优先考虑的策略,以越来越高的gas价格相互竞标,以在所谓的优先gas拍卖 (PGA) 中捕获 MEV。这会创建一个反馈循环,因为费用估算器使用升高的 Gas 价格作为参考,导致非 MEV 用户为要执行的交易支付过高的费用。此外,由于只有一个机器人可以捕获 MEV,因此所有未获胜的机器人都会取消或恢复其交易,这会占用不必要的 gas。换句话说,通过 PGA 提取 MEV 会导致影响所有以太坊用户的外部性。
抢跑交易并不新鲜,在传统金融市场中已经存在了几十年。但直到迈克尔·刘易斯 2014 年出版的书 《Flash Boys: A Wall Street Revolt 》才让全世界广泛意识到这些掠夺性策略。多年来,高频交易场所使用多种策略来获得延迟优势——主机托管、电缆线路、微波塔等。在某些情况下,交易所员工也参与了市场操纵。
传统市场的后跑交易通常发生在交易场所利用交换机制使他们能够在事件发生后立即输入订单。这意味着要么破解一种方法以更快地获取事件数据,要么更快地将订单发送到匹配引擎。 Accidental HFT Firm 是一个很棒的博客,它记录了其中一些高频漏洞。
暗池是另一种交易系统,允许买卖双方下订单而不公开透露他们的订单。高频交易公司通过向市场发送 1 手订单以检测流动性来寻找大订单。当发现大额流动性时,一旦该块被填充,就会采用三明治式的策略来利用价格变动。
MEV 最近被重新定义为“最大可提取价值”,因为随着 DeFi 的采用,实现的 MEV 数量呈指数增长,并且认识到区块链中不依赖工作量证明的区块生产者也可以提取价值,例如 ETH2 中的验证器。
随着已实现 MEV 数量的增长,MEV 机器人运营商开始通过专用网络(例如 Flashbot)发送交易。 这些私有网络允许机器人运营者将他们的交易直接发送给矿工,并与矿工分享 MEV 收益以换取交易执行。
矿工目前从三个来源获得补偿:
基本费用 - 每个块2 ETH奖励 + 叔块奖励
交易费用 - 用户支付的gas出价以将交易包含在区块中
MEV - 矿工通过在区块中的特定点插入交易来提取的额外费用
交易费用是以太坊网络拥堵的根源,因为订单通过其交易的 Gas 价格竞标来竞争包含在区块中。 当前的交易费用机制称为第一价格拍卖,其中交易的创建者提交一个 gas 出价以包含在下一个区块中。 然后矿工用支付最高的交易填充区块,每个包含的交易都必须支付他们的 gas 出价。 即将于 2021 年 7 月通过伦敦硬分叉实施的 EIP-1559 将取消交易费用和第一价格拍卖,并将用固定价格销售取而代之。
EIP-1559 的目标是降低导致以太坊网络拥堵的高gas费。 Tim Roughgarden 关于 EIP-1559 的论文分解了创建 EIP-1559 的原因以及对矿工和交易创建者的影响。
EIP-1559的关键概念:
每笔交易都需要支付基础费用才能包含在区块中。基本费用基于前面区块的大小。所有基本费用收入都被烧毁,将它们从 ETH 的循环供应中移除(通货紧缩效应)。
最大区块大小从 1250万 gas 增加到 2500万 gas。 1250万 gas 现在是目标区块大小。这允许根据先前的区块大小与目标区块大小的距离来调整基本费用。
交易包括小费和费用上限,而不是gas价格。小费是交易创建者支付给矿工的超出基本费用的金额。费用上限必须等于要包含在区块中的基本费用。
交易创建者支付 = gasLimit * min {基本费用 + 小费,费用上限}
矿工收到 = gasLimit * min {tip, fee cap - base fee}
参与 Flashbots MEV-Geth 矿池的矿工已经收到来自 MEV 机器人的小费。到 2021 年 4 月,矿工为包含 Flashbots交易的每个区块获得额外的 0.18 ETH,并且由于新产品的发布增加了每个区块可以捕获的 MEV 数量,因此预计这一数字将大幅增长。
最小化交易 MEV 的最简单方法是使用私有内存池来访问矿工,尽管这仍然相信矿工不会抢跑您的交易。 Flashbots 旨在成为MEV领导者,已经创建了一个网络,该网络将 MEV 提取机器人直接连接到矿工。 KeeperDAO、Secret Swap、BloXroute 的 backrunme、ArcherSwap 和 Alchemist 的 misX.io 提供私有网络,并用来自 MEV 机器人的利润来补偿具有 MEV 的交易。 以太坊矿工 Sparkpool 还允许用户通过其私有网络 Taichi Network 私下路由他们的交易。
Flashbots 是一个研发团队,致力于构建用于理解和执行非常规 MEV 提取的工具。 Flashbots 于 2021 年 1 月推出,发布了两款产品:1) Flashbot Alpha:一种经过修改的 go-ethereum 客户端,允许交易者与矿工交流他们的交易订单偏好,以及 2) MEV-Explore:一个公共仪表板,实时显示 MEV 交易。 Flashbot Alpha 包含两个主要工具——MEV-Geth 和 MEV-Relay,它们允许 MEV“搜索者”私下向矿工提交他们的交易。提取交易由 MEV 机器人操作员与原始 Mempool 交易一起排序和捆绑(bundle)。然后将捆绑被提交给矿工,MEV 机器人运行者将交易利润的一部分作为“小费”给矿工,以将其交易包含在区块中。
截至 2021 年 4 月,以太坊网络 84% 的矿池算力采用了Flashbots。 2021 年 5 月 16 日至 22 日这一周的前 7 大矿工已加入 Flashbots。
Flashbots 最近发布了他们的 MEV-Geth 和 MEV-Relay v0.2,其中包含以下变化:
改进后的拍卖定价创建了一个函数来估算矿工的机会成本并解决捆绑(bundle)销售问题。
丢弃具有恢复交易的捆绑:通过防止意外交易登陆链上来减少链膨胀。
捆绑合并:允许在一个块中包含多个捆绑。 增加矿工收入并为搜索者创造更高的交易包含机会。
用 Websockets 替换 HTTP 端点:减少延迟并提高节点安全性。
通过 Flashbots 网络的 MEV 的统计数据可以通过他们的仪表板查看。
KeeperDAO 是另一种使用称为隐藏式订单薄的私有虚拟内存池的协议。用户通过隐藏订单薄的网络路由他们的交易或借贷交易,其中 Keeper 机器人通过套利或清算提取 MEV。 MEV 的利润存入 ROOK 金库,用户以 $ROOK 代币的形式获得利润的一部分,减去管理员费用。用户交易是免费执行的,并且不受滑点和三明治攻击的影响。
KeeperDAO 也有协调博弈,在这个博弈中,管理者被激励合作、轮流和分享利润,而不是通过 PGA 相互竞争。这也可以防止保管员因交易订单失败而损失 gas 成本。
Secret Swap 是 Secret Network 上的 AMM 协议。 Secret Swap 使用秘密合约 (SNIP-20s) 来保护用户免受抢先和其他 MEV 机器人的侵害,同时提供对跨链流动性。 SNIP-20s 合约在内存池中时会被加密,以防止 MEV 提取。用户需要有一个 Keplr 钱包和 $SCRT 代币来支付“gas费用”。 Secret Swap 上的交易必须支付 0.3% 的掉期费以及 $SCRT gas 费。 LP 和交易者收到 Secret Swap 治理代币 $SEFI。
$SCRT 代币是 Secret Network 协议层的原生治理代币。 Secret Network 提供了一个加密的内存池,可以防止节点和验证者看到交易细节。 Secret Network 区块链基于 Cosmos SDK/Tendermint,具有惩罚和委托功能。 Secret Apps 是使用用 Rust 编写的 CosmWasm 智能合约构建的,并部署在 Secret 网络上。
BloXroute 最近发布了 BackRunMe,这是一个 Solidity 合约,允许用户提交私人交易,以防止抢先攻击和三明治攻击。 交易仍然可以,从而提供 MEV 套利机会。 用户将获得 25% 的回扣,而 MEV 机器人将获得 20%、矿工获得 50% 和 bloXroute 5%。
Archer DAO 于 2020 年 8 月推出,使矿工能够利用 MEV。 由第三方供应商提供的 MEV 机器人向矿工提供有利可图的 MEV 捆绑。 供应商和矿工以 $ARCH 治理代币的形式分享 MEV 利润。 流动性提供者为 MEV 策略的供应商机器人提供抵押品,这些策略需要比闪电贷更长的资本贷款。 ArcherSwap 使用 Archer Relay 绕过公共内存池并将用户交易直接发送给他们自己的矿工和 Flashbots MEV-GETH。 ArcherSwap 可防止抢先交易和滑点,并且对于订单取消和交易失败是免费的。
Archer DAO 最近收到了向 ArcherSwap 用户分发 ARCH 代币的治理提案。 ARCH 代币是使用 MEV 从用户交易中产生的收入从市场上购买的。
TaiChi Network是 SparkPool 运营的私人交易服务。 用户交易仅对 Sparkpool 可见,不会广播到其他以太坊节点,从而阻止 MEV 机器人对订单采取行动。 由于 Spark Pool 可以查看交易,因此它仍然容易受到 Spark Pool 运行的 MEV 机器人的攻击。
misX.io 是一个运行在 Flashbots 网络上的 DEX,它使用户能够以 Flashbots 捆绑的形式发送交易。 所有misX 代币-ETH 交易的gas 价格为0,用户无需在钱包中持有ETH。 misX 用户还可以取消交易而无需支付费用。 misX.io 平台保留一定比例的矿工小费,用于丰富 Crucible 和 Aludel 奖励计划。
对于执行兑换和借贷交易的 DeFi 用户,以太坊上的 MEV 只能减少而不是完全消除。当前最好的解决方案是私有网络,它可以防止公共内存池中的抢先攻击和三明治攻击,同时还可以从 MEV 的利润或其他好处(例如无gas交易)中提供回扣。然而,从 Flashbot 的活动中可以观察到,新的 MEV 提取策略不断被发现和创建,当前的保护可能会过时。
对可能降低 MEV 的当前选项的进一步改进将使当前的设计无需许可且完全私有。无许可设计意味着没有受信任的中介,即矿工,将能够审查交易。完全私有的设计意味着没有参与者——即聚合器、矿工、网关管理员,能够观察到交易的细节。 Flashbots 最近提交了他们的 MEV-SGX 提案,这是 Flashbot Alpha 的一种无需许可且完全私有的改进,它利用了英特尔的 SGX 安全飞地。
Layer 2 Rollup提供了另一种减少 MEV 的潜在方法。 Vitalik Buterin 建议,Rollup可以处理所有以以太坊为基础数据层的交易执行。 Optimism 提出了 MEV 拍卖(MEVA),该拍卖将通过创建两个功能来减少矿工 MEV:1)交易包含和 2)交易排序。
理论上,权益证明 (PoS) 可以通过削减试图重组先前区块的验证器来抑制时间强盗(time-bandit)攻击。 如果 MEV 利润显着大于削减惩罚,则仍然存在可能发生时间强盗(time-bandit)攻击的可能性。
感谢 Flashbots 的 Robert Miller 提供技术帮助和评论。