# Rift Finance中文doc全翻译 **Published by:** [Forward](https://paragraph.com/@forward-2/) **Published on:** 2022-06-25 **URL:** https://paragraph.com/@forward-2/rift-finance-doc ## Content 一、介绍 Rift financeRift 是一种通过重组激励机制以提高整个 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。二、如何参与Rift1、作为流动性提供者赚取收益 流动性提供者可以使用 Rift 协议将他们的挖矿回报翻倍,并保护自己免受永久性损失下行的风险。 流动性提供者可以通过 webapp 存入Rift Vaults。存入的资金将与 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的流动性提供者,您需要将两个代币存入该货币对并承担无常损失的风险。在此处了解有关无常损失风险的更多信息:风险与回报. Rift流动性提供者免受 IL 造成的损失。在 Rift 上,LP 至少能够取回他们的初始存款,除非在最极端的情况下。 2、作为 DAO 实现可持续的流动性 DAO 需要为其代币提供可持续的流动性,因为这样有利于DAO的社区发展并降低代币波动的风险。Rift 建立了一种新形式的协议,就是用协议拥有的流动性来促进 DAO 的发展。借助 Rift,DAO 能够实现大量的代币流动性,而无需丧失对其国库的所有权。 DAO 将其代币存入 Rift Vault,这些代币与流动性提供者存入的资金配对并存入 DEX,以加深该货币对的流动性,代币对在 DEX 上保持激活状态,直到流动性提供者或 DAO 撤回其代币并重新平衡头寸。 如果您是一个对治理代币的可持续流动性感兴趣的 DAO,请发送电子邮件至info@rift.finance或者通过 Discord 联系我们。三、Rift protocol1、协议机制 鉴于 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 更有利可图且风险更低。(3)基础知识-对于双方 vaults是永久性的。它们在基于运算周期的系统上运行,以防止已知的 DEX 攻击,如被其他DEX抢先交易。取款后,退款将根据以下规则分配给双方。任何未被提取的存款都保留在 DEX 中,作为该货币对被激活的流动性。 Rift为 Vault 的 ETH的提供方设置了利率下限,以降低流动性提供者的无常损失风险。最初,此下限设置为 0——这意味着流动性提供者将始终至少收回他们的初始存款。现在,DAO 能够为其 Vault 的流动性提供者设置非零 APY的下限值。APY 底价可以设置为具有竞争力的利率,从而吸引流动性提供者进行ETH 存款。这意味着在无常损失的情况下,流动性提供者将至少获得这个目标 APY 的下限值,除非在最极端的情况下,当且仅当配对代币的价格相对于 ETH 下跌约 75% 时,流动性提供者方将无法达到其目标APY的下限。 此外,它对 DAO 方面实施了利率上限——因此任何超过上限的收益率都将用于奖励流动性提供者。最初,上限设置为 0。但是,此上限反映了 DAO 设置的流动性提供者 APY 下限。参数将随着时间的推移进行调整,以优化风险和回报的分配。 因此,规定Rift vaults的回报的三个规则为:ETH 提供者这一方至少收回了 为他们设定的APY的下限。DAO 方面最多只能得到为他们设置的利率的上限。ETH 提供的一方获得要求 (1) 和 (2) 之外的任何额外收益。因此,如果收益率超过无常损失,流动性提供者们会承担 IL(资产无常损失),但仍会获利。如果无常损失超过收益,DAO 将承担 IL(无常损失)。 如下图,我们可以通过曲线1(蓝色)表示标准 LP头寸的无常损失,曲线2(橙色)表示Rift 中的 LP的无常损失,以及曲线3(绿色)表示当 Vault APY 的下限设置为零时,在 Rift 中的 DAO 的无常损失。蓝色:标准 LP 头寸橙色:Rift 中的 LP 绿色:Rift 中的 DAO如果您想深入了解如何生成这些曲线的详细信息,请进入下一节。 2、风险与回报 (1)无常损失 Uniswap V2 类型 LP 头寸的标准无常损失回报曲线如下所示。这条曲线最初是由 Pintail 在他们关于 Uniswap 的博客文章中介绍的。x 轴是其初始值的价格比率变化(x即下图公式中的price_radio)。因此,当x=1,表示代币的相对价格保持不变(代入x=1,此时IL=0,无无常损失);x=2,表示代币的相对价格相对初始翻了一番;x=0.5,表示代币的相对价格减半(或相反方向翻倍)。备注:以上是计算最坏的情况——他们假设在整个存款期间无swap费用、无激励奖励——因此决定回报的唯一因素是无常损失(永远不是正数)。 从这里开始,我们将把x=1右边的所有点称为DAO 代币相对于 ETH 的价格上涨,x=1左侧的点看作ETH 相对于 DAO 代币价格上涨,请注意Rift 协议是可以在任意 ERC20 代币上运行的,此处使用eth作为例子,是因为这在讲述问题上很有用。 (2)Rift 协议 那么,考虑到使用协议的各自目标,Rift 如何操纵这个回报配置文件以使 DAO 和流动性提供者各自受益?为了计算这些回报概况,我们执行以下操作: 我们假设 ETHE_0为起始数量,设DAO 代币的起始数量G_0(G 表示治理)。同理,当用户撤回他们的 LP 头寸时,我们设ETHE_1为结束时的数量,G_1为DAO 代币的结束数量。 按照上图中的公式,让我们定义x(price_ratio)为从时间 0 到时间 1 的价格比率变化:常数乘积k是两个代币储备数量的乘积。在时间t=0,已知:由于我们假设没有swap费用或其他奖励,根据恒定产品做市商 AMM 的标准规则,恒定产品从时间 0 到时间 1 必须保持储备数量乘机不变。得到等式:结合以上等式,我们可以得出从 LP 头寸撤出时可用的 ETH 和 DAO 代币数量,推导留给读者作为练习:为了简化,我们实际上可以假设:我们可以在不失一般性的情况下做出这个假设,因为无常损失只关心时间 0 和时间 1 之间的价格比值的变化,而不关心这两个时间之间的绝对价格,这确保了接下来的几个公式的有效性。 使用这个假设,我们现在可以定义每一方的“基本利润”——即立即撤出 LP 头寸时的绝对回报值。既然我们知道 LP 头寸在立即撤出时返回的每个代币有多少,我们可以根据利率下限和上限 0 确定必须交换到任一方的数量。si代表“swap in”,即兑换入的代币:(针对以上公式,为了方便理解,本文作者注释: 1、x<=1时,相当于G降价了,池子中有多余的eth,不需要再将拿出的eth进行兑换,所以值为0;反之,如果G相对涨价了,池子本身的eth不够,需要回退一些,在取出的Eth和G代币中取当前的最小价值,大值和小值的差是能够取出的价值; 2、x<=1时,为了保持价值对等,会把其中一部分的G兑换成Eth,取最小的兑换值,反之,如果G涨价了,需要Eth买G,G本身不需要输入,故值为0) 现在我们知道了兑换入的金额,我们可以计算每一方从中兑换出多少(so代表swap out,即兑换出):我们将从头寸收到的初始金额与换入和换出的金额相加。这决定了头寸的绝对收益:根据无常损失公式得出最后的收益:设定利率下限和上线的基本参数,并将这些参数带入公式,看池子的无常损失如何分布。在下图中,蓝色代表Uni V2 版本中头寸的标准无常损失曲线,而橙色线代表通过 Rift 存款的 LP无常损失曲线:如图所示,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 的回报情况:该图表和这些计算假设没有swap费用或其他奖励;但是,如果swap费用超过 IL,那么任何多余的 ETH 都会被用来为流动性提供者提供利润。 所有这些图表都可以在以下 Desmos 链接中查看: https://www.desmos.com/calculator/taxabsbugg?lang=zh-CN (注释:这个图表非常方便,可以通过拖拽鼠标动态修改参数,看极端情况下的图形和值,方便理解Rift协议,同时对于本doc中出现的所有公式都进行了图形展示,推荐查看) 3、智能合约概述 Rift的合约代码库: 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采用周期系统。 AVault将永远将其生命周期分成重复的时期。最初,此时期持续时间设置为 30 天。在某个时期内请求的所有存款和取款都已收集,但尚未在 DEX 中配对。在一个 epoch 结束时,存款和取款被聚合,并在 DEX 池中配对或不配对。 用户可以随时存入任一代币。为了提款,用户必须提交提款请求,该提款请求将Vault在 一个周期结束时得到响应,此时用户的代币份额将可供索取。 为了防止任何价格操纵攻击,这些交互必须在一定的限制内执行。为了确保满足这些限制,有一个 Vault管理帐户能够将 Vault 推进到下一个周期。 (3)回报管理和简易计算 LP 头寸所赚取的费用和奖励Vault平均分配给所有token0存款人。如果Vault中的流动性提供者的头寸遭受了超过收益的重大无常损失时,则存款 (DAO)中的token1将根据“工作原理”和“风险与回报”页面中定义的规则重新使存款人 (LP)的token0恢复初始状态以免受损失。 给定Vault 在 DEX 中创建的头寸,存款人拥有提取权的 token0 或 token1 的数量将随时间变化。我们没有使用用户随后会返回金库检查并领取余额的这些质押代币,而是采用了一种方法,通过跟踪几个全局变量来最小化用户成本: token0 和 token1 的汇率(以上公式中的x值),以及它们在过去几个周期的价值。由于余额的变化按比例分布在所有账户中,我们可以只使用这些内部变量来跟踪每个用户的存款余额,下次个人用户想要存款或取款时,他们将根据记录的全局变量支付实际更新余额的 gas 成本。 ## Publication Information - [Forward](https://paragraph.com/@forward-2/): Publication homepage - [All Posts](https://paragraph.com/@forward-2/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@forward-2): Subscribe to updates - [Twitter](https://twitter.com/boilla9): Follow on Twitter