# Rift Finance中文doc全翻译

By [Forward](https://paragraph.com/@forward-2) · 2022-06-25

---

### 一、介绍 Rift finance

Rift 是一种通过重组激励机制以提高整个 DeFi 的流动性的去中心化协议。Rift V2 目前部署在以太坊和 Aurora 上，这是基于 NEAR 协议构建的 EVM 兼容层。

Rift 允许 DAO 在去中心化交易所中实现可持续的流动性，而无需求助于其他对dao治理有害的方案。DAO 应该将其代币激励集中在促进 DAO发展的目标上，而不是像 DEX 流动性管理这样的辅助需求。Rift 协议允许 DAO 从其国库中部署治理代币，以与来自流动性提供者的代币配对。通过合作，DAO 获得了他们寻求的流动性，而流动性提供者们获得了双倍的回报并降低了风险。结果，双方都能够以他们无法单独完成的方式实现了他们的目标。

Rift 通过抽象出双方 DEX 头寸的复杂性，为 DAO 和 LP 创造了一种简单、被动的体验。DAO 可以部署他们的资金来实现他们的流动性目标，流动性提供者可以获得高额回报，两者都可以做到这一点，而无需考虑 DEX 的复杂性，例如无常损失、可变利率或二级资产敞口的风险。

**_Rift Finance 目前没有代币。_**

要报告任何安全漏洞，请发送电子邮件至[security@rift.finance](mailto:security@rift.finance)。

### 二、如何参与Rift

**1、作为流动性提供者赚取收益**

流动性提供者可以使用 Rift 协议将他们的挖矿回报翻倍，并保护自己免受永久性损失下行的风险。

流动性提供者可以通过 webapp 存入[Rift Vaults](https://app.rift.finance/vaults/earn)。存入的资金将与 DAO 提供的治理代币配对，然后部署到 DEX 以开始赚取兑换费（swap fee）。由于 DAO 以流动性为动力，而 LP 以利润为动力，DAO 向流动性提供者授予该头寸所获得的全部收益以激励他们参与其中。

LP 回报由 Vault 形成的有效期（激活期）内代币对的swap费用和相对价格变化决定，APY 预测来自年化预期回报，预期回报是通过多次模拟Rift协议的完整数据迭代运算而来。

### 使用 Rift 支持 DAO 代币流动性比直接存入 DEX 更有利可图，且风险更低。

**（1）在 Rift 上提供流动性**

流动性提供者从swap费和其他奖励中获得收益，同时享受下行 IL（无常损失） 保护。提款后，所有swap费用和奖励都转换为 LP 最初存入的资产。

**（2）双倍回报**

作为 Rift LP，好处几乎是无限的。Rift 上的 LP 能够以 2 倍的杠杆进行挖矿，从而获得双倍的回报，同时为 DAO 提供可持续的流动性。

**（3）减少无常损失**

直接存入去中心化交易所（DEX）的下行风险很高。作为 DEX的流动性提供者，您需要将两个代币存入该货币对并承担无常损失的风险。在此处了解有关无常损失风险的更多信息：[风险与回报](https://docs.rift.finance/rift-protocol/risk-and-return).

Rift流动性提供者免受 IL 造成的损失。在 Rift 上，LP 至少能够取回他们的初始存款，除非在最极端的情况下。

**2、作为 DAO 实现可持续的流动性**

DAO 需要为其代币提供可持续的流动性，因为这样有利于DAO的社区发展并降低代币波动的风险。Rift 建立了一种新形式的协议，就是用协议拥有的流动性来促进 DAO 的发展。借助 Rift，DAO 能够实现大量的代币流动性，而无需丧失对其国库的所有权。

DAO 将其代币存入 Rift Vault，这些代币与流动性提供者存入的资金配对并存入 DEX，以加深该货币对的流动性，代币对在 DEX 上保持激活状态，直到流动性提供者或 DAO 撤回其代币并重新平衡头寸。

如果您是一个对治理代币的可持续流动性感兴趣的 DAO，请发送电子邮件至[info@rift.finance](mailto:info@rift.finance)或者[通过 Discord 联系我们](https://discord.com/invite/rift-finance)。

### 三、Rift protocol

**1、协议机制**

鉴于 DAO 和流动性提供者的不同需求，Rift 能够重新分配去中心化交易所流动性头寸的风险和回报，以便这些各方可以协作而不是竞争。Rift 为 DAO 赋予了可持续的代币流动性，同时改善了流动性提供者的回报状况。

Rift 协议可以应用于任意 ERC20 代币，但为简单起见，我们将按照与eth建立流动性来探讨该协议，因为这是 DEX 中最常见的流动性币对。

**（1）基础知识-对于dao**

_DAO 使用 Rift 协议来加深代币流动性，而不必像使用流动性挖矿那样放弃其代币的所有权。_

DAO 可以将其代币存入 Rift Vault。这些代币存放在保险库中，直到流动性提供者将 ETH 存入同一个保险库，此时这些代币以相等的数量合并并放入 DEX（Uniswap、Sushiswap 等）以加深这对货币的流动性。

在流动性提供者或 DAO 撤回其代币之前，代币对仍然作为流动性在DEX 上保持着激活状态。

在完成取款后，头寸会根据一些简单的规则重新平衡，如下所述。

**(2)基础知识-对于流动性提供者**

_流动性提供者使用 Rift 协议将他们的回报翻倍，并保护自己免受永久性损失的下行风险。_

流动性提供者可以将 ETH 存入任何包含 DAO 代币的保险库，然后将这些存款与 DAO 代币配对，并在 DEX 中作为流动性激活。

如果存入 ETH 的价值多于 DAO 代币，那么在 DEX 中配对后，合约中就会有多余的 ETH。这很好，因为这些 ETH 存款将保留在金库中，直到存入更多 DAO 代币或直到存款人选择退出，回报平均分配给所有流动性提供者。

来自 DEX流动性提供者头寸的所有swap费用（超过无常损失）都将提供给 ETH 存款人，尽管他们只提供了代币对50% 的资本，但 DAO 只要求获得 0% 的奖励，这允许提供其他 50% 资本的流动性提供者得到 100% 的回报。因此，使用 Rift，流动性提供者可以获得 2 倍的奖励，他们的状况类似于获得了DAO 代币的免费贷款，没有任何清算风险。

**所以对于 LP 而言，与直接将流动性存入 DEX 相比，存入 Rift Vault 更有利可图且风险更低。**

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

**（3）基础知识-对于双方**

vaults是永久性的。它们在基于运算周期的系统上运行，以防止已知的 DEX 攻击，如被其他DEX抢先交易。取款后，退款将根据以下规则分配给双方。任何未被提取的存款都保留在 DEX 中，作为该货币对被激活的流动性。

Rift为 Vault 的 ETH的提供方设置了利率下限，以降低流动性提供者的无常损失风险。最初，此下限设置为 0——这意味着流动性提供者将始终至少收回他们的初始存款。现在，DAO 能够为其 Vault 的流动性提供者设置非零 APY的下限值。APY 底价可以设置为具有竞争力的利率，从而吸引流动性提供者进行ETH 存款。这意味着在无常损失的情况下，流动性提供者将至少获得这个目标 APY 的下限值，除非在最极端的情况下，当且仅当配对代币的价格相对于 ETH 下跌约 75% 时，流动性提供者方将无法达到其目标APY的下限。

此外，它对 DAO 方面实施了利率上限——因此任何超过上限的收益率都将用于奖励流动性提供者。最初，上限设置为 0。但是，此上限反映了 DAO 设置的流动性提供者 APY 下限。参数将随着时间的推移进行调整，以优化风险和回报的分配。

因此，规定Rift vaults的回报的三个规则为：

1.  ETH 提供者这一方至少收回了 为他们设定的APY的下限。
    
2.  DAO 方面最多只能得到为他们设置的利率的上限。
    
3.  ETH 提供的一方获得要求 (1) 和 (2) 之外的任何额外收益。
    

因此，如果收益率超过无常损失，流动性提供者们会承担 IL（资产无常损失），但仍会获利。如果无常损失超过收益，DAO 将承担 IL（无常损失）。

如下图，我们可以通过曲线1（蓝色）表示标准 LP头寸的无常损失，曲线2（橙色）表示Rift 中的 LP的无常损失，以及曲线3（绿色）表示当 Vault APY 的下限设置为零时，在 Rift 中的 DAO 的无常损失。

![蓝色：标准 LP 头寸橙色：Rift 中的 LP
绿色：Rift 中的 DAO](https://storage.googleapis.com/papyrus_images/a59cf678849cd4df78ecd439d61c20ec7b5d8101b58e66b9eb89c4724b372231.png)

蓝色：标准 LP 头寸橙色：Rift 中的 LP 绿色：Rift 中的 DAO

如果您想深入了解如何生成这些曲线的详细信息，请进入下一节。

**2、风险与回报**

**（1）无常损失**

Uniswap V2 类型 LP 头寸的标准无常损失回报曲线如下所示。这条曲线最初是由 Pintail 在[他们关于 Uniswap 的博客文章中介绍](https://pintail.medium.com/uniswap-a-good-deal-for-liquidity-providers-104c0b6816f2)的。x 轴是其初始值的价格比率变化（x即下图公式中的price\_radio）。因此，当`x=1`，表示代币的相对价格保持不变（代入x=1,此时IL=0,无无常损失）；`x=2`，表示代币的相对价格相对初始翻了一番；`x=0.5`，表示代币的相对价格减半（或相反方向翻倍）。

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

备注：以上是计算最坏的情况——他们假设在整个存款期间无swap费用、无激励奖励——因此决定回报的唯一因素是无常损失（永远不是正数）。

从这里开始，我们将把`x=1`右边的所有点称为DAO 代币相对于 ETH 的价格上涨，`x=1`左侧的点看作ETH 相对于 DAO 代币价格上涨，请注意Rift 协议是可以在任意 ERC20 代币上运行的，此处使用eth作为例子，是因为这在讲述问题上很有用。

**（2）Rift 协议**

那么，考虑到使用协议的各自目标，Rift 如何操纵这个回报配置文件以使 DAO 和流动性提供者各自受益？为了计算这些回报概况，我们执行以下操作：

我们假设 ETH`E_0`为起始数量，设DAO 代币的起始数量`G_0`（G 表示治理）。同理，当用户撤回他们的 LP 头寸时，我们设ETH`E_1`为结束时的数量，`G_1`为DAO 代币的结束数量。

按照上图中的公式，让我们定义`x（price_ratio）`为从时间 0 到时间 1 的价格比率变化：

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

常数乘积`k`是两个代币储备数量的乘积。在时间`t=0`，已知：

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

由于我们假设没有swap费用或其他奖励，根据恒定产品做市商 AMM 的标准规则，恒定产品从时间 0 到时间 1 必须保持储备数量乘机不变。得到等式：

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

结合以上等式，我们可以得出从 LP 头寸撤出时可用的 ETH 和 DAO 代币数量，推导留给读者作为练习：

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

为了简化，我们实际上可以假设：

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

我们可以在不失一般性的情况下做出这个假设，因为无常损失只关心时间 0 和时间 1 之间的价格比值的变化，而不关心这两个时间之间的绝对价格，这确保了接下来的几个公式的有效性。

使用这个假设，我们现在可以定义每一方的“基本利润”——即立即撤出 LP 头寸时的绝对回报值。

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

既然我们知道 LP 头寸在立即撤出时返回的每个代币有多少，我们可以根据利率下限和上限 0 确定必须交换到任一方的数量。`si`代表“swap in”，即兑换入的代币:

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

**(针对以上公式，为了方便理解，本文作者注释：**

**1、x<=1时，相当于G降价了，池子中有多余的eth，不需要再将拿出的eth进行兑换，所以值为0；反之，如果G相对涨价了，池子本身的eth不够，需要回退一些，在取出的Eth和G代币中取当前的最小价值，大值和小值的差是能够取出的价值；**

**2、x<=1时，为了保持价值对等，会把其中一部分的G兑换成Eth,取最小的兑换值，反之，如果G涨价了，需要Eth买G，G本身不需要输入，故值为0)**

现在我们知道了兑换入的金额，我们可以计算每一方从中兑换出多少（so代表swap out,即兑换出）：

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

我们将从头寸收到的初始金额与换入和换出的金额相加。这决定了头寸的绝对收益：

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

根据无常损失公式得出最后的收益：

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

设定利率下限和上线的基本参数，并将这些参数带入公式，看池子的无常损失如何分布。在下图中，蓝色代表Uni V2 版本中头寸的标准无常损失曲线，而橙色线代表通过 Rift 存款的 LP无常损失曲线：

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

如图所示，Rift LP（ETH 存款人）获得了永久性损失保护。**（注释：在图中橙色线，G价格在0.25以上开始，无常损失为0；除非G代币相对Eth下跌为原来的1/4，才开始有无常损失，且无常损失也优于标准版本）**

当治理代币的价格相对于 ETH ( `x>1`) 上涨时，资产池中的资产比例发生了倾斜，因此现在 LP 头寸中的 DAO 代币越来越少，而 ETH 越来越多。在这种情况下，头寸中多余的 ETH 被交换为治理代币，以偿还 DAO 并使其头寸完整，永远不会低于 LP 的初始存款中的DAO。

当治理代币的价格相对于ETH （`x<1`在这种情况下，多余的治理代币被交换为 ETH，以使流动性提供者的币不受到损失。

现在我们加入 DAO 的回报情况：

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

该图表和这些计算假设没有swap费用或其他奖励；但是，如果swap费用超过 IL，那么任何多余的 ETH 都会被用来为流动性提供者提供利润。

所有这些图表都可以在以下 Desmos 链接中查看：

[https://www.desmos.com/calculator/taxabsbugg?lang=zh-CN](https://www.desmos.com/calculator/taxabsbugg?lang=zh-CN)

**（注释：这个图表非常方便，可以通过拖拽鼠标动态修改参数，看极端情况下的图形和值，方便理解Rift协议，同时对于本doc中出现的所有公式都进行了图形展示，推荐查看）**

**3、智能合约概述**

Rift的合约代码库：

[https://github.com/recursive-research/rift-protocol](https://github.com/recursive-research/rift-protocol)

**（1）Vault**

Rift 协议中的核心基础就是`Vault`.

`Vault`是一个智能合约，它接受存款并管理一对代币的回报概况：`token0`和`token1`.

`token0`是受利润驱动的存款人的资产。`token0`可以是任意的 ERC20，也可以是链的原生资产。

`token1`是以流动性为动机的存款人的资产。`token1`必须是一些任意的 ERC20。

1个`Vault，token0和token1`存入并为某些 DEX 中的`token0/token1`提供流动性。

**（2）1个周期（Epochs)**

由于当今 DEX 提供流动性的性质，立即转发到 DEX 池的保险库存款/取款将受到套利者的价格操纵攻击。为防止这种情况，`Vaults`采用周期系统。

A`Vault`将永远将其生命周期分成重复的时期。最初，此时期持续时间设置为 30 天。在某个时期内请求的所有存款和取款都已收集，但尚未在 DEX 中配对。在一个 epoch 结束时，存款和取款被聚合，并在 DEX 池中配对或不配对。

用户可以随时存入任一代币。为了提款，用户必须提交提款请求，该提款请求将`Vault`在 一个周期结束时得到响应，此时用户的代币份额将可供索取。

为了防止任何价格操纵攻击，这些交互必须在[一定的限制内执行。](https://docs.uniswap.org/protocol/V2/guides/smart-contract-integration/providing-liquidity)为了确保满足这些限制，有一个 Vault管理帐户能够将 Vault 推进到下一个周期。

**（3）回报管理和简易计算**

LP 头寸所赚取的费用和奖励`Vault`平均分配给所有`token0`存款人。如果`Vault`中的流动性提供者的头寸遭受了超过收益的重大无常损失时，则存款 (DAO)中的`token1`将根据“工作原理”和“风险与回报”页面中定义的规则重新使存款人 (LP)的`token0`恢复初始状态以免受损失。

给定`Vault` 在 DEX 中创建的头寸，存款人拥有提取权的 token0 或 token1 的数量将随时间变化。我们没有使用用户随后会返回金库检查并领取余额的这些质押代币，而是采用了一种方法，通过跟踪几个全局变量来最小化用户成本： token0 和 token1 的汇率（以上公式中的x值），以及它们在过去几个周期的价值。由于余额的变化按比例分布在所有账户中，我们可以只使用这些内部变量来跟踪每个用户的存款余额，下次个人用户想要存款或取款时，他们将根据记录的全局变量支付实际更新余额的 gas 成本。

---

*Originally published on [Forward](https://paragraph.com/@forward-2/rift-finance-doc)*
