一、AMM原理:从订单簿到自动做市商,为什么Uniswap选择了x*y=k?
大家好,我是你们的DeFi讲师。今天我们来聊聊AMM最核心的那个公式——x*y=k。
说实话,我第一次看到这个公式时,心里想的是:「就这?一个反比例函数就能撑起几百亿美金的流动性市场?」
嗯,后来我被打脸了。而且打得很舒服。
1.1 传统订单簿:中心化交易所的「老办法」
在讲AMM之前,我们先看看传统交易所是怎么玩的。
你去Binance或者Coinbase,看到的是这样的界面:
买盘(Bids) 卖盘(Asks)
价格 数量 价格 数量
100.1 100 100.2 200
100.0 500 100.3 150
99.9 300 100.4 80
这就是订单簿(Order Book)。买方挂买单,卖方挂卖单。系统帮你撮合。
但这里有个问题——流动性依赖做市商。没人挂单,你就买不到币。我在2018年做OTC交易时,经常遇到深度不足的情况,一单砸下去滑点能到5%。
更麻烦的是,订单簿需要「连续报价」。做市商得24小时盯着盘,手动调价。这活儿,人干不了,只能上量化机器人。
所以,订单簿模式天然有门槛。它适合专业玩家,但不适合普通用户。
1.2 自动做市商:Uniswap的「反直觉」设计
Uniswap在2018年提出了一个完全不同的思路:不要订单簿,不要做市商,用公式定价。
这个公式就是:
x * y = k
其中:
x= 池子中代币A的数量y= 池子中代币B的数量k= 常数(流动性总量)
什么意思呢?
假设一个ETH/USDC池子,里面有10个ETH和20000个USDC。那么:
x = 10 ETH
y = 20000 USDC
k = 10 * 20000 = 200000
现在你想用USDC买ETH。你往池子里塞了2000 USDC,池子的USDC变成22000。为了保持k=200000不变,ETH的数量必须减少:
新ETH数量 = 200000 / 22000 ≈ 9.09 ETH
你得到的ETH = 10 - 9.09 = 0.91 ETH
你看,价格就这样算出来了。不需要任何人报价,不需要任何订单簿。
核心洞察:AMM把「价格发现」变成了「公式计算」。流动性提供者只需要把币放进池子,剩下的交给数学。
1.3 为什么是x*y=k,而不是别的公式?
你可能会问:为什么偏偏选这个反比例函数?
我个人觉得,Uniswap团队选它有三个原因:
- 数学简单——加减乘除就能算,Gas费低。我在以太坊上部署过合约,一个复杂的幂运算能吃掉你几万Gas,而x*y=k只需要一次乘法和一次除法。
- 价格连续——无论交易量多大,价格都不会跳变。你买0.1个ETH和买1个ETH,价格是平滑变化的。
- 流动性永不枯竭——理论上,只要池子里还有币,你就能交易。哪怕只剩0.0001个ETH,公式也能算出价格。
但这里有个坑——滑点问题。因为公式是反比例函数,交易量越大,滑点越高。我曾在2020年Uniswap V2上做过一笔大额交易,滑点直接吃掉了我3%的资金。嗯,从那以后我再也不在V2上做市了。
避坑指南:如果你在Uniswap V2上做市,一定要关注「池子深度」。深度越浅,滑点越大。我建议至少看池子的总锁仓量(TVL)是否超过你交易额的100倍。
1.4 从订单簿到AMM:一场「去中介化」的革命
我们来对比一下两种模式:
| 维度 | 订单簿(CEX) | AMM(Uniswap) |
|---|---|---|
| 定价方式 | 买卖双方竞价 | 公式自动计算 |
| 流动性来源 | 做市商/用户挂单 | LP存入资金池 |
| 交易对手 | 其他用户 | 智能合约(资金池) |
| 滑点控制 | 深度好时滑点低 | 深度越浅滑点越高 |
| 上币门槛 | 需要交易所审核 | 任何人都可以创建池子 |
| Gas成本 | 低(链下撮合) | 高(链上计算) |
说白了,AMM牺牲了「效率」换来了「去中心化」。你不需要信任任何做市商,不需要担心交易所拔网线。只要合约还在,你就能交易。
我记得2020年「312暴跌」时,中心化交易所纷纷宕机,但Uniswap一直在线。那一次,很多人第一次意识到AMM的价值。
1.5 核心逻辑:一张图看懂AMM
下面我用SVG画了一张图,展示AMM的核心工作流程:
1.6 为什么这个公式「刚刚好」?
你可能觉得x*y=k太简单了。但恰恰是这种简单,让它成为DeFi的基石。
我见过很多项目尝试用更复杂的公式——比如带权重的、带动态参数的、甚至用机器学习定价的。结果呢?要么Gas费高到没人用,要么参数调不好导致池子被套利者抽干。
Uniswap的聪明之处在于:它把复杂留给了数学,把简单留给了用户。
你不需要理解凸优化、不需要懂做市策略。你只需要知道:往池子里放两种币,然后收手续费。就这么简单。
⚠️ 注意:虽然公式简单,但「无常损失」是真实存在的。当外部市场价格剧烈波动时,LP可能会亏钱。这部分我们会在后面的章节详细讲。
1.7 小结
好了,我们来总结一下今天的内容:
- 传统订单簿依赖做市商,有门槛、有中心化风险
- AMM用
x*y=k自动定价,去掉了中间人 - 这个公式简单、连续、永不枯竭,但滑点随交易量增大而增加
- Uniswap的选择不是「最优解」,而是「最实用的解」
我个人觉得,AMM最大的贡献不是技术上的创新,而是让普通人也能参与做市。以前做市商是华尔街的专利,现在你只要有一个钱包,就能成为全球流动性网络的一部分。
下一章,我们会深入代码层面,看看Uniswap V2的合约是怎么实现这个公式的。到时候我会带你们一行一行地读源码。
公众号:蓝海资料掘金营,微信deep3321