一、AMM与流动性供给概述:从订单簿到AMM的演变

大家好,我是你们的老朋友。今天开始咱们聊AMM,也就是自动化做市商。说实话,这个领域我踩过不少坑,也赚过一些钱。今天先带大家把基础打牢。

1.1 从订单簿到AMM:一场交易范式的革命

传统交易所用的是订单簿模型。你挂买单,我挂卖单,系统撮合。这模式在传统金融里跑了几百年,没啥大毛病。但到了区块链上,问题就来了——链上确认慢、Gas费高,订单簿根本跑不动。

我记得2020年刚接触DeFi时,在某个订单簿DEX上挂了一笔单,等了一个小时才成交。Gas费花了我0.1个ETH,结果交易对价还滑点了。那感觉,就像你去菜市场买菜,付了打车费结果发现菜价涨了。

AMM的出现彻底改变了游戏规则。它不需要买卖双方同时在场。你只需要把资产存入一个池子,系统自动给你定价。说白了,AMM就是一个机器人做市商,24小时不休息,永远给你报价。

核心区别一句话总结:订单簿是「人找人」,AMM是「钱找钱」。流动性池子里的资金随时待命,交易者来了直接成交。

1.2 恒定乘积公式:x * y = k 的魔法

AMM最核心的公式就是 x * y = k。这个公式简单到令人发指,但背后藏着大智慧。

咱们拆开看:

  • x:池子里代币A的数量
  • y:池子里代币B的数量
  • k:一个常数,交易前后保持不变

举个例子。假设一个ETH/USDC池子,里面有10个ETH和20000个USDC。那么k = 10 * 20000 = 200000。

现在你想用1个ETH换USDC。交易后池子里ETH变成11个,要保持k不变,USDC就得变成200000 / 11 ≈ 18181.82。所以你拿到的USDC是20000 - 18181.82 = 1818.18个。

嗯,这里要注意。你实际拿到的不是2000个USDC,而是1818个。为什么?因为你的交易改变了池子的比例,价格发生了滑点。

// 恒定乘积公式的简单实现
function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) public pure returns (uint amountOut) {
    require(amountIn > 0, 'Insufficient input amount');
    uint amountInWithFee = amountIn * 997; // 0.3% 手续费
    uint numerator = amountInWithFee * reserveOut;
    uint denominator = reserveIn * 1000 + amountInWithFee;
    amountOut = numerator / denominator;
}

我在做第一个AMM项目时,犯过一个低级错误——忘了加手续费。结果池子被套利机器人薅羊毛薅到崩溃。后来我学乖了,每次部署前先跑一遍模拟交易。

个人经验:写AMM合约时,一定要先算好精度。Solidity没有浮点数,所有计算都得用整数。我习惯把价格精度设到1e18,这样能避免很多精度损失的问题。

1.3 流动性池的基本结构

一个标准的AMM流动性池,其实就三个核心组件:

  1. 代币储备:两种代币的余额,存在合约里
  2. 流动性凭证:LP Token,代表你在池子里的份额
  3. 手续费机制:每笔交易收0.3%,分给LP

你想想看,你往池子里存了1个ETH和2000个USDC,合约会给你铸造一些LP Token。这些Token就是你流动性的凭证。别人交易产生的手续费,会按比例分给你。

我见过不少新手,以为存进去就完事了。其实不是。池子里的比例会随着交易变化。如果你存的时候是1:2000,过了一周可能变成1:2500。这时候你取出来,可能ETH变少了,USDC变多了。

避坑指南:我曾经在Uniswap V2上存了一笔ETH/DAI的流动性,当时觉得稳赚不赔。结果遇到312暴跌,ETH价格腰斩,我取出来时发现ETH少了30%,DAI多了不少。这就是无常损失。记住,做LP不是无风险的。

1.4 做市商角色的转变

传统做市商是什么人?是那些有大量资金、有专业算法、能同时挂几百个订单的机构。他们赚的是买卖价差,普通人根本玩不了。

AMM把做市商的门槛降到了零。你只要有闲钱,往池子里一存,你就是做市商。系统自动帮你报价、自动帮你成交、自动帮你收手续费。

但这里有个关键点:AMM做市商是被动的。你不能选择什么时候买、什么时候卖。你的资金24小时都在池子里,别人随时可以交易。这意味着你承担了所有市场波动的风险。

对比维度 传统做市商 AMM流动性提供者
资金门槛 极高(百万美元起) 极低(几美元即可)
定价权 主动报价 被动接受公式定价
风险控制 可随时撤单 资金锁定在池中
收益来源 买卖价差 交易手续费 + 流动性挖矿

我个人觉得,AMM最大的贡献不是技术,而是让普通人也能参与做市。以前做市商是华尔街的专利,现在你我在家就能干。当然,赚不赚钱另说。

1.5 本章知识体系总览

下面这张图是我自己画的,把AMM的核心逻辑串起来了。你看一遍应该就能理解整个框架。

AMM与流动性供给核心逻辑 传统订单簿模型 买卖双方撮合 演变 AMM自动化做市 公式驱动定价 x * y = k 恒定乘积公式 流动性池结构 代币储备 + LP Token 手续费机制 做市商角色转变 传统:专业机构 → 主动报价 → 高门槛 AMM:普通用户 → 被动做市 → 零门槛 ⚠ 关键风险:无常损失、价格滑点、合约漏洞 做LP不是无风险套利,需要理解底层机制

这张图把今天讲的内容串起来了。从订单簿到AMM,核心是x*y=k这个公式。流动性池的结构很简单,但做市商的角色发生了根本变化。记住这些,后面几章咱们才能深入聊策略。

本章核心要点:

  • AMM解决了链上订单簿效率低的问题
  • x*y=k是AMM的定价基础,交易会改变池子比例
  • 流动性池由代币储备、LP Token、手续费三部分组成
  • 做市商从专业机构变成了普通用户,但风险也随之转移

好了,第一章就聊到这儿。内容不多,但都是基础中的基础。下一章咱们聊流动性供给的收益模型,到时候我会分享一些实战数据。


公众号:蓝海资料掘金营,微信deep3321