主页 > imtoken百科 > 深入解读以太坊 MEV——来自 Ask Me Community 的文章

深入解读以太坊 MEV——来自 Ask Me Community 的文章

imtoken百科 2024-01-26 05:15:40

介绍MEV,绕不开Front-running(直译为冲走),也就是所谓的优先Gas Auctions(PGAs),其实是同一个意思。

我们都知道,在常规意义上,在以太坊上提交交易是一个看似有序的过程,现在重新审视一下这个过程:

然而,这种情况并非如此。 与看似有序的交易打包流程相比,以太坊更像是一片黑暗的森林

由于每个以太坊全节点维护一个内存池,所以上面的解包交易清晰可见。 有这样一群人,他们会日以继夜地检查mempool中未打包的交易,通过一定的技术手段判断执行这些交易是否有利可图,并使用更高的gasPrice抢先执行交易。 举个最直接的例子,当这些人发现一个鲸鱼地址在Uniswap上提交了一笔购买大量某种数字货币的交易时,他们就会使用更高的gasPrice来发出购买交易。 一般情况下,矿工会优先打包价格较高的交易,将领跑者的交易插入到鲸鱼的交易前面,这样购买鲸鱼地址就会为领跑者“抬轿子”,并通过这种方式获得利润。

我们参考了其他人之前所做的实验,通过部署蜜罐合约来研究抢先行为。 如下部署蜜罐合约,用户必须调用合约中的take方法并正确提交secret才能拿到合约中的ETH:

以太坊轻钱包_以太坊钱包注册_以太坊钱包怎么交易

当一笔交易发起时,交易会先提交到内存池中,领先者会不断读取内存池中的交易。 并模拟这些交易的执行。 当发现有利可图时,比如执行后,发现可以获得一定数量的ETH或者ERC-20代币,就会抢占交易。

可以看到在发起第一笔正常交易时指定了33gwei的gasPrice:

以太坊轻钱包_以太坊钱包怎么交易_以太坊钱包注册

交易调用了蜜罐合约的take方法,但是交易执行后没有收到ETH奖励。 在查看合约的事件后,我们发现不止一个与蜜罐合约进行了交互,并且是在初始交易之后立即发生的:

以太坊轻钱包_以太坊钱包怎么交易_以太坊钱包注册

除0xe0c3dc交易外,其他交易均由领跑者发起,只有一笔交易成功提取了合约的奖励ETH。

可以看出,最终gasPrice最高的交易成功提取了蜜罐合约的奖励,哪怕只比其他的高0.000000002 gwei:

以太坊钱包注册_以太坊轻钱包_以太坊钱包怎么交易

那么问题来了,蜜罐合约一直没有发布源代码,这些先行者是如何在这么短的时间内决定这笔交易值得更换的呢? 或者如何判断交易是否有价值? 这就涉及到交易模拟执行技术。

抢跑机器人如何判断内存池中的一笔交易是否盈利? 这里需要介绍一下交易模拟技术。

以太坊钱包注册_以太坊轻钱包_以太坊钱包怎么交易

交易模拟执行本质上是一个给定的交易输入和一个给定的需要模拟的状态树。 EVM通过这两个数据,模拟执行一次,输出trace结果。

实现起来其实并不难。 如果我们维护一个archive节点或者trace节点,那么在RPC中就会有一个trace_call端点。 通过tace_call,我们可以实现事务的模拟执行,可以看到事务内部的事务以及事务中的状态变化。

比如我们需要模拟执行一笔交易:0x5169bccd1893130995ebc25fa374366284b723ded44f379d0977af3f144d1a8f,并且需要在历史状态下执行,那么我们就需要先维护一个校验存档节点(存档节点会保存所有的历史状态),然后执行下面的操作命令:

以太坊钱包怎么交易_以太坊轻钱包_以太坊钱包注册

市面上什至有一些商业产品提供了模拟执行功能,比如blocknative[2]、tenderly等,其实质是在trace_call的基础上再包裹一层前端,以获得更好的用户体验:

以太坊钱包怎么交易_以太坊轻钱包_以太坊钱包注册

领跑者将根据交易模拟执行情况,按照以下步骤决定是否抢跑:

以太坊轻钱包_以太坊钱包怎么交易_以太坊钱包注册

持续监控内存池中的各种交易,甚至是其他领跑者的交易

对这些交易进行EVM模拟执行,得到模拟执行结果

一旦发现这些没有提交到区块的交易是盈利的,发起新的交易并设置更高的gasPrice来顶掉mempool中的交易

事实上,交易模拟执行技术的用途非常广泛,远不止是抢前准备,对于高频交易、模拟交易评估、判断蜜罐合约、研究黑盒交易等也大有裨益。

抢跑本质上是通过安排交易顺序来获取额外的利润。 事实上,对于矿工来说,他们自己就可以成为领跑者,因为矿工完全有能力重组交易秩序。 这样一来,矿工除了传统意义上的区块奖励和交易手续费外以太坊钱包怎么交易以太坊钱包怎么交易,还有一些额外的收入。 这些收入被称为MEV(Miner extractable value),简称为miner extractable value。

MEV有两种主要形式:

Frontrunning:致力于在某些交易的前面插入交易,比如鲸鱼交易的套利,或者抢先执行一些套利者的交易。

以太坊钱包怎么交易_以太坊钱包注册_以太坊轻钱包

Backrunning:致力于在某些交易的后面插入交易执行,比如抢Defi清算,在oracle更新后插入清算交易抢清算。

可以预见的是,随着以太坊使用量的爆发式增长,MEV 最终导致了以太坊共识机制的不稳定。

一般情况下,以太坊提供交易gas竞价模式。 出价高的矿工优先打包。 如果矿工根据某些利益来安排交易,实际上会造成混乱的局面,造成 P2P 网络拥塞或区块空间拥塞。

针对MEV的缓解措施,业界出现了flashbots、EDEN等技术方案,

以太坊钱包注册_以太坊轻钱包_以太坊钱包怎么交易

Flashbots 生态系统由三个角色组成:

其实本质上就是在以太坊用户和矿工之间搭建一个有序的通道,通过搭建交易暗池来绕过mempool机制。 这可以让 MEV 更加透明和有序,从而保护以太坊的相关机制。

以太坊钱包怎么交易_以太坊轻钱包_以太坊钱包注册

以太坊钱包注册_以太坊钱包怎么交易_以太坊轻钱包

在 etherscan 上标有 flashbots 的暗池交易

此外,flashbots还有很多有趣的技术,比如批量交易原子化的能力,又比如除了传统的gasPrice拍卖出块机制,用户甚至可以配置矿工在交易时直接支付给矿工满足一定条件,避免交易回滚造成的Gas损失。

NOTICE:如果你对flashbots技术感兴趣,作者强烈推荐精读[3]和[4],后续会出系列文章讲解flashbots。

引用《以太坊是一片黑暗森林》[1]的作者的话:

众所周知,以太坊区块链是一个高度对抗的环境。

随着Defi的兴起,以太坊上的每一笔新交易、每一份合约部署都蕴含着巨大的价值,于是无数“猎手”凭借着强大的毅力和时间去抢夺每一分能抢到的份额。 利润。

然而,加密货币领域总是有令人兴奋的创新者。 随着MEV赛道的逐渐有序和成熟,相信黑暗森林最终会朝着透明和有序的方向发展。

全文请查看原文信息