BTC 68,420 ▲ +2.34% ETH 3,542 ▲ +1.08% SOL 168.4 ▼ -0.82% BNB 604.1 ▲ +0.46% USDT 1.000 ▲ +0.01% ARB 0.842 ▼ -1.24% MATIC 0.523 ▲ +3.11% AVAX 34.62 ▼ -0.55% BTC 68,420 ▲ +2.34% ETH 3,542 ▲ +1.08% SOL 168.4 ▼ -0.82% BNB 604.1 ▲ +0.46% USDT 1.000 ▲ +0.01% ARB 0.842 ▼ -1.24% MATIC 0.523 ▲ +3.11% AVAX 34.62 ▼ -0.55%
DEXDeFi跨链兑换入门

什么是自动做市商(AMM)?DEX 没有对手盘也能换币的原理

去中心化交易所没有买卖双方撮合,靠的是自动做市商和流动性池。用恒定乘积公式和具体例子讲清楚 DEX 如何定价、为什么大额会产生价格冲击、套利如何锚定价格,以及聚合器怎么帮你换得更划算。

编辑部 |

DEX 上换币时,你可能好奇过一件事:中心化交易所要有人挂买单、有人挂卖单才能成交,可 DEX 上似乎随时都能换,哪怕是刚上线、根本没几个人买卖的新币。另一边到底是谁在和你交易?

答案是:没有「另一边的人」,你是在和一个池子做兑换。支撑这套机制的,就是自动做市商(AMM,Automated Market Maker)。它是几乎所有主流 DEX 的底层引擎,也是理解滑点、无常损失、跨链兑换的共同基础。这篇文章把它讲透。

传统交易所的死穴:没有对手盘就没法成交

中心化交易所用的是订单簿(Order Book):买家挂出「我愿意用 2000 买 1 个 ETH」,卖家挂出「我愿意用 2000 卖 1 个 ETH」,价格撮合上了,成交。

这套机制的前提是两边都有人。对 BTC、ETH 这种交易活跃的币没问题,但换成一个刚诞生、还没什么人关注的代币呢?没人挂单,你的订单就一直挂着,换不出去。这正是早期链上交易的痛点。

AMM 的答案:和池子交易,而不是和人

AMM 换了个思路:不撮合买卖双方,而是让大家都和一个「资金池」交易

具体来说,一个交易对(比如 ETH/USDT)对应一个流动性池,里面同时存着两种币。想用 USDT 换 ETH,你就把 USDT 丢进池子、从池子里取走对应的 ETH——全程不需要另一个人在同一时刻想做相反的交易

那池子里的币从哪来?来自流动性提供者(LP):任何人都可以把两种币按当前价值等比例存进池子,让别人有币可换,作为回报,别人交易时付的手续费会按份额分给 LP(这背后的收益与风险,见无常损失)。

于是链上交易的两个角色就清楚了:交易者从池子换币、付手续费;LP给池子提供弹药、收手续费。AMM 就是自动撮合这一切的那套公式。

价格从哪来:恒定乘积公式 x × y = k

没有买卖双方报价,价格由谁决定?答案是一个数学公式。最经典的 AMM 用的是恒定乘积公式

x × y = k

其中 x 和 y 是池子里两种币的数量,k 是一个恒定不变的乘积。交易前后,k 保持不变——这就是定价的全部秘密。

举个例子。假设一个池子里有 100 ETH200,000 USDT

  • k = 100 × 200,000 = 20,000,000
  • 当前价格 = 200,000 ÷ 100 = 每个 ETH 值 2000 USDT

价格就是两种币数量的比值。当有人来换币,改变了两边的数量,比值就变了,价格随之变动。池子自己就是报价机,不需要任何人挂单。

为什么大额交易会有「价格冲击」

这是 AMM 最反直觉、也最重要的一点。既然要保持 x × y = k 不变,那你换得越多,价格就被推得越偏。看两笔交易的对比(同一个 100 ETH / 200,000 USDT 的池子,暂时忽略手续费):

小额:用 2000 USDT 买 ETH

  • 池中 USDT 变成 202,000,为保持 k 不变,ETH 数量 = 20,000,000 ÷ 202,000 ≈ 99.01
  • 你换到 100 − 99.01 = 约 0.99 个 ETH
  • 实际成交价 ≈ 2000 ÷ 0.99 ≈ 2020,比标价 2000 只贵了约 1%

大额:用 40,000 USDT 买 ETH

  • 池中 USDT 变成 240,000,ETH 数量 = 20,000,000 ÷ 240,000 ≈ 83.33
  • 你换到 100 − 83.33 = 约 16.67 个 ETH
  • 实际成交价 ≈ 40,000 ÷ 16.67 ≈ 2400,比标价贵了整整 20%

同一个池子,小单几乎无损,大单却要付出 20% 的溢价——这就是价格冲击(Price Impact)。它和你交易的金额相对池子大小成正比:池子越浅、你换得越多,价格被你自己推得越离谱。这也正是滑点的主要来源之一,以及为什么大额换币要分批、要挑流动性深的池子。

池子的价格怎么和外部市场保持一致:套利

你可能会问:池子只按自己的公式算价,万一它算出来的 ETH 价格和币安上差很多怎么办?

答案是套利者会自动把它拉回来。如果池子里 ETH 便宜了,就有人来池子低价买 ETH、拿到别处高价卖,一买一卖之间不断改变池子比例,直到池内价格和外部市场基本一致为止。这个持续的套利过程让 AMM 的报价始终贴近真实市场价——代价是由 LP 承担的,这正是无常损失产生的根源

聚合器:一次交易,在多个池子里找最优价

理解了「价格冲击来自单个池子的深度」,你就懂了**聚合器(Aggregator)**的价值。

同一个交易对,往往在很多个 DEX、很多条链上都有池子,深度各不相同。聚合器做的事,就是在你按下兑换前,同时比较所有可用池子的报价,甚至把一笔大单拆到几个池子里分别成交,从而把价格冲击和滑点压到最低——你只看到「最终能拿到多少」,路由的复杂度它替你处理了。

这一点在跨链兑换时尤其关键:跨链既要换币又要换链,涉及两端的流动性和中间路由,靠人工比价几乎不可能。用聚合型工具(比如 AllSwap 跨链兑换)会自动帮你选更优路径、给出预计到手数量,你确认报价再成交即可。

AMM 的局限,也是你该注意的风险

AMM 优雅,但不是没有代价:

  • 大额价格冲击:如上所述,浅池换大额会严重吃亏,务必看清「最低到手数量」再确认
  • 抢跑与三明治攻击(MEV):链上交易公开可见,机器人可能抢在你前面买、在你后面卖,赚走你的滑点。滑点容差设得过高会给它们留出空间(见滑点设置
  • LP 的无常损失:给池子提供流动性不是无风险躺赚,价格偏离越大,LP 相对单纯持有就越吃亏
  • 冷门币的深度陷阱:新币池子极浅,报价好看但根本换不动大额,也是貔貅盘/骗局常利用的伪装

常见问题

Q:AMM 和订单簿,哪个更好? 各有所长。订单簿在主流币上深度好、成交精准,适合专业交易;AMM 无需对手盘、任何代币随时可换、完全链上运行,是 DeFi 的基石。如今两者并存,很多聚合器甚至会同时接入两类流动性。

Q:只有「恒定乘积」这一种 AMM 吗? 不是。x × y = k 是最经典的通用型,此外还有专为稳定币设计的公式(在价格接近时提供极低滑点,所以 USDT/USDC 互换几乎没有价格冲击),以及允许 LP 集中在某个价格区间提供流动性的「集中流动性」设计。原理一脉相承,都是用公式代替人工报价。

Q:为什么我换冷门币时价格冲击特别大? 因为它的池子太浅。你这一笔相对池子规模占比大,按公式就会把价格推得很偏。这不是平台坑你,是 AMM 机制的必然——换冷门币前一定要看价格冲击提示

Q:池子里的价格是不是可以被大户操纵? 可以短暂推动,但套利者会很快把它拉回市场价,操纵者自己要承担巨大的价格冲击成本。真正的风险不在此,而在于依赖单一浅池报价的项目可能被闪电贷攻击——这属于合约设计问题,也是预言机要解决的事。

Q:我把币存进池子做 LP,能随时取回吗? 可以随时撤出,但取回时两种币的数量比例可能和存入时不同(价格变动导致),这就是无常损失。撤出前建议先算一笔账,详见无常损失

小结

自动做市商用一个简单的公式(x × y = k)取代了买卖双方的撮合:你不和人交易,而是和一个由流动性提供者注资的池子交易,价格由池中两种币的比值自动算出。这套机制让任何代币随时可换,代价是大额交易会产生价格冲击、LP 要承担无常损失。看懂了 AMM,你就同时理解了滑点无常损失和聚合路由的来龙去脉——而在链上换币时,用会自动比价、选优路径的聚合工具,就是把这套机制的成本降到最低的最省心办法。

Related // 延伸阅读
钱包安全区块链

私钥、公钥、钱包地址到底是什么?看懂钱包背后的原理

钱包其实不「存」币,它管的是钥匙。用最直白的方式讲清私钥、公钥、地址三者如何单向推导、助记词和它们的关系、签名怎样证明「是你」却不暴露私钥,以及为什么地址能公开、私钥绝不能。

Web3入门

Web3 是什么?一文看懂它和传统互联网、DApp 的关系

Web3 被说成互联网的未来,但它到底和现在的互联网差在哪?讲清楚 Web1/Web2/Web3 的演进、核心是「用户拥有数据和资产」、钱包如何当账户、DApp 是什么,以及理想与现实的差距。

市场周期投资策略

什么是市场周期?牛市和熊市是怎么轮回的

加密市场的牛熊轮回比任何市场都剧烈。讲清楚周期的四个阶段、减半叙事与流动性如何驱动、贪婪与恐惧的情绪指标,以及普通人怎么不在顶部追高、不在底部割肉地穿越一轮完整周期。