# AMM, 无常损失及RMM

By [Charles Pual](https://paragraph.com/@charles-pual) · 2022-04-27

---

本文翻译自[@billionxdev](https://twitter.com/billionxdev)的[推特线程](https://twitter.com/billionxdev/status/1518978793913810944)，详细介绍了_AMM，无常损失及RMM_。

AMM及无常损失介绍
----------

### AMM

AMM 为自动做市商 (Automated Market Maker)。 它是 DEX 交易引擎的一种。 做市商是指提供流动性的人/机构，让人们根据需求交易资产。 流动性衡量一个人变现资产的难易程度。

在传统金融机构中，会有一个操作员来促进交易过程。在DeFi协议中，交易过程由智能合约自动化处理，价格由数学公式决定 _x\*y=k_。 这就是为什么这种协议被称为自动做市商。

AMM 需要三个要素才能正常运行：交易函数、流动性提供者和套利者（交易者）。交易函数控制价格的决定方式。流动性提供者为交易对提供流动性。套利者维持价格。

AMM 的工作原理： 交易函数。交易函数是当外部有交易需求时AMM控制价格走向的工具。在不同的 AMM 中交易函数可以有多种不同的应用。

一个值得注意的交易函数是 CPMM(X_Y=K)_ [_@Uniswap_](https://twitter.com/Uniswap)_。x\*y=k_ 表示流动性池中两种资产数量的乘积应始终保持不变\*。例如，池中有100ETH 和 25WBTC。 K等于100\*25 = 2500\*。EHT的价格是25/100 = 0.25 WBTC。如果有交易者想用 4ETH 兑换池中的 WBTC，那么兑换的 WBTC 数量将是 25-2500/(100+4) = 0.96。交易后他将拥有 0.96 WBTC。 池中将有 104 个 ETH 和 24.04 个 WBTC，K 仍然是 104\*24.04 = 2500。

为了促进贸易，必须建立储备资产池。 流动性提供者是将资产存入流动性池中以获取交易费用的人。LP 代币代表流动性提供者在池中的提供的份额。由于 AMM 中代币的价格是由交易函数决定的，因此有时价格可能会与其他交易所产生偏差。因此，套利者可以通过差价赚取利润（俗称搬砖），同时将价格推回正常水平。

### 无常损失

无常损失是 AMM 中的核心问题。 这是提供 LP 的机会成本，因为 LP 为交易者提供了以流动性提供者提供的LP 代币价格比率进行交易的选择。

LP 提供的期权成本仅与交易费用相同，并且执行价格等于当前资产价格。如果池中代币价格变动，LP 将会放弃价格变动的上涨空间。这里的意思是本来你有2 ETH，为了提供ETH/USDC交易对，你换成了1 ETH/3000 USDC，加完池子后ETH价格上涨，但是你没法获取这部分上涨的利润，这就是无常损失。

无常损失数据（来源：[@binance](https://twitter.com/binance)）：

*   1.25x 价格变动 = 0.6% 损失
    
*   1.50x 价格变动 = 2.0% 损失
    
*   1.75x 价格变动 = 3.8% 损失
    
*   2x 价格变动 = 5.7% 损失
    
*   3x 价格变动 = 13.4% 损失
    
*   4x 价格变动 = 20.0% 损失
    
*   5x 价格变动 = 25.5% 损失
    

如果流动资金池代表投资组合的价值。 LP 寻求可以最小化代表投资组合价值的“跟踪误差”损失。套利者寻求对 LP 的资产进行交易以获取最大利润。（这里解释下什么是”跟踪误差“：跟踪误差是指整个投资组合与其相应基准之间实际表现的差异。这里即随时间变化流动性池 LP 价值与初始价值的差异）

如果投资组合价值的时间序列有增长率 μ 和波动性 σ，则当 μ 和 σ 较低时，LP 的损失会较小。 考虑到交易费用 γ，我们可以推导出下图中的关系。 γ = 1 表示没有手续费。

![](https://storage.googleapis.com/papyrus_images/cfbcf1309da9e0c483045af8fe74b1f32bdf22c57120ae541d9c6f867ccca62f.png)

当前 CFMM（AMM 中使用的交易函数）的问题是 LP 无法选择它们的 µ 和 σ。 LP 无法优化他们的收益，因此会遭受无常损失。所以，RMM 旨在解决这个问题。下面我我我们来介绍RMM。

RMM
---

Replicated Market Maker (复制做市商 RMM) 是一种交易函数，旨在复制备兑看涨期权的收益。RMM 的好处将在后面讨论。这里我们需要知道的是它是一个交易功能（就像 _x\*y=k交易函数_)。_PS: 这里解释下什么是备兑看涨期权 (Coverd Call), 备兑看涨期权是一种由两部分组成的策略，即购买或拥有股票，并以股换股的方式出售看涨期权。举例来说我现在用1ETH (现在价格 3000USDC/ETH) ，我向别人卖出在某行权日，行权价格为 3200USDC/ETH 的期权，这就是备兑看涨期权._

从本质上讲，以传统方式提供流动性是出售以当前市场价格为行使价的看涨期权。RMM可以提供更多的灵活性和好处来缓解上面讨论的问题。

对于RMM：

*   LP 可以选择无常损失开始的点 (K) -> 选择增长率 µ ( _PS：即在提供流动性的时候设置行权价格 )_
    
*   LP 可以直接押注波动率 ( σ )，赚取的手续费费用取决于押注的准确性 -> 选择 σ
    
*   LP 随着时间的推移赚取 theta，即随着池接近到期 (τ) 而产生的费用-> 收取等于卖出期权的费用
    
    RMM LP 不仅可以成为 LP，还可以从他们的模型中受益，并且在提供 LP 的同时还可以出售期权。_来源：_[_PrimitiveFi_](https://twitter.com/PrimitiveFi)
    

流动资金池就是投资资产组合。RMM 投资组合由风险资产和无风险资产构成。 风险资产代表备兑认购权中的标的资产。无风险资产代表出售期权所收的费用。

RMM的交易函数如下：

_y - KΦ(Φ−1(1 - x) - σ √τ ) = k (不变量)_

*   y 为无风险资产
    
*   x 为风险资产
    
*   K 为行权价格
    
*   σ 为设定的波动率
    
*   τ 为行权日期
    
*   Φ 为概率函数
    

一旦选择了参数 K、σ、τ，备兑看涨期权的收益将被复制。 流动性提供者将会持续将两种资产存入池中。 价格将由RMM交易函数决定。

交易函数是通过首先设置一个备兑看涨期权的投资组合值得出的：

_U(c) = c(1 - Φ(d1)) + KΦ(d2)_

*   C 是标的资产的成本
    
*   Φ(d1) 是不行权的概率
    
*   Φ(d2) 是行权的概率
    

因此，投资组合价值的变化就取决于这两个场景（行权，不行权）。 最后，将投资组合价值带入优化函数，持续优化投资组合的价值。

解决完优化问题，那么我们将得到跟踪误差为零时：

_KΦ(Φ−1(1 - R1) - σ √τ ) ≥ R2_

*   R1 为风险资产
    
*   R2 为无风险资产
    

然后，我们得到了交易函数：

_y - KΦ(Φ−1(1 - x) - σ √τ ) = k_

可以通过Primitive 官方的示例来理解：

[https://primitive.mirror.xyz/Audtl29HY\_rnhN4E2LwnP7-zjDcDGAyXZ4h3QpDeajg](https://primitive.mirror.xyz/Audtl29HY_rnhN4E2LwnP7-zjDcDGAyXZ4h3QpDeajg)

总结来说，Primitive有以下优点：

1.  无需预言机：通常情况下，备兑看涨期权市场需要预言机来结算。 在 RMM 中，LP套利者（交换者) 会确保结算价格是当前的，因为如果价格不匹配，套利者将进行交易把价格退回市场水平。
    
2.  高效率资本：通常情况下，要参与备兑看涨期权市场，用户必须将资金存入@ribbonfinance 等金库，直到行权期。 但RMM 允许用户随时提现，赎回费由交易费收取。
    
3.  灵活性：任何愿意提供流动性的人基本上都可以在不买卖期权的情况下创建一个期权市场。
    

Primitive 是一个将RMM 作为其定价引擎的协议。它的工作原理与其他 AMM 一样，用户可以存入资产形成流动资金池。目前允许用户存入 ETH 和 USDC 形成流动性池，参数为行权价、波动率及行权日期。

相关学习文档链接：

[https://research.paradigm.xyz/amm-price-impact](https://research.paradigm.xyz/amm-price-impact)

[https://fbifemboy.substack.com/p/theoretical-advances-in-amm-understanding?s=r](https://fbifemboy.substack.com/p/theoretical-advances-in-amm-understanding?s=r)

[https://web.stanford.edu/~guillean/papers/rmms.pdf](https://web.stanford.edu/~guillean/papers/rmms.pdf)

[https://twitter.com/billionxdev/status/1517437847841636353](https://twitter.com/billionxdev/status/1517437847841636353)

---

*Originally published on [Charles Pual](https://paragraph.com/@charles-pual/amm-rmm)*
