本文深入探讨了以太坊区块构建者与Uniswap流动性池中交易毒性的关系。作者分析了多个区块构建者及其所建区块的流动性表现,特别是探讨了毒性交易流和统计套利策略之间的联系。通过对后合并(Post-Merge)区块的分析,文章识别出一些与高吞吐量、低利润交易活动相关的构建者,并提出其对流动性提供者的影响。
本文是 @0xfbifemboy 在 Uniswap 流动性池、集中流动性和费用动态的 持续系列 中的新一篇。这是多个帖子中的第四篇,旨在集中讨论 ETH/USDC 交换数据中的毒性流特征以及价格歧视或流动分段机制的潜在实现。
到目前为止,我们在有关 Uniswap V3 订单流的研究中覆盖了大量领域:
在某种意义上,随着我们的进展,我们逐步向更高的抽象层次迈进。我们首先关注个别交换者;然后,我们尝试将这些交换者根据观察到的行为分为广泛组;之后,我们不再查看个别交换者,而是检查特定合约的订单流。在每个抽象层次上,都会有在其他层次上不可见的有价值洞见;例如,当我们检查个别钱包的行为时,会发现毒性与交换频率和名义金额相关,以及来自给定钱包的交换的规律性。这种观察与不同来源的订单流的观察并不冗余;相反,它们是增量的,一起形成了市场结构的复杂织锦与细节。
关于钱包行为或聚合器订单流仍然有许多未解答的问题。然而,在我们更详细地解决这些问题之前,自然地可以问我们是否可以进一步回退到更高的抽象层次。令人着迷的是,如果我们查看每个区块中组装交易的 block builders,与每个区块构建者相关的身份和历史数据揭示了一些 Uniswap 交换流性质中的进一步复杂性。尽管整体图景仍然相当复杂,我们的发现展示了整体 DeFi 生态系统中一个目前尚未深入探讨的组成部分的一些细节。
在 https://ethereum.org/en/upgrades/merge/ 之前,以太坊网络从工作量证明转变为权益证明,新的区块是由矿工组装的,他们同时接收和排序交易。旨在提取矿工可提取价值(MEV;现在称为合并后的最大可提取价值)的熟练“搜索者”能够向矿工支付额外费用,以换取以某种顺序组装交易,从而使他们获得高于支付费用的利润。然而,自从合并以来,矿工在区块生产中的角色被淘汰,该生态系统的结构显著变化。
目前, validators(质押32个ETH)随机选择作为区块提议人,生成的交易区块由网络中的其他 validators 验证。Validators 与矿工一样,可能并不一定在构建盈利区块和从交易重新排序中提取价值方面具备特殊专业知识;相反,这一角色留给 block builder,该角色组装包含按顺序排列的交易的整个区块,以及 validators 的支付,并将该区块提交给区块提议人。(为简单起见,我们此处略去 relayer 的角色,其将区块从区块构建者中中继到当前提议者。)
我们立即注意到,构建者之间存在着竞争的市场:任何能从交易重新排序中提取更多 MEV 的人都能提供更高的 validators 报酬,从而使他们提议的区块得到验证和最终确定。因此,我们可以预期,由知名或熟练的构建者构建的区块包含大量 MEV 提取。相反,如果一个区块是由相对不具竞争力的区块构建者构建,我们会预料区块中 MEV 较少。表现为 Uniswap ETH/USDC 池的毒性流的套利机会对交易顺序和纳入速度非常敏感,因此我们预计,任意给定区块中观察到的毒性流和整体 MEV 提取之间会有自然关联,这本身应该与不同区块构建者的身份相关。
我们的假设非常简单;然而,我们如何实际收集有关区块构建者的数据呢?许多关于以太坊网络活动的分析往往缺乏实施细节;然而,我们认为为读者提供我们数据检索过程的更明确描述对总的清晰度是有价值的。
首先,为了说明,让我们考虑一个任意选择的区块,如区块 16787456:
我们立刻看到“费收款人”是一个被 Etherscan 标记为 builder0x69 的地址。还有一个“额外数据”字段,其中包含编码字符串“@builder0x69”的十六进制值。“builder0x69”这个名字自然暗示这特定区块构建者的标识符。
敏锐的读者可能会想:费获敦是否真的应该与区块构建者相同?实际上,通常收取区块中交易费用的是 validators 吗?答案在区块中的 最后一笔交易 中给出,交易是从 builder0x69 向 Lido 执行层奖励库 转移的以太币:
事实证明,当区块通过 Flashbots MEV-Boost 中继时,发送给区块提议者的数据同时包括(1)将费用收款人设置为区块构建者与(2)最终从区块构建者转移到验证者的以太币支付交易:
这一行为遵循了 Flashbots 提案中的一个标准规范 ,该规范规定了对区块构建者与提议者的支付。然而,我们应该注意,并非所有区块都符合该规范!尽管 MEV-Boost 中继的区块在合并后的以太坊区块中占据了绝大多数,但也确实存在许多其他中继器,并不一定遵循相同的协议。为此,以 mev-boost.org 为例,展示了中继器生态系统中存在相当大的多样性:
实际来看,分析 5958608 这个区块,我们发现这个区块由 BloXroute Max Profit 中继,且交易费用直接支付给验证者( 即, Lido 钱包合约):
不幸的是,这使得分析区块构建者有些棘手:我们可以看到,单凭该区块中包含的数据来识别某个区块构建者没有“干净”的方式。通常,构建者似乎在额外数据字段中“签名”,并没有理由为什么一个构建者可能会用这个字段来冒充另一个构建者;然而,它最终仍然是根据构建者对区块进行不完善的分类。尽管 mev-boost.org 提供了接受的区块与其构建者的公共密钥之间的显式映射,但这些数据仅通过有限的 API 提供,并且通过获取所有合并后区块的费用看来相对繁琐。
因此,为了简单起见,虽然我们理解这仅是一种对每个区块构建者的不完善描述,但我们将简单地使用每个区块提供的额外数据字段作为区块构建者自身的标识符。有些区块构建者是个体演员;其他的则接收和编译外部提交的交易包;尽管整体图景相当复杂,但我们仍然能够在这里辨别出一些迷人的细节。
我们的区块和其 extraData
字段的数据集从区块 15537393—2022 年 9 月 15 日的第一个合并后以太坊区块,持续到区块 16780152,后者在 2023 年 3 月 8 日提出。约 75% 的所有合并后区块明确定义某种非空的 extraData
,而一般而言,最近几周未指定任何 extraData
的区块的百分比降至 10% 以下,表明区块构建者生态系统的发展已经成熟:
为了简单起见,让我们继续分析一个相对简单的问题:每个区块构建者构建的区块的平均交换 PnL 是多少?首先,我们将范围限制在合并后的交换数据和名义金额大于 10,000 美元的交易。(这个而外条件有助于防止过多的小规模随机交易对平均 PnL 产生过度影响;请记住,区块中可能只有很少的 ETH/USDC 交易。)然后,在每个区块中,我们根据 Binance 5 分钟的价格标记计算交换 PnL 的加权平均值,并按交换的 ETH 数量加权。接着,我们对每个区块的 extraData
字段中的值进行汇总,取该区块的平均交换 PnL 的加权平均值,按每个区块中的总 ETH 交换量加权。最后,我们限制使用出现在至少 1,000 个不同区块中的 extraData
标识符。虽然不完善,但这是构建回复我们的关注问题的度量的合理初步尝试。
如果我们按 PnL 对区块构建者进行排序,首先查看那些对流动池最不盈利(因此对知情交易者最盈利)的构建者,我们立即注意到有一个生产者,其包含通用但一致的 extraData
标识符 geth^go1.19.1...linux
(由 go-ethereum 提供的默认签名),其平均交换 PnL 为 -6.17 个基点( 即, 对流动资金池相当不盈利,但对区块构建者却是盈利的)。这个区块构建者的身份是什么呢?我们选择该构建者随机构建的区块,直到到达一个 MEV-Boost 中继区块,我们发现这个构建者的地址始终是 0x473780deaf4a2ac070bbba936b0cdefe7f267dfc
:
特别有趣的是,在我们手动验证的几乎每个案例中,这个地址构建的区块在区块顶部都包含与合约 0x57c1e0c2adf6eecdb135bcf9ec5f23b319be2c94
的交互。例如,在区块 16479013 顶部,我们看到一个 AAVE 与 UNI 的交换和一个 LINK 与 UNI 的交换,表明(1)合约 0x57c1e0c2adf6eecdb135bcf9ec5f23b319be2c94
从事某种统计套利交易策略,以及(2)区块构建者 0x473780deaf4a2ac070bbba936b0cdefe7f267dfc
由控制合约 0x57c1e0c2adf6eecdb135bcf9ec5f23b319be2c94
的同一组织运营,优先提取自己的 MEV 策略,这些策略足够盈利,能够让该区块构建者持续提供最高的 validator 支付。
如果我们检查合并后所有区块的平均 PnL 分布,可以预期,分布是相当高度集中在零附近,意味着大多数区块在对流动性池的盈利和亏损中,平均值只稍微盈利或亏损:
现在,如果我们检查由 0x473780deaf4a2ac070bbba936b0cdefe7f267dfc
构建的区块的相同分布,发现该分布略微偏向于负 PnLs 的方向(对池不盈利):
这与我们的假设一致,其中 MEV 机器人 0x57c1e0c2adf6eecdb135bcf9ec5f23b319be2c94
以较大规模进行的统计套利的方式, 在平均上 对钱包盈利,对 Uniswap 流动性池不盈利。(你可能会觉得,视觉上,两种分布之间的差异似乎并不太大;然而,这样微小的 PnL 分布移动造成了数百万交易者利润和流动性池损失!)
有趣的是,在我们研究过程中,注意到该区块构建者在一个月前突然停止构建区块;据我们所知,他们最后构建的区块是区块 16522347,日期为 2023 年 1 月 30 日。他们是否只是决定停止构建区块?我们相信不是。在我们的数据中,活跃的区块构建者大多数在合并后相对较快地开始构建区块;然而,有两个特定的区块构建者让人印象深刻地相对“晚”开始,分别是 manta-builder
和 rsync-builder.xyz
。特别是,manta-builder
与所有活跃区块构建者中次低的(对流动性池不盈利的)PnL 相关,仅次于 geth^go1.19.1...linux
本身!此外,当我们检查 manta-builder
构建的区块时,会发现类似模式:每个 manta-builder
构建的区块顶部,例如在区块 16487128 中,有与 MEV 机器人 0xf8b721bff6bf7095a0e10791ce8f998baa254fd0
进行的交易。
这两个 MEV 合约 0x57c1e0c2adf6eecdb135bcf9ec5f23b319be2c94
(与签名为 geth^go1.19.1...linux
的区块构建者相关)和 0xf8b721bff6bf7095a0e10791ce8f998baa254fd0
(与 manta-builder
相关)是否有关联?乍一看,很难识别两者之间的任何关系。然而,如果我们使用 Panoramix 反编译这两个合约的字节码:
我们发现大量的函数签名重叠,这表明它们实际上与同一控制实体有关联!例如,函数签名 unknowne148cd50(uint128 _param1, uint256 _param2)
、unknown6dbf2fa0(uint128 _param1, uint256 _param2, array _param3)
和 unknown048867dc()
出现在两个反编译中,内部逻辑非常相似,甚至是相同,考虑到代码的复杂性,让这成为纯粹偶然的结果是不可思议的。很显然其他 MEV 合约的反编译结果显示,如 0xa69babef1ca67a37ffaf7a485dfff3382056e78c
并没有共享 任何 相同的相似之处。尽管对 manta-builder
的身份进行了一些 有限的猜测,我们相信我们是第一批公开确认与之前(以及非常活跃)区块构建者的联系者。
manta-builder
所构建的区块的平均 PnL 对 Uniswap ETH/USDC 流动性池为 -3.19 个基点, 即, 比 geth^go1.19.1...linux
构建的区块稍微少了一点毒性。如果我们检查 manta-builder
构建的区块平均 PnLs 的分布,正如我们之前所做的,那些分布在性质上相似:
因此,PnL 之间的差异可能仅仅是由于某一时间段内的更高或更低价格波动,而不是由于合约操控者使用的底层策略的变化。
我们已经较深入地探讨了一个区块构建者的身份和活动;显然,如果我们去详尽地剖析每个突出的构建者的行为,需要花费相当长的时间!各构建者拥有自己独特的习惯(有些可能基本上是为某一特定群体的交易包专门设计的,而其他的可能与独立搜索者提交的捆绑交易有关等),进一步复杂化了任何系统分析。
至少,查看每个构建了至少 1,000 个区块的区块构建者 от его среднего PnL (跨构建的区块):挺有意思的
神秘的构建者同时签名为 geth^go1.19.1...linux
和 manta-builder
,如前所述,轻松登上此名单的暂时具体区块构建者与流动性流动性高度相关的 toxic. 另一方面,某些区块构建者实际上与无毒的交易流相关,比如由 builder0x69
构建的区块,后者的区块似乎普遍为 Uniswap ETH/USDC 流动池带来了几个基点的利润。(至于 extraData
字段对子 builder0x69
签名的多个明显变量仍不清楚。) builder0x69
提供了一个供独立搜索者使用的 端点,因此它们构建的区块在与哪个 MEV 机器人的交易位于区块顶部时,似乎没有任何明显一致性。(例如比较区块 16494139 和 16494137。)
我们同样也许会想:不同区块构建者在从 Uniswap ETH/USDC 池中提取价值的任务中,有多大的 专门性?在上表中,ethusdc_blocks
表示每个区块构建者构建的区块数,all_blocks
表示该区块构建者建设的所有区块的 总 数(包括没有 ETH/USDC 交换的区块),ratio
为前者除以后者。我们看到 geth^go1.19.1…linux
或 manta-builder
构建的区块中大约 20% 包含 Uniswap 的 ETH/USDC 交换:这一比例显然高于该列表上的任何其他区块构建者。因此,一个合理的解释是, manta-builder
实体专注于对主要交易对的统计套利;相比之下,其他区块构建者构建的区块可能包括在更广泛的长尾资产上的套利。
同样的,我们也可以问:在包含至少一个 ETH/USDC 交换的区块中,哪些区块构建者最为突出,每个区块构建者可以归属于多少流动池 PnL?
(为方法上的澄清说明:之前,我们指出关于基础点的平均标准 PnL 计算是针对每个区块计算的,不包括过于小的交易,以避免包含只有一个小金额的区块。在总名义 PnL 计算中,我们简单地包括所有交换数据,而不论大小。)
在这个表中,pnl
是归因于特定区块构建者构建的区块的总 PnL(以美元计算),ratio_ethusdc
是后合并区块中 ETH/USDC 交换的百分比(由每个区块构建者构建)。(请注意, ratio_ethusdc
不总和为 100% ,因为有许多不是在此列表中的区块构建者构建的区块,或者因为它们没有指定任何 extraData
或者因为它们没有构建超过 1,000 个区块。)
尽管不足 3% 的构建的后合并的 ETH/USDC 交换,由 geth^go1.19.1...linux
和 manta-builder
构建的区块仍然对 Uniswap ETH/USDC 流动池造成了总计 -1.2 亿美元的 PnL!这一数据相当显著,考虑到流动资金池在同一时间内的 汇总 PnL 大约 +1 亿美元(流动资金提供者实际上是赚钱的)。如果我们进一步限制在通过 0x57c1e0c2adf6eecdb135bcf9ec5f23b319be2c94
或者 0xf8b721bff6bf7095a0e10791ce8f998baa254fd0
中继的交换中进行的交换,我们发现这些交换对应于流动池 PnL 几乎为 -2.2 亿美元,即使它们只占所有合并交换的 1%!
简短地再提一下:在 之前的分析中,,我们估计根据短期 Binance 价格标记,Uniswap LP 的总损失接近 -4000 万美元;理解读者可能会奇怪,而合并后的时期实际上显示出流动性提供者的净 正 收益,即使只有 +1 亿的程度。非常有趣的是,似乎 自从那篇文章发表以来, Uniswap 池的表现显著改善。我们可以从这张关于综合池 PnL 的更新图中看出:
这可归因于合并以来的较低价格波动,至少相对而言,比合并前的整整一年的时期这方面总体上有较少的 CEX/DEX 套利机会,因此,Uniswap 流动提供者的 PnL 更高。
在 0x57c1e0c2adf6eecdb135bcf9ec5f23b319be2c94
和 0xf8b721bff6bf7095a0e10791ce8f998baa254fd0
相关的 MEV 机器人中,构建者与毒性 MEV 机器人的一对一映射非常清晰,构建者层级的分析并没有给我们带来比单独查看钱包或 MEV 合约更多的洞察。然而,在由 builder0x69
构建的区块的情况下,人们可能会合乎情理地认为看到由 builder0x69
构建的区块在历史上是相对可信可靠的非毒性交换流信号。
当然,即使在由同一区块构建者构建的区块中,交换流动性的预期毒性仍然在很大程度上依赖于交易发起钱包和某个交换与之交互的合约(正如我们之前观察到的那样)。通常,这可能甚至是主要因素。然而,特别是在来自模糊来源( 例如, 新的钱包)的交换情况下,区块构建者的身份对于准确分类交换流为毒性与无毒性仍然在边际上相当有价值。
如果我们看看是由 manta-builder
实体(包括它的两个地址)还是由 builder0x69
(包括其所有不同的 extraData
签名)构建的区块,并且检查 ETH/USDC 交换规模的分布,我们注意到两种分布都是双峰的,但 manta-builder
的区块在较大交换的最右峰区特别丰富:
这可能是由于在区块顶部包括它自己的 MEV 交换所致。相反,如果我们绘制相同的分布,但排除 我们在上面分析的两个 manta-builder
关联的 MEV 合约地址,名义交换规模的分布看起来更加相似:
在排除 manta-builder
自己进行的统计套利后,名义交换大小的分布匹配一致,表明两个区块构建者均包含无毒流,但只有 manta-builder
成功地大规模利用预测价格在未来 5-10 分钟移动的统计 alpha。(请注意,在每笔交换和每个区块级别的利润 PnL 分布反映了相同的模式;然而,在这些情况下此差异视觉上清晰度低很多。)鉴于 builder0x69
提供了用于捆绑提交的公共端点,因此这也许并不令人感到惊讶:如果你掌握具有前景的高价值交易信号,你可能会倾向于构建自己的区块,以便你能确保优先处理你的交易并尽可能多地获取中介价值。
总之:我们做出了以下观察:
geth^go1.19.1...linux
和 manta-builder
,几乎可以肯定由同一实体运营,该实体专注于统计套利,并向 Uniswap 流动性提供者提供高度毒性的交换流builder0x69
构建的区块则相对无毒总体而言,我们发现证据表明标识构建特定区块的构建者在某些情况下可以提供有关随后包含该区块中的交换毒性的检测信息。这是基于特定上下文的;例如,如果与某个区块构建者相关的绝大多数毒性来自同一 MEV 机器人并且不再优先区块构建者,则检查构建者身份提供的信息很少(尽管这可能满足我们的好奇心)。但是,在其他情况下,构建者收集来自不同来源的各种交易时,这可能是无毒性合理的 credible signal。
-0xfbifemboy
- 原文链接: crocswap.medium.com/disc...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!