1. AMM概述:从订单簿到AMM的演变

大家好,我是你们的老朋友。今天咱们聊聊AMM——自动做市商。说实话,这个机制改变了整个DeFi的格局。我2019年刚接触Uniswap时,第一反应是:这玩意儿能行?没有订单簿,没有做市商,光靠一个公式就能做交易?后来我亲自部署了几个池子,才真正体会到它的精妙之处。

1.1 传统订单簿模式

先说说传统交易所怎么玩的。你打开币安或者Coinbase,看到的是密密麻麻的买卖挂单。买方出价,卖方要价,系统帮你撮合。这叫订单簿模式。

举个例子:

  • 张三想用100 USDT买ETH,挂单价格2000 USDT
  • 李四想卖ETH,挂单价格2010 USDT
  • 系统撮合,成交价在2000-2010之间

听起来很合理对吧?但问题来了——谁来提供流动性?

传统交易所里,有专业的做市商。他们用算法和资金,在订单簿两边挂单。赚的是买卖价差。但做市商门槛很高,需要大量资金和复杂策略。普通用户根本玩不了。

核心痛点:订单簿需要持续维护,做市商需要24小时在线。链上环境里,gas费高、速度慢,订单簿模式基本跑不动。

1.2 AMM的诞生

2017年,Vitalik提出了AMM的雏形。但真正让它火起来的,是Uniswap在2018年的上线。

AMM的核心思想很简单:用数学公式代替订单簿。不需要买卖双方挂单,不需要做市商。流动性提供者把资产存入一个池子,交易者直接跟池子交易。

我刚开始做DeFi开发时,总觉得这有点反直觉。你想想看,没有对手盘,价格怎么定?

答案就在公式里。以Uniswap V2为例:

x * y = k

其中x是代币A的数量,y是代币B的数量,k是常数。这个公式保证了池子里的总流动性不变。你买入代币A,池子里A变少,B变多,价格自然上涨。

个人经验:我曾在测试网上部署过Uniswap V2的克隆版。第一次看到交易自动成交时,说实话挺震撼的。没有订单簿,没有撮合引擎,就靠一个公式。这就是链上金融的魅力。

1.3 AMM的核心思想

AMM的核心可以概括为三点:

  1. 流动性池:用户存入资产,形成共享流动性
  2. 定价公式:用数学公式自动计算价格
  3. 无常损失:流动性提供者承担的价格风险

咱们展开说说。

流动性池

流动性池就像一个公共资金池。任何人都可以存入资产,成为流动性提供者(LP)。交易者支付手续费,这些手续费分给LP。

我记得有个项目方问我:为什么用户愿意提供流动性?我说:因为有利可图。Uniswap上,LP可以赚取0.3%的交易手续费。年化收益率有时候能达到20%-50%。当然,也有风险——无常损失。

定价公式

AMM的定价公式有很多种:

协议 公式 特点
Uniswap V2 x * y = k 恒定乘积,简单通用
Uniswap V3 集中流动性 资本效率高,但复杂
Curve 混合公式 稳定币交易,滑点低
Balancer 加权池 多资产,自定义权重

每种公式都有适用场景。我个人习惯用Uniswap V2做原型开发,因为它最简单。但生产环境里,V3的资本效率更高。

无常损失

这是AMM里最容易被忽视的风险。说白了,就是价格波动导致LP的资产价值低于持有不动的情况。

避坑指南:我曾经在2021年牛市里,把ETH和USDT存入Uniswap池子。结果ETH涨了3倍,我取出时发现,如果当时没存池子,收益会高得多。这就是无常损失。记住:波动越大的资产对,无常损失越严重。

1.4 为什么AMM适合链上环境

这个问题我思考了很久。链上环境有三大限制:

  • 高延迟:以太坊出块时间12秒,订单簿根本跑不动
  • 高gas费:频繁挂单撤单,gas费会吃掉利润
  • 缺乏隐私:所有订单公开,容易被抢跑

AMM完美避开了这些问题:

  1. 无需持续维护:池子部署后自动运行,不需要做市商24小时盯盘
  2. 低gas消耗:一次交易只需要一次链上交互,比订单簿的多次挂单省gas
  3. 抗审查:任何人都可以交易,不需要KYC,不需要白名单
  4. 可组合性:AMM池子可以被其他合约调用,这是DeFi乐高的基础

你想想看,如果DeFi用订单簿,那每个DEX都需要自己的做市商团队。小项目根本玩不起。但AMM让任何人都能提供流动性,这就是去中心化的精髓。

核心观点:AMM不是订单簿的替代品,而是链上环境的原生解决方案。它牺牲了价格发现效率,换来了去中心化和可组合性。这个取舍,在区块链世界里是值得的。

1.5 知识体系总览

下面这张图展示了AMM的核心知识结构。我画这张图时,特意把「无常损失」放在显眼位置——因为这是新手最容易踩的坑。

AMM自动做市商 从订单簿到AMM 核心思想 链上环境适配 订单簿模式 AMM诞生 流动性池 定价公式 无常损失 低gas消耗 抗审查 可组合性 核心结论 AMM是链上环境的原生解决方案

这张图把AMM的三大模块串起来了。从左到右:演变历史、核心机制、链上优势。我建议你把这个框架记在脑子里,后面讲具体实现时,你会更容易理解。

学习建议:如果你刚开始学AMM,先别急着看代码。把这张图里的概念搞懂,尤其是「无常损失」和「定价公式」。我见过太多人一上来就写合约,结果连基本概念都没搞清,debug时一脸懵。


专注资料整理