本文翻译自@billionxdev的推特线程,详细介绍了AMM,无常损失及RMM。
AMM 为自动做市商 (Automated Market Maker)。 它是 DEX 交易引擎的一种。 做市商是指提供流动性的人/机构,让人们根据需求交易资产。 流动性衡量一个人变现资产的难易程度。
在传统金融机构中,会有一个操作员来促进交易过程。在DeFi协议中,交易过程由智能合约自动化处理,价格由数学公式决定 x*y=k。 这就是为什么这种协议被称为自动做市商。
AMM 需要三个要素才能正常运行:交易函数、流动性提供者和套利者(交易者)。交易函数控制价格的决定方式。流动性提供者为交易对提供流动性。套利者维持价格。
AMM 的工作原理: 交易函数。交易函数是当外部有交易需求时AMM控制价格走向的工具。在不同的 AMM 中交易函数可以有多种不同的应用。
一个值得注意的交易函数是 CPMM(XY=K) @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):
如果流动资金池代表投资组合的价值。 LP 寻求可以最小化代表投资组合价值的“跟踪误差”损失。套利者寻求对 LP 的资产进行交易以获取最大利润。(这里解释下什么是”跟踪误差“:跟踪误差是指整个投资组合与其相应基准之间实际表现的差异。这里即随时间变化流动性池 LP 价值与初始价值的差异)
如果投资组合价值的时间序列有增长率 μ 和波动性 σ,则当 μ 和 σ 较低时,LP 的损失会较小。 考虑到交易费用 γ,我们可以推导出下图中的关系。 γ = 1 表示没有手续费。
当前 CFMM(AMM 中使用的交易函数)的问题是 LP 无法选择它们的 µ 和 σ。 LP 无法优化他们的收益,因此会遭受无常损失。所以,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
流动资金池就是投资资产组合。RMM 投资组合由风险资产和无风险资产构成。 风险资产代表备兑认购权中的标的资产。无风险资产代表出售期权所收的费用。
RMM的交易函数如下:
y - KΦ(Φ−1(1 - x) - σ √τ ) = k (不变量)
一旦选择了参数 K、σ、τ,备兑看涨期权的收益将被复制。 流动性提供者将会持续将两种资产存入池中。 价格将由RMM交易函数决定。
交易函数是通过首先设置一个备兑看涨期权的投资组合值得出的:
U(c) = c(1 - Φ(d1)) + KΦ(d2)
因此,投资组合价值的变化就取决于这两个场景(行权,不行权)。 最后,将投资组合价值带入优化函数,持续优化投资组合的价值。
解决完优化问题,那么我们将得到跟踪误差为零时:
KΦ(Φ−1(1 - R1) - σ √τ ) ≥ R2
然后,我们得到了交易函数:
y - KΦ(Φ−1(1 - x) - σ √τ ) = k
可以通过Primitive 官方的示例来理解:
总结来说,Primitive有以下优点:
Primitive 是一个将RMM 作为其定价引擎的协议。它的工作原理与其他 AMM 一样,用户可以存入资产形成流动资金池。目前允许用户存入 ETH 和 USDC 形成流动性池,参数为行权价、波动率及行权日期。
相关学习文档链接: