这个系列由 3 部分组成,我们将介绍第一代 AMM、第二代 AMM,并最终得出了我们对现代 AMM 应该是什么样子的想法。
Vitalik 在一篇文章中首次描述了自动做市商(AMM)成为 DeFi 的催化剂。 Uniswap 是其中最著名的,但还有其他很多AMM。 我们将在本文中介绍它们。
Uniswap
Uniswap 的基础是常数乘积公式,x * y = k,其中 x 是资产 X 的数量,y 是资产 Y 的数量,k 是一个常数。因此,每个池仅包含两个资产 X 和 Y,并且该公式确保两者的比率相等。
该图表显示了恒定乘积公式的图形,其中 x 是 X 的数量,y 是池中 Y 的数量,曲线上点的斜率是现货价格。
这最好用一个例子来解释。
假设 AVAX 为 100 美元,一个 AVAX/USDC 池由 20 个 AVAX 和 2000 个 USDC 组成。因为 20 AVAX 相当于 2000 USDC,所以资产价值的比例是 1:1。如果我们让资产 X 为 AVAX,资产 Y 为 USDC,那么使用常数乘积公式,我们得到 k = 20 * 2000 = 40000。
这个数字在兑换期间保持不变,只有在增加更多流动性时才会改变。
现在假设 Alice 想要交换 5 个 AVAX。她会得到多少USDC作为回报?
重新计算 y 的公式,我们得到 y = k/x。所以兑换后池中的 USDC 数量为 y = 40000 / (20+5) = 1600 USDC。所以 Alice 用 5 个 AVAX 收到了 400 USDC。
该池现在包括 25 AVAX 和 1600 USDC。AVAX 的现货价格现在从 100 USDC 变为 1600/25 = 64 USDC。
该交易的价格影响为 (64-100) / 100 = -36%。
这可能是一种不断下跌的产品对做市商价格的影响。因为曲线是凸的,当你沿着曲线移动时,斜率会不断变化。
以下图为例。想象在旧位置和新位置各有一个斜率。曲线上的一个微小变化会产生截然不同的斜率,其差异就是价格影响。
所有这一切的补救措施是确保流动性足够深以吸收价格影响。
然而,这种模式有一个巨大的好处。如果你再次检查该图,你会注意到曲线永远不会与 x 或 y 轴相交。这意味着永远不会出现 x 或 y 的储备从池中耗尽的情况。通过提供这种情况,你可以为整个价格区间(即[0,∞])提供流动性,并且始终拥有两种资产来执行交易。
这种特性使得提供流动性变得极其容易,基本上刺激了DeFi革命,因为现在每个人都可以成为做市商,而在过去,做市商是大型金融机构的专利。
Balancer
如果我们可以让每个池包含超过 2 个资产怎么办?这是 Balancer 的基础,它采用常数乘积公式,但将其推广到最多 8 个资产。
除此之外,Balancer 池还允许自定义比率。例如,你可以将其自定义为 80:20,而不是两个资产池中的 50:50。你想要更多地加权资产的原因有几个:
你更看好某种资产,并希望它在你的投资组合中占据更多的份额。
代币的权重越高,它所经历的无常损失就越少。
该图描述了不平衡池如何降低权重更大的代币的 IL。但这是以池内交易的更大价格影响为代价的,因为一方的流动性较少。
可以将Balancer 池视为自动重新平衡投资组合,其作用类似于任何人都可以创建的去中心化指数基金,并且费用由流动性提供者而不是中介基金经理支付。
Curve
Uniswap 和 Balancer 都使用常数乘积作为基础不变量,但缺点之一是价格影响。输入常数和公式。这是为 Curve 提供动力并解决高价格影响问题的潜在不变量。
常数和公式为 x + y = k,图形如下所示:
请记住,价格是直线上这一点的斜率。。在此图中,斜率始终相同;即价格是恒定的,这意味着零价格影响交易。听起来很棒吧?有一个警告。这条线在x轴和y轴上都有截距,这意味着你将看到池中某个资产耗尽的场景。
想象一下 USDC/USDT 的固定总和池为 1 美元。如果 USDC/USDT 的价格在另一个交易所上涨到 1.1,那么套利者将立即将你池中的所有 USDC 都挖走,以便他们可以在另一个交易所出售以获取利润。
因此,Curve 使用了常数和公式的修改版本,它是常数和和常数乘积的组合。实际的方程式很复杂,所以我将向你展示我的模拟版本,它可以被总结为:
A * (x + y) + xy = k
A 是放大系数,取决于储备比率。如果池变得非常不平衡,则 A 随后会减小,从而最小化 (x + y) 项。这允许池的行为就像一个恒定的产品做市商。
相反,如果资金池非常平衡,则 A 随后会很高,这会使 (x + y) 项最大化,从而使资金池表现得像一个恒和做市商。
结果是下面的蓝线,它在中间是平坦的,因为资产同样平衡且凸出,因为池在一项资产中变得很重:
Bancor
Bancor 于 2017 年作为第一家 AMM 推出。 它的主要卖点是它提供 100% 的无常损失保护。
这是一个热议的话题。 没有人喜欢无常损失,但有没有可能彻底解决呢?
尽管市场上有可能的解决方案,但似乎仍然有人不得不接受无常损失。 Bancor 模型的主要缺点是 BNT 持有者必须承受损失。
总结
我们涵盖了成为 DeFi 基石的协议。 大多数使用常数乘积公式,Curve除外,它使用常数和的修改版本。 恒定产品的好处是提供流动性变得容易,尽管它确实需要具有深度流动性以更好地执行价格。