第36章 去中心化交易所与自动做市商¶
补充章节:Decentralized Exchanges and Automated Market Makers(原书出版后的市场发展)
传统金融市场的做市商——无论是纽约证券交易所的专家做市商,还是外汇市场上的银行交易员——都是由人或算法来决定报价、管理库存、承担逆向选择风险的。本章所讨论的自动做市商 (Automated Market Maker, AMM) 代表了一种根本性的范式转变:它以数学公式取代了人类判断,以智能合约 (smart contract) 取代了受信任的中介机构,以区块链的公开账本取代了私有撮合引擎。这一创新既重构了价格发现 (price discovery) 的机制,也向市场微观结构理论提出了全新的挑战。
理解去中心化交易所 (Decentralized Exchange, DEX) 的运作逻辑,对于量化研究者而言至关重要——无论是为了识别其中存在的套利机会,还是为了将流动性提供本身作为一种主动投资策略加以评估。
36.1 去中心化交易所的基本架构¶
去中心化交易所是运行于区块链 (blockchain) 上、以智能合约为核心的交易平台。与中心化交易所 (Centralized Exchange, CEX) 不同,DEX 不持有用户资产,也不存在可信赖的第三方机构负责资产托管或撮合交易。交易的全部逻辑——从订单匹配到资金结算——均由部署在链上的程序代码自动执行,任何人均可公开验证其正确性。
DEX 的设计主要分为两类。
第一类是链上订单薄 DEX (order book DEX),以 dYdX 和 GMX 为代表。这类交易所在逻辑上与传统订单薄市场相同,交易者提交限价单或市价单,撮合引擎依据价格优先、时间优先的原则成交。其核心创新在于将结算环节搬至链上,从而消除了对中心化托管方的依赖。然而,区块链的区块出块时间(以太坊约 12 秒)导致链上订单薄在速度上远不及中心化交易所,限制了高频做市商参与的深度。
第二类是基于自动做市商的 DEX (AMM-based DEX),以 Uniswap 和 Curve 为代表。这类交易所彻底抛弃了订单薄机制,改以数学公式决定价格。任何人都可以向流动性池 (liquidity pool) 注入资金,成为流动性提供者 (Liquidity Provider, LP),无需报价,无需承担人工决策风险;价格由池中代币的储量之比自动决定。
两类设计各有权衡:链上订单薄在价格效率上更接近传统市场,但对做市商的技术要求较高;AMM 降低了参与门槛,但引入了无常损失 (impermanent loss) 这一新型风险,我们将在后续章节详细讨论。
36.2 恒定乘积做市商¶
在所有 AMM 设计中,恒定乘积做市商 (Constant Product Market Maker, CPMM) 是最具影响力的基础模型,由 Uniswap V2 加以推广。
其核心不变量为:
其中 \(x\) 和 \(y\) 分别是流动性池中两种代币的储量,\(k\) 是一个常数。池中的瞬时价格定义为两种代币储量之比:
当交易者向池中输入 \(\Delta x\) 数量的代币 X 时,为维持乘积不变,池中代币 Y 的储量必须减少 \(\Delta y\),满足:
由此可解得:
交易者实际得到的 \(\Delta y\) 少于按初始价格 \(P = y/x\) 计算所应得到的数量。这一差额便是价格冲击 (price impact),又称滑点 (slippage)。\(\Delta x\) 越大,相对于池子规模越显著,滑点就越高。这与传统订单薄市场中"大单消耗流动性"的逻辑完全一致,只是以数学公式的形式加以实现。
:::info 在 Uniswap V2 上进行 ETH/USDC 交易——价格冲击计算示例
假设某 ETH/USDC 流动性池的初始状态如下:
- 代币 X(ETH)储量:\(x = 1{,}000\) ETH
- 代币 Y(USDC)储量:\(y = 2{,}000{,}000\) USDC
- 不变量:\(k = 1{,}000 \times 2{,}000{,}000 = 2 \times 10^9\)
- 初始价格:\(P_0 = 2{,}000{,}000 / 1{,}000 = 2{,}000\) USDC/ETH
交易者 A 买入 10 ETH(小额交易):
需要输入的 USDC 数量:
实际成交均价:\(20{,}202 / 10 \approx 2{,}020\) USDC/ETH,价格冲击约 1.0%。
交易者 B 买入 200 ETH(大额交易):
实际成交均价:\(500{,}000 / 200 = 2{,}500\) USDC/ETH,价格冲击高达 25.0%。
这说明 AMM 的滑点与交易规模相对于池子深度的比率高度非线性相关。对于大额交易,使用流动性聚合器(如 1inch)将订单拆分至多个流动性池往往能显著降低滑点成本。 :::
36.3 无常损失¶
流动性提供者向池中注入资金,以期获得交易手续费收入。然而,AMM 的价格机制决定了,当池中两种代币的外部市场价格发生分化时,LP 的资产价值必然低于其按原始比例持有相同代币所能获得的价值。这一损失被称为无常损失 (Impermanent Loss, IL)。
设流动性提供时代币 X 的价格为 \(P_0\),后来变为 \(P_1\),令价格比率 \(r = P_1 / P_0\)。可以证明,LP 的资产相对于等量持仓 (hold) 的损失比例为:
公式推导。 设 LP 注入流动性时,池中代币 X 的储量为 \(x_0\),代币 Y 的储量为 \(y_0\),初始价格 \(P_0 = y_0 / x_0\),不变量 \(k = x_0 y_0\)。
第一步:计算价格变为 \(P_1\) 后的池中储量。 套利者将把池子推至新价格均衡,此时储量 \((x_1, y_1)\) 须同时满足恒定乘积条件与新价格条件:
两式联立,解得:
第二步:计算 LP 的池中资产价值 \(V_\text{pool}\)。 以代币 Y 计价:
第三步:计算等量持仓价值 \(V_\text{hold}\)。 若 LP 当初选择持币不入池,则仍持有 \(x_0\) 单位代币 X 和 \(y_0\) 单位代币 Y:
第四步:求 IL。 令 \(r = P_1/P_0\):
其中最后一步利用了 \(\dfrac{2\sqrt{P_0 \cdot rP_0}}{P_0 + rP_0} = \dfrac{2\sqrt{r}}{1+r}\)。\(\blacksquare\)
当 \(r = 1\)(价格不变)时,\(\text{IL} = 0\);当价格翻倍(\(r = 2\))时,\(\text{IL} \approx -5.7\%\);当价格涨至四倍(\(r = 4\))时,\(\text{IL} \approx -20.0\%\)。
"无常"一词来源于这样的预期:若价格最终回到初始比率,损失便会消失。然而在实践中,价格往往不会回归,无常损失因此变为永久损失。LP 只有当手续费收入(通常为每笔交易的 0.05%~1%)足以覆盖无常损失时,流动性提供才是合算的。
:::info ETH 价格从 2,000 涨至 6,000 USDC——无常损失计算
假设 LP 在 ETH 价格为 \(P_0 = 2{,}000\) USDC 时向池中提供流动性,注入等值的 ETH 和 USDC:
- 注入:5 ETH + 10,000 USDC,总价值 \(V_0 = 5 \times 2{,}000 + 10{,}000 = 20{,}000\) USDC
随着 ETH 价格升至 \(P_1 = 6{,}000\) USDC,价格比率 \(r = 6{,}000 / 2{,}000 = 3\)。
套利者将会把池中 ETH 的隐含价格推升至与外部市场一致。按恒定乘积公式,此时池中储量变为:
LP 的池中资产市值:\(V_\text{pool} = 2.887 \times 6{,}000 + 17{,}321 \approx 34{,}643\) USDC
若 LP 当初选择持有而不提供流动性:\(V_\text{hold} = 5 \times 6{,}000 + 10{,}000 = 40{,}000\) USDC
无常损失:\(34{,}643 - 40{,}000 = -5{,}357\) USDC,约为持仓价值的 -13.4%
公式验证:\(\text{IL} = \frac{2\sqrt{3}}{1+3} - 1 = \frac{3.464}{4} - 1 \approx -13.4\%\),与数值计算吻合。
这意味着,如果该池在此期间累计手续费收入低于 5,357 USDC,LP 不如直接持有 ETH 和 USDC。 :::
无常损失的存在使得流动性提供成为一种需要主动管理的策略,而非被动的收益来源。LP 必须持续评估费率收益与价格分化风险之间的动态平衡。
36.4 集中流动性:Uniswap V3¶
Uniswap V2 的一个显著缺陷在于资本效率低下:流动性均匀分布在整个价格区间 \((0, +\infty)\),而实际交易仅发生在当前价格附近的狭窄区间内,绝大多数资本处于闲置状态。
Uniswap V3 引入的集中流动性 (Concentrated Liquidity) 机制解决了这一问题。LP 不再向全价格区间提供流动性,而是可以指定一个价格区间 \([P_a, P_b]\),仅在该区间内提供流动性。当市场价格位于区间内时,LP 的资金参与做市;当价格超出区间时,LP 的头寸自动转化为单一代币,停止赚取手续费。
集中流动性带来的主要影响有三点。其一是资本效率大幅提升:将相同资本集中在 $1,900–$2,100 的窄区间,相当于在全区间模型中投入数十倍的资金,对区间内的交易者而言滑点显著降低。其二是主动管理需求:当价格突破 LP 设定的区间后,LP 必须手动调整区间,否则将停止赚取手续费,这在经济逻辑上与传统做市商调整报价类似。其三是无常损失加剧:集中区间内的价格波动对 LP 资产价值的冲击更为剧烈,LP 需要更精确地预测价格区间才能保持盈利。
从微观结构视角来看,集中流动性的 LP 在经济本质上与提交限价单的传统做市商高度相似:两者均在特定价格区间提供流动性,均因价格穿越而遭受逆向选择,均需要主动管理头寸以维持有效做市。这一类比为将传统做市商理论应用于 DEX 分析提供了理论桥梁。
36.5 DEX 的微观结构特征¶
去中心化交易所的运作环境与传统市场存在若干根本性差异,形成了独特的微观结构特征。
区块时间与延迟。 以太坊的区块出块时间约为 12 秒,这意味着链上交易的确认延迟远高于中心化交易所(通常低于 1 毫秒)。这一延迟使得传统高频做市商难以在 DEX 上部署标准策略,但同时也为更慢速的套利策略创造了时间窗口。
燃料费 (gas fee) 作为交易成本。 在以太坊上执行每一笔交易均需支付以太坊原生代币(ETH)作为燃料费,其金额随网络拥堵程度动态波动。燃料费在经济性质上类似于传统市场的交易佣金,但其高度可变性使得小额交易的成本比率远高于大额交易,形成了显著的规模效益。
套利与价格发现。 AMM 本身不会主动更新价格,其价格更新完全依赖外部套利者的行为。当某代币在 Binance 上的价格高于 Uniswap 时,套利者会在 Uniswap 买入该代币,直至两个市场价格趋于一致。这一机制意味着 DEX 的价格发现是被动的,它跟随中心化市场,而非引领中心化市场。
价格预言机 (price oracle) 风险。 许多 DeFi 协议依赖 AMM 的即时价格作为资产估值依据。然而,AMM 价格可以通过在单一区块内执行大额交易来短暂操纵,攻击者利用这一窗口可以欺骗依赖预言机的协议以获取非法利润。时间加权平均价格 (Time-Weighted Average Price, TWAP) 预言机通过取一段时间内的价格均值来降低这一风险,但并不能完全消除。
矿工可提取价值 (Miner Extractable Value, MEV) 是 DEX 微观结构中最具独特性的现象之一,其核心形式将在第37章(区块链市场中的订单流竞争)中详细探讨。在此处,我们仅指出,针对 AMM 用户的三明治攻击 (sandwich attack) 是 MEV 最典型的表现:攻击者在受害者的大额买单之前插入自己的买单(抬高价格),在受害者成交之后立刻卖出(获利),受害者因此承受了更高的滑点。这一攻击完全利用了 AMM 价格机制的可预测性。
主要参考资料¶
- "An Analysis of Uniswap Markets" (Angeris et al., 2019) — AMM的数学分析
- "Automated Market Making and Loss-Versus-Rebalancing" (Milionis et al., 2022) — 无常损失的定量分析
- "SoK: Decentralized Exchanges" (Mohan, 2022) — DEX技术方案的系统综述