Timeswap AMM — 深入学习

Lei
7 min readJan 19, 2022

--

深入了解我们的 3 变量 AMM,该产品不需要使用任何预言机就可以通过市场驱动的利率和抵押因子实现基于 ERC-20 代币的定期贷款和借款。

在 DeFi 生态系统的崛起过程中,出现的最具创新性的解决方案之一是自动做市商(AMM)的概念。它现在已经成为一个长期的解决方案,通过算法创建代币的流动性池并实现其交易,来取代传统的固定价格和流动性的订单簿系统。

在本文中,我们将概括介绍 AMM 的概念,然后更深入地了解 Timeswap AMM 及其工作原理。

什么是 AMM?

自动做市商是一种算法,通过使用流动性池而不是由订单簿组成的传统市场,允许数字资产以无许可和自动化的方式进行交易。用户向流动性池提供代币,其价格由一个数学公式决定。

货币市场对 AMM 的需求

今天借贷协议使用预言机的方式可以比作是在山顶上平衡一块球形巨石。它从根本上是不稳定的,需要大量的经济动量来抵消操纵预言机的经济激励。这就是为什么使用预言机的货币市场协议只有高质量的资产作为抵押品的原因,因为他们暂时有足够的经济动量来使市场稳定。一旦你把长尾资产带入,这个固有的问题就会迅速暴露出来。

另一方面,像 AMM 或订单簿(也是无预言机的)这种无预言机设计的协议,可以比作在山谷间有一块球形的巨石。这意味着市场上有足够的经济激励让套利者将巨石推回中心,也就是说将其他参与者的行为导致的市场的价格错位恢复正常。

AMM 市场概述

Vitalik Buterin 的 Blog “on-chain market makers” 第一次提出了将 AMM 的作为一个可行的交易解决方案。他最常见的方法恒定乘积产品 AMM(x*y=k) 后来被 Uniswap 实施和推广。此后,不同种类的 AMMs 被 Curve, Balancer, 和 Pendle 等协议所实现。

Balancer 的 AMM 使用一个恒定的平均值公式,这使得它的资金池可以包括多达 8 个代币的任何数量的权重。它还允许自适应的费用结构,可以对市场波动或需求作出反应。由于这种灵活性,它允许希望创造流动性的项目进行各种试验。

Pendle 为其收益代币引入了AMM,代表对未来收益的预期。收益代币的价值与时间有关,因此,收益代币的持有者有权随着时间的推移减少产量。他们的 AMM 通过使用一个迎合所有具有时间衰减特性的代币的 AMM 来解决这个问题。最初,当池子被创建时,他们的 AMM 曲线类似于 Uniswap 的恒定乘积产品曲线。然而,随着随后的交易,他们的AMM曲线在平衡点上移动,考虑到时间衰减进行自我调整。

Timeswap 中的原生债券代币 (Bond tokens) 和原生保险代币 (Insurance Tokens) 都具有时间衰减的特性,它们分别代表着对于收益所得和保险所得的认领凭证。

Timeswap 的 3 变量 AMM

Timeswap 研究一个独特的 3 变量恒定乘积方程,其中利率和抵押因子都是由市场驱动的,并且不依赖于预言机和清算人。

这使得 Timeswap 成为一个完全自给自足的协议,无需许可且无需预言机。任何人都可以创建一个池,其中任何 ERC20 代币都可以作为抵押品,任何其他 ERC20 代币作为可借资产,可以在任何到期日借出/借入。

深入分析

我们的 3 变量常数乘积公式的灵感来自 Uniswap 的常数乘积方程,

X * Y = K

其中 X 是第一个代币的数量,Y 是第二个代币的数量,K 是常数乘积。受 Uniswap 常量积的启发,Timeswap 采用了 3 变量常量积方程,

X * Y * Z = K

Timeswap 的 3 变量常量积 AMM

其中,

X = 本金池,它是一个虚拟池,等于池中可借贷的资产数额。

Y = 利率池,它是一个虚拟池,决定了池子里每秒的利息金额,比率 Y/X 是池子里每秒的最大利率。

Z = 抵押因子池,它是一个虚拟池,它决定了借款人要锁定的抵押品,比率 Z/X 是池子的最小抵押债务头寸(CDP)。

K = 恒定常量。

此外,还有另外两个池:

C = 抵押品池,等于借款人锁定在池中的 ERC20 抵押品代币的数量。

A = 资产池,等于锁定在池中的 ERC20 资产代币的数量。它是贷款人贷出的资产和借款人支付的债务之和。

价格发现

在与此模型中的池交互时,贷方和借方可以更改变量 X、Y 和 Z,从而始终保持恒定的常数 K。这可以实时进行利率和抵押因子的价格发现。

贷方(Lenders)将资产添加到本金池 X 中。为了保持乘积不变,Y 和 Z 将减少,这反过来会降低下一个贷方的利率和 CDP/保险范围。

Lending

借款人(Borrowers)从本金池中提取资产,减少 X 。为保持乘积不变,Y & Z 将增加,从而推高利率和 CDP。

Borrowing

灵活的风险概况

该 AMM 的设计通过允许用户决定他们的风险回报概况并相应地为每笔借贷交易设置 APR,为用户提供了灵活性。

对于借款(Borrowing):

  • 较低的 APR 将导致更多的抵押品被锁定。
  • 较高的 APR 将导致锁定的抵押品数量减少。

对于贷款(Lending):

  • 较低的 APR 将导致较高的保险金额。
  • 较高的 APR 将导致较低的保险金额。
调整 APR 以管理风险概况

可以在我们的 Gitbook 中找到有关如何使用 AMM 进行借贷的详细说明。

Timeswap 的 AMM 与 时间的流逝

在恒定乘积的设计中要考虑的一个主要因素是由于时间的流逝而导致的资产或者代币在时间上的无常损失。当一个恒定乘积的 AMM 中的代币价格在任何方向上偏离时,就会发生无常损失。偏离越大,无偿损失也就损失越大。然而,Timeswap 的 AMM 遵循线性递减的时间衰减来解决这个问题。

正如 Pendle 的收益代币一样,借款人的债务市场价值和贷款人的收益率 (由变量 Y 计算) 以及要锁定的借款人抵押品和贷款人的保险 (由变量 Z 计算) 将在在到期时会变为0。这将导致我们的流动性提供者遭受重大损失,因为 Y 和 Z 池将完全耗尽。为了应对这种情况,我们的 AMM 设计将旨在阻止我们的流动性提供者因时间流逝而对其收益或者保险价值造成的任何无偿损失。

不随时间变化的 Y 池参数

在计算借款人应付债务或贷款人将收到的收益率时,该算法随时间 d 进行调整,使 Y 或利率池参数为时间不变。

债务 (D) 和收益率 (Yi) 都遵循公式 Δx+ d*Δy,如 d → 0, D = Δx, Yi = Δx。其中,ΔxΔy 是 X 和 Y 池在借贷交易期间的绝对值变化量。

不随时间变化的 Y 池参数

不随时间变化的 Z 池参数

在计算借款人要锁定的抵押品和贷款人可索赔的保险价值时,该算法以 Z 或抵押品因子池参数为时间不变量,随时间进行调整。

要锁定的抵押品 (W) 和要索赔的保险 (I) 都遵循公式 ΔZmax + RΔz → ΔZmax,使得 d→ 0W = ΔZmax I = ΔZmax。其中,Δz Δy 是借出和借入交易期间 X 与 Y 池价值的绝值变化量。

不随时间变化的 Z 池参数

随着 Defi 市场的进一步扩大,我们 Timeswap 的目标是通过在 Web3 生态系统中建立最具资本效率、最安全和最无许可的货币市场,引领我们走向 Defi 2.0。

登上我们的时光机,在 Twitter 上关注我们并加入我们的 Discord

--

--