AAVE V3 和 Compound V2 的利率模型

文章详细介绍了去中心化金融(DeFi)中的利率模型及其在AAVE协议中的应用。文章阐述了利用率如何影响借贷利率以及相关公式和参数设置,并提供了具体的示例和智能合约地址,帮助读者深入理解DeFi中的利率机制。

利率在传统金融(TradFi)中主要由中央银行决定,并受市场因素的影响。相比之下,去中心化金融(DeFi)中的利率则由贷款需求和借款方提供资金的供应情况算法确定。

本文中的概念将通过 AAVE 进行解释,AAVE 是以太坊上的一个领先 DeFi 借贷协议。Compound V2 的利率模型与其完全相同,只有一些实现上的细微差别。与其他借贷协议的实现相比,你可能会遇到差异。

一个借贷协议使用智能合约聚合来自借贷者的流动性,并允许借款方根据这笔合并的流动性进行贷款。我们有时将流动性称为“资金”或“资本”。

借出者(即供应者)将基于他们提供的流动性来赚取利息。借款者有义务支付贷款利息。

借贷协议通常会预留一个“准备金系数”——即供应商提供的资本的一定百分比,他们对此不收取利息。这部分资本的利息则归协议所有,被称为“利差”。

借款的程度会影响利率——我们称之为“借款需求”。存款的贷款额所占的百分比越大,利率就会越高。我们将借款程度相对于可借资金的供应称为“利用率”。如果没有借款者,利用率为0%,如果存款全部借出,利用率为100%。利用率的数值被用作利率的唯一驱动因素。

以下图表说明了这一点——我们将在本文中逐步解释每个步骤。

借款需求决定利用率,决定借款利率,决定供给利率

作者

本文由 Calnix 撰写,动画由 Aymeric Taylor 制作。

利用率公式

如前所述,利用率由借款需求决定。

借款需求决定利用率

利用率通常按如下计算:

利用率 = 借款资本 / 总资本

注意,借款需求是相对于总存款而言的。如果总存款增加但借款需求保持不变,利用率会下降。

利用率如何驱动借款利率

利用率进而决定借款利率

利用率决定借款利率

在设计合理的协议中,利用率的变化会导致利率上升/下降,如下所述。

当利用率上升时:(表明借款需求高)

  • 借款和供应利率增加
  • 借贷受到激励,而供给受到不利影响
  • 结果是,闲置流动性增加,借款需求下降,导致利用率降低。

当利用率下降时:(表明闲置流动性过剩)

  • 借款和供应利率下降
  • 借贷受到激励,而供给受到不利影响
  • 结果是,闲置流动性减少,借款需求上升,导致利用率提高。

线性利率曲线

将利用率水平转化为借款利率的函数由利率模型定义。参数通常由协议治理设置。

计算借款利率与供应利率之间的关系

现在我们来看这条链条中的最终关系

借款利率决定供应利率

此关系如此决定:

供应利率 = 借款利率 × 利用率

并非所有借贷协议都使用该公式设定供应利率。值得注意的是,Compound V3 直接将供应利率计算为利用率的函数,而不考虑借款利率。

示例: 考虑一个借贷协议,其中借款利率为 10% ,利用率水平为 50% 。在这种情况下,存款人享有的利率为:

  • 供应利率 = 借款利率 × 利用率水平
  • 供应利率 = 10% × 50% = 5%

存款人将在其存款上获得 5% 的利息。

以下是供应利率与借款利率之间关系的图表。当利用率为零时,供应商将不会获得任何利息。

供应利率曲线

将借款利率与利用率相乘的动机是什么?

供应利率 = 借款利率 × 利用率

如果50%的资金被借出,则只有一半的资本被借出。如果借款人对一半的资产支付10%的利息,借出者便可在他们的资本上获得5%的利息。如果我们对出借者的整体资本支付10%的利息,但只有一半被借出,那么协议就无法 cumplir其义务。

考虑一个供给 $100 的协议,借出 $50 。如果借款人支付10%的利息,他们将向协议支付 $5 。但如果协议按 $100 计算给供应方支付10%的利息,它将欠他们 $10——而这个金额并没有从借款人那里赚到。

加入准备金系数:考虑利差

虽然上一个示例对我们的理解很有帮助,但它忽视了我们开头提到的利差——归协议的部分,可以反映费用、国库贡献等。

供应利率 = 借款利率 × 利用率 × (1 - 准备金系数)

准备金系数将部分借款利息分配给协议,其余则分配给存款人。

实际示例: 假设一个借贷协议,其中借款利率为10%,利用率水平为50%,准备金系数为20%。在这种情况下,存款人享有的利率为:

  • 供应利率 = 借款利率 × 利用率水平 × (1 - 准备金系数)
  • 供应利率 = 10% × 50% × (1 - 20%) = 5% × (80%) = 4%

如你所见,借款利息的五分之一被扣除,存款人现在在其存款上赚取4%的利息。

实际利率模型

DeFi 应用旨在鼓励利用率维持在一个特定百分比,通常在80%-95%之间,这被称为“最佳利用”。

所有可用资金被借出(100%利用)的情况是不可取的。在这种情况下,借出者无法提取。因此,当所有资本均被使用时,我们希望存在强有力的激励措施,以鼓励借出者向协议提供更多资金——或借款者归还借款资产。因此,供应曲线通常是分段线性和“曲折”的——在最佳利用点之前缓慢上升,然后以更快的速度上升。

分段线性折弯函数的公式

任何利率模型必须是利用率 𝑈 的函数,因为

利用率决定借款利率

AAVE 的分段线性折弯利率模型如下所示。

aave 利率公式

为了理解该公式,我们可以将方程重组为 y = mx + c 的形式

aave 利率公式 y = mx + c 动画

以下动画演示了公式的每个部分的作用

aave 利率公式动画

请注意,这里的 𝑈 是独立变量,Rborrow 是其及其他由协议治理确定的参数的函数。

曲线的“弯曲”区域是协议认为的“最佳”。如果利用率超过该水平,利率开始迅速上升,以激励借出者提供更多资本或借款者偿还贷款。

DAI 示例

让我们来看一下 AAVE 的 DAI 利率模型,该模型在以太坊上通过合约 DefaultReserveInterestRateStrategy 定义。四个基本参数(U_optimalR_interceptR_slope1R_slope2)在智能合约中公开可见。

智能合约地址是:<https://etherscan.io/address/0x694d4cFdaeE639239df949b6E24Ff8576A00d1f2>

dai etherscan aave 利率模型截图

从链上值来看,我们可以看到在利率模型中使用了以下参数:

  • U_optimal(蓝色箭头)具有变量名 OPTIMAL_USAGE_RATIO = 0.80
  • R_intercept(红色箭头)具有公共函数名称 getBaseVariableBorrowRate = 0
  • R_slope1(绿色箭头)具有公共函数名称 getVariableRateSlope1 = 0.04
  • R_slope2(紫色箭头)具有公共函数名称 getVariableRateSlope2 = 0.75

这些值以定点 Ray 数(27个小数位,即1 = 1e27)表示。

本文写作时参数准确。

结论

利率是协议中资产利用率的一个函数。函数的确切形状由治理设定。供应商获得的利息低于借款人支付的利息,原因是利差和准备金系数。

在 RareSkills 学习更多

在我们的 区块链训练营 中了解更多 DeFi 和 Web3 的技术主题。

原刊于2023年12月1日

  • 原文链接: rareskills.io/post/aave-...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
RareSkills
RareSkills
https://www.rareskills.io/