在 MEV-Share 上搜索

  • flashbots
  • 发布于 2023-05-04 12:31
  • 阅读 13

本文介绍了MEV-Share的基本概念及其在搜索链上交易中的应用。MEV-Share允许用户选择性地与搜索者共享其交易信息,从而实现信息隐私与交易策略的有效结合。文章详细讨论了如何利用MEV-Share进行交易搜索,包括新功能、搜索策略及示例代码,适合希望深入理解MEV机制的开发者。

MEV-Share简介

MEV-Share 是一个为搜索者带来新范式的新工具。它解锁了新的订单流、功能和搜索策略。本简短指南将帮助你快速了解新的搜索方式,并解释如何升级你的策略以利用 MEV-Share。

简单的盲套利代码

TL;DR

  • 在 MEV-Share 上搜索是一个简短的入门指南,旨在帮助搜索者了解 MEV-Share。它解释了 MEV-Share 的新功能,提供了搜索策略的指导和示例。

  • 搜索者可以通过 https://mev-share.flashbots.net 访问 Flashbots MEV-Share 匹配器获取新的订单流!(请在浏览器中打开链接以查看活动交易)这包括所有发送到 Flashbots Protect 的交易,约占所有以太坊交易的 3%。

  • 要在 MEV-Share 上进行搜索,你可以使用 Flashbots 的 示例套利机器人,或者使用像 matchmaker-ts 这样的客户端库创建自己的策略。

  • 通过加入 Flashbots discord 中的 #mev-share 频道分享你的想法并了解未来更新!

    • *

上个月,Flashbots 宣布 了 MEV-Share 的 beta 版本发布。此发布是向 MEV 供应链引入可编程隐私的第一步——使用户能够决定他们的交易如何、何时以及由谁执行。今天,搜索者可以 订阅 Flashbots 匹配器,搜索可编程私密的订单流。这包括所有发送到 Flashbots Protect 的交易。但在可编程私密订单流上搜索对搜索者来说真正意味着什么?搜索者如何在这个新范式中启动策略?

在 MEV-Share 上搜索 是一个简短的入门指南,旨在帮助搜索者快速了解 MEV-Share。我们将解释 MEV-Share 背后的新理念,它们如何与 MEV-Boost 和 MEV-Geth 不同,以及如何考虑设计搜索策略。我们还将涉及一些 MEV-Share 的新功能并提供如何使用它们的示例。

什么是 MEV-Share?

MEV-Share 是一个协议,允许用户选择性地与搜索者共享关于其交易的信息。这使用户可以保持敏感信息的私密,同时仍允许搜索者执行盲回跑、Uniswap v2 和 v3 的套利等策略。Flashbots 运行着一个名为 Flashbots Matchmaker 的服务,该服务实现了 MEV-Share 协议。发送到 Flashbots Protect 的所有交易都会自动通过 Flashbots Matchmaker 路由。

今天,大约 3% 的以太坊交易通过 Flashbots Protect 流动,使搜索者能够在越来越有价值的私密订单流上进行搜索**。此外,MEV-Share 是一个 proto-SUAVE 实现,这将使提前接入 MEV-Share 的搜索者更好地理解随着 MEV 供应链去中心化,MEV 市场动态将如何演变。

* 截至 4 月 30 日,32,011 / 974,972 (3.28%) 被纳入以太坊主网的交易来自 Flashbots Protect(来源:Flashbots Protect 和 https://etherscan.io/chart/tx

MEV-Share 图解

如何使用 MEV-Share

以太坊用户 通过 Flashbots Protect 连接到 Flashbots Matchmaker

  • 用户可以指定要分享关于其交易的信息。默认情况下,仅共享交易哈希和支持的池/对地址。目前,Flashbots Matchmaker 支持共享 Uniswap v2/v3、Balancer 和 Curve 的池/对地址。除非用户另有说明,所有其他数据(calldata、日志等)都不会向搜索者公开。

搜索者 通过匹配器的 SSE 端点 监听待处理交易的信息。搜索者利用这些信息制作部分捆绑,并通过 mev_sendBundle API 发送到 https://relay.flashbots.net,在那里它被路由到 Flashbots Matchmaker。

  • 搜索者在其捆绑中包括部分交易,因为他们只有交易 哈希 的访问权限,而不是完整的 签名。搜索者仅将交易哈希放入捆绑中,而不是签名的交易。

Flashbots Matchmaker 然后 用原始签名交易替换搜索者部分捆绑中的交易哈希,并将这些捆绑(现在完全由签名交易组成)发送到区块建设者。

MEV-Share 与 MEV-Boost 或 MEV-Geth 有什么不同?

最明显的区别在于待处理交易不以明文显示。换句话说,搜索者可能无法访问他们习惯从待处理交易中看到的所有数据,比如 calldata 和日志。

你可以立即访问 Flashbots Matchmaker 的订单流。只需前往 https://mev-share.flashbots.net(在浏览器中打开该链接,或使用 curl 发送 GET 请求)。

例如,一个待处理的 Uniswap 交易将(默认情况下)仅暴露交易哈希和正在交易的代币对。交易的数量和方向(例如 ETH → TKN 或 TKN → ETH)是隐藏的。

示例 MEV-Share 交易

新的 MEV-Share 特性

MEV-Share 介绍了几个令人兴奋的功能,这些功能使搜索者更好地控制他们的捆绑如何处理。

大部分令人兴奋的内容位于 mev_sendBundle 端点。我们将在以下小节中描述其功能。请参阅 mev-share 协议库以获取该端点的权威定义,查看 Flashbots MEV-Share 文档 以获取 Flashbots 的实现特定细节。

供参考,当前 mev_sendBundle 定义如下。请注意,标有“?”的字段是可选的。

{    jsonrpc: "2.0",    id: string | number,    method: "mev_sendBundle",    params: [{ /* MevSendBundleParams */        version: "0" | "beta-1.0",        inclusion: {            block: string,      // hex-encoded number            maxBlock?: string,  // hex-encoded number        },        body: Array<            { hash: string } |            { tx: string, canRevert: boolean } |            { bundle: MevSendBundleParams }        >,        validity: {            refund: Array<{                bodyIdx: number,                percent: number,            }>,            refundConfig: Array<{                address: string,                percent: number,            }>,        },        privacy?: {            hints?: Array<                "calldata" |                "contract_address" |                "logs" |                "function_selector" |                "hash"            >,            builders?: Array<string>,        },    }]}

区块前谓词

区块前谓词(在 mev_sendBundleinclusion 参数 中指定)定义了捆绑被放置在区块中的要求。它们在捆绑被考虑放置区块之前进行评估。这些参数专门设计为低计算,以便构建者能够高效地过滤合格的捆绑。

搜索者可以指定 blockmaxBlock 来指示他们的捆绑可以落入的区块。maxBlock 是便于指定一个区块范围的方式,仅需进行一次 RPC 请求,而无需为每个区块发送一次,请求正是 MEV-Boost 的做法。

这个示例指定了捆绑应定位到接下来的 5 个区块,从区块编号 0x105f27 a 开始,到区块编号 0x105f27 e 结束:

{    jsonrpc: "2.0",    id: 1,    method: "mev_sendBundle",    params: [{        version: "beta-1",        inclusion: {            block: "0x105f27a",            maxBlock?: "0x105f27e",        },        body: [...],                ...        }]}

区块后谓词

区块后谓词(在 mev_sendBundlevalidity 参数 中指定)定义了捆绑被纳入区块的链上要求。它们在捆绑被区块建设者放置在前景区块之后进行评估。这些参数定义的限制仅在区块上下文中进行评估,在该上下文中,捆绑的交易已被分配了特定的区块位置,相应地生成独特的 EVM 状态。

区块后谓词为搜索者(和匹配者)提供了硬性保证,关于其捆绑被允许纳入区块的条件——例如,捆绑交易应该获得的最低 MEV 退款 以及退款发往的地方。我们预计未来会添加更多参数,以进一步增强这些偏好的细粒度。

捆绑组合和搜索者回扣

MEV-Share 中最令人激动的功能之一是捆绑组合,它允许搜索者共享关于他们自己捆绑的数据并赚取更多 MEV。共享数据的捆绑可以包括在其他捆绑中,使搜索者可以协作并构建更复杂的策略。例如,你可以在另一搜索者的回跑后进行反向跑,以清理无效交易,或者利用首次回跑带来的新价格来执行另一种策略。从这个意义上说,捆绑组合使搜索者能够参与协作的区块构建。

要使捆绑可组合,只需在 mev_sendBundleprivacy 参数 中指定提示。这样将共享捆绑交易的数据,允许其他搜索者将你的捆绑纳入他们的捆绑中。

构建者选择

用户和搜索者还可以指定哪些构建者有权接收他们的订单流(捆绑/交易)。通过指定构建者,用户表明他们希望匹配器与指定的构建者共享其订单流。这可以提高交易被纳入链上的速度,因为更可能指定构建者中的一个有机会在给定位置构建区块。有关这一工作原理的更详细解释,请参见 搜索合并后的竞标章节

如果搜索者想要进一步限制接收他们捆绑的构建者,还可以指定自己的构建者集合。捆绑上的 builders 参数将是所有提供交易的用户和搜索者所指定列表的 交集

钱包用户在 Protect RPC URL 中将首选构建者指定为查询参数。搜索者在其 mev_sendBundle 调用privacy 参数中指定构建者。

搜索策略

在 MEV-Share 上进行搜索有两种主要方法:链上搜索概率搜索

链上搜索

链上搜索意味着 以前由搜索者在链外完成的计算将需要在链上完成,因为所需的数据不会在执行上下文外共享(即智能合约)。例如,与其使用 calldata/日志来确定被交易的代币数量,不如计算该数量的储备差异。

具体而言,搜索者必须编写智能合约,以读取计算其策略所需参数的数据(例如,要进行套利的代币交换数量),计算该数量,并在执行时构建交易来执行其策略。在链上进行这些计算提供了准确的区块内信息,但会增加天然气的使用。

请参阅 simple-blind-arbitrage 了解链上搜索者的示例。

概率搜索

因为链上信息可能有限,搜索者可能需要 为给定机会进行多次并行尝试,每次尝试条件略有不同。例如,如果我们不知道交易方向,我们可以仅发送两个捆绑,每个捆绑假定两种交易方向之一。在这种情况下,一个捆绑将回滚,而另一个(如果正确完成)将不会。使用这样的概率策略可以节省天然气,这使你在作为搜索者时更具竞争力。若没有概率策略,搜索者必须在链上计算其策略参数,这在天然气使用方面可能代价高昂。

注:MEV-Share 的 beta 发布目前仅支持回跑,这意味着当前不支持夹击策略。

入门指南

要访问 MEV-Share 的订单流,请查询 https://mev-share.flashbots.net。 (你甚至可以在 Web 浏览器中打开此链接!)

要开始在 MEV-Share 上进行搜索, 请查看我们的 示例套利机器人,这是一个链上搜索的入门示例。你还可以使用像 matchmaker-ts 这样的客户端库构建自己的机器人。 Matchmaker-ts 是 Flashbots 的 MEV-Share 匹配器客户端的参考实现,使用 TypeScript 编写。我们预计很快将提供更多语言的客户端,你也可以查看 simple-blind-arbitrage 以获取 js 示例。如果你愿意,也可以直接与 RPC 端点 进行交互。

请参阅 入门文档 以获取有关连接到 MEV-Share 及与之交互的更详细说明。

进一步阅读与资源

在这本简短的指南中,我们介绍了 MEV-Share 的基础知识,以及如何为 MEV-Share 订单流设计搜索策略。我们谈到了新的功能,如包含谓词和捆绑组合——这些功能为用户提供了更细粒度的执行保证,使搜索者能够执行更高级的策略。

今天,你可以在 https://mev-share.flashbots.net 访问 MEV-Share 的订单流。你可以使用我们的 示例套利机器人 搜索此订单流,或者使用像 matchmaker-ts 的客户端库创建自己的机器人。

我们希望这篇文章能激发你对在 MEV-Share 上搜索的好奇心。虽然该系统仍处于 beta 测试阶段,但我们期待看到你与其的互动,并渴望收到你的反馈!你可以通过 在我们的 论坛Discord (在新的 #mev-share 频道中打个招呼)与我们取得联系,帮助我们开发更多令人兴奋和创新的功能。查看下面的链接以了解更多信息并开始搜索!

感谢 Robert Miller、Elaine Hu、Vitaliy Drogan 和 Reid Yager 对本文章的审阅和贡献。

  • 原文链接: writings.flashbots.net/s...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
flashbots
flashbots
江湖只有他的大名,没有他的介绍。