[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-deep-evm-15-mev-moni-erfen-sousuo-zhuangtai-fencha":3},{"article":4,"author":59},{"id":5,"category_id":6,"title":7,"slug":8,"excerpt":9,"content_md":10,"content_html":11,"locale":12,"author_id":13,"published":14,"published_at":15,"meta_title":16,"meta_description":17,"focus_keyword":18,"og_image":19,"canonical_url":19,"robots_meta":20,"created_at":15,"updated_at":15,"tags":21,"category_name":39,"related_articles":40},"d3000000-0000-0000-0000-000000000115","a0000000-0000-0000-0000-000000000036","Deep EVM #15：MEV模拟——二分搜索、状态分叉和12秒截止时间","deep-evm-15-mev-moni-erfen-sousuo-zhuangtai-fencha","构建MEV模拟流水线：分叉EVM状态、模拟套利执行、二分搜索最优借入金额以及截止时间感知的调度。","## MEV模拟流水线\n\nMEV模拟是从发现套利机会到提交盈利交易的关键步骤。流水线包括：\n\n1. **状态分叉** — 从最新区块克隆EVM状态\n2. **模拟执行** — 在分叉状态上运行套利交易\n3. **优化输入** — 二分搜索找到最优借入金额\n4. **利润计算** — 扣除gas成本后的净利润\n5. **截止时间检查** — 确保在12秒出块时间内完成\n\n## 使用Revm的状态分叉\n\nRevm是一个Rust EVM实现，支持高效的状态分叉：\n\n```rust\nuse revm::{EVM, Database};\n\nfn simulate_arb(\n    db: &mut CacheDB\u003CEmptyDB>,\n    path: &ArbPath,\n    amount_in: U256,\n) -> Result\u003CU256, SimError> {\n    let mut evm = EVM::new();\n    evm.database(db);\n    \n    \u002F\u002F 设置交易参数\n    evm.env.tx.caller = bot_address;\n    evm.env.tx.transact_to = TransactTo::Call(arb_contract);\n    evm.env.tx.data = encode_arb_calldata(path, amount_in);\n    \n    let result = evm.transact_commit()?;\n    \u002F\u002F 计算利润...\n    Ok(profit)\n}\n```\n\n## 二分搜索最优输入\n\n利润是输入金额的凸函数——太少利润低，太多则滑点过大。二分搜索高效找到最优点：\n\n```rust\nfn binary_search_optimal(\n    db: &CacheDB\u003CEmptyDB>,\n    path: &ArbPath,\n    min: U256,\n    max: U256,\n) -> U256 {\n    let mut lo = min;\n    let mut hi = max;\n    \n    for _ in 0..40 {  \u002F\u002F 40次迭代足以达到wei精度\n        let mid = (lo + hi) \u002F 2;\n        let profit_mid = simulate_arb(db, path, mid);\n        let profit_next = simulate_arb(db, path, mid + 1);\n        \n        if profit_next > profit_mid {\n            lo = mid;\n        } else {\n            hi = mid;\n        }\n    }\n    \n    lo\n}\n```\n\n## 12秒截止时间\n\n以太坊每12秒出一个区块。你的模拟必须在新区块到达之前完成并提交交易。实际上，你只有约200-500毫秒的窗口。\n\n## 总结\n\nMEV模拟是盈利机器人的心脏。通过Revm状态分叉、二分搜索优化和截止时间感知的调度，你可以在紧迫的时间窗口内最大化套利利润。","\u003Ch2 id=\"mev\">MEV模拟流水线\u003C\u002Fh2>\n\u003Cp>MEV模拟是从发现套利机会到提交盈利交易的关键步骤。流水线包括：\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>状态分叉\u003C\u002Fstrong> — 从最新区块克隆EVM状态\u003C\u002Fli>\n\u003Cli>\u003Cstrong>模拟执行\u003C\u002Fstrong> — 在分叉状态上运行套利交易\u003C\u002Fli>\n\u003Cli>\u003Cstrong>优化输入\u003C\u002Fstrong> — 二分搜索找到最优借入金额\u003C\u002Fli>\n\u003Cli>\u003Cstrong>利润计算\u003C\u002Fstrong> — 扣除gas成本后的净利润\u003C\u002Fli>\n\u003Cli>\u003Cstrong>截止时间检查\u003C\u002Fstrong> — 确保在12秒出块时间内完成\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch2 id=\"revm\">使用Revm的状态分叉\u003C\u002Fh2>\n\u003Cp>Revm是一个Rust EVM实现，支持高效的状态分叉：\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-rust\">use revm::{EVM, Database};\n\nfn simulate_arb(\n    db: &amp;mut CacheDB&lt;EmptyDB&gt;,\n    path: &amp;ArbPath,\n    amount_in: U256,\n) -&gt; Result&lt;U256, SimError&gt; {\n    let mut evm = EVM::new();\n    evm.database(db);\n    \n    \u002F\u002F 设置交易参数\n    evm.env.tx.caller = bot_address;\n    evm.env.tx.transact_to = TransactTo::Call(arb_contract);\n    evm.env.tx.data = encode_arb_calldata(path, amount_in);\n    \n    let result = evm.transact_commit()?;\n    \u002F\u002F 计算利润...\n    Ok(profit)\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"\">二分搜索最优输入\u003C\u002Fh2>\n\u003Cp>利润是输入金额的凸函数——太少利润低，太多则滑点过大。二分搜索高效找到最优点：\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-rust\">fn binary_search_optimal(\n    db: &amp;CacheDB&lt;EmptyDB&gt;,\n    path: &amp;ArbPath,\n    min: U256,\n    max: U256,\n) -&gt; U256 {\n    let mut lo = min;\n    let mut hi = max;\n    \n    for _ in 0..40 {  \u002F\u002F 40次迭代足以达到wei精度\n        let mid = (lo + hi) \u002F 2;\n        let profit_mid = simulate_arb(db, path, mid);\n        let profit_next = simulate_arb(db, path, mid + 1);\n        \n        if profit_next &gt; profit_mid {\n            lo = mid;\n        } else {\n            hi = mid;\n        }\n    }\n    \n    lo\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"12\">12秒截止时间\u003C\u002Fh2>\n\u003Cp>以太坊每12秒出一个区块。你的模拟必须在新区块到达之前完成并提交交易。实际上，你只有约200-500毫秒的窗口。\u003C\u002Fp>\n\u003Ch2 id=\"\">总结\u003C\u002Fh2>\n\u003Cp>MEV模拟是盈利机器人的心脏。通过Revm状态分叉、二分搜索优化和截止时间感知的调度，你可以在紧迫的时间窗口内最大化套利利润。\u003C\u002Fp>\n","zh","b0000000-0000-0000-0000-000000000001",true,"2026-03-28T10:44:26.120184Z","Deep EVM #15：MEV模拟——二分搜索、状态分叉和截止时间","构建MEV模拟流水线：Revm状态分叉、二分搜索最优套利输入、截止时间感知调度以及利润计算。","mev模拟 二分搜索",null,"index, follow",[22,27,31,35],{"id":23,"name":24,"slug":25,"created_at":26},"c0000000-0000-0000-0000-000000000016","EVM","evm","2026-03-28T10:44:21.513630Z",{"id":28,"name":29,"slug":30,"created_at":26},"c0000000-0000-0000-0000-000000000020","Gas Optimization","gas-optimization",{"id":32,"name":33,"slug":34,"created_at":26},"c0000000-0000-0000-0000-000000000019","MEV","mev",{"id":36,"name":37,"slug":38,"created_at":26},"c0000000-0000-0000-0000-000000000001","Rust","rust","工程",[41,47,53],{"id":42,"title":43,"slug":44,"excerpt":45,"locale":12,"category_name":39,"published_at":46},"d0000000-0000-0000-0000-000000000668","为什么Bali在2026年正在成为东南亚的影响力科技中心","weishenme-bali-2026-zhengzai-chengwei-dongnanya-yingxiangli-keji-zhongxin","Bali在东南亚创业生态系统中排名第16位。随着Web3构建者、AI可持续发展初创公司和生态旅游科技公司的集中，该岛正在打造区域影响力科技之都的独特定位。","2026-03-28T10:44:48.898750Z",{"id":48,"title":49,"slug":50,"excerpt":51,"locale":12,"category_name":39,"published_at":52},"d0000000-0000-0000-0000-000000000667","ASEAN数据保护拼图：开发者合规清单","asean-shuju-baohu-pintu-kaifazhe-heguiqingdan","七个ASEAN国家现已拥有全面的数据保护法律，各自具有不同的同意模型、本地化要求和处罚结构。这是一份为构建多国应用程序的开发者准备的实用合规清单。","2026-03-28T10:44:48.893467Z",{"id":54,"title":55,"slug":56,"excerpt":57,"locale":12,"category_name":39,"published_at":58},"d0000000-0000-0000-0000-000000000666","Indonesia 290亿美元数字化转型：软件公司的机遇","indonesia-290yi-meiyuan-shuzihua-zhuanxing-ruanjian-gongsi-jiyu","Indonesia IT服务市场预计在2026年达到290.3亿美元，高于2025年的243.7亿美元。云基础设施、AI、电子商务和数据中心正在推动东南亚最快的增长。","2026-03-28T10:44:48.875457Z",{"id":13,"name":60,"slug":61,"bio":62,"photo_url":19,"linkedin":19,"role":63,"created_at":64,"updated_at":64},"Open Soft Team","open-soft-team","The engineering team at Open Soft, building premium software solutions from Bali, Indonesia.","Engineering Team","2026-03-28T08:31:22.226811Z"]