这篇文章主要介绍了AAVE v2 – white paper ,文中通过代码以及文档配合进行讲解,很详细,它对在座的每个人的研究和工作具有很经典的参考价值。 如果需要,让我们与区块链资料网一起学习。

https://www.interchains.cc/25096.html

AAVE v2 – white paper是很好的区块链资料,他说明了区块链当中的经典原理,可以给我们提供资料,AAVE v2 – white paper学习起来其实是很简单的,

不多的几个较为抽象的概念也很容易理解,之所以很多人感觉AAVE v2 – white paper比较复杂,一方面是因为大多数的文档没有做到由浅入深地讲解,概念上没有注意先后顺序,给读者的理解带来困难

AAVE v2 – white paper

AAVE v2 – white paper

简介

AAVE v2版本相较于v1版本新增了两个重要变化:

  • aToken变为可升级token
  • 债务token
  • flash loan V2

针对债务Token:

用户的债务以债务Tok…

AAVE v2 – white paper

简介

AAVE v2版本相较于v1版本新增了两个重要变化:

  • aToken变为可升级token
  • 债务token
  • flash loan V2

针对债务Token:

用户的债务以债务Token的形式存在,而不是之前的内部记账,好处有:

  1. 代码简化 – 用户的债务生成销毁变成了债务Token的mint和burn
  2. 同时借可变贷款利率和稳定贷款利率。在V1版本中,用户的贷款要么是可变贷款利率,要么是稳定贷款利率。多种贷款利率通过加权平均得到
  3. 信用额度转移的支持:用户可以将它在AAVE中deposit得到的信用额度转移给其他账户,而其他账户可以拿着得到的信用额度来进行贷款等。

信用委托是一项简单的交易,Aave协议的储户将信用额度委托给他们信任的人。你也可以将信用额度委托给另一个执行预定义功能的智能合约,消除这种信任。 例如,Karen将USDC存入Aave Protocol以获得利息。由于Karen只用Aave Protocol来赚取而不是借贷,她不需要行使她的信用额度。相反,凯伦将她的信用额度委托给乍得以赚取额外的利息。一旦信贷额度被委托,chad就可以从专用的信贷委托金库中提取资金,这是一个建立在Aave协议之上的简单债务包装。为了确保一帆风顺,凯伦和乍得使用OpenLaw来签署条款协议。

针对flashloan V2:

flashloan V1上存在如下的不足:从AAVE上得到的flashloan无法再AAVE上去使用,即nonReentrant

架构

AAVE v2 - white paper

与之前V1版本不同:

  1. 资金存放在aToken中,与compound类似。
  2. 债务Token记录用户的债务
  3. 所有的操作都发生在LendingPool中

经济模型

aToken

aToken支持EIP-2612,没有利率重定向?

$LR_t$当前流动性率:等于总的借贷利率乘以此时的资金利用率, 注意:这里的利率是一个年化利率

$$ LR^{asset}_t=R_tU_t $$

$LI_t$累计流动性指数:再时间段$Delta T$范围内,由贷款利率累计产生的单位本金利息,任何操作都会更新该参数

$$ LI_t=(LRt times Delta T{year} + 1) times LI_{t-1} $$

$$ LI_0=1 times 10 ^{27} = 1 ray $$

这里的概念与compound中的概念利率指数是很类似的,只是compound中的利率指数概念是由所有的贷款利率乘以delta Blocks,是每一个block的利率;而这里是一个年华利率的概念,需要进行下单位换算。

$NI_t$ 储备金正常化收入: ? 这个概念是什么意思, 是这个时刻t对应的用户抵押品价值吗?

$$ NI_t=(LRt times Delta T{year} + 1) times LI_{t-1} $$

在V2中,用户指数实际上作为一个存储变量消失了,它与本金余额一起被存储为一个比率,被称为 "按比例的余额",ScB。用户的余额被计算出来,导致在每一个导致代币铸币或烧毁的动作上的增加或减少。用户的余额被计算出来,导致每一个导致铸币或烧毁代币的行动的增加或减少。

也就是说用户手上的aToken会增加或者减少!

如果是deposit:

$$ ScBt(x) = ScB{t-1} + frac{m}{NI_t} $$

如果是withdraw:

$$ ScBt(x)=ScB{t-1}(x)-frac{m}{NI_t} $$

任何时刻,用户手上的aToken的数量为:

$$ aB_t(x)=ScB_t(x)times NI_t $$

债务Token

债务Token的总供给变化率为:所有用户再此时刻t的ScB之和

$$ dS_t=sum{ScB_t(i)} $$

某一种资产再时刻t对应的总的债务为:稳定贷款利率在此时刻t的总供给与可变贷款利率在时刻t的总供给之和

$$ D_t^{asset} = SD_t+VD_t $$

可变债务

$VI_t^{asset}$ 累计可变债务借贷利率指数:即由可变债务总额V B在时间段$Delta T$范围内,以可变债务利率 V R,产生的累计可变债务指数

$$ V I_t=(1+frac{V Rt}{T{year}})^{Delta T}times VI_{t-1} $$

这里需要其为指数函数,回忆复利的定义,但是compound中并不是指数函数,而是一个近似的乘积,即:泰勒级数展开

$$ (1+x)^y=1+xy+… $$

AAVE自己实现了一个pow函数,而compound则简单使用泰勒级数展开的前两项作为估算

$VI(x)$ 用户累计可变利率指数: 某一个用户的累计可变利率指数当且仅当用户持有借款头寸时更新。用户不借钱自然就没有可变利率指数了

$$ VI(x)=VI_t(x) $$

$PB(x)$,用户总的借贷总金额: 当用户借钱时的用户所借贷的金额。如果用户多次借钱,那么复利的利息会每一次都累计并成为最新的借款总额

债务Token的数量跟aToken的逻辑类似,也是会变化的。也是有一个Scaled Balance概念,即借贷总额缩放因子

当用户借钱时,可变借款总额的缩放因子为借款前的缩放因子加上这次借款数量m与平均化后的总的借款数量$VN_t$之比的和

$$ ScVBt(x)=ScVB{t-1}(x)+frac{m}{VN_t} $$

当用户还钱时,可变借款总额的缩放因子为借款前的缩放因子加上这次借款数量m与平均化后的总的借款数量$VN_t$之比的差

$$ ScVBt(x)=ScVB{t-1}(x)-frac{m}{VN_t} $$

在任何时刻,用户的可变债务总量是:

$$ VD(x)=ScVB(x)D_t $$

稳定利率债务

$SR_t^{asset}$: 总的稳定平均贷款利率 – AAVE中的稳定利率贷款是什么意思?贷款利率不随着资金利用率变化吗?那要怎么去结算利息呢?

如果以稳定利率$SR_t$发行一笔稳定利率贷款$SBnew$, 那么稳定平均利率$SR_t$:

$$ SR_t=frac{SDttimes SR{t-1}+SBnewtimes SR_t}{SD_t+SBnew} $$

如果用户x以稳定贷款利率$SR_t$偿还一笔稳定利率贷款SB,则稳定平均利率为:

$$ SR_t= left{ begin{aligned} 0,& if SD_t-SB(x)=0 frac{SDt times SR{t-1}-SB(x)times SR(x)}{SD_t – SB_x}, & if SD_t-SB_x > 0 end{aligned} right. $$

$SD(x)$:用户的稳定贷款总金额:都是年化利率,要进行单位划算

$$ SD(x) = SB(x)(1+frac{SRt}{T{year}})^{Delta T} $$

闪电贷

相较于V1版本,V2版本的闪电贷功能更为完善。

v1版本的闪电贷路径:

  1. 在转账给用户之前,AAVE对闪电贷的货币余额进行一次快照
  2. 在闪电贷结束后,检查闪电贷货币余额是否大于等于之前的快照加上闪电贷的利息。如果不满足条件,则revert

V2版本的闪电贷路径:

  1. AAVE直接给用户转账
  2. 闪电贷结束时,AAVE从用户账户中拉取借贷金额和手续费,如果拉取失败,则闪电贷失败。主要是用户要给AAVE进行授权

通过pull的方式而不是push,可以避免使用两次snapshot,这样也避免使用nonReentrant检查。

部分转自网络,侵权联系删除www.interchains.cchttps://www.interchains.cc/25096.html

区块链毕设网(www.interchains.cc)全网最靠谱的原创区块链毕设代做网站 部分资料来自网络,侵权联系删除! 最全最大的区块链源码站 ! QQ3039046426
区块链知识分享网, 以太坊dapp资源网, 区块链教程, fabric教程下载, 区块链书籍下载, 区块链资料下载, 区块链视频教程下载, 区块链基础教程, 区块链入门教程, 区块链资源 » AAVE v2 – white paper

提供最优质的资源集合

立即查看 了解详情