# 读懂 DeFi 热门赛道「自动化做市商 AMM」

By [ShadeProto](https://paragraph.com/@shadeproto) · 2022-03-06

---

> 以太坊 1.0 的严重限制让简便的 Uniswap 脱颖而出，但以太坊 2.0 和 L2 链下系统将使更复杂的市场蓬勃发展。

想象一下，有个大学时的朋友联络你说：「嘿，我有个商业设想。我想开发一个**做市机器人**。不管谁来询价，我随时都能报出一个价格，我的定价算法会用 x \* y = k。差不多就这些。想投资吗？」

你会躲得远远的。

其实，你朋友刚才描述的就是 **Uniswap**。Uniswap 也许是世界上最原始的链上做市商运作。莫名其妙的，它的交易量过去几个月出现爆发式增长，凭交易量已成为**世界最大的去中心化交易所**（DEX） 。

如果你并未密切关注**去中心化金融**（DeFi） 去年发生的事情，你也许会问，到底发生了什么？

（如果你已经熟悉 Uniswap 和自动化做市商，即 AMM，请跳过下面章节，直接阅读「AMM 的寒武纪爆发」）

给新手们普及一下：Uniswap 是一个自动做市商，即 **AMM**。你可以把 AMM 设想成一个原始的、机器人式的做市商，它根据一个**简单的定价算法**，在两种资产之间随时提供**报价**。对 Uniswap 而言，它对这两种资产进行报价，其持有的每种资产的单位数相乘，总会等于一个常数。

这听上去有些拗口：如果 Uniswap 拥有一些 x 代币，拥有一些 y 代币，它给每一笔交易定价，所以，它拥有的 x 的最终数量，和拥有的 y 的最终数量，两者相乘会等于一个常数 k。这就形成了一个常数积的等式：**x \* y = k**。

这种对两种资产进行定价的方式，你可能会觉得非常怪异且过于独断。让两种代币的库存数相乘所得的积**维持固定**，为什么就能确保正确的报价呢？

### Uniswap 示例

假设我们在 Uniswap 的某个池里投入 50 个苹果 （a） 和 50 个香蕉 （b） ，任何人都可以用苹果换香蕉，或者用香蕉换苹果。假设一级市场中苹果与香蕉的**汇率刚好是 1:1**。因为该 Uniswap 资金池中分别有 50 个苹果和 50 个香蕉，因此，按上述常数积的等式规则，a \* b = 2500 。对于任何交易，Uniswap 都需要保证，池中库存的苹果数和香蕉数相乘等于 2500。

好了，假设一位客户进入我们的 Uniswap 池来买一个苹果。她应该支付多少个香蕉呢？

如果她买走一个苹果，我们的池里就剩下 49 个苹果，而 49\* b 依然需要等于 2500。这样香蕉的总数 b 就等于 51.02。由于之前池中有 50 个香蕉，因此我们**还需要 1.02 个香蕉**（在这个宇宙中我们允许碎片化香蕉的存在） ，因此，这位客户买一个苹果会得到的报价是：1.02 香蕉 / 苹果。

请注意，这与两者之间 1:1 的原始价格很接近！因为这只是一笔小额交易，所以滑点较小。但如果订单很大呢？

如果她想买 10 个苹果， Uniswap 的报价会是 12.5 个香蕉，即这 10 个苹果每个的单价为 1.25 香蕉 / 苹果。

如果她想要执行 25 个苹果这种**大额交易**，即要买库存苹果数量的一半，那么，单位价格会上涨到 2 香蕉 / 苹果！ （你能从直觉上明白这一点，因为池中的一种商品减半，另一种就得翻倍）

重要的是需要明白，Uniswap **不能偏离**这条定价曲线。如果某人要购买一些苹果，后来又有人要买一些香蕉， Uniswap 就会在这条价格曲线上来回移动，无论需求把它带向何方。

这里有个好玩的地方：如果苹果与香蕉之间的真实交易价格是 1:1，当第一位客户买走 10 个苹果后，我们 Uniswap 池就有会变成 40 个苹果和 62.5 个香蕉。如果有位**套利者**此时进入，她买走 12.5 个香蕉，让资金池恢复到最初状态，她只需付 10 个苹果，所以 Uniswap 对她的收费只有 0.8 苹果 / 香蕉。

Uniswap 会**低价甩卖香蕉**！就好像我们的算法此时意识到香蕉过多，所以它低价抛售香蕉，以吸引苹果流入，从而实现库存的再平衡。

Uniswap 经常跳这种舞步——稍微偏离真实的交易价格，然后**在套利者的帮助下**缓步回归正常。

### 套利损失（Impermanent Loss）简介

下面你将了解 Uniswap 定价机制的工作方式。但这仍然引出一个问题——Uniswap 很好的完成了它工作吗？这东西真的**会产生利润吗**？毕竟，任何做市商都可以报价，但是否赚钱就不好说了。

答案是：取决于**具体情况**！具体来说，这取决于一种被称为「**套利 损失」**（Impermanent Loss） 的概念。它的运作方式如下：

Uniswap 会对每笔交易收取少量费用 （目前为 0.3%） 。这是在名义价格之外的。因此，如果苹果和香蕉总是且永远以 1:1 价格进行交易，随着做市商在交易价格曲线上**来回移动**，这些费用将随时间累积。那么，与只持有 50 个苹果和 50 个香蕉的基线比较，Uniswap 池最终会积累更多的水果。

但是，如果苹果和香蕉之间的真实交易价格突然发生变化，会发生什么呢？

假设某家香蕉农场遭遇了无人机攻击，出现大面积的香蕉短缺。香蕉现在像黄金一样贵。交易价格蹿升到 5 个苹果换 1 个香蕉。

Uniswap 上会发生什么？

套利者一秒都不会耽搁，立马杀入你的 Uniswap 池，抢购便宜的香蕉。他们**调整交易规模**，以便买走价格低于新汇率 5:1 的所有香蕉。这意味着他们需要移动价格曲线，直到满足以下等式：5x \* x = 2500。

算一下这个数学题，你会得到如下结果：他们总共以 61.80 个苹果买到 27.64 个香蕉。平均交易价格为 2.2 个苹果：1 个香蕉，这远低于市场价，相当于得到 76.4 个免费苹果。

他们的利润从何而来？当然这是以**牺牲资金池**为代价的！而且，如果数一下你会发现，与某个持有最初的 50 个苹果和 50 个香蕉的人相比，Uniswap 池现在恰好下降了 76.4 个苹果的价值。Uniswap 出售香蕉的价格太便宜，因为它不知道香蕉在现实世界中变得如此值钱。

这种现象称为「**套利 损失」**。每当交易价格发生变动，就会出现**套利者窃取廉价资产**，直到资金池的定价达到正确为止。 （这些损失是「暂时的」，因为如果后来真实交易价格恢复为 1：1，那么就好像你从未损失过这笔钱，和开始相比。）

资金池通过**交易费**赚钱，通过套利损失而亏钱。这都是**需求和价格背离**的一个函数——需求有利于资金池，而价格背离不利于资金池。

这就是 Uniswap 的简单概括。当然你可以更深入地了解，不过，要了解该领域内的情况，上面的知识也足够了。

自 2018 年上线以来， Uniswap 已经席卷 DeFi 领域。考虑到 Uniswap 的原始版本**只有大约 300 行代码**，这一成绩尤其令人惊讶！ （AMM 本身拥有历史悠久的血统，但是常数函数做市商是一个相对较新的发明。） Uniswap 完全无需许可，任何人都可以注入资产。它甚至不需要预言机。

回顾一下会发现它**非常优雅**，是可能发明的最简单的产品之一，它似乎从石头缝里诞生，并主导了 DeFi 领域。

### AMM 的寒武纪爆发

自从 Uniswap 崛起之后，**AMM 的创新**也迎来了爆发。Uniswap 的后继者纷纷涌现，每个都有其特殊功能。

_Uniswap、 Balancer 和 Curve 的交易额，来源：Dune Analytics_

尽管它们都继承了 Uniswap 的核心设计，但各自具有自己的**特殊的定价函数**。例如，**Curve** 使用常数乘积和常数和的混合模式，**Balancer** 的多资产定价函数用一个多维平面来定义。甚至有些采用移动的曲线，这可以耗尽库存，例如 **Foundation** 用于销售限量版商品的曲线就是如此。

不同的曲线适用于特定的资产，因为它们对所报价资产之间的价格关系置入了不同的假定。从上图可以看到，**Stableswap** 曲线 （蓝色） 在多数情况下接近于一条直线，这意味着在其大部分交易区间，两种稳定币的定价相互非常接近。**常数积**（constant product） 曲线是任何两种随机资产不错的起点，但是如果我们知道这两个资产是稳定币，并且它们的价值可能大致相同，那么 Stableswap 曲线会给出更具竞争力的定价。

当然，一个 AMM 可以选择无限多种特定曲线来定价。我们可以对所有这些不同的定价函数进行抽象化，将整个类别称为**恒定函数做市商**（CFMM） 。

当看到 CFMM 交易额的增长，人们想当然的认为，它们将接管世界——将来所有**链上流动性**将由 CFMM 提供。

但变化没有那么快！

CFMM 如今占主导地位。不过，为了更清楚地了解 DeFi 的进化情况，我们需要了解 **CFMM 何时繁荣**，以及何时表现不佳。

### 相关性的频谱

还是以 Uniswap 为例，因为它是最容易分析的 CFMM。假设你想成为 Uniswap 上 ETH / DAI 池的**流动性提供商**（LP） 。在向该池提供资金时，你必须同时相信以下两点，才会认定，成为一个 LP 比仅持有原始资产要好得多：

1.  ETH 与 DAI 的**价值比**不会发生太大变化 （如果发生变化，将表现为套利损失）
    
2.  这个池会收到很多**交易费**
    

就该资金池展现的套利损失而言，获得的交易费应该超过损失。请注意，对于**包含稳定币的交易对**，你对 ETH 上涨有多么看多，你其实也在假设会有很多的套利损失！

一般性的原则是：当两种资产是**均值回归**时，Uniswap 理论运作得最好。想象有一个 USDC/DAI 或 WBTC/TBTC 的资产池——这些池应该会显示出极小的套利损失，随时间推移将纯粹累积交易费。请注意，套利损失**不只是一个波动性问题**（实际上，波动性极高的、均值回归的交易对是很不错的，因为它们会产生大量的交易费）

因此，我们可以绘制出利润最高的 Uniswap **资金池的层级图**，其他条件保持一致。

均值回归交易对的情况很明显。相互关联的交易对，其价格往往一起移动，因此 Uniswap 不会有太多套利损失。而像 ETH/DAI 这样不相关的交易对，情况就不太确定，有时候交易费可以弥补损失。最右边是**逆相关的交易对**，Uniswap 上这种资金池就很糟糕了。

想象一下，有人在某个预测市场做多特朗普，做多拜登，并将两笔押注放入 Uniswap 的一个资金池。从定义上说，最终将有一笔资产值 1 美元，另一笔资产则为 0。该资金池的结果是，某个 LP 一无所获，**只有套利损失**！ （预测市场总是在市场结清之前停止交易，但结果往往早在市场真正结清之前已经水落石出。）

所以 ，Uniswap 对某些交易对运转良好，而对另一些交易对而言就是灾难。

但是人们很容易发现，到目前为止，几乎所有**头部 Uniswap 资金池**都是赚钱的！实际上，甚至 ETH / DAI 资金池自创建以来也是赚钱的。

这个现象需要解释。尽管存在瑕疵，各 CFMM 都是取得了不俗收益的做市商。这怎么可能呢？要回答这个问题，需要了解一下**做市商的工作机制**。

### 做市机制简介

做市商的工作是向某个市场提供流动性。做市商主要通过三种方式赚钱：**指定做市安排**（传统上由资产发行商支付费用） 、**交易费**回扣 （传统上由交易所支付） 以及从做市中**赚价差**（Uniswap 正是这种方式） 。

你可以看到，所有的做市都是与两种订单流进行一场战斗：**知情订单流**和不知情订单流。假设你为 BTC/USD 市场报价，有一笔大额 BTC 卖单到了。你得问问自己：这是有人在换取流动性，还是这人知道一些我不清楚的消息？

如果这名交易对手知道**庞氏骗局**（PlusToken） 的缓存池发生了变动，卖压正在来袭，那么，你就只能用一些完美无缺的 USD 换一些前景不太妙的 BTC。另一方面，如果这只是某些无名人士在卖币，因为他们需要支付房租，那么，这就没什么特别的意义，你从他们身上赚价差就好了。

作为一名做市商，你从不知情交易流中赚钱。不知情交易流是**随机的**——每天有人卖有人买，最终会相互抵消。如果对每笔交易赚价差，长期来说你会赚钱。 （这解释了为什么做市商们会花钱获得来自 Robinhood 交易所的订单流，因为后者多数是不知情的散户订单） 。

所以，一名做市商的首要任务是区分知情和不知情订单流。某个流是不知情的流的可能性越大，你收取的价差就该越高。如果这个订单流绝对是知情的，那你就应该**完全撤回报价单**，因为若是知情的交易方愿意与你交易，你绝对是要亏钱的。

（考虑这一问题还有一种思路：不知情的订单流愿意为一种资产支付高于市价的价格， 这就是你赚的价差。而知情订单流只愿意以低于市价获取某种资产，所以，每当你与他们交易，你实际是在价格上吃亏的一方。这些订单知道你不知道的一些信息。）

同样的原则也适用于 Uniswap。有些人在 Uniswap 交易，因为他们完全是随机的想用 ETH 换 DAI 。对做市商而言，这是**不知情的散户流**，随机漫步的交易活动会带来费用收入。这很爽。

你面对的还有套利者：他们是知情订单流。他们在选择价格错误的资金池。某种程度上说，他们其实是在帮助 Uniswap 将交易价格**拉回正轨**。但另一方面，他们是把 LP 的钱转移到他们自己的兜里。

做市商若要想赚钱，他们需要让**不知情散户流与套利流之比**做到最大。

但 Uniswap 无法区分这两种流！

Uniswap 不清楚一笔订单是来自懵懂无知的散户，还是某个套利者。无论市场条件是什么情况，它**只遵循 x \* y = k 的方程**。

因此，只要有一个新玩家提供比 Uniswap 更好的定价，比如 Curve 或 Balancer，那么，你会看到散户订单流迁移到定价更好的服务去。鉴于 Uniswap 的**定价模型和固定费率**（每笔交易收 0.3%） ，你很难看到它能在竞争最激烈的资金池中竞争 —— Curve 既对稳定币交易进行了优化，而且每笔交易的收费仅为 0.04%。

随着时间的推移，如果 Uniswap 资金池在滑点上被对手超越，那么，留在 Uniswap 的大多数将会是套利订单流。零售流是多变的，但随着市场变动，套利机会持续出现。

这种定价方面丧失竞争力不仅很糟，其弊端还被放大了。Uniswap 在发展上升期对流动性有网络效应， 但在下坡时期也被严重放大。当 Curve 开始吃掉稳定币相关的交易额时，Uniswap 上的 DAI/USDC 交易对将开始丢失 LP，这**反过来让定价更糟**，吸引的交易额也会更少，再进一步抑制 LP，恶性循环。网络效应也是如此——在上升期就像是火箭， 但在下降时则烧毁了归路。

当然，这种说法同样适用于 Balancer 和 Curve。一旦被一个**定价更好、费用更低的做市商**超越，他们也很难维持其费用收入。不可避免的，这一切的结果就是一种费用的向下竞争，和利润空间的大幅压缩。 （传统市场的做市商领域上演的就是同样剧目！这是一门竞争超级激烈的生意！）

但这仍然不能解释：为什么所有的 CFMM 都在疯长？

### 为什么 CFMM 高歌猛进？

以**稳定币**为例。CFMM 明显正在夺取这一垂直领域。

想象一下，传统金融市场中的某个**重量级做市商**（比如 Jump Trading） 准备在 DeFi 领域开始进行稳定币的做市。首先他们前期需要大量的整合工作， 然后，为了持续运营，他们需要向交易者持续付费、维护交易软件、支付办公室租金。他们需要大量的固定成本和运营成本。

而 Curve 根本不需要成本。一旦智能合约部署完毕，它就**自行运营**（连计算成本、gas 费用完全都由终端用户来支付！）

如果为 USDC/USDT 交易对报价，**Jump Trading** 要做的事情会比 Curve 的做法复杂很多。稳定币做市相当程度上是**库存管理**。这里没有那么多花哨的机器学习 （ML ） 或专有知识，如果 Curve 能做到 Jump 水准的 80%， 那就算足够好了。

但 **ETH/DAI** 是一个复杂得多的市场。当 Uniswap 报价时， 它不像 Jump 那样，要看交易所订单簿，要流动性建模或参阅历史波动性，它只是闭上眼睛，大喊 x \* y = k ！

与普通的做市商相比，Uniswap 的复杂度相当于**一台冰箱**。但只要正常的做市商没有进入 DeFi 领域，Uniswap 就会垄断该市场，因为它的启动成本和运营成本为零。

这是另一种思考的方式：Uniswap 是第一个在这个名为 DeFi 的新市场开店的小商贩。即使有种种缺陷，Uniswap 也形成了一种**虚拟的垄断**。当你有垄断地位，你就得到所有的散户订单流。散户流和套利流之比，是决定 Uniswap 盈利情况的主要因素， 难怪 Uniswap 正在赚大钱！

但是，一旦散户流开始转向别处，这一良性循环很可能寿终正寝。LP 将开始遭受损失并撤出流动性。

但这只是解释了一半。要记住：在 Uniswap 出现之前， 已经存在大量的去中心化交易所 （DEX） ！Uniswap 摧毁了**基于订单簿的 DEX**， 比如 Idex 或 0x 。到底是什么因素让 Uniswap 击败了所有的订单簿模式交易所呢？

### 从订单簿到 AMM

我相信，Uniswap 之所以击败订单簿交易所，有四个原因。

首先，Uniswap 的**实施极其简单**。这意味着复杂性低、遭遇黑客攻击的表面积低、集成成本低。更何况，它有很低的 gas 成本！当你在一个相当于去中心化的图形计算器上执行所有交易时，这一点真的很重要。

这不是一个小问题。一旦新一代高吞吐量的区块链成为现实，我怀疑订单簿模式是否最终还能居于主导地位，就像它在常规金融世界中那样。但它会在以太坊 1.0 上占据主导地位吗？

**以太坊 1.0 的严重限制**让简便性脱颖而出。当你不能做复杂的事情时，你必须做最好的简单的事情。Uniswap 是一个相当不错的简单产品。

其次，Uniswap 的**监管面非常小**（这也是文件共享程序 Bittorrent 发明者 Bram Cohen 认为 Bittorrent 会成功的原因） 。Uniswap 是非常去中心化的，不需要链下输入。订单簿 DEX 必须像经营一家交易所一样亦步亦趋，与此不同，Uniswap 可以作为一种纯粹的金融应用而自由创新。

第三，向 Uniswap **提供流动性非常容易**。一键式「设置，然后忘记」的操作，让 LP 的体验无比轻松 （活跃的做市商在某个订单簿交易所提供流动性的操作要麻烦得多） ，尤其是在 DeFi 交易量放大之前。

这一点至关重要，因为 Uniswap 上的大量流动性是由一小群**好心的巨鲸**提供的。这些巨鲸对投资回报没有那么敏感，所以 Uniswap 的一键式体验使得他们能够毫无痛苦地参与其中。加密项目设计者有一个忽视心理交易成本的坏习惯，且总是假定市场参与者无比勤奋。Uniswap 使流动性供应变得简单，这一点得到了回报。

Uniswap 之所以如此成功的最后一个原因是，**创建带激励的资金池**非常方便。在一个带激励的资金池中，资金池的创建者将代币空投给 LP，使 LP 得到的回报高于 Uniswap 标准回报。这种现象也被称为「**流动性农场**」 （liquidity farming） 。Uniswap 中一些规模最大的资金池通过空投进行激励，包括 **AMPL、sETH 和 JRT**。对于 Balancer 和 Curve，它们的所有资金池当前都使用自己的原生代币进行激励。

回想一下，传统做市商赚钱有三种方式，其中一种是**指定的做市协议**，由资产发行人付款。从某种意义上说，带激励的资金池是 DeFi 领域的指定做市商协议：某资产的发行者向 AMM 付费，让后者为他们的代币交易对提供流动性，而费用则通过代币空投来交付。

但是，带激励的资金池还有另外一个维度。CFMM 不仅仅是扮演做市商，它们现在具备代币项目的**营销和分销工具**的双重身份。通过带激励的资金池，CFMM 创建了一种防女巫攻击的方式，将代币分发给想要累积代币的投机者，同时引导了一个流动的初始市场。它还让购买者手里的代币有其他用处——不只是转手把它卖掉，存起来还能得到一些收益！你可以称之为**乞丐版质押**。对早期代币项目而言，这是一个强大的营销武器，我期望这一点被整合到代币上市的行动手册中。

这些因素深度解释了为什么 Uniswap 如此成功的原因 （我还没有谈到「首次 DeFi 发行」Initial DeFi Offerings，这是改天再讨论的话题） 。

话虽如此， 我不相信 Uniswap 的成功会永远持续下去。如果说以太坊 1.0 的局限为 CFMM 形成主导地位创造了条件，那么**以太坊 2.0 和 L2 链下系统**将使更复杂的市场蓬勃发展。此外，DeFi 的明星项目在不断涌现，随着大量用户和交易额的到来，它们将吸引严肃的传统做市商。随着时间的推移，我预计这会导致 Uniswap 的市场份额缩水。

### 再过五年， CFMM 会在 DeFi 中扮演什么角色？

我预期，到 2025 年时，CFMM 今天这样的面貌不会成为人们交易的主要方式。在技术史上，这样的过渡很常见。

在互联网的早期，像**雅虎**这样的门户网站是第一批在网上大幅领跑的企业。早期网络环境的局限性 （如速度慢等） ，非常适合由人工制作的页面目录。随着主流用户开始上线，这些门户网站取得了疯狂的增长！但是我们现在知道，门户网站只是组织互联网信息道路上的**临时垫脚石**。

---

*Originally published on [ShadeProto](https://paragraph.com/@shadeproto/defi-amm)*
