{"content":{"title":"【MEV 核心技术点入门】","body":"[MEV](https://learnblockchain.cn/article/3163) 核心技术点入门\r\n## 1.、背景\r\n最大可提取价值（MEV）是指通过包含、排除和更改一个区块中的交易顺序，可以从超过标准区块奖励和 Gas 费用的区块生产中提取的最大值。\r\n常见的MEV策略\r\n- 套利：多个DEX交易所低买高卖\r\n- 清算：低价买入贷款人的抵押物\r\n- 三明治：在受害者买入之前买入，等受害者成交之后卖出（低买高卖）\r\n简单介绍：Maximal extractable value (MEV) | ethereum.org\r\n\r\n## 2、套利\r\n核心点就是及时发现Token价差，实现低买高卖，目前有两种套利方式\r\n- 区块打包完成后，随机搜索某些token是否存在价差\r\n- 区块还未打包，搜索pending中的交易，是否会导致有利可图的价差\r\n暂时无法在飞书文档外展示此内容\r\n\r\n### 2.1、pending中有利可图的交易\r\nA. 网络架构设计\r\n核心点是降低延迟，延迟分为三段\r\n- 交易到达轻节点网络延迟\r\n- 轻节点处理延迟\r\n- 轻节点广播到验证者延迟\r\n暂时无法在飞书文档外展示此内容\r\n\r\n1) 交易到达轻节点网络延迟\r\n在全球各个机房搭建轻节点，同机房网络延迟大约200us(150us-300us)\r\n\r\n2) 轻节点广播到验证者延迟\r\n尽可能连接到全网所有的验证者节点或者哨兵节点，或者尽可能连接到更多的有用的节点\r\n\r\n3)轻节点处理延迟\r\n处理逻辑尽可能简化，避免所有的IO操作\r\n\r\nB. 业务架构\r\n\r\n核心流程，缓存所有需要使用的数据\r\n辅助模块\r\n- 账户管理：管理账户的私钥，缓存用户Nonce，充值gas手续费\r\n- Pair管理：搜索当前区块可以套利的Pair，检查Token是否为貔貅、虚假Token\r\n- Reserve管理：缓存所有Pair的价格信息\r\n合约模块\r\n- 检查合约：模拟Token买卖，计算gas和滑点等\r\n- 套利合约：闪电贷处理，买卖处理\r\n核心业务模块\r\n- 账户nonce缓存：提前缓存用户nonce和签名私钥\r\n- Token搜索图：将所有token、pair、reserve构建一个图，新交易触发搜索图，找到一条有利可图的路径进行套利\r\nP2P网络模块\r\n- 网络节点管理：检查节点可用性，踢出无用节点\r\n- 数据收发：解析和广播数据\r\n\r\nC.套利业务流程\r\n- 监听广播给我的交易，如果是交易所的买卖交易，就解析出所有参数，在本地模拟交易过程\r\n- 模拟交易之后，如果发现交易之后存在价差，就在构建的图中搜索跟此次交易相关有利可图的路径\r\n- 如果发现存在这样的路径，就构建调用合约请求（通过闪电贷借入token，低买高卖）\r\n- 最后将监听的交易和自定义的交易一起打包广播到外部节点\r\n\r\n### 2.2、搜索区块头的套利\r\n和之前的区别是：通过广播区块消息触发业务逻辑，需要搜索全图寻找有利可图的路径（随机起点或者根据一定策略搜索）\r\n\r\n### 2.3、三明治\r\n由于AMM价格模型，只要买入token价格就会升高，并且区块链买入是不能立即执行，需要等到打包区块时根据gas高低顺序进行执行，所以可以监听其他人的买入交易，发送更高的gas价格抢先在受害者之前买入，等到受害者买入之后，再将token卖出，这样就可以赚取差价的收益（gas fee=gas*gasprice）\r\n\r\n核心点\r\n- 由于竞争机制存在，有其他机器人，发送比你还高的gas价格，所以你需要和它进行竞争，不断抬高gas价格，所以延迟就是胜利的关键，所以需要尽可能降低 观察到的延迟、处理的延迟、和广播的延迟\r\n- 由于gas价格比较高，所以需要尽可能降低gas使用量，常见通过：chi gas token、或者自定义gas contract解决\r\n\r\n## 3、技术细节\r\n合约\r\n- 闪电贷\r\n- Gastoken\r\n- 非WBNB交易对检查\r\n- solidity汇编\r\np2p轻节点\r\n- 虚假节点管理\r\n- 批量端口监听\r\n业务\r\n- 图搜索优化\r\n- graphsql批量获取reserve状态\r\n\r\n\r\n\r\n## 4、相关资源汇总\r\nMEV介绍：\r\nhttps://github.com/0xmebius/mev/blob/main/MEV101.pdf\r\n\r\n套利开源：\r\n多路径：https://github.com/ccyanxyz/uniswap-arbitrage-analysis\r\n双路径：https://github.com/paco0x/amm-arbitrageur\r\n\r\n三明治开源：\r\nhttps://github.com/libevm/subway\r\n\r\n常见库中文文档：\r\nhttps://learnblockchain.cn/manuals\r\n\r\nUniswap Dex交易所文档：\r\nhttps://docs.uniswap.org/protocol/V2/introduction\r\n\r\n链上实时数据浏览：\r\nhttps://eigenphi.io/\r\n\r\ngo合约交互\r\nEthgo\r\n\r\ngraphsql教程\r\nhttps://www.libevm.com/2022/01/03/advance-geth-pt-1-graphql/\r\n\r\n\r\n更多细节\r\nhttps://github.com/greyireland\r\n\r\n\r\n\r\n本人做区块链 MEV 大约 1 年时间，主要在 BSC 是做三明治机器人和套利机器人，有一段时间可以实现每日盈利 4000 美金，不过随着竞争力下降，逐渐没法盈利，目前计划去 aptos 或者 sui 链上进行 MEV 活动，一般新链竞争压力会相对小一些，但是目前两个新链都是 RUST 技术栈（我是 GO 技术栈），希望对区块链感兴趣的 RUST 伙伴一起做，共同实现财务自由~~~\r\n\r\n感兴趣的朋友，可以加我Github:greyireland"},"author":{"user":"https://learnblockchain.cn/people/4830","address":null},"history":"QmPxqggoddHqNRV9LyWUzPZXqrJeqv92cD1VTc65B9QQqY","timestamp":1666938555,"version":1}