如何通过市场机制解决预言机MEV(OEV)问题
什么是 OEV(预言机 MEV)
简单来说,当预言机运行者监控到链下与链上的价格数据存在偏差时,运行者可以发起交易,更新链上预言机感知到的价格。当一笔可以修改预言机价格的交易发生时,这往往意味着 MEV 的产生,我们称这种依赖于预言机的 MEV 为 OEV (oracle extractable value)。
OEV 的存在,在不同利益相关者之间产生了价值再分配,而 API3 则号称使用拍卖机制,使 OEV 再分配尽可能合理(通过市场机制来分配),并设法带来更快、成本更低的价格更新。
一般认为,OEV 的产生与提取,是 MEV 问题的一个子集,我们在此简单介绍 OEV 是如何产生的,其核心原因在于以下两方面:
1. DeFi 系统使用预言机获取价格,并基于预言机价格,执行清算等逻辑。而资产清算往往意味着有大额的利润空间。
2. 预言机更新存在细粒度问题,只有链下与链上价格存在一定偏差后,才会更新链上数据,且链上数据更新会以一笔交易的形式呈现。
OEV 的产生,意味着流动性提供者的价值损失,一些数据显示,基于以上两方面,OEV 存在以下三种产生途径:
Frontrunning,即抢先交易。当 OEV 搜索者监控到,交易池内出现一笔预言机价格更新交易时,其可以在此交易前,插入自己的交易,以获取价格更新带来的收益。这是最传统的抢跑交易。
Arbitrage,即套利。由于预言机链上价格更新,取决于链上价格与链下价格之间的差额,这意味着预言机报价可能与其他系统报价不一致,此时就产生套利空间
Liquidations,即清算。预言机的价格更新,会触发一系列借贷头寸的清算,清算者可以在清算过程中内获取大量的清算收益。
通过 Frontrunning 和 Arbitrage 方式提取的收益,实际上是流动性提供者的损失。而对于 Liquidations 清算获取的收益,一方面影响了借款人的利益,因为借款人会在清算过程中损失相当部分的资金,而对于贷款人,由于预言机给出的报价存在延迟,其最终收到的抵押品价值可能低于预期。所以无论如何,OEV 的提取都会给相应的 Defi 协议带来托管财产上的损失。
OEV 的提取过程:本质还是抢跑
对于 OEV 的提取,搜索者会通过监控内存池内的「预言机数据更新指令」,通过 MEV 基础设施,将预言机数据的更新交易指令,与自己发起的交易指令捆绑在一起,最终执行以获取收益。
当然,对于套利和清算交易,搜索者只需要监控链上价格与链下价格的偏差,最终通过 MEV 基础设施,确保自己发起的交易先上链执行即可。
无论搜索者使用的那种流程,我们可以看到 OEV 的收益被分配给了 MEV 基础设施和 OEV 的搜索者,而「被捕获」 OEV 价值的协议,并没有获取其应有的收益。(根据某些数据,OEV 问题此前曾导致 GMX 平台的利润被抽走差不多 10%)
为了解决这个问题,贡献了大量 OEV 价值、身为链上衍生品交易平台的 GMX 采用了一种简单粗暴的方式:让自己指定的一些人来捕获 OEV 价值,然后把这些 OEV 价值尽可能返还给 GMX 平台。
对此,GMX 引入了 Rook 和白名单。简单来说,GMX 的预言机更新通过 Rook 执行,而 Rook 会基于目前的市场情况,进行 OEV 的提取操作以获取市场内的 OEV。这些 OEV 的 80% 会被返换给 GMX 协议。
总结下来就是,GMX 通过白名单,赋予 Rook 们更新预言机的权利,通过 Rook 提取 OEV 以避免被其他搜索者提取 OEV,同时将 OEV 的 80% 返还给 GMX 系统。这个套路其实有点简单粗暴。
基于市场竞价的 OEV 拍卖机制
在介绍最近热议的 API3 提出的 OEV 拍卖方案前,我们先简单介绍下 API3 的预言机运行原理。API3 的核心被称为 Airnode 协议。该协议允许 API 服务商直接将自己的 Web2 的 API 包装为 Web3 的预言机。
简单来说,Airnode 协议要求 API 服务商使用自己的私钥,对每一个发布数据进行签名。用户可以随时向 Airnode 协议的服务商,获取最新的数据及其签名,然后可以将其发布到链上预言机内,以更新数据。
这对于 API 服务商而言,将其 Web2 API 服务包装为区块链预言机,实际上只需要增加一个私钥签名环节,API 服务商的大量基础设施可以直接复用,这大大降低了 API 服务商进入预言机领域的门槛。
(不过,在常规情况下,Web3 DAPP 不需要通过 Airnode 协议直接获取数据更新资产价格,可以直接通过 API3 提供的合约读取数据)
基于 Airnode 协议,API3 使用了一种类似 flashbot 的但针对于预言机系统的拍卖方案,以实现 OEV 的合理分配,同时也可以进一步提高链上预言机的更新频率。下图展示了 API3 的 OEV 方案:
API3 允许任何人通过竞拍,主动的更新其预言机合约上记录的数据,并引入 OEV Relay 节点,作为整个 OEV 拍卖流程中的核心。OEV Relay 在各个预言机网络节点内收集数据,并统一返回给搜索者 (Searcher),搜索者再拿去更新 API3 预言机上记录的数据,并趁机把 MEV 交易也捆绑在一起。
OEV Relay 的存在带来了以下两方面优势:
1.为搜索者统一提供所有数据,减少搜索者单独与预言机节点交互的事件;
2.保护网络内单个预言机节点,避免单个预言机节点被搜索者发起 DoS 攻击;
搜索者可以在 OEV Relay 内,获取聚合的预言机网络报价数据及其签名,当搜索者认为当前的预言机网络报价可以帮助其完成某些 OEV 提取操作,搜索者就会向 OEV Relay 发起竞价。
在竞价过程中,假如搜索者给出了最高报价,OEV Relay 就会返回一笔已经签名完成,可以直接上链用于链上预言机价格更新的 meta-tx。搜索者可以将该笔价格更新交易,与其他交易打包在一起上链,执行获取 OEV 收益。此时由于价格更新交易也被打包上链,所以链上预言机价格也一并更新。
我们可以看到,允许 OEV 拍卖的一个效果,在于实现链上预言机价格的高频更新。以 AAPL/USD 数据源为例,在没有 OEV 拍卖前,当链下与链上价格偏差 1% 时,这种大幅度的偏差才会使得预言机主动更新链上价格。
但假如 OEV 拍卖开放后,预言机允许外界向其提交数据更新指令,搜索者可能就会认为,链上与链下 0.1% 的价差就可以带来巨大的 OEV 收益。这会驱使搜索者,在价差为 0.1% 时就拍下用于价格更新的 meta-tx ,并将该笔交易指令上链。
这会加快 AAPL/USD 数据源的更新,且没有对使用此预言机的应用带来额外的预言机更新成本。
所以说,预言机数据更新的成本,被转嫁给了 OEV 价值捕获者,而 API3 的 OEV Relay 可以从 OEV 玩家那里,获得大额的竞拍费用,再把这些费用反哺给被捕获 OEV 价值的 Defi 协议。
可以预见,随着 OEV 市场扩大,搜索者会在拍卖价格上激烈竞争,导致 OEV 价值的大部分(甚至是 95%)都被转移给 API3 协议,而 API3 协议收到这部分 OEV 收入后,会区分 OEV 价值的来源,并将其返还给被捕获 OEV 价值的 Defi 协议。
还需要注意 ,为了保险,API3 会在链上数据与链下数据差额较大时,自动执行数据更新操作,前提是一直没有 OEV 拍卖者主动更新 API3 合约记录的数据。
总结
基于 Airnode 协议与 Flashbot 的启发,API3 开发了 OEV 拍卖方案,该方案带来了以下优势:
将 OEV 大部分返还给使用预言机喂价的协议,提供了更具有细粒度的价格更新,且采用预言机喂价的协议平台 无需为更细粒度的数据更新付出高昂成本,这部分成本通过拍卖的方式转嫁给了出价的 OEV 抢跑者。
相比于 GMX 的特殊化方案,API3 的方案是更加通用的,而且 API3 预言机的使用方只需要给定钱包地址,API3 协议会自动将 OEV 收入打入此钱包,使 OEV 的再分配更加方便。