引介

Flashbots:与 MEV 危机赛跑

曾汨   |     |   458 次阅读

Flashbots 是一个研究和开发组织,成立的初衷是缓解由 “矿工可抽取价值(miner-extractable value, MEV)” 给智能合约平台型区块链带来的负外部性和生存风险。我们提议为 MEV 的收取设计一种免信任、透明且公平的生态系统,来保卫以太坊的理念。

过去几个月的以太坊使用量暴涨,使得一些由 MEV 带来的负外部性暴露出来,包括网络拥堵(即点对点网络的负担加大)和链拥堵(即区块空间紧张):我们的初步评估显示,通过消除无效率的 MEV 抽取过程,可以将以太坊的吞吐量提高至少 2.4%。此外,当前的 MEV 抽取方法的激励体系,给以太坊的共识安全性带来了生存风险,因为它使得人们有激励为了获得过往区块的 MEV 而发起链重组(例如,通过 time-bandit attack),也使人们有激励为了隐私、低时延和排序控制权等好处而使交易的路由中心化。我们认为这些激励是有害的,因为它们会破坏以太坊的免准入性和终局性。

虽然这些生存风险和负外部性一直以来都存在,但半年来的一系列事件表明网络的使用量已到临界点。我们观察到,已经有很多人在积极地开发排他性的交易路由设施,也很担心这一切,因为它有可能侵蚀以太坊今天的中立性、透明性、去中心化和公平性。这些事件也表明,前述的生存危机和负外部性有愈演愈烈的趋势。

在本文中,我们会讲解 Flashbots 组织的细节和我们研究路线图的起步项目,MEV-InspectMEV-Geth。关于我们项目的背景和动机,进一步的讨论可见此文

MEV-Inspect:消除信息不对称

理解当前的 MEV 收集手段所带来问题的第一步是量化它们的影响。此前也有一些网页,例如 frontrun.me,和一些行业指标网站,收录与 MEV 相关的指标,但我们发现需要有一个标准化和可延展的方法,来利用以太坊和其他区块链所产生的此类数据。

MEV-Inspect 的工作原理

MEV-Inspect 是一个区块链爬虫,它会扫描以太坊区块链并识别 MEV 的抽取活动。

爬虫会遍历区块链,一条接一条交易地分析,检查发生在一笔交易内的已知操作,并从这些组合行为中推断一笔交易中可能发生了什么。分类清楚之后,统计数据会被打上重要的标签(供应者、交易类型、成功与否),并放入数据库中以备制表和分析。

从 MEV-Inspect 获得的初步分析显示了下列情形:

  • 所分析的 44.3 万个区块中,至少有 1 万个区块浪费在了无效率的 MEV 抽取过程中
  • 平均而言,机器人(bot)在每个区块通过套利和清算至少抽取了 0.34 ETH 的 MEV
  • 机器人获得的 MEV 中至少有 18.7% 都变成了 gas fee 交给了矿工,这部分手续分占所有交易手续费的 3.7%

1

为什么要开发 MEV-Inspect?

没有 MEV-Inspect 这样的工作来帮助我们更好地理解 MEV,以太坊的用户就更难看懂 MEV 了。随着越来越多在安全上至关重要的基础设施迁移到链下,以及链上状态和数据规模的增长,普通人越来越难以获得密码学货币的初始愿景之一:透明性。为用户维护一个透明的仪表盘,是我们得以客观评价 MEV 现状和检验 Flashbots 活动所造成影响的最佳方法。因此,我们承诺会一直维护这样的仪表盘,只要资金和我们组织的资源允许。

增加覆盖面

通过 MEV-Inspect 来理解链上的 MEV 活动也着实不易。它需要尽最大限度的努力来分析多种多样机器人的行为,并开发出启发式的方法来分类机器人对智能合约的使用。这些分类可能永远不能尽善尽美,但我们的目标是提供有用的评估,并跟踪指标值的演变。MEV-Inspect 的模块化架构,正是为允许社区参与而设计的,有了社区的贡献,我们就能不断提高工具的覆盖面和精确度。参见 MEV-Inspect 的 Github 仓库

MEV-Geth:概念验证

我们已经为免许可的 MEV 抽取方法设计并实现了一个概念验证项目,叫做 “MEV-Geth”。总的来说,它是一套用于沟通交易排序偏好的区块空间暗标(sealed-bid)拍卖机制。虽然我们的概念验证项目在信任模型上是不完备的(incomplete trust guarantees),但我们相信它是对现状的重大改善。采用 MEV-Geth 应能极大地缓解由抢跑(frontrunning)和尾随(backrunning)机器人所带来的网络拥堵和链拥堵。

保证 PGA 不透明交易池 MEV-Geth
免准入性 ×
效率 × ×
上链前隐私性 ×
竞价失败交易隐私性 × ×
完全隐私性 × × ×
终局性 × × ×

为什么要开发 MEV-Geth?

我们认为,如果不采用中立、公开、开源的基础设施是实现免准入的 MEV 抽取,MEV 就有可能成为一个内部人的过家家。作为一个组织,我们承诺会公平、道德、政治中立的 MEV 抽取方法提供参考实现。我们也希望能通过这样做来防止以太坊被基于信任的暗池或者专门的通道侵蚀,这些都是安全上的薄弱点。我们推出 MEV-Geth 有双重目标,一方面希望为 MEV 的抽取创建一个能保护以太坊特性的生态系统,另一方面,希望能围绕我们的研究和开发路线图,与社区展开对话。

设计目标

  • 免准入:没有能够审查交易的中介
  • 高效:MEV 的抽取过程不会导致不必要的网络拥堵和链拥堵
  • 上链前隐私性:即交易只有到打包进区块的一刻才会变成众人皆知。注意,这种隐私性并不能排除例如 交易聚合者/网关/矿工 这些能优先知情的参与者。
  • 竞价失败交易隐私性:意味着竞价失败的交易永远不会被曝光(也永远不会上链)。这与 “效率” 属性紧密相关。
  • 完全隐私性:没有任何人能在交易上链前知情,包括交易聚合者/网关/矿工。
  • 终局性:一旦交易打包上链,MEV 的抽取就不可逆转。用于防范 time-bandit 链重组攻击。

MEV-Geth 的概念验证基于一个事实:搜寻人(searcher)可以拒绝来自特定矿工的报价,以此遏制恶意的行为(例如窃取盈利策略)。我们预计完全的隐私性需要一些隐私计算解决方案,例如 SGX、ZKP 和 MPC,来保证交易的内容在上链前对矿工是保密的。Flashbots 组织的一个核心目标是激励和生产这个方向的研究。

MEV-Geth 无法提供任何意义上的终局性保证。我们认为,这个问题的解决方案需要通过链状态本身的隐私性来实现交易执行后的隐私性,或者是回滚在经济上更不可行。设计具备强健终局性的系统是 MEV-Geth 研究的第二大目标。

MEV-Geth 如何工作?

MEV-Geth 引入了一些新概念:“搜寻人”、“交易包” 以及 “区块模板”。本质上,MEV-Geth 是为矿工提供了将发现和排序交易的任务外包给第三方(也就是 “搜寻人”)的办法。这些搜寻人会相互竞争,争相发现利润最大化的交易排序,并使用一种标准化的模板叫做 “交易包” 来竞价,让自己的交易包被打包进下一个区块。这些交易包会在矿工主持的暗标拍卖中估价,产生一个 “区块模板”,模板中就包含了挖出区块所需的交易排序信息

2

MEV-Geth 兼容所有正式的以太坊客户端。Flashbots 的核心开发者正为 go-ethereum 客户端维护一个参考实现

作为一个搜寻人,如何使用

搜寻人的工作是监控以太坊的状态和交易池以发现 MEV 的机会,然后生产交易包来抽取这些 MEV。任何人都能成为搜寻人。实际上,有所抽取并不是生产交易包的必要条件,但我们预计,最有价值的交易包将会抽取一些。一个 MEV-Geth 交易包就是一条标准化的信息,由一个有效交易的数组、一个区块高度和一个可选的时间戳范围(定义该交易包的有效时间)组成。

{
    "signedTransactions": ['...'], // RLP encoded signed transaction array
    "blocknumber": "0x386526", // hex string
    "minTimestamp": 12345, // optional uint64
    "maxTimestamp": 12345 // optional uint64
}

signedTransactions 可以是任意有效的以太坊交易。注意,必须按正确的顺序放置交易的 nonce。

blocknumber 定义了该交易包预计要上链的块高。交易包只会在合适的高度处被估价,如果没被选中就会立即被抛弃。

minTimestampmaxTimestamp 是两个可选条件,用于进一步地限定交易包的有效时间范围。

MEV-Geth 矿工会为自己所用的每一单位 gas 选出最有利可图的交易包,并将该交易包放在给定区块高度的区块模板的交易列表的开头。矿工根据下列公式来确定一个交易包的价值。注意,block.coinbase 的余额变化量即表示通过一个智能合约直接转移 ETH 的数额。
$$
\frac {\Delta balance(block.coinbase) + \sum_{tx=0}^n gasPrice_{tx} * gasUsed_{tx}} {\sum_{tx=0}^n gasUsed_{tx}}
$$
在提交交易包的时候,搜寻人可以使用 eth_sendBundle 方法,直接把交易包发给矿工。因为 MEV-Geth 要求搜寻人和矿工的直接通信,搜寻人需要可以配置一个目标矿工的列表。

作为矿工,如何使用

矿工只需运行 MEV-Geth 来挖 MEV 区块就行,或者也可以实现自己的符合规范的分叉版本。

为从搜寻人处接收交易包,矿工需要发布一个公开的 https 端口,来暴露自己的 eth_senBundle RPC 接口

MEV-Geth 由 Flashbots 核心开发者团队维护,源代码可在这里找到

超越概念验证

MEV-Geth 只是我们路上的第一个里程碑。我们希望能与社区探讨现在就采用 MEV-Geth 的优点。我们的初步研究表明,通过消除抢跑交易和尾随交易,能使区块链拥堵缓解至少 2.4%,并显著提高挖矿的收益。另外,我们相信,对 MEV 生存危机的可持续解决方案,需要完全隐私和终局性,这是我们的概念验证项目不具备的。我们希望 MEV-Geth 走向完善版本的道路上能得到社区的反馈。

Flashbots:我们的组织

Flashbots 起源于 MEV Pi-rate Ship,一个中立、对链无偏见的跨学科研究团体,支持 MEV 相关的理论和经验研究。

研究和开发是紧密结合的两大引擎,推动 Flashbots 阶段式发展:

  • 我们的研究工作会长期保持。我们会用研究来确定和升级我们的路线图,界定组织发展的各阶段和相关的里程碑;
  • 开发工作则以一个个里程碑为目标。我们会组织以产品为中心的团队,一边提供关键的基础设施和生态工具,一边收集数据并制作其它能反哺研究的工具。

我们的研究需要开放、透明和不断迭代的集体创造,要从学术研究和应用研究中吸取灵感,也会以以太坊升级提议(EIP)流程为模板。研究可以得到 MEV 研究者项目的经济支持。

公开承诺

作为一个开放的研究组织,我们承诺,从今往后,我们会:

  • 用我们的创造来保护以太坊的核心价值:开放性、免准入性、去中心化,迎击由 MEV 导致的危机;
  • 开源我们的研究和 Flashbots 核心基础设施的代码,让社区的所有人都能参与和从中受益;
  • 通过考虑用户、矿工、开发者、节点运营者、公共基础设施运营者及开发者、合约/应用 开发者,还有生态系统研究者的需要,在整个生态的关键参与者之间建立可持续的联合;
  • 为 MEV 领域的开放性伦理研究问题作贡献,并且 100% 交付公共领域。

研究目标

我们的大目标 —— 化解 MEV 危机 —— 可以分解成三个部分:揭秘,民主化和分配。对每一个部分,我们都列出了我们尝试回答的问题:

揭秘黑暗森林

  • 如何能客观地度量由 MEV 抽取流程带来的负外部性,以及 Flashbots 的技术带来的影响?
  • 如何量化用户因为 MEV 抽取方法而受到的伤害,并为开发者提供工具来减少应用的受波及面?
  • 如何为 MEV 领域引入更多的透明性,让社区能为 MEV 的提取制定社会规范?

民主化抽取过程

  • 如何能避免导致权力集中的市场机制?
  • 如何能使 MEV 抽取过程既高效、又没有准入门槛?
  • 如何能将 MEV 机会平等地向所有人开放?

利益分配

  • 如何才能在矿工、交易者、DeFi 开发者,等等,之间建立可持续的激励相容模式?
  • 如何能将部分利润导流到公共品生产(比如以太坊客户端开发)中,形成良性循环?
  • 如何能将 MEV 抽取的负外部性最小化、正外部性最大化?

研究路线图 —— Phase I

我们将研究路线图拆分成了不同的阶段,使后续研究建立在前面的成功和结论之上。Phase I 包含两项研究:

论文 1:Flashbots 架构

摘要:描述我们正在开发的基础设施的架构及设计权衡

  • 搜寻人与矿工沟通交易排序偏好时,什么样的拍卖机制才是 “好的” 机制呢?
  • 这样 “好的” 机制有无正式的数学定义?如何利用已有的拍卖理论文献来创造交易池拍卖理论?
  • 这些机制在 PoW/PoS/无领袖算法,以及有交易排序拍卖的 rollup 合约中,表现会不会有所不同?

论文 2:Flashbots 伦理学

摘要:讨论 MEV 和我们所开发的基础设施相关的伦理学问题

  • 我们是否应该开发一种 “好的” 拍卖机制,用于沟通交易排序偏好?
  • 如何最小化争抢优先的贿赂激励措施对共识和用户的伤害?
  • 是否应该允许系统存在 MEV?是否应该限制 MEV?需要什么样的社会规范?
  • 在 MEV 抽取中,应该允许何种程度的透明度?
  • MEV 在司法上如何定性?应该形成什么样的行业自律?

征求反馈和贡献

  • 给 MEV-Research 贡献

我们欢迎你参看我们的 MEV-Research Github 库,了解 MEV Fellowship 项目。可通过提出 issue 开始贡献,以及/或者 撰写一份 Flashbots 研究提案(FRP),或者在 MEV-Research discord 频道加入我们的讨论。

  • 试用我们的概念验证

如果你是矿工或者矿池,欢迎你审阅我们的代码并试用 MEV-Geth。如果你是一个 DeFi 交易员,运行着机器人,也欢迎你来测试 Flashbots 并尝试充当搜寻人。加入我们的 Flashbots discord 频道,或者用 info@flashbots.net 联系我们。

  • 订阅 MEV Ship 日历

你可以通过订阅 MEV Ship Calendar 来获得我们的最新更新和事件:我们大约每个月会有一次社区例会,叫做 “MEV Ship Treasure Map Roast”;大约每两周会有一次核心开发者会议;每周会举办一次研讨会,以及即将推出的非正式会议:MEV.wtf

Flashbots 现在由 Scott Bigelow、Phil Daian、Stephane Gosselin、Alex Obadia、and Tina Zhen 主理。感谢 MEV Pi-Rate Ship 成员和 Paradigm 的支持,我们才能得以存在。

衷心感谢 Andrei Anisimov、Ivan Bogatyy、Vaibhav Chellani、Brock Elmore、Georgios Konstantopoulos、Jason Paryani、Alejo Salles、samczsun、and Austin Williams 对 MEV-Geth 和 MEV-Inspect 的贡献, 以及 Sunny Aggarwal、Surya Bakshi、Phillippe Castonguay、Tarun Chitra、Dan Elitzer、Lev Livnev、Charlie Noyes、Dev Ojha、Dan Robinson、Mark Tyneway、and Micah Zoltu 对 MEV-Research 的反馈。

(完)


原文链接: https://ethresear.ch/t/flashbots-frontrunning-the-mev-crisis/8251
作者: thegostep
翻译: 阿剑


你可能还会喜欢:

如果抢跑交易成为一项服务

实行交易排序权拍卖(MEVA)会有什么好处吗?

时髦的密码学工具能帮助 DeFi 吗?

 
0 人喜欢