回归基础:Uniswap、Balancer、Curve

  • kinaumov
  • 发布于 2023-06-07 21:10
  • 阅读 12

本文深入探讨了三种重要的去中心化交易协议(AMM):Uniswap、Balancer 和 Curve。文章详细解释了它们的工作原理、数学公式以及在 DeFi 领域中的作用,同时还讨论了诸如无常损失、集中流动性、以及 Curve wars 等关键概念, 帮助读者理解 DeFi 基础设施。

这篇文章最初以 Twitter 话题的形式发布,你可以在这里查看。

理解 DeFi 的基础知识对于分析较新的项目至关重要。在本文中,我将总结超过 100 页的 AMM 研究,并准确解释这三个协议的工作原理。尝试理解这些数学公式,它们很有趣。

我注意到加密领域中的大多数新人才都不熟悉这些协议的机制,而这些协议对于 DeFi 基础设施及其历史至关重要。

顺便说一句,你可以直接跳到你想要的项目的部分。

让我们开始吧。

Automated Market Makers (AMMs) 是去中心化交易所,它创建由用户存入的流动性池(代币),并使用算法对池中的资产进行定价。确切的机制因交易所而异。

Uniswap 的灵感来自于 Vitalik Buterin 在 2016 年发布的关于自动化做市商的想法。由 Hayden Adams 开发,它于两年后的 2018 年 11 月推出。

Uniswap V1 和 V2 通过恒定乘积公式工作(记住这个术语)。

x * y = k

其中

x:池中代币 1 的数量

y:池中代币 2 的数量

k:在交易期间保持不变的常数,但在提供/提取流动性时会重新计算

用户可以通过以等值的比例存入两种资产来为 AMM 提供流动性 (LP)。LP 在池中流动性的份额由 ERC-20 代币表示,LP 在添加流动性时收到该代币并在提取时销毁该代币。

进行交易时,用户将一定数量的代币 1 添加到池中(x 增加)。为了使常数保持不变,y 必须减少。原始 y 和新的 y 之间的差值是用户在交易后收到的代币 2 的数量。

例如

有一个池中有 20,000 USDC 和 10 ETH。K 将是 200,000。如果你想出售 1 ETH,池中的 ETH 增加到 11。为了使等式成立,USDC 必须减少到 200,000 / 11 = 18,181.82

你收到 1,818.18 USDC 兑换 1 ETH

在像 Uniswap 这样的恒定乘积 AMM 中,现货价格 (SP) 的计算方法是将池中代币 1 的数量除以代币 2 的数量。

SP = x / y

在我们的 USDC/ETH 示例中,现货价格将为 20,000 / 10 = 2,000

但是,现货价格仅适用于极小的交易。交易的有效价格 (EP) 是收到的代币数量除以给出的数量。

在我们的示例中,EP = 1,818.18 / 1 = 1,818.18

新的 SP = 18,181.82 / 11 = 1,652.89(低于 EP)

x * y = k 价格等式可以绘制成曲线图。该曲线永远不会触及任何一个轴,这意味着一个恒定乘积 AMM 始终具有流动性,无论价格如何。交易会使点沿曲线移动。添加/提取流动性会移动曲线。

在我们从 Uniswap 继续之前,还有一个重要的概念:无常损失 (IL)。当你在将代币存入池中后代币的价格发生变化时,就会发生 IL。当价格沿曲线移动时,流动性提供者 (LP) 的仓位会损失价值。

但是,现货价格可以恢复到其原始状态,这使得这种损失是非永久性的。IL 也可以通过巧妙的期权策略进行对冲,以在保护自己免受风险的同时保持收益率。有关 IL 的更多信息,请参见此处

Uniswap V3 于 2021 年 3 月推出,它使用集中流动性和费用层级。此模型允许在目标价格附近增加流动性,并允许 LP 具有各种风险回报概况。Uniswap V3 比 V2 的资本效率更高。

Balancer Labs 成立于 2018 年,是 Block Science 孵化的一个项目,之后被拆分为一家独立公司。他们于 2019 年 9 月发布了他们的白皮书,并于 2020 年 3 月推出。

Balancer 是一个 AMM,它允许以任何比例无许可地创建最多包含 8 个代币的流动性池。简而言之,虽然 Uniswap 池由两种资产组成,但 Balancer 扩展了这个想法,并为具有任意权重的 n 种资产的池创建了一个公式。

让我们从权重开始。设 W 为代币在池中的权重,使得所有权重加起来为 1。然后我们可以修改现货价格公式以考虑目标权重,如下所示:

资产的恒定乘积池的公式是 Uniswap 的 x * y = k 的扩展。

对于三种资产,它看起来像这样:x * y * z = k

提醒:x、y 和 z 是池中每个代币的余额。

两种资产之间的现货价格 = x / y

将所有内容放在一起并推广到 n 种资产,我们得到了这个公式,它是 Balancer 的核心等式。

注意:我们使用余额的权重次方而不是直观的乘以权重,因为这不是求和而是乘法。

与 Uniswap 中一样,交换中收到的金额是通过求解代币 1 金额增加后池中剩余的代币 2 金额来计算的,从而保持常数和其他资产不变。

B 是池中最初的资产,A 是交换的金额。

我创建了一个简单的可视化图,说明权重和多资产池如何影响资产的现货价格。

Balancer 由两个关键组件组成:流动性池和交易平台。用户访问交易平台进行交易,然后协议通过所有可用的流动性池找到最适合交换的报价。

Balancer 上的流动性池可以是受控的或最终的。受控池可由池创建者更新。受控池允许调整资产权重、资产类型和费用。最终池具有固定的池资产类型、权重和费用。

Balancer 的流动性提供者获得交换费用和每周 $BAL 排放。Balancer 代币代表协议中的所有权份额,并授予治理决策中的投票权。

$BAL 可以被质押以获得 $veBAL,这会带来更多的流动性挖矿奖励和治理投票。此外,$veBAL 引入了衡量指标,这些指标决定了将流动性挖矿奖励分配给哪些池,以及贿赂,类似于我们稍后将讨论的 Curve 生态系统。

虽然 Balancer 可以被认为是一个交易所,但它也可以被认为是一个指数协议,其中代币权重设置为池的特定百分比,套利者确保维持该权重。

Curve Finance 最初是 Michael Egorov 在 2019 年 11 月发布的 StableSwap 白皮书,并于 2020 年 1 月推出。它的设计建立在 Uniswap 和 Balancer 使用的公式之上。

Curve 旨在为类似资产(例如,UDSC 和 UDST)提供足够的流动性,且滑点很小。

恒定和公式允许 1:1 交换,但它可能会耗尽流动性,并且没有平衡状态。该图像说明了 x + y = 10 的恒定和

现在让我们修改 Uniswap 的恒定乘积公式:y * x = k,其中现货价格确定为 SP = x / y。实际上,价格是曲线上的切线。交换越多,从原始状态到最终状态产生的滑点就越多。

Curve 的关键等式是恒定乘积公式和恒定和公式的组合,因此曲线在目标价格附近几乎是平坦的。这允许在目标价格附近实现最小的滑点,并在范围之外提供流动性。

让我们开始计算。我们希望将总和不变式与乘积不变式结合起来。作为第一步,让我们将它们加起来。稍后会明白的。

(30M / 2)² 是什么,我们是如何从一个常数得到它的?它是平衡状态下稳定币的乘积。如果池中代币的总和为 30M,则每个代币为 15M。它们的乘积是 15M²。

那么,我们导出的曲线是什么样的呢?通过重新排列,我们可以获得下图。在低滑点方面没有太大改进。

我们可以将 DAI 写成 x,将 USDC 写成 y,将 30M 再次写成 D。然后我们将“总和”部分乘以因子 χ (Chi)。

x + y = D 变为 χ(x + y) = χD

将其添加到一般等式中,我们得到

χ(x + y) + x * y = χD + (D / 2)²

让我们看看曲线如何随着 χ 的变化而变化

当为 0 时,"Chi" 参数 (χ) 可以将曲线从零滑点(平坦)移动到高滑点(恒定乘积)。我们想要的是一个动态 χ,它随 x 变化,并使曲线在目标价格附近更平坦(滑点更低)

如果 x 和 y 的数量不平衡,我们希望 χ 减小,从而给出更陡峭的曲线。如果它们处于平衡状态(在目标价格附近),我们希望 χ 增大(曲线更接近 x + y = D 并给出低价格滑点)

我们也不希望 χ 随池的总大小而变化。为了使 χ 无量纲,我们将总和不变式乘以 D。

χ(x + y) = χD 变为 Dχ(x + y) = χD²

新的主要等式:

Dχ(x + y) + x * y = χD² + (D / 2)²

为了使 χ 适应池中代币的比率,@newmichwill 建议使用这个公式,其中 A 是一个常数:

让我们通过一个示例,其中一个池有两项资产,每项价值 1 美元,总计 40 美元。

这正是我们想要的 — 当池平衡时,χ 很高(使曲线更平坦,滑点低),当池不平衡时 χ 很低(滑点高)

现在我们将这个 χ 代入主方程,得到

在简化此等式后,我们得出 Curve 的最终公式:

我们可以将这个公式推广到具有许多代币的池:

Stableswap (Curve) 的最终曲线可以绘制为 2 个资产,如下所示:

旁注:与 Balancer 不同,Curve 不允许池创建者指定池中代币的权重 — 它们都应该是相等的。例如,一个包含 2 个资产的池将激励流动性提供以维持 50% - 50% 的权重。

Curve 的公式使该协议能够实现比 Uniswap 低得多的滑点。目前,将一百万 DAI 兑换为 USDC 的滑点为 127.84 美元,即 0.0127%。该交易将通过 3pool 进行,3pool 是一个由 DAI、USDC 和 USDT 组成的池。

然而,目前,由于 Uniswap 引入了具有集中流动性的 V3,Curve 在稳定代币市场的支配地位面临风险。将一百万 DAI 兑换为 USDC 的滑点仅为 90 美元。你可以在此处阅读有关 Uniswap V3 的更多信息。

$CRV 是 Curve 的原生代币,用于投票、质押和提高奖励。要参与这些活动,用户必须锁定 $CRV 以获得 $veCRV(投票托管 CRV)。投票和 LP 奖励取决于锁定的代币数量和持续时间。

这使持有者的激励与协议的长期成功保持一致。目前,所有 CRV 的 56.2% 已锁定,平均期限为 3.64 年。

$veCRV 持有者从流动性提供中获得更高的奖励。他们还可以提议并投票选出获得流动性挖矿激励的池。以下是将在 4 天内生效的拟议衡量权重:

如你所见,对于想要将投票权引导至自己的池中的参与者来说,控制对 Curve 流动性挖矿排放的投票权非常重要。

为了获得最大的 LP 奖励,LP 必须锁定大量的 $CRV。这就是 Convex Finance 进入舞台的地方 — 它聚合其用户的 $veCRV 和存款,以便他们可以在不需要 $veCRV 的情况下获得最大的收益。

Convex 迅速积累了数十亿美元的流动性和 $veCRV,并成为投票决定 Curve 治理和 LP 激励措施的中心场所。现在,项目贿赂 $CVX 代币持有者以影响 Convex 使用其 $veCRV 投出的选票。

深入研究 Curve Wars 应该是一篇单独的文章,因此现在你可以在此处了解更多信息。

这总结了我对 AMM 的概述,这些 AMM 塑造了市场,使其成为现在的样子。如果你发现我遗漏了任何内容,请告诉我,如果你学到了一些新东西,请在 Twitter 上关注 @kinaumov。

  • 原文链接: medium.com/@kinaumov/bac...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
kinaumov
kinaumov
江湖只有他的大名,没有他的介绍。