3Web3 101
第四部分 · 应用层 · 第 12 章

DEX 与 AMM

DEX 是链上的交易所;AMM 是它最常用的撮合方式——没有挂单簿,靠一个数学公式自动定价。

← 返回目录 9 分钟阅读

12. DEX 与 AMM

#一句话理解

DEX 是链上的交易所;AMM 是它最常用的撮合方式——没有挂单簿,靠一个数学公式自动定价

#DEX vs 你熟悉的「股票交易所」

我们先看股票交易所(或者中心化加密交易所,比如币安)是怎么撮合的:

挂单簿(Order Book):买家挂「我愿意以 100 块买 1 股」,卖家挂「我愿意以 101 块卖 1 股」,挂单堆在一起。系统找匹配的对手方撮合。

这套模式跑了几百年,但放到链上有个问题:链上挂单和撤单都要花 Gas。每秒上千笔挂撤单,根本跑不动。

所以 DEX 用了另一套思路:AMM(Automated Market Maker,自动做市商)

#AMM 怎么工作(不烧脑版本)

想象一个自动售货机

机器里装着两种东西:100 个苹果 + 100 个橙子。
机器只认一条规则:苹果数量 × 橙子数量 = 10000(先不考虑手续费)。

你想用橙子换苹果。你塞进去 10 个橙子,机器里就变成 110 个橙子,那苹果数量必须变成 10000 / 110 ≈ 90.9,所以机器吐给你 9.1 个苹果。

你想换更多?塞 50 个橙子进去:橙子变成 150,苹果变成 10000 / 150 ≈ 66.7——一次性能换出 33.3 个苹果。但注意,你换得越多,每个橙子能换到的苹果就越少——这就是「滑点」。

这就是 AMM 的核心:用一个数学公式,根据池子里两种资产的比例自动定价

最经典的公式叫「恒定乘积公式」:

x × y = k

x 是池子里 A 资产的数量,y 是 B 资产的数量,k 是个常数。每次交易都要尽量保持 k 不变,所以一边增加,另一边必然减少——价格就这么算出来了。实际协议会收手续费,所以 k 可能会慢慢变大;这里先抓住定价直觉就够了。

Uniswap V2、PancakeSwap、SushiSwap 这类经典 AMM 都围绕这个思路设计。Uniswap V3 引入「集中流动性」,V4 又加入更多可定制机制,但入门阶段先理解 x*y=k 的直觉就够用。

#流动性池(Liquidity Pool):DEX 的「燃料」

那池子里的「苹果」和「橙子」从哪来?

来自流动性提供者(LP,Liquidity Provider)

LP 是普通用户,他们把自己的资产存进池子,让交易者可以来回兑换。传统 AMM 通常要求两种资产按池子价格等值存入;集中流动性 AMM 可以只在某个价格区间里提供流动性,收益和风险都更复杂。作为回报,每笔交易收的手续费分给所有 LP。

角色 干什么 收益 / 成本
普通交易者 来池子里兑换币 付一点手续费(通常 0.05%~0.3%)
流动性提供者(LP) 把两种资产存进池子 收手续费分成

听上去 LP 是稳赚不赔——但有个重要陷阱无常损失

#无常损失:LP 的隐藏成本

「无常损失(Impermanent Loss,IL)」是 AMM 的一个反直觉特性。

简单说:池子里两种资产的相对价格变了之后,你作为 LP 的资产价值,会比单纯持有这两个资产要少

举个粗略的例子(不严谨,只为直觉):

你存进池子 1 ETH(值 $2000)+ 2000 USDC = 总值 $4000。
后来 ETH 涨到 $4000。

如果你当初没存进去,只是拿着,你现在有 $4000 的 ETH + $2000 的 USDC = $6000
但你存进了池子,因为公式要求 x × y = k 保持不变,套利者会把池子里的 ETH 兑出去,所以你提出来时,ETH 变少了、USDC 变多了。算下来大约 $5660。

你「少赚」了 $340。这就是无常损失。

无常损失的几个特点

  1. 价格波动越大,损失越大
  2. 两种资产价格走势越分歧,损失越大——所以「ETH-USDC」这种波动大的池子风险高,「USDC-USDT」这种稳定币对池子无常损失较小,但仍然有脱锚、合约和流动性风险
  3. 只有当你「真的把币提出来」时才实现损失——所以叫「无常」(只要你不提,就还有机会回到原价)
  4. 手续费收益可能盖过损失,也可能盖不过——这是 LP 真正要算账的地方

新手建议:如果想体验 LP,先在成熟协议的小额稳定币对(USDC-USDT、USDC-DAI 等)池子里试。它们的价格波动通常较小,无常损失相对低,但不是没有风险,收益也低。

#DEX 的几种类型

虽然都叫 DEX,机制上差别不小:

#1. AMM-based DEX(主流)

用 x*y=k 类公式自动定价。

代表:Uniswap(以太坊及多链)、PancakeSwap(BNB Chain)、Raydium(Solana)、Curve(专门做稳定币)

#2. 集中流动性 AMM

Uniswap V3 的创新——LP 可以选「我只在某个价格区间内提供流动性」,资金利用率更高,但操作更复杂。

#3. Order Book DEX

用挂单簿模式的 DEX,通常运行在性能更高的链上。

代表:dYdX(以衍生品为主)、Hyperliquid(自有链)

#4. DEX 聚合器

不自己撮合,而是从多个 DEX 里找最优价格帮你交易。

代表:1inchMatchaJupiter(Solana)

实操中你大概率用聚合器多于直接用单个 DEX——价格通常更好。

#DEX 实操要注意的几件事

#1. 滑点(Slippage)

你下单时显示的价格,和实际成交时的价格,可能有差距。原因:

  • AMM 公式本身,每多换一点价格就动一点
  • 链上交易要等几秒到几分钟才上链,期间价格可能变
  • 还有可能被「抢跑(MEV)」——下面单说

DEX 都会让你设一个「滑点容忍度」,比如 0.5% 或 1%:超过这个差距就交易失败。

新手建议

  • 主流大币种用 0.1%~0.5%
  • 小币种、低流动性币种可能要 1%~3% 才能成交
  • 滑点设太高是危险的——容易被夹(下面讲)

#2. MEV(夹子攻击)

你在 DEX 下了一笔大单。机器人在你之前的同一个区块里抢先买进,把价格推高让你买在高位;你买完之后机器人立刻卖出,赚走差价。整个过程你看到的就是「我设了 3% 滑点,结果真就成交在 3% 那个最坏价位」——这种被「」(sandwich attack)。

防御:

  • 不设过高的滑点
  • MEV 保护功能(很多钱包和聚合器都内置,比如 Flashbots Protect、MEV Blocker)
  • 大额拆小笔交易

#3. 假币 / 仿冒池

任何人都能在 DEX 上创建任何代币的交易池。所以你能在 Uniswap 上看到一大堆名字一样但合约地址完全不同的假币

防御:

  • 永远通过官方网站给的 swap 链接进入,而不是自己搜 token 名
  • 核对合约地址(CoinGecko / CoinMarketCap / 项目官网都能查到)
  • 钱包里 token 显示别只看名字

#4. 流动性 / 滑点对小币的杀伤

低流动性的代币,你买入和卖出会有巨大滑点。常见情况:

  • 你看到一个新项目,市值「只有 100 万美元」,觉得便宜
  • 你冲进去买,花 1000 美元,因为流动性差,只买到价值 700 美元的币
  • 想卖了,同样的滑点再吃一遍,剩 500 美元

这是 meme 币、新发币最常见的杀伤方式。低流动性 = 进出场都要付高额「过路费」

#DEX vs CEX 一图速记

DEX CEX
资产保管 你的钱包 交易所
KYC 协议层通常不需要;部分前端会限制 通常需要
上币门槛 任何人能开池 交易所审核
出问题 自己负责 可能能找客服
流动性 大币好,小币差 大币和很多小币都好
适合 链上原生玩家、想交易长尾资产 新手、大额交易、要法币出入金

第 14 章会更详细对比这两者。

#怎么记这一章

关键点 一句话
DEX 链上交易所,靠合约撮合
AMM 用 x*y=k 类公式自动定价
流动性池 LP 存进两种币,给交易者兑换
无常损失 价格分歧后,LP 比单纯持有少赚
滑点 下单价和成交价的差距,设太高会被夹
仿冒币 一定核对合约地址,别只看名字

#接下来读什么


这一章如果只能记住一句话: DEX 没有挂单簿,用数学公式自动定价;LP 看起来稳赚,但有无常损失;滑点和 MEV 是新手最容易踩的坑。