原文作者:S Capital Research,Odaily星球日报经授权发布
SCapital.fi 是一支抗周期的全方位区块链投资基金,业务涵盖比特币挖矿、一级市场风险投资,并深度参与基于市场/行业分析的二级市场去中心化金融活动。
Background
传统金融中,固定利率借贷很普遍,商业银行通过客户的存款获得较低的融资成本。而借款人通过抵押资产的形式以较高的融资成本获得贷款来满足其创业,房贷,车贷等需求。在这种模式下,商业银行利用其品牌和牌照的垄断地位,使借款人需要付出较高的融资成本和贷款申请过程中的时间成本。从存款人的角度来讲,存款的收益很难跑赢通胀。传统金融的风险管控模式,导致整体效率很低。
亿万富翁投资者马克-库班在谈到DeFi的发展时说:DeFi的基本好处是,它简化了出于个人目的的借贷,因为从银行借钱很麻烦。
当下DeFi借贷的主要模式是以超额抵押为基础的浮动利率机制,借款利率和存款利率会随着用户的需求而浮动。资金池的可借资产越多,一般借款利率就会越低,这类产品的代表协议为Compound,AAVE。然而由于DeFi 中利率高波动性的特点,使得浮动利率贷款风险较高,让加密货币投资者无法以可预期的方式对资金进行长期的管理。以AAVE为例,在2021 年10 月29 ~30 日,USDT的借款利率在一天内从3.73% 陡升到61% ,从借款端的角度来讲,浮动利率出现如此大的波动是灾难性的,因为借款人往往在缺乏流动性的时候质押优质资产来换取短期流动性,因此在利率大幅上升时,他们通常没有能力及时偿还债务,只能承受计划外的高额利息,或者债务违约折价拍卖抵押品。从DeFi Ecosystem的发展来看,利率有如此高的不确定性势必会阻碍市场更大规模的发展,而固定利率借贷协议恰好可以填补这一方面的空白。
在固定利率借贷服务中,利率在整个贷款期内均保持不变。由于已知利率是预先设定的,因此固定利率贷款的风险较小,能够吸引许多范围更广、时间更长、风险更低的用例。
在传统金融中,固定利率借贷是主要的借贷形式,在全球借贷市场上占有相当大的份额。根据证券业和金融市场协会(SIFMA)的数据,截至2021 年,全球债券市场的规模(未偿还债务总额)估计为119 万亿美元,美国市场为46 万亿美元。根据门户网站The Block的数据统计,截止2022 年10 月22 日,三家知名的DeFi借贷协议(MakerDao, AAVE, Compound)的未偿还债务总额约为100 亿美元。 因此我们可以看到,固定利率借贷在DeFi领域是一颗尚未发现的遗珠,且有巨大的潜在市场规模,可谓是蓝海。
固定利率的实现方式有很多种,包括基础固定利率借贷协议,本息分离协议,结构化分层(固定利率衍生品)以及博弈论固定利率协议。上篇会聚焦于基础固定利率借贷协议,挖掘固定利率实现的基本机制,使用案例,和对比分析。
基础固定利率借贷协议
基础固定利率借贷协议实现这一目标的一个基本机制是 零息债券。债券相当于一种借据,发行者会在上面标明在到期前应付的利息,可以用于低于票面金额买到并且不用支付利息的债券就是零息债券,其逻辑就是先用折价的债券进行销售,购买债券的人在到期日时获得原价票面金额的资金偿还,而其中的差价则代表了利息,所以可以通过平衡市场的供求关系来确定一个借款人和存款人都能接受的固定利率。在DeFi协议中,零息债券的模式通常是用一种资产抵押而生成一个具有债券功能的产权代币,用户可根据需求对该债券代币进行交易,兑换,构建永续产品等,来产生到期日之前的短期收益,具有代表性的项目有Notional Finance,Yield Protocol。
Notional Finance
Notional Finance 是以太坊区块链上首批提供固定利率服务的借贷协议之一,使加密货币交易者能够以固定利率存入和借出数字资产,锁定的利率不会受到市场的波动而波动。
Basic Mechanism
Notional Finance 基于名为 fCash 的通证推出了固定利率借贷协议,通过可转让的fCash来促进固定利率、固定期限的加密资产借贷,而fCash代表了对未来特定时点的现金流的债权。每枚fCash 代币由两个因素所定义:1. 所关联加密货币 2. 到期日期。
fCash代币总是成对产生:资产和负债。在整个Notional系统中,资产和负债总是净值为零。这里也很好理解,权利和义务必须是对等的。
计价货币 VS 结算货币
在Notional V2中,fCash代币的计价货币与它的结算货币不同。fCash以DAI或USDC等基础代币计价,但它以cDAI或cUSDC等cToken结算(cToken为Compound的存款证明)。例如,在到期时,100 个2021 年12 月1 日的fDAI不能直接赎回100 个DAI,而是可以赎回价值100 个DAI的cDAI,然后根据用户的意愿自由兑换成DAI。
这里就是Notional生态系统设计巧妙的一个地方,通过将计价货币从结算货币中分离出来,用cTokens(如cDAI)优化Notional的资本效率,同时仍然能够实现基础代币(如DAI)的固定利率借贷,这样设计主要有两方面收益。
流动性提供者将基础货币存入Notional流动性池,但在池子中存在的形式是cToken。这大大增加了他们的回报,这允许LPs在其资本上赚取cToken浮动利率,此外还可以赚取在Notional上借出其资本的利息和Notional的流动性池应计的流动性费用。
从存款人的角度来讲,由于Notional的底层资产为cToken,因此在贷款到期后,存款人会立即停止赚取固定利率,fCash被自动转化成Compound的cTokens赚取浮动利息。换句话说,这意味着固定利率的贷款一旦到期,即使没有被展期,也会开始计入可变的cToken存款利率。
结算机制
在现金资产到期时,Notional确定相当于现金资产的面额货币的cTokens的数量,并将账户的现金转换为该数量的cTokens。例如,在到期时,100 个2021 年12 月1 日的fDAI将转换为2021 年12 月1 日的100 个DAI价值的cDAI。
从机制上讲,cDAI的结算金额是由结算汇率决定的。结算汇率被定义为到期时的cDAI/DAI汇率。结算汇率在到期前是未知的,在到期时被设定,在到期后保持不变。
下面是2021 年12 月1 日100 个fDAI的价值如何随着时间的推移和cDAI/DAI汇率的变化而变化。
需要注意的是,cDAI to Redeem 被设定为确切的数额,以便 cDAI to Redeem 的DAI值在到期时等于fCash的面值。即使 cDAI to Redeem 的DAI值增加,cDAI to Redeem 在到期后仍保持不变。这反映了Notional的现金余额被动地累积了cToken存款利率收益的事实。
在了解了Notional底层资产的基本机制后,让我们来深度挖掘借款人,存款人,流动性提供者是如何与流动性池交互,从而实现固定利率借贷。
但是需要特别强调的是,由于存款人和借款人不太可能在同一时间发生存款和借款的行为,因此存款人和借款人的交易对手方均为Liquidity Pool,这些流动性提供者确保在任何时候都有现金和fCash可供存款人或借款人使用,并收取交易费作为回报。因此,我们需要先来了解Liquidity Pool是如何建立的,因为如果没有LPs向池子里注入资金,也就没有任何固定利率的借贷行为。
Liquidity Pool and nToken
Notional在其内置支持AMM的流动性池中提供fCash的交易。Notional流动性池持有fCash和其结算货币(例如,cDai和fDai一起)。
流动性提供者为Notional的流动性池提供cToken,并拿到nTokens作为凭证,该凭证无到期日,可以随时赎回。nTokens是ERC-20 资产,代表Notional在特定货币总流动性中的份额。nTokens使LP能够被动地同时向特定货币的所有活跃流动性池提供流动性,而不需要以任何方式与基础流动性池互动。系统会将集中的流动性自动分配到各池,分配比例由社区治理来决定,以此来最大化资本使用效率。
存入的cToken一部分会用来购买fCash。因此,流动性池由cToken和fCash来组成,nToken的混合利率收益会介于fCash和Compound的存款利率之间。
虽然流动性提供者获得的回报低于fCash interest rate,但是LP存在的目的永远都不是为了获得固定的回报,因此协议有以下几种方式来奖励流动性提供者。
每次存款和借款产生的交易费、fCash利息、作为Compound的被动存款人的基础货币市场利息,以及来自社区治理代币NOTE的奖励。前三个回报来源被纳入 可变利率 APY中。可变APY通常维持在0.5% 左右,但是也有极端情况会出现负值。比如在缺少借款人的时候(大量存款人),LP就变成了借款人,需要支付到期产生的利息。出现负值就意味着交易费加上Compound的收益不足以覆盖LP借款行为产生的利息。在缺存款人的时候(大量借款人),LP就成了存款人,到期会收到利息,从而提高可变APY。
让我们来举例说明:
Initial Status
假设在2022 年3 月流动性池在初始状态,让我们把nToken分解成它们的基础债权,为了简单起见,假设每个nToken对1 个cToken和1 个fCash都有债权。目前借贷行为保持在了一个平衡状态,此时fCash净现金头寸为0 。
Scenario 1
考虑第一个用户为借款人,从2022 年3 月的到期日借入100 个cToken,以换取105 个fCash。此时流动资金池cToken Claim下降到100 ,fCash Claim增加到305 。所以现在nToken在2022 年3 月的到期日有+ 105 的净现金头寸。换句话说,nToken(流动性提供者)现在是这个期限的净存款人,到期会收到利息。
Scenario 2
第二个用户为存款人在相同期限选择存入200 个cTokens,以换取购买208 个fCash。此时流动性池cToken Claim增加到300 ,fCash Claim下降到97 。所以现在nToken在2022 年3 月的到期日有一个-103 的净现金头寸。换句话说,nToken(流动性提供者)现在是这个期限的净借款人。如果负的fCash到期所产生的利息大于交易费加上Compound的收益,则可变APY会出现负值。
nToken的净现金头寸反映了所有终端用户在Notional的总活动。当nToken有大量的净现金头寸时,意味着终端用户的活动已经向一个方向倾斜。大量的净现金头寸也会影响用户在赎回其nToken时产生的滑点。
nTokens还有一个特点在于为流动性提供者提供了高度的资本效率,当流动性提供者获得了nTokens之后,可以使用nTokens作为抵押品进行借款,相当于将nTokens杠杆化。
在了解了以上所有流动性池和底层资产的基本运作机制后,理解固定利率的借款和存款会变的更加简单。
固定利率存款借款机制
存款人通过购买折价的 fCash 由此锁定一个利率,fCash代表了他们可以在到期时有权获得相关基础货币的金额。借款人利用超额抵押铸造出fCash,并通过出售 fCash 以获得基础货币,同时换取在未来特定时间偿还的义务。
固定利率存款:存款人向流动性池子里支付Dai,系统会自动将Dai存入的Compound中换取cDai,再到流动性池中购买折价的零息债券fDai。存款人在交易时付出的Dai与fDai在到期时可以获得其基础货币的差额,即为存款人获得的固定存款利息。
在下面的例子中,存款人希望以一年的固定利率向Notional上的提供100 个DAI贷款。存款人首先将他们的100 DAI转换为cDAI,然后将cDAI存入Notional流动资金池,以换取105 fDAI。当贷款在2021 年12 月1 日到期时,存款人可以将他们的105 fDAI赎回为cDAI,然后将cDai转换成105 DAI。
固定利率借款:借款人通过超额抵押了ETH之后,可以铸造出一定数额的fDai,系统会将其变卖成cDai,最终至Compound中取回Dai来实现固定利率借款,借款人在交易时收到的Dai与铸造出fDai的差额,即为借款人在到期时需要支付的固定借款利息。
在下面的例子中,借款人先抵押一个ETH存入Notional中:
然后,借款人在他们选择的2021 年12 月1 日到期日铸造一对fCash代币。
借款人现在可以将正的fCash代币卖到其流动性池中,以换取基础货币。
现在,借款人通过抵押资产,获得了借款,以及未来偿还借款的义务(在借款归还前抵押物无法取回)。到期还款金额和借款金额之间的差额,就是借款人需要付出的固定利息。
Liquidation
抵押品的价格发生变化时,借款人的抵押率也会发生变化。例如,针对以ETH为抵押品借USDC的最低抵押率是145% 。如果抵押率跌破145% ,借款人的抵押品就会开始被系统被清算。在清算期间,清算人以链上预言机价格的折扣购买一个账户的部分抵押品,并偿还被清算账户的部分债务,清算人可以购买该账户至少40% 的抵押品。
Roll over
假如借款人在期限内并无发生清算,但在到期日没有偿还欠协议的债务,借款人将被第三方以罚息利率强行自动转入。目前惩罚利率设定为250 个基点(2.5% )。例如,如果以前的借款利率是6% ,那么新利率将是8.5% ,直到借款人偿还债务为止。借款人也可以按照该期限的现行利率将债务滚动到未来的期限。这意味着,借款人可以选择先不清偿债务,而是将债务展期到最近的到期日,借款人在下一个到期日偿还债务即可。
Notional AMM
Notional 设计出来的fCash本质上是零息债券,而零息债券有一个很重要的特点就是价值会随着时间的变化而变化:
Price of Zero Coupon Bond = Maturity Value / ( 1 + r)^n
由以上公式可以看出,尽管利率在期间内保持恒定不变,但零息债券的价格也会随时间不断变化。越临近到期日,债券的价格就越接近面额,最终两者之间的汇率将趋于1 。从另一个角度来讲,如果我们用Uniswap的x×y=k作为AMM曲线,如果没有人在期间内有任何交易,资金池的状态保持不变,零息债券的价格也会保持不变,随着到期日的临近,APY会呈现指数型增长,吸引人们去套利,使流动性提供者遭受无常损失。
因此,没有考虑时间变量的AMM在二级市场对fCash定价已经不再有效,我们需要一条能自动改变报价的曲线,使零息债券的价格在一开始就对时间和利率的变化更敏感,并能根据市场情况而变化,当接近到期日时,市场价格不断向面值收敛。
Notional AMM是由三个变量组成--Scalar,Anchor,Liquidity fee
Scalar和Anchor允许分别改变曲线的陡度和它在xy面的位置。参数Scalar代表了价格对需求的敏感度,随着越临近到期日,曲线会越平滑,使流动性集中在参数Anchor所铆钉的价格上。增加Scalar值会使曲线变平,减少Scalar值会使其变陡。这意味着Scalar值越大,曲线就越不敏感,在特定交易中的滑点也就越少。相反,一个较小的Scalar值会导致一个更敏感的曲线,以及在给定交易中更多的滑点。改变Anchor可以使曲线在XY平面上上下移动。Anchor的设计理念是当价格不发生变化时,Anchor可以保持利率恒定,防止时间的变化对利率产生影响。
静态敏感性的问题不仅与流动性曲线本身有关,也与流动性费用有关。同样的推理也适用--随着fCash代币接近到期日,以汇率计算的恒定费用对终端用户的惩罚性将呈指数增长。为了解决这个问题,协议将Scalar和流动性费用转换为到期时间的函数,每个参数都是一个根值。使Scalar成为到期时间的函数意味着流动性曲线的形状随着我们接近到期时间而改变。这样设计的目的是,手续费的规模将随着时间的推移线性下降到零,以减少手续费对年化利率的影响。
因此我们综合以上三个参数可以得到Notional AMM 的定价公式:
Yield Protocol
Yield的基本机制与Notional有类似也有不同。Yield 允许借款人抵押一种资产从而铸造出fytokens,这里的fytokens就相当于零息债券,本身不支付利息,利息由代币面值与支付的价格之间的差额决定,如果当借款头寸的抵押品价值低于债务价值*抵押率时,该头寸将被拍卖清算。所以Yield的整个生态系统就是围绕fytokens,以零息债券的方式来充当用户借贷的固定利率。
Basic Mechanism
固定利率存款和借款机制如下:
固定利率存款:存款人现以折价购买零息债券fydai在到期日后赎回,来获得固定利息,其中Dai与fDai的差额为利息。如果存款人到期没有赎回fydai,那么将开始从fyDai上赚取Compound的cDai浮动利率,直到决定将其赎回为Dai。
固定利率借款:用户先存入抵押品例如ETH来铸造出fyDai,再变卖成Dai,由于fyDai是折价的,因此拿到的Dai的数量会变少,两者之差则为用户的借款成本。
流动性头寸管理
由于每一期的零息债券都有不同的到期日和价格,所以每一期的交易都需要一个单独的流动性池。目前,每期收益率协议的期限为6 个月。为了消除流动性提供者频繁调整头寸的需要,流动性在到期后会自动滚动到最新一期,这样流动性提供者就可以继续赚取手续费,而不需要支付额外的gas fee。
Yield Space(AMM)
与前面提到Notional的fCash一样,fyTokens可以使用现有的DEX如Uniswap进行交易,但这些协议自身的AMM并没有为fyTokens进行优化,忽略了时间变量可能造成对流动池的套利损失。因此Yield protocol创新了一种考虑时间变量的AMM机制来支撑Pool的资金流动,旨在实现fyTokens和其基础资产之间的有效交易,该自动流动性做市商协议称为Yieldspace。
Yield protocol加入了一个时间变量的恒定功率总和公式:
x^( 1 −t) + y^( 1 −t) = k
Where:
y代表的是fyToken的储备
x代表的是目标代币的储备
t代表的是Time to Maturity( 0<t<1)
当t= 1 时,其公式相当于uniswap使用的恒定乘积公式,当t= 0 时,恒定幂和共识相当于以1 :1 的价格提供代币的恒定和公式。特点在于,资金池在任何时候提供的边际利率=fyDai储备与Dai的利率减1.
r=y/x-1
例如,如果fyDai的储备是110 ,Dai的储备是100 ,那么资金池提供的边际利率将会等于10% ,该公式确保如果储备没有变化,资金池提供的边际利率不会随时间变化。换句话说,资金池的fydai储备随着时间的推移而增加,其增加的速率与fydai当前价格所隐含的利率相同,虽然这并不会消除套利带来的损失,但是这意味着套利机会只能在利率变化时出现。
像其他自动流动性提供商一样,用户可以选择向YieldSpace资金池提供流动性以赚取未来交易的费用。YieldSpace使用一种为fyTokens优化的定制收费模式。YieldSpace不是按买入或卖出资产金额的百分比收取费用,而是按利率和到期时间的比例收取费用。这种收费模式确保收费永远不会导致借款人(fyToken卖家)支付的利率和贷款人(fyToken买家)赚取的不合理金额。
Notional Finance VS Yield Protocol
数据分析
Notional Finance当前TVL约为6 千万美元,远高于Yield Protocol的8 百万美元。更高的锁仓量意味着,更多的市场认可,更低的交易滑点,和更合理的市场利率水平。Notional累计借贷活动金额达到$ 688 Million。
机制角度
Notional Finance与Yield Protocol显著的区别在于,Notional生态系统的底层资产是cToken,也就是Compound的存款证明,而交易零息代币的流动性池是fCash/cToken,这样存储在流动性池中的资金可以随时产生利息,提高流动性提供者的资金使用效率。
Yield使用自己改良版本的AMM,称为YieldSpace来管理滑点,而Notional则使用一种动态的敏感曲线组成的专有算法,通过三个参数来构建了一个适用于零息债券流动池价格变化的曲线,两种机制都在一定程度上解决了以下三个问题。
1.随着到期日的临近,系统会自动调整价格,尽管没有人交易,但保持利率不变。
2.随着到期日的临近,价格曲线需要变得更加平滑,使库存的变化对价格不敏感。
3.手续费不能按固定比例收取,需要随着到期日的临近而减少。
两种AMM都各有千秋,很难从机制角度来综合评判哪种在控制滑点和无常损失中表现更好。在Uniswap中,只要价格发生变化就会有套利交易,而YieldSpace Pool中的套利交易只有利率发生变化时才会发生,这也只能在一定程度上减少LP遭受的 无常损失。
Notional的解决方案是利用三个参数来分别控制变量,但缺点在于需要频繁调整参数来达到利率恒定,并且效果上有一定滞后。Notional利用最后交易利率来反映流动性池上最后执行交易的隐含利率。最后交易利率可以在短时间内被操纵(如通过闪电贷款),以显示一个不反映特定时间内流动性池的真实或平衡利率的利率。尽管为了抵消隐含利率的漂移,利Anchor参数来确保在没有任何交易的情况下保持利率的一致性,但每产生一次交易都会频繁更新隐含利率。
治理角度
Yield 协议信奉去中心化,抗审查和安全性这三大原则,所以Yield并无任何治理代币,协议一旦制定,开发人员就会移除,Yield 协议自动运行,任何人都没有管理权限。而Notional有自己的治理代币NOTE,NOTE持有人可以提议,投票,并实施对Notional系统参数和智能合约的修改,每个NOTE持有者在他们持有的每个NOTE中获得一个投票权。从治理的角度来看,Notional的发展上限会比Yield要高,基础固定利率借贷协议发挥的作用不仅仅是单纯解决固定利率借贷的难题,所涉及的零息债券会在未来与其他衍生品合约建立起用途更广的投资组合解决方案,这些都需要社群成员投票,决策和共同治理来推动。
用户体验角度
目前Notional Finance借贷区间保持在3 个月一个期限,最长为1 年。而Yield Protocol则是半年一个周期。从LP的角度来看,两种协议都支持到期可以自动展期,持续赚取可变收益,影响不大。
从产品界面来看,Notional Finance有清晰的利率期限结构(Term Structure),便于用户直观的对比长期利率与短期利率并匹配自身需求来做出投资决策。
从资本使用效率的角度来看,Notional Finance的LP在向池子里提供流动性后收到的nTokens可以用于借款的自定义抵押品。换句话说,LP可以对比nTokens的动态收益率和借款利率,当借款利率比较低时,LP抵押nTokens获得基础资产,再用基础资产持续提供流动性铸造出更多的nToken,本质上是对nTokens加杠杆。Notional通过向nToken持有人分配治理代币NOTE来激励流动性提供者。然后LP可以质押获得的NOTE来持续获得协议的收益,这些特点都是Yield Protocol所不具备的。