去中心化交易所(DEX)的简介
一、什么是AMM(自动做市商)

自动化做市商(AMM,Automated Market Maker)是去中心化金融(DeFi)中的一种协议,允许数字资产在去中心化交易所(DEX)上自动进行交易,而无需传统的订单簿。AMM使用数学公式来确定资产的价格,并依赖于流动性池(Liquidity Pool)来执行交易。

二、流动性池 (Liquidity Pool)
流动性池(Liquidity Pool)是一个智能合约,它托管着两种或多种代币(通常是成对出现,例如 ETH/DAI),并允许用户在其中进行代币交易。

上图从左往右分分别为:
-
流动性提供者 (LPs)
-
存入资产: 任何人都可以成为LP(Liquidity Provider)。他们必须按照智能合约设定的比例(通常是 50/50 的价值比例)存入两种代币 到流动性池中。
-
获得 LP 代币: 作为回报,流动性提供者会收到流动性代币(LP Token)。这些代币代表了他们在池子中的份额,LP Token 可以随时用来赎回他们在池中存入的原始资产以及积累的收益。
-
-
流动性池 (Liquidity Pool)
-
促进交易: 流动性池充当所有交易的对手方。当用户在Uniswap上进行交易时,他们实际上是在与流动性池进行交易,而不是与其他用户 —— 当你买入代币 A 时,实际上是从池中取出代币 A,并向池中存入等值的代币 B。
-
价格确定: 池中资产的相对比例决定了它们之间的兑换价格(Uniswap使用 x·y=k 恒定积公式)。
-
-
交易者(Traders)
-
付交易费: 每次在池中发生的交易都会向交易者收取一小笔费用(例如 0.3%)。
-
分配给 LP: 这些交易费用会累积在流动性池中,根据整个池中 LP Token 的持有比例奖励给 LP Token 的持有者。
-
三、定价机制:数学公式
最常见最经典的AMM模型是 恒定积(Constant Product),由 Uniswap 首创。
x · y = k(常数)
其中:
-
x:流动性池中代币 A 的数量;
-
y:流动性池中代币 B 的数量;
-
k:一个常数,在交易前后保持不变(忽略交易费用)。
3.1 即时价格(Spot Price / Marginal Price)
即时价格是指在交易发生前的那一刻,流动性池中两种资产的理想理论兑换比率。

Px 和 Py 是一个 token 相对于另一个 token 的价格。
例如,如果池中有 10 ETH 和 1000 DAI:
-
ETH 的价格(以 DAI 计)是 1000 / 10 = 100 DAI。
-
DAI 的价格(以 ETH 计)是 10 / 1000 = 0.01 ETH。
即时价格是无限小交易量下的理论价格,主要用于DEX 界面展示和计算。
3.2 滑动价格(Slippage Price / Execution Price)
滑动价格(或称为执行价格)是你的交易实际成交的平均价格。由于 AMM 的数学公式限制(如x · y = k),当你从池中取走一种资产时,它变得相对稀缺,价格会立即上涨。因此,你为整个交易支付的平均价格会高于交易开始时的即时价格。
假设一个交易者想用 Δx 数量的代币 A 买入 Δy 数量的代币 B:
-
池中代币 A 增加: x -> x + Δx
-
池中代币 B 减少: y -> y - Δy
-
保持常数: (x + Δx) · (y - Δy) = k
通过这个数学约束,系统会自动计算出交易者可以从池中取走多少 Δy。那么,你实际成交的价格(即滑动价格)是你交易的输出总量与输入总量的比率:

滑点(Slippage): 指的是即时价格与你实际支付的滑动价格(平均执行价格)之间的差异。交易量越大,滑点通常越大。
举例,假设一个 ETH/DAI 池中有:
- x = 10 ETH
- y = 10000 DAI
- k = x·y = 100000
现在,你用 1 ETH 去购买 DAI:
-
输入: x 增加到 10 + 1 = 11 ETH。
-
目标 k: 100000
-
计算输出 y': 11 · y' = 100000 得出 y' ≈ 9090.91 DAI
-
实际取出(Δy): 10000 - 9090.91 ≈ 909.09 DAI
|
|
数值
|
对比
|
|
即时价格
|
1 ETH = 1000 DAI
|
交易前的理论价格
|
|
滑动价格
|
1 ETH = 909.09 DAI
|
实际成交的平均价格,低于即时价格
|
你期望用 1 ETH 换 1,000 DAI,但由于你的交易消耗了池中 DAI 的流动性,DAI 的相对价格上涨(ETH 的相对价格下跌),导致你最终只换到了 909.09 DAI,这种差异就是滑点。

在实际交易中,你永远不会以即时价格成交(除非交易量无限趋近于零)。你总是以滑动价格成交,这个价格是你的交易量在 AMM 曲线上移动所产生的平均结果(交易量越大,斜率越大,价格越高)。
四、AMM 的优点与缺点
✅ 优点
| 特点 | 描述 |
| 无需许可 | 任何人都可以随时提供流动性或进行交易。 |
| 持续流动性 | 只要池中有资产,交易就可以随时进行。 |
| 简单高效 | 交易直接通过智能合约执行,无需复杂的订单匹配系统。 |
| 低准入门槛 | 成为做市商(LP)的门槛极低,只需持有两种代币。 |
❌ 缺点
| 特点 | 描述 |
| 滑点 (Slippage) | 对于大额交易,由于资产比例变化剧烈,实际成交价可能与预期价差很大。 |
| 无常损失 (Impermanent Loss, IL) | 当池中代币的价格偏离其外部市场价格时,LP 可能会损失一部分价值。如果他们只是持有资产,价值可能会更高。 |
| 资本效率低 | 在恒定乘积模型中,大部分流动性集中在远离当前市场价的区间,导致资本利用率不高。 |
恒定乘积模型(Uniswap V2)的缺陷,出现了多种 AMM 变体:
| 模型 | 特点 | 常见应用 |
| 集中流动性 (Concentrated Liquidity) | 允许 LP 将流动性集中在特定价格区间,极大地提高了资本效率。 | Uniswap V3 |
| 恒定和做市商 (Constant Sum) | 适用于交易价格几乎保持 1:1 的资产(如稳定币)。通过 x + y = k 极大地减少滑点。 | Curve Finance |
| 曲线型(Hybrid) | 结合了恒定乘积和恒定和的优势,适用于稳定币和低波动资产。 | Balancer |
参考:
Uniswap V2源码:https://github.com/Uniswap/v2-core
浙公网安备 33010602011771号