NFT:重走 MEV 叙事史:从 5 年前说起

作者:JamesPrestwich

编译:DeFi之道

5年前,我写了一篇文章《矿工不是你的朋友?》,将MEV这个概念带到了以太坊世界。当时,我们并没有将这个概念称为MEV。一年多之后,PhilDaian在和他人合著的论文《FlashBoys2.0?》中将这个概念命名为“矿工可提取价值”。当时我们计划发表一篇后续文章,介绍在EtherDelta和其他主网DEX上生成抢先交易的python代码片段。后来由于我参与了HTLCs和其他跨链工具的建设,后续的文章被推迟了,之后又被推迟了,然后就被永久搁置。

5年后的今天,坐下来写关于MEV的文章,有点不真实。感觉和上次一模一样。我们又一次处于一个漫长的熊市的开端,处于另一个投机狂热的废墟中。熟悉的宿醉感又悄然而至。就像上次一样,我充满了信念,相信下一次会有所不同。到了下一次,我们将从我们的错误中吸取教训,下一次我们将建立更好的东西。也许吧。

作者寄语:

这不是一篇MEV入门手册。很多人都写过这样的文章,而且大多数都比我写的好。看这篇文章的前提在于你对MEV很熟悉。如果你不熟悉,现在是个好时机,可以去读几篇文章?,然后再回来。

这是一部关于MEV的叙述性历史。它不是没有偏见的。它是蜿蜒曲折的,有点自娱自乐。在这个故事中,我是一个配角,但这是我的博客,所以我可以从我的角度来讲述它。

MEV是协议设计的基础。每个认真的从业者都了解MEV,为MEV制定计划,并对MEV有强烈的看法。从我们现在的位置来看,很容易忘记我们对MEV的理解是全新的。其根源与crypto一样古老,但术语、框架和工具仍在发明之中。过去两年彻底改变了我们对MEV的理解。人们很容易忘记MEV是从无到有的。

MEV诞生之前

MEV的起源可以追溯到2010年代早期比特币关于“费用狙击”的研究。费用狙击后来被推广到EVM状态模型,并形式化为FlashBoys2.0论文中描述的“时间强盗”攻击。比特币在发布时实施了第一个共识层MEV缓解措施,并在2014年12月通过为节点钱包的交易添加1个区块的时间锁实现了第一个客户端层的MEV防御。

安全公司:AurumNodePool合约遭受漏洞攻击简析:金色财经报道,据区块链安全审计公司Beosin EagleEye监测显示,2022年11月23日,AurumNodePool合约遭受漏洞攻击。

Beosin分析发现由于漏洞合约的changeRewardPerNode函数未进行验证,导致攻击者可以调用该函数进行任意值设置。

攻击者首先调用changeRewardPerNode函数将每日奖励值设置成一个极大数,接下来调用claimNodeReward函数提取节点奖励,而节点奖励的计算取决于攻击者设置的rewardPerDay值,导致计算的节点奖励非常高。而在这一笔交易之前,攻击者便通过一笔交易(0xb3bc6ca257387eae1cea3b997eb489c1a9c208d09ec4d117198029277468e25d)向合约存入了1000AUR,创建了攻击者的节点记录,从而使得攻击者能够提取出该节点奖励。最终攻击者通过该漏洞获得约50个BNB($14,538.04)。[2022/11/23 8:01:04]

费用狙击缓解措施图

对状态的争用和已提交但未指定的状态转换会产生MEV。因为比特币基本上没有可供竞争的共享状态,并且比特币状态转换是严格指定的,所以MEV通常仅限于费用狙击和其他类型的双花尝试。也就是说,比特币矿工在不直接攻击共识机制的情况下,几乎没有什么MEV可以提取。这使得比特币成为MEV研究的一个独特的无趣链,我们不会花太多时间在比特币或它的垃圾表亲身上。

MEV的诞生

像任何良好的关系一样,MEV需要两件事。1)争夺和2)提交。首先,它需要人们争夺一些公共状态的控制权。MEV需要人们想要的状态,并且愿意花钱去获得。其次,它需要提交。MEV需要一段时间来提交更新有争议的理想状态的调用,但尚未执行。当一个用户签署并广播一笔交易时,他们就会提交对该状态的控制进行竞争。提交和执行之间的滞后允许MEV在边缘潜入,并在事前和事后接触该状态。它拉动了用户的意图,将他们的提交推向最坏的可接受的结果,并允许提取者将差价收入囊中。

Beosin:sDAO项目遭受攻击事件简析:金色财经报道,根据区块链安全审计公司Beosin旗下Beosin?EagleEye 安全风险监控、预警与阻断平台监测显示,BNB链上的sDAO项目遭受漏洞攻击,Beosin分析发现由于sDAO合约的业务逻辑错误导致,getReward函数是根据合约拥有的LP代币和用户添加的LP代币作为参数来计算的,计算的奖励与用户添加LP代币数量正相关,与合约拥有总LP代币数量负相关,但合约提供了一个withdrawTeam的方法,可以将合约拥有的BNB以及指定代币全部发送给合约指定地址,该函数任何人都可调用。而本次攻击者向其中添加了LP代币之后,调用withdrawTeam函数将LP代币全部发送给了指定地址,并立刻又向合约转了一个极小数量的LP代币,导致攻击者在随后调用getReward获取奖励的时候,使用的合约拥有总LP代币数量是一个极小的值,使得奖励异常放大。最终攻击者通过该漏洞获得的奖励兑换为13662枚BUSD离场。Beosin Trace追踪发现被盗金额仍在攻击者账户,将持续关注资金走向。[2022/11/21 7:53:09]

DEX的MEV滴水不漏。他们有一个完美的争夺配方:每个人都想在市场上交易,每笔交易都可以与其他交易竞争。像2016年的EtherDelta这样的自匹配订单簿DEX设计允许矿工在交易中获得先机,但没有人真正利用它做任何事情。一些链上自动匹配的CLOB被设计出来,这在当时看来是很疯狂的,现在回想起来感觉绝对是很奇怪的。虽然我们知道最终gas会花钱,但在2018年中期,一单位gas的价格大约是今天的1/400,是去年的1/10000。直到2020年,我们才会赢得对gas价格市场的直观理解。

2017年DAI的推出为DeFi引入了清算。清算引入了大量但不频繁的MEV。由于提取者的收益是未偿债务的一个百分比,异常CDPs在与清算相关的MEV中占了很大一部分。在过去的几年里,我们观察到预言机通过作弊来赢得他们自己协议的清算,以及通过极端gas拍卖来赢得高峰MEV。高峰MEV也可能是由黑客、NFT空投和其他特殊事件产生的。因为它不能被分割成小的数据包,所以高峰MEV对协议运行有很大的影响。协议设计必须考虑到不经常发生的、但可能是极其巨大的恶意激励。

Beosin:SheepFarm项目遭受攻击事件简析:金色财经报道,根据区块链安全审计公司Beosin旗下Beosin EagleEye 安全风险监控、预警与阻断平台监测显示,BNB链上的SheepFarm项目遭受漏洞攻击,Beosin分析发现由于SheepFarm合约的register函数可以多次调用,导致攻击者0x2131c67ed7b6aa01b7aa308c71991ef5baedd049多次利用register函数增大自身的gems,再利用upgradeVillage函数在消耗gems的同时累加yield属性,最后调用sellVillage方法把yield转换为money后再提款。本次攻击导致项目损失了约262个BNB,约7.2万美元。Beosin Trace追踪发现被盗金额仍在攻击者账户,将持续关注资金走向。[2022/11/16 13:10:39]

另一方面,DEX倾向于随着外部市场的变化而变化,从其市场的来回移动中产生"流动"MEV。流动MEV的特点是更频繁、更小的MEV数据包。AMM特别有趣,因为它们的用途与MEV密不可分。它们的存在是为了跟踪外部市场,它们通过向提取者赠送价值来实现这一目的,这些提取者将恒定函数推向"公平"定价。实际上,它们是通过提取MEV的"套利者"来保持高效。2018年中后期的第一波AMM开始在他们的订单簿上建立流动,创造了相应的MEV的增加,并引起了人们对这个问题的极大关注。当然,早在2018年,Uniswap的资金池是以六位数计算的,而且资产少得多。

多少有点复古了

那时的MEV研究几乎不存在,当然,我们甚至不叫它MEV。我们大多称它为抢先交易——借用TradFi的术语,"DEX抢先交易"或"清算抢先交易"。我们知道它不仅仅适用于插入订单的情况。我们在理论上了解交易回流和三明治攻击,我们知道,如果提取者有利可图,交易可以被延迟或导致撤回。当时我们只有很少的形式主义,而且根本没有实践。

古早的DeFi可能已经建立了创造MEV的必要环境。然而,没有人真正去理会。这种状态还不够理想,所以回报还不存在。因为没有人有这方面的实践经验,我们甚至没有一个很好的想法,当它到来时,价值提取会是什么样子。

慢雾:Inverse Finance遭遇闪电贷攻击简析:据慢雾安全团队链上情报,Inverse Finance遭遇闪电贷攻击,损失53.2445WBTC和99,976.29USDT。慢雾安全团队以简讯的形式将攻击原理分享如下:

1.攻击者先从AAVE闪电贷借出27,000WBTC,然后存225WBTC到CurveUSDT-WETH-WBTC的池子获得5,375.5个crv3crypto和4,906.7yvCurve-3Crypto,随后攻击者把获得的2个凭证存入Inverse Finance获得245,337.73个存款凭证anYvCrv3Crypto。

2.接下来攻击者在CurveUSDT-WETH-WBTC的池子进行了一次swap,用26,775个WBTC兑换出了75,403,376.18USDT,由于anYvCrv3Crypto的存款凭证使用的价格计算合约除了采用Chainlink的喂价之外还会根据CurveUSDT-WETH-WBTC的池子的WBTC,WETH,USDT的实时余额变化进行计算所以在攻击者进行swap之后anYvCrv3Crypto的价格被拉高从而导致攻击者可以从合约中借出超额的10,133,949.1个DOLA。

3.借贷完DOLA之后攻击者在把第二步获取的75,403,376.18USDT再次swap成26,626.4个WBTC,攻击者在把10,133,949.1DOLAswap成9,881,355个3crv,之后攻击者通过移除3crv的流动性获得10,099,976.2个USDT。

4.最后攻击者把去除流动性的10,000,000个USDTswap成451.0个WBT,归还闪电贷获利离场。

针对该事件,慢雾给出以下防范建议:本次攻击的原因主要在于使用了不安全的预言机来计算LP价格,慢雾安全团队建议可以参考Alpha Finance关于获取公平LP价格的方法。[2022/6/16 4:32:58]

Flashbots的到来

随着2019年4月《FlashBoys2.0》的发表,MEV研究开始流行起来。这篇论文非常出色。如果你有时间,可以去重读它。然后谷歌一下每个作者。这是协议和机制设计者的基础性论文。它将永远成为标准课程的一部分。如果没有Tina,我想它可能已经停在那里了。

慢雾:Avalanche链上Zabu Finance被黑简析:据慢雾区情报,9月12日,Avalanche上Zabu Finance项目遭受闪电贷攻击,慢雾安全团队进行分析后以简讯的形式分享给大家参考:

1.攻击者首先创建两个攻击合约,随后通过攻击合约1在Pangolin将WAVAX兑换成SPORE代币,并将获得的SPORE代币抵押至ZABUFarm合约中,为后续获取ZABU代币奖励做准备。

2.攻击者通过攻击合约2从Pangolin闪电贷借出SPORE代币,随后开始不断的使用SPORE代币在ZABUFarm合约中进行`抵押/提现`操作。由于SPORE代币在转账过程中需要收取一定的手续费(SPORE合约收取),而ZABUFarm合约实际接收到的SPORE代币数量是小于攻击者传入的抵押数量的。分析中我们注意到ZABUFarm合约在用户抵押时会直接记录用户传入的抵押数量,而不是记录合约实际收到的代币数量,但ZABUFarm合约在用户提现时允许用户全部提取用户抵押时合约记录的抵押数量。这就导致了攻击者在抵押时ZABUFarm合约实际接收到的SPORE代币数量小于攻击者在提现时ZABUFarm合约转出给攻击者的代币数量。

3.攻击者正是利用了ZABUFarm合约与SPORE代币兼容性问题导致的记账缺陷,从而不断通过`抵押/提现`操作将ZABUFarm合约中的SPORE资金消耗至一个极低的数值。而ZABUFarm合约的抵押奖励正是通过累积的区块奖励除合约中抵押的SPORE代币总量参与计算的,因此当ZABUFarm合约中的SPORE代币总量降低到一个极低的数值时无疑会计算出一个极大的奖励数值。

4.攻击者通过先前已在ZABUFarm中有进行抵押的攻击合约1获取了大量的ZABU代币奖励,随后便对ZABU代币进行了抛售。

此次攻击是由于ZabuFinance的抵押模型与SPORE代币不兼容导致的,此类问题导致的攻击已经发生的多起,慢雾安全团队建议:项目抵押模型在对接通缩型代币时应记录用户在转账前后合约实际的代币变化,而不是依赖于用户传入的抵押代币数量。[2021/9/12 23:19:21]

2018年初,Tina和我在某个VC的办公室相遇。我们是通过一个共同的朋友联系上的,我们的推介会时间正好是挨着的。我当时在推销Summa的HTLC变体,由于我们了解到需要两个在线方的跨链协议的局限性,这个变体最终被淘汰。Tina在推销一个关于在农场挤奶的区块链社交游戏。我们对挖矿衍生品有共同的兴趣,并对开发这类产品有一些想法。我们在那个熊市的每一次黑客松上都叙旧。她有一种天赋,可以选择一个超前的想法,并围绕这个想法组建团队。她的黑客松项目变成了CarboClan,在挖矿衍生品想法的基础上建立了honeylemon。

在2019年下半年,Tina开始组织活动。她在短短一周内就把defi.wtf组织起来,并与大阪DevCon一起举办。下一次会议,macro.wtf,仅在3周后就开始了。此后不久,PirateShips就诞生了。这个名字来自于2019年我们在EthDenver开的一个关于闪电贷和flashmints的玩笑。PirateShips是由Tina在旧金山、纽约等地举办的沙龙式聚会。你可以在这些聚会中找到一群不拘一格的研究员、工程师、运营、子和其他币圈参与者。有些聚会有驻场研究员,有些会有一个主题,有些只是在波多黎各和碰巧在那里的人呆上一周。这艘海盗船从2019年底开始在整个疫情期间运行,吸引了最顽强的游民。

很swag的defi.wtf

与FlashBoys2.0论文相比,Flashbots的存在要归功于海盗船,它诞生于一个永久的沙龙。这艘MEV的大船诞生于2020年年中,并自然地从面对面的形式扩展到一个线上的集体。其他Flashbots创始人和管理人员——Stephen、Phil、Alex——被拉进了这艘船。最终,这艘船开始走向正规化,更名为Flashbots,附上可爱的机器人emoji,并开始进入永生。

那一整年是一个漫长的突破时刻。FlashbotsResearch首次亮相,将MEV推向了以太坊的中心。DeFi夏季已经开始,但我们还不知道它是什么。mev-explore和mev-inspect的发布为链上可用的MEV提供了粗略的数字,而且突然间它就变得有形了,不再是一个理论。随着那年秋天FlashbotsAuction的宣布,很明显,MEV提取工具就在眼前。地面上有了钱,也有了捡钱的竞赛。

MEVShip为Flashbots提供了基础,并建立了合作研究和实验的文化,推动了该组织的发展。从这种文化中衍生出来的明确的使命,多年来一直定义着MEV的叙事。产品化的MEV提取是不可避免的,但Flashbots的文化和精神却不是。

专业化

这艘MEV的船和Flashbots周围的光环当然吸引了技术人才。FlashbotsAuction于2021年1月启动——距离项目上线仅3个月。时机再完美不过了。Mev-geth在以太坊面临历史上最大的增长开始时推出,并且MEV生成量相应大幅增加。

在FlashbotsAuction诞生之前,一些勇敢的搜索者通过将交易以特定的gas价格广播到交易池来提取MEV。这是不可靠和低效的。它要求搜索者查看交易池中的交易,在一个区块的范围内进行模拟、提取和广播。1559之前的费用语义和交易池的普遍不可靠性使这个过程变得复杂。假设区块是按照费用排序的,抢先交易将选择费用以尝试在目标之前立即执行。尖峰MEV交易只会支付惊人的gas价格。由于搜索者使用的是公共交易池,因此实时拍卖非常激烈。一团糟,但非常有趣。

早期的Flashbotslogo概念

FlashbotsAuction的相对简单性推动了它的采用,可以归结为一个单一的RPC端点,允许搜索者提交捆绑物。捆绑物应该完全按照指定的方式包含在区块中,一旦出现撤回将该导致捆绑物被放弃。这为专业化创造了一个整洁的接口。搜索者猎取MEV,捕获它,并确保它被固定在漂亮的捆绑中,并将其传递给矿工以纳入链中。FlashbotsAuction很快就定义了提取,以至于其他系统几乎没有任何意义。

FlashbotsAuction的后期扩展,正如我们在mev-boost中看到的那样,将"建造者"与"生产者"分开。我第一次听说提交者-建设者分离是2019年的EthBerlin。当时从事eth2工作的Will教了我很多关于无状态以太坊设计中状态见证生产和更新的设计。我不记得我们当时怎么称呼它了,但它被概念化为一个有额外责任的协议授权的专门节点。无状态以太坊死于新冠。MEVPBS——如mev-boost中的实例——生活在协议之外。一个基于市场的专业化,而不是由协议规定的专业化。

今天,我们有一个相对成熟的MEV供应链。搜索者在交易流中挖掘MEV,相互竞争尖峰和流量。搜索需要技巧和极度的专业化。他们是秘密的,因为他们需要保持对其他搜索者的优势。建设者接受来自搜索者的捆绑物,并将其建成区块。搜索者和建造者有一种共生的关系。建设者依靠搜索者提取,而搜索者则依靠建设者诚实地包含捆绑内容。

建设者从提交者那里购买将其区块纳入主链的权利。提交者拥有协议赋予的权利,可以将区块添加到链上,并选择支付最多MEV的建设者区块。用户创造MEV,搜索者提取它。搜索者支付给建设者;建设者支付给提交者。齿轮上了油,区块被组装起来,交易进入了链中。直到永远。

既然我们谈到了这个话题,那么就简单说一下。捆绑有一个意想不到的副作用:它们导致搜索者顺便补贴了提取目标的交易费用。当搜索者将用户交易纳入捆绑交易时,该用户交易会比其他情况下更早、更可靠地确认。搜索者提取的MEV在供应链上被部分支付给建造者和提交者。这有效地将部分提取的MEV转换为捆绑交易的交易费用。从本质上讲,提取的MEV向提交者支付了"影子费用"。一项交易的优先级首先由其MEV决定,其次是其协议费。

提取意外地破坏了EIP-1559。非捆绑式交易在基本费用的基础上使用gas小费。另一方面,捆绑式交易实际上仍然是一种第一价格拍卖,在基价上有统一的小费,而不是按gas。这就是说,现在有两个相互依存的费用市场。一个是MEV交易的影子市场,一个是其他的常规市场。MEV买到了优先权。我们在1559之前就预测到了这些影子收费市场。我们没有预料到的是使用MEV市场的轨道。因为提取在幕后运行,用户从影子市场中受益,甚至不会意识到它的存在。

从机制设计的角度来看,MEV驱动的PBS很可能不是"安全的"或"激励兼容的"。到目前为止,Flashbots的做法是依靠诚实的假设来填补激励机制的空白。然后他们将这些假设确立为市场规范行为。为什么建设者不把捆绑的东西拆开来,而是采取MEV?为什么建设者不包含撤回的捆绑?因为违反这些市场规范会导致搜索者停止使用中继。我们打,迭代的游戏将比游戏结束时抢夺捆绑的MEV更有利可图。我不确定从长远来看,它是否能撑起高峰MEV和垂直整合。

拍卖的激励不相容性可以被安全地暂时忽略。市场规范就足够了。机制设计向市场的压力低头。利润率压缩是今天MEV供应链唯一相关的问题。由于建议者拥有选择区块的独家权利,建设者必须在价格上竞争。他们被迫放弃越来越多的MEV份额给建议者,并从搜索者那里获取更多的份额来支付。由于提交者占据了大部分份额,MEV的利润率已经在崩溃了。

旧金山的海盗船沙龙地点

从根本上说,提交者提取的是租金。建设者和搜索者没有从其他人那里购买的选择权,也不能拒绝购买。提交者已被协议授予选择下一个区块的专有权利,并且可以在不受监督的情况下行使该权利。套用一位相当著名的家的话:“提交者得到了这个东西,而且是黄金。他们绝不会白白放弃的。”提交者被一个神秘的协议授予了一些非常有价值的东西。这不是道德或自然权利。它是由协议规则授予的,可以由人类更改。无论如何,提交者因延长这条链而获得报酬,然后建设者向提交者支付费用以以特定方式延长它。能得到两次报酬真是太好了。

在MEV提取之前,排序是一个敷衍的工作;通胀的区块补贴是主要的激励因素。因此,权利被免费分配。这就是为什么提交者不为此权利支付任何费用。它曾经几乎一文不值。现在,排序权包含了海量MEV的权利,这种不对称的权力关系扭曲了MEV供应链。该领域的研究正在进行中。我们似乎很可能会看到有协议内机制来解决这个问题。

Sunny提倡对等待中的交易进行门限加密。加密交易阻止提交者在交易被排序之前了解交易的MEV值。就个人而言,我不相信MEV净化。我对在分叉选择规则中包含MEV的设计感兴趣,将排序权出售给最高出价者,并保留大部分提取的价值用于协议内重新分配。

MEV的头5年

那么,这会给我们留下什么?五年前,MEV还只是一种好奇心。这是一次研究员晚餐谈话,在谈完所有业务之后,酒也差不多见底的时候发现的。MEV等待着DeFi活动和实践经验的正确结合。就在我们进入2021年牛市时,Flashbots抓住了MEV研究的注意力,并一路上扬。

现在,我们举行MEV专题讨论会。我们把搜索者和开发者聚集在一起,讨论MEV协议设计。市场结构已经确定为3个角色的配置,并开始测试其极限。虽然人们仍然尊重海盗船的理想,但以太坊上的提取已经专业化了。展望未来,MEV将不会被精神或研究所定义。MEV的故事现在是属于利润率的。

现在,我们举行MEV专题讨论会。我们把搜索者和开发者聚集在一起,讨论MEV协议设计。市场结构已经确定为3个角色的配置,并开始测试其极限。虽然人们仍然尊重海盗船的理想,但以太坊上的提取已经专业化了。展望未来,MEV将不会被精神或研究所定义。MEV的故事现在是属于利润率的。

纵观其历史,人们称MEV为危险或邪恶的。盗窃这个词已经被戏谑地说过好几次了。我认为做出价值判断是不合理的。MEV是一个客观存在的东西。再多的哲理、研究或复杂设计都不会改变这一点。这就是为什么我很高兴看到一个有竞争力的MEV提取供应链。专业化的MEV是可预测的MEV;可预测的MEV是有用的MEV。我们没有聪明到可以提前规划市场,所以让我们在发现它有用的时候就利用好它。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

DAICRY:金色早报 | Binance再次提供BTC储备证明

头条 ▌Binance再次提供BTC储备证明金色财经报道,加密货币交易所Binance宣布了一项新计划,该计划将为所有当前和未来的加密货币投资者提供其现有比特币和以太坊储备的证明.

[0:0ms0-3:470ms