2. 套利核心概念:AMM机制、滑点与无常损失、Gas费与MEV、闪电贷原理
各位同学,欢迎来到套利策略的核心知识模块。这一章的内容,说白了就是套利交易的「内功心法」。你光知道怎么买怎么卖没用,得先搞懂DeFi世界里那些底层机制是怎么运作的。
我个人习惯把这一章叫做「套利四件套」——AMM、滑点与无常损失、Gas与MEV、闪电贷。这四个概念你吃透了,后面的策略才能落地。好,我们一个一个来拆。
2.1 AMM机制:自动做市商的核心逻辑
AMM,全称Automated Market Maker,自动做市商。它跟传统订单簿模式完全不同。传统交易所里,你得有人挂买单、有人挂卖单,才能成交。AMM呢?它用了一个数学公式来定价。
最经典的,就是Uniswap的恒定乘积公式:
x * y = k
其中x是代币A的储备量,y是代币B的储备量,k是常数。你往池子里塞一个代币A,就能取出对应数量的代币B。价格由公式自动算出。
举个例子:一个ETH/USDC池,有100个ETH和200,000 USDC。那么k = 100 * 200,000 = 20,000,000。你想用1个ETH换USDC,池子里ETH变成101个,新的USDC数量就是20,000,000 / 101 ≈ 198,019.8。你拿到的USDC就是200,000 - 198,019.8 = 1,980.2。
嗯,这里要注意:你交易的数量越大,对池子的冲击就越大,拿到的价格就越差。这就是滑点的来源,我们后面会细说。
核心要点:AMM的定价不是靠「市场价」,而是靠「池子里的资产比例」。比例变了,价格就变了。
我在项目中遇到过一个问题:有人以为AMM的价格就是「公允价格」,其实不是。AMM价格只反映池子内部的供需关系。如果外部市场价格变了,套利者就会进来搬砖,把AMM价格拉回正常水平。所以,AMM的「价格发现」功能,其实是套利者赋予的。
2.2 滑点与无常损失
这两个概念,新手特别容易搞混。我当年也踩过坑,咱们一个一个说清楚。
2.4.1 滑点(Slippage)
滑点,就是你下单时预期的成交价,和实际成交价之间的差值。为什么会这样?因为AMM的公式是非线性的。你交易量越大,价格滑得越厉害。
滑点的计算公式:
滑点 = (预期价格 - 实际价格) / 预期价格 * 100%
举个例子:你看到Uniswap上ETH/USDC的价格是2000 USDC。你想买10个ETH,按说应该花20,000 USDC。但实际成交时,因为你的买单推高了价格,你可能花了20,500 USDC。滑点就是(2000 - 2050) / 2000 = -2.5%。
实战技巧:我个人习惯把滑点容忍度设置在0.5%-1%之间。太高容易被MEV机器人抢跑,太低又容易交易失败。具体数值要看池子的深度。
2.4.2 无常损失(Impermanent Loss)
无常损失,是流动性提供者(LP)特有的风险。你往池子里存了两种代币,当它们的相对价格发生变化时,你的资产价值会比「单纯持有」要少。这个差额,就是无常损失。
为什么叫「无常」?因为只要价格还没回到存入时的水平,这个损失就是「暂时的」。但如果你在价格偏离时撤出流动性,损失就「永久」了。
无常损失的计算公式:
IL = 2 * sqrt(r) / (1 + r) - 1
其中r是价格变化倍数。比如ETH涨了2倍,r=2,IL ≈ 5.7%。涨了4倍,IL ≈ 20%。
| 价格变化倍数 | 无常损失 |
|---|---|
| 1.25x | ~0.6% |
| 1.5x | ~2.0% |
| 2x | ~5.7% |
| 3x | ~13.4% |
| 4x | ~20.0% |
避坑指南:我曾经在2021年牛市里,给一个ETH/USDC池提供了流动性。ETH从2000涨到4000,我赚了手续费,但一算账,无常损失吃掉了大部分利润。后来我学乖了——做LP之前,先算算IL能不能被手续费覆盖。
2.3 Gas费与MEV
这两个东西,是链上套利的「隐形杀手」。你策略再好,Gas费没算对,MEV没防住,照样亏钱。
2.3.1 Gas费
Gas费,就是你给矿工(或验证者)的「小费」。在以太坊上,每笔交易都要消耗Gas。Gas费 = Gas Used * Gas Price。
Gas Used是交易消耗的计算量,跟交易复杂度有关。简单的ETH转账消耗21,000 Gas,复杂的闪电贷交易可能消耗500,000甚至更多。
Gas Price是你愿意为每单位Gas支付的价格,单位是Gwei(1 Gwei = 10^-9 ETH)。Gas Price越高,你的交易越容易被优先打包。
关键点:套利交易的Gas费,必须从利润里扣除。我见过太多人只看「毛利」,不看「净利」。一笔套利赚了50美元,Gas费花了60美元,白忙活。
2.3.2 MEV(矿工可提取价值)
MEV,全称Miner Extractable Value。说白了,就是矿工(或验证者)通过调整交易顺序,从用户身上「薅」走的钱。
最常见的MEV攻击方式:
- 三明治攻击:MEV机器人监控到你的大额买单,先自己买一笔推高价格,等你的买单成交后,再卖出获利。
- 抢先交易:机器人看到你的套利交易,复制你的策略,用更高的Gas费抢在你前面执行。
- 尾随交易:机器人等你的交易执行后,再跟着做一笔,吃剩下的利润。
你想想看,你辛辛苦苦找到的套利机会,结果被机器人截胡了,气不气?
防MEV技巧:我个人习惯用Flashbots的「私有交易池」来提交交易。这样你的交易不会被公开mempool看到,MEV机器人就没办法抢跑了。另外,设置合理的滑点容忍度也很重要。
2.4 闪电贷原理
闪电贷,是DeFi世界里最酷的发明之一。它允许你「无抵押」借出一笔资金,只要在同一笔交易里还回去就行。如果还不上,整个交易回滚,就像什么都没发生过。
闪电贷的核心逻辑:
- 从借贷协议(如Aave、dYdX)借出资金
- 用这笔资金执行套利操作(比如在DEX之间搬砖)
- 把本金加利息还回借贷协议
- 利润归你,交易原子执行
为什么叫「闪电」?因为整个过程发生在一个区块内,时间极短,就像闪电一样。
一个典型的闪电贷套利代码(伪代码):
// 1. 从Aave借出1000 ETH
uint256 amount = 1000 ether;
aave.borrow(amount);
// 2. 在Uniswap上低价买入代币X
uint256 tokenX = uniswap.swap(amount, address(ETH), address(X));
// 3. 在Sushiswap上高价卖出代币X
uint256 ethBack = sushiswap.swap(tokenX, address(X), address(ETH));
// 4. 还回1000 ETH + 利息
aave.repay(amount + fee);
// 5. 利润 = ethBack - amount - fee
profit = ethBack - amount - fee;
核心要点:闪电贷让你「空手套白狼」。你不需要自己有本金,只需要找到套利机会,写一个智能合约,就能赚差价。当然,前提是你的合约逻辑不能出错,否则整个交易回滚,你一分钱也赚不到。
我在项目中遇到过一个问题:有人以为闪电贷是「无风险」的。其实不是。闪电贷的风险在于:
- 合约漏洞:你的套利合约如果有bug,可能被攻击者利用
- Gas费浪费:如果套利失败,Gas费照付不误
- MEV攻击:你的闪电贷交易也可能被MEV机器人盯上
避坑指南:我曾经写过一个闪电贷套利合约,测试网跑得好好的,一上主网就失败。查了半天,发现是滑点设置太严格,导致交易回滚。后来我把滑点容忍度从0.1%调到了0.5%,就正常了。嗯,细节决定成败。
知识体系总览
下面这张图,是我自己画的套利核心概念关系图。你看完应该能明白,这四个概念是怎么串在一起的。
好,这一章的内容就到这里。四个核心概念,你记住了吗?AMM是定价基础,滑点和无常损失是成本,Gas和MEV是执行障碍,闪电贷是资金杠杆。把这四个东西吃透了,后面的策略章节你才能听得懂。