在开始阅读本文之前,我个人强烈建议先读一下我们有关矿工可提取价值(MEV )的上一篇文章 (链闻发表的 中文版), 宣告 Flashbots 成立的文章 以及这一 播客,了解 Flashbots (Flashbots 是一个旨在捍卫 MEV 生态系统透明性的组织)生态系统及 MEV。文章讨论了有关 Flashbots、MEV 提取以及它们与以太坊共识之间相互作用的一些更复杂细节。

2021 年 6 月 29 日,在 Flashbots 的 Discord 讨论区冒出了一个很有意思的想法:

Spooky!

使用 Flashbots 来激励审查有点可怕。这也与 Flashbots 旨在降低 MEV 所造成的负面外部性的使命背道而驰。尽管如此,正如另一位社区成员很快指出的那样,这种审查在经济上是不可行的,因为它需要比想要包含相同交易的 MEV 搜索者或用户支付更多的费用:

@CuriousDefiUser,干得漂亮!

躲过了危机!

嗯,不完全是。虽然前面 Austin Williams 最初的想法不一定会引起恐慌,但几天后另一位社区成员 Nathan Worsley 提出的后续想法引发了一个更令人不安的问题。

与其在未来审查交易,不如去激励审查 / 取代过去的交易

经过一阵讨论后,这个原始想法很快进化成:

实施受激励的区块重组,将意味着在 Flashbots 的 MEV-Geth 之上构建必要的基础设施

这些帖子的背后是一个故事,涉及 Twitter 上的愤怒声讨、出色的独立黑客,以及为什么社会共识与加密算法共识一样重要的一些最好的例子。

让我们深入了解一下。

GHOST 协议和坐上时光穿梭机的「叔叔」

在目前的状态下,以太坊是一个使用中本聪所提出的工作量证明(PoW)共识机制的系统;这意味着保护网络的矿工之间的网络共识依赖于原始的哈希率。这也意味着交易只有概率最终性(probabilistic finality); 一个交易已被包含进一个区块中的时间越长,该交易被推翻的可能性就越小。 因此,通常建议 PoW 区块链上的用户在交易「完成」之前耐心等待。在以太坊上,交易假设在 7 个区块后最终完成,通常是安全的想法。

在 PoW 系统中,两个矿工可能同时挖出有效区块,并尝试将这些区块广播到网络。最终发生的事情是网络留下了两个有效区块,但在下一次挖矿竞赛开始之前,只能将一个添加到主链上。这意味其中一个区块必须变得「过时」,或者说被丢弃。这一解决方案不是很好,原因有两个。首先,生产出过时区块的矿工白白浪费了他们的资源!其次,这使得网络容易出现中心化风险,因为矿工急于确保他们有足够的哈希率,以避免生产过时的区块。有关这方面的更多信息,请点击 这里 了解更多。

在比特币网络上,10 分钟的区块生产时间和不到一分钟的传播时间使得过时区块产生的概率相当低。然而,在以太坊上,区块生产时间要短得多——大约 12 到 13 秒——产生过时区块的可能性要高得多。这使得上述资源浪费和中心化的问题更加突出。以太坊通过使用 GHOST (Greedy Heaviest-Observed Sub-Tree,又称幽灵协议)协议的改进版本来解决这个问题。GHOST 协议是在 2013 年设计而成,旨在解决快速生产区块的区块链中的过时区块这一精确问题,其基本前提很简单:矿工接受的「最长」链是具有最高累积 PoW 挖矿难度的链,其中包括与当前区块同宗同祖的过时区块。这样的区块被称为「叔块」。以太坊采用了 GHOST 协议的一个变体,使用相同的筛选原则,选择难度最长的链,但在难度计算中不包括叔块。它会分配一些区块奖励给叔块,让这些区块中的交易可以访问,但其中不包括主链中的那些交易。采用新的「最长」链、并忽略过时区块的过程称为链重组。

说了半天,这与 MEV 有什么关系?

存在两种主要方式,可以激励网络用户去利用叔块和重组引发的情况来牟利。第一个已经在实践中发生,且威胁性要小得多,它被称为「叔叔强盗」,由 Flashbots 独家启用。截至 2021 年 7 月中旬,约 86% 的以太坊哈希值采用 Flashbots 的 MEV-Geth 客户端; 但是,Flashbots 捆绑包仍然有可能被收纳进叔块中,从而为「叔叔强盗」创造机会。这最初是在 Robert Miller 的一个 连环推 中进行了详细介绍。 由于包含在叔块中的交易不会改变以太坊状态,但对其他人仍然可见并且是有效交易,精明的 MEV 搜索者可以查看进入叔块的 Flashbots 捆绑包,并发布一个新的捆绑包,其中包含原始捆绑包中的一些交易,还包括他们自己的一些交易,来此来捕捉主链上的套利机会。

但是「叔叔强盗」本身不会造成对协议的威胁; 归根结底,它们是捆绑包有一定概率被包含进叔块中的结果,而其他人则抓住这一边缘化的机会来牟利。不过,叔叔强盗的下流大表哥——时间强盗,则更让人担忧。正如有关 MEV 的开创性 研究论文 中详细阐述的那样,时间强盗是一种理论攻击,当来自 MEV 的奖励开始超过区块奖励时就会发生。时间强盗攻击的前提是,可以获取大量以太坊哈希率的矿工可以通过重挖以前的区块、捕获这些区块中的所有 MEV,并对以太坊链进行重组等一系列操作,使以太坊的时钟倒转。最简单的方法是租下以太坊 51% 的哈希率;通过这些操作,攻击者将回头俘获一定数量的区块,获取现在和过去这些区块中的所有 MEV 利润,利用这笔利润来填补攻击成本。

MEV 利润大致所占的交易费用百分比。 来源: Flashbots

如上图所示,MEV 利润在矿工经济回报中的占比越来越大,时间强盗攻击和重组的威胁随之越来越大。这也意味着理论上应该可以通过贿赂矿工来进行链重组。策略是:等待其他用户提交有利可图的捆绑包、贿赂矿工进行链重组,然后进行「叔叔强盗」或时间强盗攻击来牟利。我们本文要讨论的这场大戏就此揭幕。

混沌魔术师与核重组

在 Nathan 最初提出改进版 MEV-Geth (可以激励叔叔 / 时间强盗式的链重组)的想法,MEV 搜索者立即着手开发该软件,而加密货币领域的 Twitter 博主则陷入了激烈的辩论。这个 Meme 准确地总结了社区的主要情绪:

高人气 Twitter 帐户 MEV Intern 对此类软件问世却没有工具来防御它表示深深的担忧;毕竟,尽管这种受激励的链重组技术上是在共识范围内被允许的,但它们也确实破坏了协议的稳定性,且通过创建矿工行为安全假设受到挑战的场景,对以太坊进行了过多的压力测试。

不管怎么说,潘多拉魔盒已经打开。

不久之后,两位备受瞩目的 MEV 战略人士和研究人员—— Edgar Arout 和 0xbunnygirl——就「重组请求」提出了自己的个人版本。

Edgar 的存储库是对 Flashbots 创建的 MEV-Geth 客户端的一个分叉。该存储库已被私有化,但代码库仍在活跃状态,这将使 MEV 搜索者能够请求重组过去一定数量的区块,省略某些交易并添加新的交易,包括向矿工付款。

0xbunnygirl 随之受启发在以太坊上 启动了一个智能合约,将为此提供非常简单的支付渠道。要求链重组的合约使用户能够附加一个请求,其中包含对矿工的相关奖励,以及他们想要重组回的区块。然后,矿工将执行一个时间强盗攻击,其中包括使其能够在链重组中索取奖励的交易以及所需省略 / 包括的交易,以及矿工会因不诚实行为而遭到资产削减的约定。当然,这个合约同样是一个概念验证; 在回滚状态时,矿工可以自行决定不诚实,并审查资产削减交易,合约中没有编写在实际合同中包括一项特定交易或审查另一项交易的代码。然后呢…

什么都没发生(矿工不会受到任何惩罚)。

即使没有功能性工具,人们对这类开发工作也不满意。创建重组激励系统的工作,让该领域内很多知名研究人员、开发者和行业领袖出离愤怒。Edgar 最终会 搁置重组协议。Flashbots 发表了一份 官方声明,谴责链重组是负和游戏,强调它们会导致博弈论不稳定、系统性风险和矿工长期收入可能减少的情况。回应像 Ethermine 这样的矿池可能自行提出系统重组请求的断言,Flashbots 回应如下: