DeFi贷款的综合解释:组成、公式和用例

原标题:《DeFiLendingConceptsPart1:LendingandBorrowing》

原作者:Tal

原编译:Kxp,Blockbeats

本文是系列三篇文章中的第一篇,讨论DeFi贷款协议的工作原理、它们的关键组件、公式和用例。在这个过程中,我们会强调,虽然协议使用了不同的、有创意的命名方式。但他们倾向于重复、迭代和分享核心概念。其中一篇博文详细介绍了如何使用ERC20令牌来代表用户';贷款池中的份额。我们将从分析这些协议的独特元素开始。,并提供技术概念来区分它们是如何工作的。

借贷池

在传统金融(或TradFi)中,借贷由第三方金融机构进行调节。这些金融机构被赋予两项关键任务:迫使借款人向贷款人支付利息。,并评估和阻止被认为不可信的各方参与这些活动。

相比之下,在去中心化金融(或DeFi)中,第三方借贷者并不值得信任。这种信任的缺乏激发了一个创新的设计。,用于推动链条中的借贷流程。

Lendingpool是一个智能合同。DeFi用户可以存放资产(通常是ERC20代币),以便使用该合同出借他们存放的资产。其他用户可以与贷款池进行交互。,享受即借即还,即将资金池中的资产抵押用于借款。

与传统的金融方式相比,lendingpool在借贷方面有一些显著的优势,如DeFi中的[XY002][XY001]。贷款不受可用贷款资金和贷款额度1:1的限制。取而代之的是,来自协议所有用户的资金被存放在资金池中,从而创建一个足够大的代币库存来立即满足贷款需求。

Defi不需要还款计划。。贷款基于之前存入的抵押物,用户可以选择随时还款。

此时,您可能会想,"如果我必须提供同等价值(甚至高估)的资产作为抵押,我为什么要在贷款协议中借入资产?"?不该';我可以出售抵押品并购买借入的资产吗?

事实上,这个DeFi贷款协议似乎只允许完全抵押(或过度抵押)的贷款,这就为一个有趣的"交易"方法:杠杆。

假设你非常看好WBTC,你确定它的价值会飙升!你可以在你喜欢的贷款协议中存入一些WBTC(价值1000美元),然后用它来借一些稳定的货币(比如USDC)。,然后使用这些稳定的硬币在交易所购买更多的WBTC(对于我们的场景,假设您的初始存款的一半,即500美元)。在这种情况下,你对WBTC的敞口值1500美元。你的初始存款只有1000美元。但是如果你把你的500美元WBTC抵押品放入借入更多USDC的协议中呢?这个过程叫超额杠杆,你随时都可以做。直到你超出了你的借款能力,而约定的政策会阻止你这么做。

在类似的情况下,假设你对WBTC持悲观态度(毕竟现在是加密冬天)。您可以执行与我们之前的场景相反的操作。通过在协议中存放USDC作为抵押品来借入WBTC,然后立即用更稳定的货币来替代它。如果你的预测成真,WBTC价格下跌,你可以在交易所以更低的价格买到同样数量的WBTC。,偿还贷款并获得额外的USDC,从而打开(并关闭)WBTC的空头头寸。

ShareToken

与传统金融一样,将资产存放在贷款池中的用户会受到资金长期留存的激励,并获得存款利息。。利息是随着时间累积的,按照使用者的百分比计算';协议中的存款,由相应的存款用户申报。用户将资产放在贷款池中的时间越长,他们获得的利息就越多。

协议如何记录每个用户';我们在游泳池里的份额是多少??当一个用户将资产存入池中时,他们的"分享"将稀释所有用户的份额,协议将相应地反映这一点。然而,该协议并不直接跟踪和更新每个用户';的池份额,但只处理存款人的变化';分享一下。而不主动更新其他用户';每次存取款时都有股份。

你可能认为这个协议允许你拥有蛋糕并吃掉它。但事实并非如此:

该协议通过铸造和销毁我们称为"共享令牌",代表贷款人在贷款池中的份额(或存款资产比例)。。这"共享令牌"设计自动调整其他"股东"来反映铸造和破坏"股份"与其基础资产的存取成比例。下面的

,我们将提供不同协议如何使用"共享令牌"并讨论它们的相似之处。一个令牌:AAVE';s"共享令牌"

aToken是AAVE的创收令牌,在存取资产时由贷款池铸造和销毁。

aToken是一种类似于ERC20的令牌,集成在AAVE协议中。因此,用户可以进入的每一个不同的市场(押金抵押品)都有相应的aToken。

如果我们查看AAVE贷款池合同,我们可以看到当用户将资产存入池中时发生的基本操作:

我们可以看到,与用户存款的市场相对应的aToken将被称为"铸造"功能。

我们可以看到实际要投的数量是:

如上图所示,在这个例子中,用户加入了一个市场,这个市场在之前的存款上赚了一些利息。上面的等式有助于我们理解这一点,因为它显示了如何使用全局指数来考虑所有用户的兴趣累积。该索引将在各种操作(存款、取款等)中更新。).

当用户提取其基础资产时,流动性指数将用作乘数来计算交易中所欠的代币数量。

以下是来自贷款池契约的相关代码片段:

这里,aToken契约的balanceOf有点奇怪。毕竟,我们刚刚确定aTokencast的数量不同于基础资产存放的数量。。如何调用Iatoken(一个令牌)?(地址(用户))的余额生成用户要提取的基础资产数(如函数底部所示)?原因如下:

当用户提取资产时,他们的阿托肯将被摧毁。这些被销毁的阿托肯保留其他用户按比例拥有的阿托肯总量,份额在用户之后';的资产被提取。

用户取款的市场利率会随着每次取款而更新。

正如我们前面提到的,阿托肯是一个类似于ERC20的令牌。我们强调它们是"相似"因为它们的函数平衡具有独特的性质。。在传统的ERC20令牌中,balanceOf函数返回一个地址所拥有的令牌的数量。

因为aToken代表池的份额,而不是直接值。因此,aToken的balanceOf函数将协议所欠的基本令牌数返回给用户,以补偿他们的押金。

这里,balanceOf函数覆盖了继承的aToken契约中的balanceOf函数。结果,执行该示例逻辑中的逻辑平衡。而不是用户令牌数量的常规(继承的)映射查找。

然后将上面提到的令牌数乘以getReserveNormalizedIncome的结果,该函数执行以下逻辑:

我们可以在这里识别分支:

如果预留数据在这个块已经更新:返回这个市场的liquidityIndex值,因为它已经更新了。

否则:我们需要看看calculateLinearInterest中发生了什么,才能找出下一个进程。

当前市场中ReserveData对象中的currentLiquidityRatelastupdatetimestamp被传入该函数,函数的结果为:

Let';让我们分解这个等式的各个组成部分,以便更好地理解linearInterest值的要点:

CurrentLiquidity:它可以被视为我们市场的年利率(APY)。

block_{timestamp}-lastUpdatedTimestamp:自上次更新以来经过的时间

注意:由于我们选择了getNormalizedIncome中的第二个分支,因此此时该值保证为正。

因此,我们可以把这种计息机制看作是一种简单的复利机制。,合成在每个块中。现在,我们已经确定了要为用户累计的利息金额,我们只需要将这个值乘以流动性指数,然后进行用户';在函数balanceOf中的标准化收入倍增:

现在我们了解了aToken背后的逻辑,我们还需要解开liquidityIndex工作原理的谜团。

在以下示例中流动性指数可以定义为一定时期内储备累计的利息:

回顾前面提到的liquidityRate变量,现在我们将讨论它在计算liquidityIndex中的用途。仅当liquidityRate大于0时。换句话说,只有当市场上有APY时,利息才会累积。这是有意义的。

Let';让我们快速回顾一下calculateLinearInterest的实际操作:

上面的逻辑可以转化为下面的等式:

正如我们在DefaultReserveInter-Estrategy中看到的。Sol合同,流动性比率定义如下:

因此可以写成:

整体借款利率定义为:

我们可以写成:

利用率可以定义为:

在定义利用率时,我们更容易考虑准备金中的流动性(当前借出的流动性)与市场上总流动性之间的比率,可以简化为:

现在我们可以用这两个定义来写流动性指数的方程:

由于totalBorrows同时存在于分子和分母中,所以我们可以写成

关于流动性指数的等式,现在已经说得够多了,我们将在后面讨论这个定义。CTOken:the";共享令牌"的化合物

让';让我们继续下一个贷款协议的例子。,复合.

复合使用一个"共享令牌"叫做cToken来处理借贷。该令牌说明了复合协议中可用于用户借贷的所有资产。

类似于我们在AAVEV2所讨论的共享令牌"并用于赎回基础资产。

复合使用的汇率类似于AAVEV2的流动性指数。来决定应该铸造多少个cToken。该汇率是

的函数

我来解释一下这里的关键术语:

总现金:C币账户拥有的ERC20基本币的数量。

借款总额:借款人在市场上借出的ERC20基本权标数量。

总储备:储备一定数量ERC20基本令牌。,可以通过治理提取或转移。

totalsupply:ERC20函数,返回cToken的总供应量。

以此为背景。我们可以写出复合的汇率方程:

当用户存入ERC20cToken时,汇率决定了将投回多少C代币:

要铸造的cToken的数量由以下等式定义:

etoken:欧拉';s"共享令牌"

为了进一步巩固这些协议之间的相似性,让';让我们分析另一个贷款协议Euler,看看它是如何处理贷款的。

在以下示例中存款功能允许用户存入ERC20代币以换取eToken。

如我们所见,internalAmount是此次传输的eTokencast数量。

直接与化合物名称和函数exchangeRate再次重叠。

我来解释一下用来计算汇率的关键参数:

poolsize:使用底层资产,用ERC20合约中的池合约地址调用balanceOf(address)函数的结果。

借出总额:ERC20基本令牌借出总额目前不在池中。

总余额:所有eToken持有者的总余额。

因此,等式会是:

总结

我们已经涵盖了三个贷款协议:

aavev2

复利

欧拉。

我们已经检查了"共享令牌"以及他们如何通过贷款池交换存款资产。

我们提出的三个方程可以简化为一个简单的方程:

请记住,可以用协议中定义的任何方式来定义汇率。这些任意汇率可以增加cast令牌的数量(如果小于1),如果大于1,则减少该数量。

在AAVEV2和化合物中,我们已经看到了某些特定变量的某些相似性。在复合词中,有些词是:

对于AAVEV2,某些比率的定义如下:

流动性指数的定义是:

虽然我们可以';不要把每个协议的汇率概括成一个公式,对于AAVE2和复合,我们知道汇率是市场上总流动性的函数。回到我们的等式。鉴于totalLiquidity是市场上ERC20基本令牌的总量,汇率表达式中的分子和liquidityRate分母中的分子在功能上是相同的。

简而言之,这些协议在本质上是相似的。虽然它们有时可能使用不同的术语,但当它们被分解成方程时,每个组件在实现中具有相似的目的。我们邀请读者随机选择一份贷款协议。并检查我们在此讨论的归纳是否也适用于该协议。请随时让我们知道它是否适用。

DeFi贷款的综合解释:组成、公式和用例文档下载: PDF DOC TXT
文章来源: 理财天下网
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至2384272385@qq.com举报,一经查实,本站将立刻删除。