套利机器人军备竞赛:我们在生产环境运行 FlashArb 的经验教训
Source: Dev.to
让我告诉你一些别人不会说的事
在 2025 年运行一个盈利的套利机器人,就像同时与一千位大师下棋一样。
我已经运营生产环境的套利交易平台超过一年了。它使用闪电贷在多个 DEX 上执行盈利交易,而我也学到了一些 YouTube 上“被动收入”人群 conveniently 忘记提及的残酷教训。
这不是理论。这是你的代码在主网碰到的真实情况。
什么是闪电贷套利(给新手的解释)
- 简单示例 – 在 Uniswap 上,1 ETH = 3000 美元。在 SushiSwap 上,你可以把同样的 1 ETH 卖到 3010 美元。免费钱,对吧?
- 问题所在 – 你需要 ETH 来买 ETH。经典的先有鸡还是先有蛋。
- 解决方案 – 闪电贷让你在 零抵押 的情况下借入巨额加密资产(我们说的是几百万),只要在同一笔交易中归还即可。如果归还失败,整个交易会像从未发生一样回滚。
典型流程
- 借入 1,000 ETH(闪电贷)
- 在 DEX A 上低价买入
- 在 DEX B 上高价卖出
- 偿还贷款 + 手续费
- 留下利润
听起来很容易。其实并非如此。
Source: …
他们关于套利机器人编造的三大谎言
谎言 #1 – “机会无处不在”
现实情况: 在我们第一个月里,我们扫描了 240 万 潜在的套利机会。扣除 gas 费用后,真正有利润的有多少?
成功率: 0.006 %。其余的都被以下因素吞噬:
- Gas 费用(最大的杀手)
- 滑点(交易在等待确认期间价格已变动)
- 前置 MEV 机器人抢先执行你的交易
- 失败的交易仍然会消耗 gas
机会确实存在,但它们消失得比你眨眼还快——毫秒级,而不是分钟级。
谎言 #2 – “零风险”
| 技术视角 | 实际视角 | |
|---|---|---|
| 是真的吗? | 如果套利失败,闪电贷会回滚,你什么也不损失。 | 失败的交易仍然要付 gas 费。 |
| 现实情况 | – | 在高峰期,我们为回滚的交易支付了 200 美元以上 的 gas 费。 |
| 最糟月份 | – | 为失败的交易花费了 8,400 美元 的 gas——这是一笔硬核主网的学费。 |
谎言 #3 – “直接复制别人的 GitHub 代码”
我们审查了 50+ 个 GitHub 上的开源套利机器人。结果如下:
| 结果 | 百分比 |
|---|---|
| 完全不可用(过时、依赖损坏) | 70 % |
| 可用但立刻无利可图(gas 超过利润) | 25 % |
| 可用但在几秒内被 MEV 机器人抢先 | 4 % |
| 可能真的可用,但你很难弄清楚原因 | 1 % |
真正能赚钱的机器人?没有人会把它们开源。
实际有效的方案:生产就绪的技术栈
1. 大规模多DEX监控
我们监控以下平台的价格差异:
- Uniswap V2/V3
- SushiSwap
- Balancer
- Curve
- PancakeSwap (BSC)
关键: 我们不直接查询DEX。我们运行自己的归档节点并在本地索引所有数据。查询公共API太慢——等到数据返回时,机会已经消失。
// Simplified version of our price monitoring
pub struct PriceOracle {
pools: HashMap<PoolId, PoolInfo>,
price_cache: Arc<Mutex<HashMap<PoolId, f64>>>,
}
impl PriceOracle {
pub async fn find_arbitrage(&self) -> Vec<ArbOpportunity> {
let mut opportunities = Vec::new();
// Check all pool pairs in parallel
for (pool_a, pool_b) in self.get_pool_pairs() {
if let Some(arb) = self.calculate_profit(pool_a, pool_b).await {
if arb.profit_after_gas() > MIN_PROFIT_THRESHOLD {
opportunities.push(arb);
}
}
}
opportunities
}
}
2. Gas 优化至关重要
| 指标 | 我们的机器人 | 竞争对手 |
|---|---|---|
| 每笔交易平均 gas | 180 k – 220 k units | 350 k – 500 k units |
| 在 50 gwei 时的节省 | $5‑10 per tx | – |
我们是如何实现的
- 自定义 Solidity 合约,手动优化至字节码层面
- 在单笔交易中批量执行多个 swap
- 智能 gas 价格预测(我们不会盲目使用 “fast” gas)
3. MEV 防护问题
即使你发现了有利可图的机会,也可能被他人复制你的交易并进行抢先交易。这就是 MEV(最大可提取价值),简直是噩梦。
部分解决方案
- 使用私有 mempool(Flashbots、Eden Network)
- 直接向验证者提交捆绑交易
- 在必要时偶尔接受损失并使用公共 mempool
即使有这些防护,我们仍然会被抢先交易 ≈15 % 的时间。这现在已成为游戏的一部分。
实际数字(情况变糟)
| 指标 | 数值 |
|---|---|
| 已提交的交易 | 1,247 |
| 成功的套利 | 892 (71.5 %) |
| 失败 / 回滚 | 355 (28.5 %) |
| 毛利润 | $47,320 |
| 燃气费用(成功交易) | $12,180 |
| 燃气费用(失败交易) | $8,400 |
| 基础设施成本(节点、服务器、监控) | $2,100 |
| 净利润 | $24,640 |
这大约是 $8,213 / 月——听起来很不错,直到你意识到:
- 有两名工程师全职维护
- 每当去中心化交易所更新合约时,代码就会出错
- 一个漏洞就能在几秒钟内耗尽你的钱包
- 你正与资源远超你的团队竞争
竞争永无止境
是什么导致大多数套利机器人失效?自满。今天有效的策略明天可能就失效了。
- 更多机器人进入市场 → 你的优势被套利掉
- DEX 升级路由 → 昨天存在的机会消失
- Gas 费用波动 → 一周前还能盈利的,现在可能亏损
如果你想继续在这个游戏中生存,就必须把套利视为持续的工程问题,而不是一次性设定后忘记的脚本。
- 价格剧烈波动 – 你的盈利阈值每天都在变化
- MEV 策略演进 – 领先者变得更聪明
我们每 2–3 周更新一次 FlashArb 的策略。如果你不持续适应,就会被淘汰。
是否应该构建套利机器人?
诚实的答案: 可能不应该。
如果你在想“我只要启动一个机器人就能获得被动收入”,你会亏钱。YouTube 教程和 Medium 文章让它听起来很容易。其实并非如此。
你应该构建的情况:
- 你想深入了解 DeFi 的实际运作方式。
- 你有资本可以用于学习(燃气费是昂贵的教训)。
- 你熟悉 Rust/Solidity 和异步编程。
- 你可以投入大量时间进行监控和维护。
- 你明白自己在与资金充足的团队竞争。
你不应该构建的情况:
- 你认为它是“被动收入”(笑)。
- 你没有至少 $5 k 的燃气费损失预算。