2021-09-10 00:24 | 出处: DODO研究院
出品:DODO Research
作者:Rita Chen
编辑:Mark Wang
区块链的透明度和可追溯性超过了世界上的绝大多数系统,但是在这背后仍然存在着看不见的博弈,MEV(矿工可提取价值/最大可提取价值)就是隐藏的黑暗森林。在每一笔交易背后都可能有它的身影。
这篇文章旨在对 MEV 做一个系统化的介绍,包括 MEV 的原理和产生、MEV 的类型、MEV 的市场规模、应对 MEV 的多种方法、基于 MEV 的协议和应用,以及其他公链中的 MEV。我们希望不管你对 MEV 是否有了解,都可以有所收获。
MEV全称为Miner Extractable Value,矿工可提取价值。指矿工(也包含验证者等)在区块链上对于自己挖掘的区块,在打包区块的过程中,运用将交易重新排序、插入、忽略或审查等能力,获得除了交易费用和区块奖励之外的利润金额。
而在当今的以太坊生态上,许多专注于DeFi交易的策略机器人也进入到了提取MEV的行列。因此,MEV也可以称为Maximal Extractable Value,最大可提取价值;指在未经许可的情况下,从交易订单中提取的总价值。
MEV的产生来源于,当用户在区块链上提交一笔交易,交易信息被传送到网络与实际区块被挖掘出来之间存在延迟。在以太坊交易被包含在一个区块中之前,该交易位于称为内存池(mempool)的待处理公开访问的交易池中,每个人都可以看到其中的内容。套利者和矿工可以监听此内存池,并找到机会最大化自己的利润,例如通过提前交易。矿工还可以重新排列交易顺序。而在这段时间内,用户基本上不能控制这笔交易何时并按照何种顺序执行。总的来说,矿工挖掘区块的过程是公平的,但矿工对可以包含在区块中的交易有很大的控制权。MEV就是矿工和套利者向普通用户征收的无形税款。
MEV在DeFi领域,分为良性MEV、不良MEV和灾难性MEV。
主要发生在套利交易和清算。
3.1.1 套利交易
指通过在不同交易所之间的套利来保持市场的有效性,益于生态系统。
例子<1>:用户在不同DEX之间进行套利。基本上是当代币价格发生变化时,第一位在资产价格变化后立即在交易所进行交易的用户,获得套利利润,使价格最终趋于一致。此类型的提取MEV不依赖内存池中其他的交易,只取决于第一位用户。
例子<2>:用户在交易平台进行了一笔大额交易导致价格下滑,产生了较大的套利空间。套利机器人进行套利交易,将市场价格套利至真实价格水平。此类型的提取 MEV不会在过程中损害原始交易者的利益。
实际案例:套利者先用139.095个ETH在 SushiSwap 买入5.7648个WBTC;然后在0 x Protocol上用5.7648个WBTC买入2,269,314.6698个USDT;最后在Uniswap上卖出2,269,314.6698个USDT,换取1,352.1242个ETH;获利1,213.029个ETH(=1,352.1242 ETH - 139.095 ETH)。
(0 xb72689042f313adbffbe4d192b0febc4c8a8346b75a549d5b4d4795b37180488)
有些协议的运转需要依赖于MEV,比如对Aave Protocol、Maker、Compound的清算。在DeFi抵押借贷协议中,当抵押物价值下降时,如果没有补足或者出售抵押资产,就会触发清算程序。清算人可以以低于市场价格3%-5%的折扣,获得如ETH这样的抵押资产,而这3%-5%的折扣价值,就是MEV。
实际案例:用户A在Aave Protocol上存入1,100.8306个LINK作为抵押物,以借出11,558.3174个DAI。假设某时LINK的价格下跌,导致抵押物的总价值降低,并已跌出清算线;但此时1,100.8306个LINK的总价值,仍旧高于11,558.3174个DAI。此刻订单公开挂出,进行强行清算,任何用户都可以对这笔订单进行清算。于是,用户B在Compound上借出11,558.3174个DAI,并在Aave Protocol上付出11,558.3174个DAI,以换取1,100.8306个LINK,从而赚取清算MEV。
(0 x963054a6001e4711a64b5dc35a37a0eb3aaf3bb7c204f021dd5e85e7a8a51a31)
主要发生在机器人抢跑、三明治套利交易等。不利于以太坊的正常运行。
用户在交易平台进行一笔交易时,套利机器人在用户的交易被执行前发现了这笔可套利的交易,并将这笔用户的交易夹在自己的买单和卖单之间。用户的订单被套利机器人以人为的操纵方式抬高价格执行,无形中用户的交易成本被增加,然后套利机器人将该笔订单出售以获取即时利润。
例子:假设此刻某流动性池的市场价XX/YY=1:50,某用户用200 XX买入4 YY。套利机器人先于该用户构造了一笔210 XX买入4 YY的交易;订单被排在后面的该用户想要成交,就要用多于的210个XX买入4 YY。此时,套利机器人卖出4 YY,从而赚取一笔差价,而该交易用户还要承受更大的滑点损失。
用户在交易平台进行一笔交易时,套利机器人在内存池中看到了这笔可套利的交易并立即复制该交易,同时使用更高的Gas费用在该笔交易执行前向矿工提交已复制的交易。交易类型可能是较小滑点系数的DEX交易或者参与IDO等。
由于链上数据是公开的,出现机会时,会有很多个机器人监听到被提交的交易信息开始行动参与,并给出越来越高的Gas费用报价。开始一场争夺套利交易的费用竞争,这种竞拍行为被称为最优Gas费竞拍/PGA(Priority Gas Auction)。然而,由于只有一方可以赚取MEV,其余参与竞争的机器人大都会取消其交易或是交易失败,这会提高原本不应该被提高的Gas费用。在这场PGA竞争中,如果没有矿工捕获MEV,竞拍结算价格和总MEV之间的差额就是获胜机器人的利润。
例如:DeFi套利机器人捕捉到某笔交易创造的一个10,000美元的MEV套利机会。他提交这笔交易给矿工,并且给出高价Gas费为了让提交的交易被矿工优先打包处理,如果其向矿工支付6000美元的Gas费,那么这部分就是矿工在这笔交易中获得的MEV,剩余的4000美元就是套利机器人可以提取的MEV利润。
指通过重组等方式,对区块链共识层造成威胁和伤害。
当大多数矿工都通过重组交易顺序或者重组区块等方式获取MEV的时候,每个打包的区块内容都不相同,大量的叔块甚至2-5个区块的重组会更多的发生。
这导致的后果包括:交易确认时间变长,用户在平台的体验下降;增加了51%算力攻击的可能性;大量的交易失败,包含很多失败的MEV交易,以太坊链上网络可能会变得拥堵,链上交易的Gas费用成本变得更高,这可能会阻碍以太坊的网络效应。
通常情况下,区块生产者的“激励兼容”策略应该是延长最长链。但是在极端情况下,如果某个区块的后置状态有利可图(例如,有非常高MEV,只有通过在该区块之后直接建立一个区块才能提取),甚至可能会让延长最长链的共识失效。
例如:假设矿工每找到一个区块的奖励为100美元。矿工A找到了3个区块,其中第一个区块包含了10,000美元的交易套利机会。矿工B可以在矿工A发现的3个区块上继续挖矿,或者可以重新挖掘第一个区块,以进行该交易10,000美元的套利。于是,矿工B决定重新挖掘第一个区块;同时,矿工B也需要重新挖掘第2个和第3个区块,以符合区块高度。对于矿工C,D,以及其他矿工来说,重新挖掘这三个区块也是他们的最优选择,这就是time-bandit攻击。在区块奖励远小于MEV的情况下,矿工都会选择在损害共识的情况获取利润。
如果试图阻止矿工获取MEV利润金额,就有可能激励共识协议外的市场的产生。例如,如果所有交易只允许支付相同的Gas费用,矿工将可能与交易商串通,并接受一定的贿赂以优先该交易商的交易。如果所有的交易费用被烧毁或支付给一个公共账号,矿工将可能单独收取Gas费用。
所以MEV很难被彻底解决,但可以从以太坊应用程序的架构,和用户与之互动的方式进行结构性改变。
如何减轻不良MEV和灾难性MEV的存在,利用良性MEV是一个重要的话题。根据对应方式和解决思路来说,对待MEV有两种思路:“进攻”,“防守”。
Flashbots是FRaaS的主要呼吁者和代表性施行者。通过提取交易的MEV并进行利润再分配的方式保护交易者利益。本质上通过补偿交易者、给矿工赏金激励,使多方达成合作,造成多赢局面。目前包括Ethermine、星火矿池、F2Pool、HiveonPool等矿池都已支持Flashbots。
我们将在后一部分详细介绍Flashbots。
在这个应对策略类别中分为,彻底消除MEV和减轻或者最小化MEV。
a. 隐私交易:将交易提交到隐私的内存池(mempool)排队等待打包,而不是公开型的内存池。以躲开其他交易机器人的监听。
提供这类服务的协议包括:
· 1inch的Stealth Transactions:目前仅在1inch钱包ios客户端提供。目前这种方式面临,交易可能被打包进叔块从而被公开的风险。
· Taichi Network:由目前以太坊算力第二大矿池星火矿池创立,用户可以通过太极网络提供的接口直接发送交易到星火矿池的隐私池。由于星火矿池并不对这笔交易进行网络公开发布,这笔被发送出去的交易在未被正式确认前,在Etherscan上无法看到该笔交易的状态。
· bloXroute:提供隐私通信功能,允许交易在不被暴露的情况下直接到达矿工手中。bloXroute的 BDN(区块链分发网络)通过自己的网关软件将区块链节点与BDN链接,网关软件和区块链节点首先翻译从区块链进入BDN的信息。然后,在第二层,它会进行区块压缩。通过极大缩小区块大小,使其随后更高效地在区块链分发网络(BDN)中发送/传输。
· CowSwap:作为DEX,当两个交易者各自持有对方想要的资产时,订单可以在他们之间直接结算,无需外部做市商或流动性提供者的操作。用户的订单由求解器(Solver)发送,并设置了严格的滑点区间,求解器相互竞争,为用户争取最优惠的价格。
· Gnosis V2:通过批量拍卖,并集成各去中心化交易所作为流动性来源,为交易者提供最优价格,尽可能降低滑点,从而抵御MEV。
5.2.2 消除MEV
a. 通过从底层机制,改变交易的排序方式。
· MEV拍卖,MEVA(MEV Auction):由Optimisim的CTO Karl Floersch于2020年年初提出,将矿工打包交易权力和交易排序权力进行分拆,矿工只保留打包交易的权力,而交易排序权力则通过拍卖的方式由第三方进行。这个第三方通常是序列器(Sequencer)。由于大部分Layer-2在设计上都通过序列器进行交易排序,所以MEVA可以说是一种专门为Layer-2打造的方案。
我们将在后面的部分介绍序列器的作用。
· 公允排序服务 FSS(Fair Sequencing Services):公允排序服务由Chainlink 开发,使用 Chainlink 的预言机服务。它首先向预言机网络传递请求,然后将请求转发到指定的、且适用FSS的智能合约上。预言机网络通过一个名为 Aequitas 的设计,将这些加密的请求订单以到达的时间进行分发 (这意味着低延迟的请求将获胜) ,而且在最终顺序之前,它们不能被解密或查看内容。
b. 加密:对交易发送的信息进行加密,使得矿工无法得知交易内容。
· 阈值解密Threshold Decryption:由Sikka开发,作为Tendermint Core BFT共识引擎的插件,以创建内存池级别的隐私协议。使用此插件,用户可以将加密交易提交到区块链,只有在由2/3验证者提交同意到区块后才能解密和执行。
· 基于阈值加密的分布式密钥生成(DKG):Shutter Network使用基于阈值加密的分布式密钥生成(DKG)协议来防止以太坊上的灾难性MEV。在用户交易发出之前进行加密,通过矿工消息池,确认被打包进区块后,再对交易信息进行解密。
由于MEV可以在用户与区块链交互的任何时候发生,MEV在以太坊上的精确值很难被估计,目前主要通过已提取的MEV相加(下限值)来建立这个市场。
以下数据来源于Flashbots MEV-Explore。自2020年1月1日,截止2021年9月8日,累计实现的MEV约7.2亿美元,其中过去30天已实现MEV高达3140万美元,过去24小时已实现的MEV就达到10万美元。这足以成为矿工非常重要的收益来源。当然,现实数据受DeFi交易量影响很大。但随着DeFi整体规模的增大,MEV规模也会相应增大。
目前市场上的MEV主要来自于交易套利,占据90%以上;清算产生的MEV,不到5%。
(Flashbots, MEV Explore)
以协议分类,MEV最常发生在的协议包括Uniswap(44%)、SushiSwap(21%)、Balancer(10%)、Curve(9.7%)、dYdX(8.6%)、0 x Protocol(3.1%)、AAVE(1.9%)、Compound(1.4%)。
(Flashbots, MEV Explore)
自2020年1月,截止2021年9月,从提取的MEV的Gas值用量到整个网络Gas使用量。绿色代表成功的MEV交易,红色代表失败的MEV交易。根据Flashbots研究统计,失败的MEV交易的Gas费至少可以填满6,235个区块,代表MEV产生的低效率。
(Flashbots, MEV Explore)
Flashbots成立于2020年11月,是一个针对MEV的去中心化研究和开发组织,致力于构建良性的MEV生态,同时减轻MEV带来的负面影响和风险,提升MEV提取的民主化和透明化水平,让所有用户都可以详细了解MEV的细节。
Flashbots正在进行的项目如图所示,主要分为研究和工程两部分。我们将详细介绍工程中的MEV-Geth,MEV-Relay,和MEV-Explore。
MEV-Geth是一种经过修改的go-ethereum客户端,为了解决提取MEV过程中所产生的高额Gas费。不仅可以像其他节点一样监听内存池(mempool)的信息,还可以连接到Flashbots运营的中继服务器。MEV-Geth把MEV交易隔离到链下,为矿工和交易搜索者提供一个专属渠道进行竞拍,允许他们之间交流交易顺序偏好,防止交易不被网络中其他节点发现,以缓解链上Gas费过高和网络拥堵。
MEV-Geth引入了“交易搜索者”的概念,其工作为监听以太坊状态和交易池中提取MEV的机会,找到最有价值的排序,并使用交易捆绑的标准化模版竞标将其提交给矿工。交易搜索者可以配置他们想要把交易提交给的矿工名单列表。想要参与Flashbots核心项目的矿工,必须经过筛选才能进入MEV-Geth的白名单。
MEV-Geth在所有捆绑交易中挑选出最有价值的捆绑交易。将包含此捆绑交易的区块与不包含任何捆绑交易的普通区块进行比较。MEV-Geth将执行,如果包含此捆绑交易更有价值,否则此捆绑交易将自动回到一个普通Geth区块中。
MEV-Geth的优势在于其无许可性,即没有可信的中间人审查交易;MEV-Geth是高效性,可以防止不必要的Gas费过高,网络拥堵;同时MEV-Geth对预先交易和失败交易有隐私保护。当预先交易被包含在区块里会变得透明。失败的交易隐私防止失败交易被包含在区块,意味着没有人可以找到它们。
MEV-Relay是一个交易捆绑(Bundle)中继服务器,可以将矿工与希望被包含交易的套利机器人直接连接。MEV-Relay可以模拟每一个捆绑交易,并过滤无效的或在支付中低于市场Gas费的捆绑交易。交易搜索者把想要打包上链的已排序好的交易,以捆绑的形式通过MEV-Relay并提交给在MEV-Geth白名单上的矿工。矿工以封闭拍卖评估捆绑的交易,生成带有交易序列信息的区块模板进行上链,将其交易包含在区块中。
一个捆绑交易包含的信息有:
· 待执行的捆绑交易(由一组已排序好的未完成的以太坊交易、区块高度、最小超时时间、最大超时时间组成);
· 以ETH形式转账给矿工的小费,这些交易不需要支付Gas费,失败的交易也不需要支付成本。只有当交易搜索者的捆绑交易被包含在一个区块中,捆绑交易中的小费才会支付给矿工,没有则不然。
由于这些交易是通过并行的中继服务器发送,其帮助减少了Gas竞争和使区块链膨胀的失败交易。
MEV-Geth和MEV-Relay的运作流程:
i. 使用者可使用MEV-Geth中的交易捆绑,其中包含:交易搜索者和/或其他用户的内存池中待处理的一个或多个事务。交易搜索者通过智能合约调用向矿工支付的小费函数。并且,Flashbots捆绑包将始终位于该区块的顶部。
ii. MEV-Relay接收捆绑交易,并将其发送给所有列入白名单的MEV-Geth矿工。
iii. 矿工从MEV-Relay接收Flashbots捆绑包,并在MEV-Geth中对其进行处理。
iv. MEV-Geth从发送的所有捆绑交易中选择利润最高的捆绑交易上链,将捆绑交易放到一个新的区块的顶部。
v. 然后,MEV-Geth将包含此捆绑包的区块与不包含任何捆绑包的区块进行比较。
vi. 仅当交易搜索者的捆绑包包含在一个区块中时,与他们的捆绑包相关的小费才会被支付。
vii. 如果区块没有包含捆绑交易,该交易没有上链,则交易搜索者和/或其他用户不会花任何钱,即交易失败或者取消交易都无需支付Gas费。
目前存在的隐患:
· 交易搜索者发送任何性质包括失效的捆绑交易,给中继服务器都是零成本。因此交易搜索者可以用无效的捆绑交易向网络发送垃圾信息,从而对其他网络参与者形成拒绝服务攻击。
· 目前矿工可以在一个区块里打包多个捆绑交易,为了使自己利益最大化,矿工会选择交易搜索者支付小费最高的捆绑交易优先打包。并且矿工在接触到捆绑交易的内容后,可以通过解析,重新排序或增加交易进行MEV提取。
MEV-Explore是通过MEV-Inspect收集到的数据构成的一个公共面板,显示实时的量化MEV价值、交易、分类、Gas费用消耗等相关资讯。
MEV-Inspect是一个区块链信息搜集工具,可以扫描以太坊交易并识别MEV提取活动,使MEV指标随时间推移而可视化。
MEV-Explore数据范围自2020年1月1日的第一个区块9193266起。把已提取的 MEV 按类型分为:套利、清算和套利+清算。目前覆盖8种DeFi协议:AAVE,Balancer,Compound,Curve,dYdX,SushiSwap,Uniswap V2 和0 x Protocol,后续会扩大协议范围。目前仅涵盖单笔交易MEV机会,不包括三明治交易(Sandwich Trade)或多笔套利交易;也不涵盖CEX-DEX套利,因为CEX没有可供抓取的公开数据。
MEV-Explore在Leaderboard中列出了所有MEV交易,包含最新MEV交易、最近90天最高Gas费MEV交易和未确定的异常MEV交易。
Alchemist是由 @thegostep在2021年2月发的一条Twitter开始的,@thegostep是以太坊、Ampleforth的核心开发者之一,同时也参与了Flashbots。Alchemist是一个完全由社区推动的去中心化组织。目前已有5个核心项目正在进行:Crucible、Copper、mistX、sandwitched查询和Crucible NFT Design。
¥MIST是Alchemist的治理代币,主要功能为Alchemist筹集前期研发资金,并进行社区治理,代币总量无上限,并有增发机制。代币其中50%给Alude奖励池,25%给MIST社区多签,25%给MIST国库。
mistX是一个无Gas费的去中心化交易所,通过Flashbots绑定交易,实现交易确认。mistX在链上作为交易搜索者,Flashbots将mistX直接与矿工连接,保护用户发起的交易信息不会发布到公开的内存池(mempool),而是以捆绑交易的形式进入Flashbots系统。其他交易搜索者无法抢跑、夹击该用户的交易,因为捆绑交易总是位于区块的顶部。用户有效地隐藏了交易信息,使其不被抢跑者发