第一章:DeFi流动性池基础

什么是AMM自动做市商

AMM,全称 Automated Market Maker,中文叫自动做市商。

说白了,它就是个机器人。这个机器人帮你自动完成交易,不需要你去找买家或者卖家。

传统交易所你肯定知道,比如股票市场。你想买茅台,得有人愿意卖给你。这叫订单簿模式。但AMM不一样,它用的是流动性池。

我记得2019年刚接触Uniswap时,第一反应是:这玩意儿靠谱吗?没有订单簿,价格怎么定?后来我才明白,AMM用了一个非常巧妙的数学公式来解决这个问题。

AMM的核心思想很简单:

  • 把两种代币放进一个池子里
  • 用公式自动计算价格
  • 用户直接跟池子交易,不用等对手盘

你想想看,这多方便。任何时候你想交易,池子都在那里等着你。这就是DeFi的魅力所在。

恒定乘积公式 x*y=k 详解

这个公式是整个AMM的基石。我刚开始学的时候,觉得它就是个初中数学题。但真正用起来,里面的门道可不少。

公式长这样:

x * y = k

其中:

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

举个例子你就明白了。

假设有个ETH/USDC池子:

  • 池子里有10个ETH和20,000个USDC
  • 那么 k = 10 * 20,000 = 200,000
  • ETH的价格 = 20,000 / 10 = 2,000 USDC

现在你想用1个ETH换USDC。交易后:

  • 池子里ETH变成11个
  • 为了保持k不变,USDC需要变成 200,000 / 11 ≈ 18,181.82
  • 所以你得到的USDC = 20,000 - 18,181.82 = 1,818.18

看到了吗?你1个ETH只换到了1,818 USDC,而不是2,000。为什么?

因为你的交易改变了池子的比例。这就是滑点。交易量越大,滑点越明显。

核心要点:恒定乘积公式保证了无论交易量多大,池子永远不会被掏空。价格会随着交易量的增加而指数级上升,理论上你需要无限的资金才能把池子买空。

我在项目中遇到过一个问题:有人问如果k值变了怎么办?嗯,k值确实会变。当流动性提供者存入或提取资金时,k值会重新计算。但在一笔交易过程中,k值是恒定的。

流动性池的运作原理

流动性池,你可以把它想象成一个公共资金池。大家把钱放进去,然后赚取交易手续费。

运作流程大概是这样的:

  1. 创建池子:有人用两种代币创建了一个新的交易对
  2. 添加流动性:其他人按照当前比例存入代币,获得LP代币作为凭证
  3. 交易发生:用户用其中一种代币兑换另一种,支付0.3%手续费
  4. 手续费分配:手续费自动累加到池子里,LP代币持有者按比例分享
  5. 移除流动性:LP代币持有者可以随时赎回自己的代币加上赚到的手续费

个人经验:我建议新手先从稳定币池子开始。比如USDC/DAI这种,价格波动小,不容易遇到无常损失。我曾经一上来就冲ETH/UNI池子,结果行情剧烈波动,亏了不少。

无常损失:你必须知道的坑

说到流动性池,不能不提无常损失。这是每个流动性提供者都要面对的问题。

什么叫无常损失?

简单说,就是你把代币放进池子后,如果代币价格发生变化,你的资产价值可能比单纯持有还要少。

举个例子:

场景 单纯持有 提供流动性 损失
ETH价格翻倍 20,000 USDC 18,284 USDC 8.6%
ETH价格腰斩 5,000 USDC 4,572 USDC 8.6%
ETH价格不变 10,000 USDC 10,000 USDC 0%

为什么会这样?因为AMM的定价机制。当ETH价格上涨时,套利者会从池子里低价买入ETH,导致池子里ETH变少、USDC变多。你取回时,ETH少了,USDC多了。整体价值就低于单纯持有。

避坑指南:我曾经在2021年牛市高峰期把大量资金放进SHIB/ETH池子。当时手续费收益确实高,但SHIB价格暴跌后,无常损失加上币价下跌,双重打击。所以记住:高收益往往伴随着高风险。

流动性池的数学本质

我们来深入看看池子背后的数学逻辑。

假设池子初始状态:

  • x₀ = 100 ETH
  • y₀ = 200,000 USDC
  • k = 100 * 200,000 = 20,000,000
  • 价格 P₀ = y₀ / x₀ = 2,000 USDC/ETH

你存入Δx个ETH,得到Δy个USDC:

(x₀ + Δx) * (y₀ - Δy) = k

Δy = y₀ - k / (x₀ + Δx)

这个公式告诉我们:你得到的代币数量取决于你投入的数量和池子当前的深度。

池子越深(k值越大),同样交易量的滑点就越小。这就是为什么大池子更受交易者欢迎。

实际应用中的注意事项

在实际搭建流动性池时,有几个关键点要注意:

  • 滑点设置:交易时设置合理的滑点容忍度,一般0.5%-1%
  • 手续费收益:年化收益率通常在10%-100%之间,取决于池子活跃度
  • 池子深度:深度越深,交易体验越好,但单个LP的收益占比会降低
  • 审计情况:一定要选择经过审计的协议,我见过太多没审计的土狗项目跑路

嗯,说到这里,我想起一个案例。去年有个朋友在某个新协议上提供流动性,年化承诺300%。结果第三天池子就被黑客攻击了,所有资金归零。所以安全永远是第一位的。

本章知识体系

下面这张图展示了AMM流动性池的核心逻辑:

AMM流动性池核心逻辑 流动性提供者 交易者 流动性池 x * y = k ETH + USDC 存入代币 获得LP代币 支付手续费 执行交易 手续费自动累加到池子 核心公式:x * y = k,交易前后k值保持不变 价格 = y / x,交易量越大滑点越高

这张图把整个流程串起来了。流动性提供者存入代币,交易者支付手续费,池子自动完成交易。整个过程不需要任何中介,完全由智能合约执行。

我个人觉得,理解这张图就掌握了AMM的80%。剩下的就是具体协议的各种变体,比如Curve的稳定币池、Balancer的多代币池,但核心逻辑都是一样的。


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