比特派钱包app官方下载安卓版|Element Finance 固定利率协议分析_MarsBit

1.概览

Element Finance 是一个可以让用户在 DeFi 市场寻求固定收益的协议。

Element Finance曾获得 a16z 和 Placeholder 领投的440万美元融资,同时以太坊联合创始人兼 ConsenSys 创始人Joseph Lubin、Balancer联合创始人Fernando Martinelli、Aave创始人Stani Kulechov、Compound创始人Robert Leshner等多名行业知名人士参与本轮融资。

已整合协议:Balancer,Curve,Lido,Maker,Aztec,Compound

市场数据统计,参考:https://dune.com/DarenMatsuoka/Element.fi

用户

用户2.可变利率存在什么问题

当前DeFi市场,绝大部分可产生利息的协议,譬如借贷、机枪池、流动性挖矿等产品,提供的都是可变利率,即APY/APR是时刻在变化的,无法给用户提供某个时间范围内的固定利率,此类产品无法满足具有以下需求:

散户或机构为了获得更高的收益,经常要移动他们的资产,这比较耗时且对一般用户而言难以驾驭,对收益率的预测也需要较高的专业水平用户难以理解各种产品的业务逻辑和相关风险,在来回建仓的过程中需要耗费大量的交易费用和建仓成本(如管理费)用户不想抵押他们喜欢的资产来获取贷款,担心在市场剧烈波动的时候被清算

Element为了满足市场需求,设计了具有固定利率功能的DeFi协议,下面我们会先介绍固定利率的优势,之后再讨论Element是如何实现此协议的。

3.固定利率的优势

固定利率跟银行的固定存款利率相似,用户理解起来不费时,也不难操作因为利息在整个期限或部分期限内保持不变,具有完全可预测的收益,适合具有以下要求的用户:

有长期目标,在确保固定利率头寸时,用户可以自信地忘记头寸,在到期日结束后再来赎回便可想要有明确的回报不想处理因可变利率引起的波动风险

固定利率产品提供了获得高利率的自由不需要用户为寻找目标收益而移动他们的资产,也不会导致用户将他们辛苦赚来的钱全部用于交易费用。

消除了复投的风险

复投风险是指通过复投利息并不能产生大于等于当前回报的投资风险

会计和税务方面也可获得好处

浮动利率的波动使用户、机构或投资公司难以进行预测收益的记账。固定利率产品更容易确定这些产品是否符合其最低利润率。

4.实现固定利率的产品逻辑

用户在Element Finance中,用户可以分三类:

Mint用户:通过向Element抵押资产来mint本金代币和利息代币(后面会介绍这两种代币的含义),获取浮动利率收益

LP用户:为本金代币和其对应的底层资产添加流动性,可以收取稳定的交易手续费,而无需承担无常损失风险,此类用户可以从二级市场购买本金代币,也可以作为Mint用户去获取本金代币,从而提供流动性,如果是Mint用户,由此可以收获双份收益

交易用户:用底层资产去兑换本金代币,从而锁定收益率

下面我们基于以上三种用户类型展开,具体讲解如何使用Element Finance协议:

Mint用户

首先,Mint用户将被Element协议支持的底层资产(如ETH、USDC等)抵押到Element,Element会转而将它们抵押到Yearn、Compound等第三方协议以获取利润,这些外部协议对用户的本金和利润进行了统一处理,而Element为了实现固定利率,需要将底层的本金和利息进行分离,分别用本金代币(Principal Token)和利息代币(Interest Token)来持有其底层资产,并且设定了赎回期限,在到期后,才能分别用这两种代币赎回本金和拿到对应的利息,此处可以将这两种ERC20代币理解成带有期货功能的凭证,而Element之所以能对外提供固定利率的金融服务,也是基于此资产模型。

用户

LP用户

然后,LP用户可以基于BalancerV2协议建立流动性池子(如果对BalancerV2协议不熟悉,也可以理解成Uniswap的LP,不影响对整个协议的理解),池子由本金代币和此本金代币所封装的底层资产组成(如epUSDC/USDC,epUSDC即本金代币),因为本金代币是一个期货产品,在一段时期后才能兑付为其对应的底层资产,因此到期前在二级交易市场就会存在贴现问题,交易用户只需要支付M个底层资产便可购买到N个Element发行的本金代币(M<=N),并在到期后以1:1的比例赎回N个底层资产,从而锁定回报率(固定利率为:1-M/N),为了更好的理解其原理,下面我们以USDC作为底层资产来进行实例讲解:

1. 打开https://app.element.fi/mint,将1个USDC抵押到Element协议,可以mint出1个本金代币epUSDC和1个利息代币eyUSDC,如下图:

用户其中一笔历史交易数据:

用户注意:此交易中实际拿到的本金代币并不是1,而会小于1(此处是0.999995),这是因为新产生的利息代币eyUSDC从一开始就继承了Element协议中已有的利息(此处对应的是1个usdc的利息是0.000005 usdc),所以需要将这部分利息扣除,从本金代币中扣除是最简单的方式,扣除后新产生的利息代币跟已经发行出来的利息代币的价值才是等同的,可以一起进行运算,最终对Mint用户而言并没有什么损失或是额外收益

2. 当市场上有了epUSDC后,LP用户便可以将epUSDC和USDC进行组合后添加流动性

(进入此页面https://app.element.fi/pools/0x5746aFD392B13946AaCBdA40317751dB27D8B918?action=stake),如下图:

用户Element的流动性池子是通过BalancerV2协议创建,具体规则可参考Balancer协议的说明文档:https://docs.balancer.fi/,LP用户在操作的时候按照Element前端页面提示操作即可。

由于两种代币存在明确的锚定关系,此类交易对犹如稳定币交易对,需要承担的无常损失风险很小,因此LP用户会很愿意通过提供流动性来挣交易手续费。

交易用户

在有了交易池之后,固定利率也就可以实时计算出来了,譬如在当前的epUSDC/USDC交易池中,可以用1个USDC可以换出1.1个epUSDC,同时1.1个epUSDC在180天后可以赎回成1.1个USDC,那么此时交易用户就可以锁定20%的年化利率。这20% APR的计算方式为:(1.1-1)/1*(360/180)=20%

注意:此交易中实际拿到的本金代币并不是1,而会小于1(此处是0.999995),这是因为新产生的利息代币eyUSDC从一开始就继承了Element协议中已有的利息(此处对应的是1个usdc的利息是0.000005 usdc),所以需要将这部分利息扣除,从本金代币中扣除是最简单的方式,扣除后新产生的利息代币跟已经发行出来的利息代币的价值才是等同的,可以一起进行运算,最终对Mint用户而言并没有什么损失或是额外收益

5.合约代码简要分析

Element Finance官方合约库:https://github.com/element-fi/elf-contracts.git

几个主要合约的关系图:

用户合约说明

UserProxy:用户代理合约,用户通过此合约发起mint和赎回本金代币和利息代币操作,然后此合约会去调用Tranche合约执行具体操作

Tranche:资产管理合约,合约本身被设计为本金代币ERC20,并且当用户在mint的时候,会将底层资产投入到机枪池或借贷协议中产生利润,生成本金代币和利息代币来分别管理投入的底层资产及其收益。

InterestToken:利息代币,只能由Tranche合约进行mint和burn

WrapperPosition:仓位管理抽象合约,Tranche合约通过操作它将用户资产投入到外部矿池进行理财,包括本金代币和利息代币到期后也需要通过此合约来赎回实际抵押的底层资产和获取利息

YVaultAssetProxy:对接Yearn机枪池的资产代管合约

CompoundAssetProxy:对接Compound协议的资产代管合约

跟以上合约相关的几个主要操作的时序图:

用户投入底层资产来mint本金代币和利息代币

用户

用户赎回本金代币

用户

用户赎回利息代币

用户