中文
铁叔

天地不仁 以万物为刍狗


  • 首页

  • 归档

  • 关于我

  • 公益404

  • 搜索

AAVE源代码分析 -- AAVE借贷协议简介

时间: 2021-09-01   |   分类: Defi   AAVE   | 字数: 1919 字 | 阅读: 4分钟 | 阅读次数:

DEFI 上最初的应用就是借贷应用。借贷,顾名思义,是一个允许用户借贷代币的智能合约,它与银行类似,存款人把钱存入到借贷应用中(更具体的说,就是某个智能合约),借贷应用把你的钱借给借款人,并随着时间的推移赚取利息。当借款人资不抵债时,会触发清算,任何人都可以参与清算,清算成功时清算人将获取一定比例的清算奖励。同时,借贷应用的清算系统能够确保借贷系统的稳定,进而保证存款人的利益。

DEFI 借贷在以下几个方面与银行不同:

  1. 利息的计算; a. DEFI 借贷利息的计算是从你存入的块开始计算,到你取出的块停止计算; b. DEFI 借贷的利息浮动范围很广,跟资金利用率(可以简单理解为 贷出资金/总借贷金额)息息相关,大多数借贷系统都设置比例,当资金利用率超过该比例时,利息会上涨的非常快,且利息很高,因此,这对于借款人来说,是非常不利的; c. 所有借款都必须有超额抵押,不存在信用贷款的概念;

  2. 清算 a. DEFI 借贷的所有存入,借出都是公开透明的; b. DEFI 借贷的清算标准是固定的; c. 任何人都可以进行清算,并且,清算人可以获取丰厚的清算奖励,通常是清算金额10% d. 由于清算奖励的巨大诱惑,且公开透明的数据,可以保证清算工作的稳定运行;

  3. 闪电贷 闪电贷是 AAVE 的一个巨大创新,所谓闪电贷,不是银行的闪电贷,这里的闪电贷是指,在一个区块交易中,同时完成先贷后还的操作。举个例子,现在有一个套利机会,但是你有没有资金,这时候,你就可以使用闪电贷,借出资产,完成套利,归还资金和利息,剩下的就是你的套利收益。

闪电贷也被很多人用于合约攻击,获取更大的收益。最近发生的很多起攻击事件,都是使用闪电贷的资金作为来源。

  1. 存款标的。 你可以将很多标的存入银行,由银行来对你的标的进行资产评估;而 DEFI 借贷只能存入部分 token, 因为 token 有公开定价, 而资产评估必须要链下评估,难以在链上完成。

DEFI 的借贷经历了三个发展阶段, 第一阶段的代表作是 MakerDAO, 第二阶段的代表作是 Compound, 第三阶段的代表作是 AAVE.

毫无疑问, Makerdao 是开创者; Compound 重新设计了利率模型, 可以说此后所有的借贷模型都是在 Compound 的基础之上发展而来, 从而奠定了 Compound 的江湖地位; AAVE 则是集大成者, AAVE 的借贷模型与 Compound 相同, 与Compound, MakerDAO 相比, AAVE 有以下特点:

  1. AAVE 最大的创新就是引入了 闪电贷 (flashloan) 这个大杀器, 从此以后, 只有在链上有机会套利或者攻击, 你根本不用担心资金问题; 闪电贷也是链上借贷的独特优势, 在传统的金融行业中, 根本不存在这样的功能;
  2. AAVE 还有固定利率功能。我们知道, Compound 的利率是在不断的变化的,跟资金使用率息息相关, 当资金使用率突然升高时,借款利率会急速上升,对于长期资金使用者来说,这是无法承受的,AAVE引入了固定利率,从而解决了有长期资金需求借款人的借贷问题;
  3. AAVE 的代码比 Compound 写的更好, 更加工整, 框架清晰, 可读性, 可维护性都比 Compound 高几个档次
  4. AAVE 更加安全。AAVE 的代码质量更高,模块化、结构化更好,测试更加充分,安全性更高。前几天 Cream protocol 发生的被攻击事件,让 Cream 损失了几千万美元。如果 Cream 当初是 fork 了 AAVE 的代码,这个攻击就无法进行。原理后面再详细分析

与swap市场 uniswap 一家独大不同,目前,借贷市场还处于三国鼎立的阶段,MakerDao, Compound, AAVE 各有优势, AAVE 在存款数量上有一定优势, Compound用户数最多,群众基础较好; MakerDao 锁仓金额较多;当然,这三者各有所长,差距不是非常明显, 其他模仿者就和这三大巨头的差距比较大,在没有大的创新的情况下,很难挑战这三大巨头。

由于 AAVE 比 Compound 代码更复杂,因此,目前 bsc、heco 这些链上的借贷市场几乎都是 fork Compound 代码,同时,由于这些团队追求快速上线,也没有对 Compound 进行深入研究,导致最终上线的产品不敢改也不能改,最多的就是把 cToken 改成各种 xToken,反正圈钱发币为主,不影响使用。

从学习的角度看,AAVE 代码质量非常优秀,比 Compound 高出好几个档次, AAVE v1版本就已经非常规范,v2版本更是青出于蓝而胜于蓝,从各个方面来看,都堪称典范:

  1. 结构非常清晰,interface, library, 实现,核心代码,适配层分门别类,各司其职;
  2. 完整的测试代码;
  3. 完整的部署代码;
  4. 完善的官方文档,白皮书等;
  5. 完善的周边 sdk,代码示例;
  6. 统一的代码风格,统一的注释风格,所有函数都有注释;
  7. 完善的代码检查,lint;
  8. Library 的应用真是炉火纯青
  9. WETHGateway 的引入,统一了 ETH 和 Token, 这一点我觉得比 uniswap 做的好,uniswap 的 Router 合约有很多专门为 ETH 服务的接口,如果改成这种方式,会更加清晰;
  10. 教科书级别 Proxy 应用, 当然, 目前 openzeppelin 的代理是更加通用的解决方案

唯一能与之相提并论的是 uniswap, 当然, uniswap 把前端界面也开源了, 而 AAVE 并没有开源前端界面, 这是 AAVE 不如 uniswap 的地方。

我们将推出有一系列的文章来讲解 AAVE 的代码: 0. AAVE借贷协议简介

  1. AAVE 代码整体结构介绍;
  2. AAVE 利率模型;
  3. AAVE 利率代码解析;
  4. AAVE 风险控制;
  5. AAVE 闪电贷;
  6. AAVE 各个模块之间如何解耦;
  7. AAVE Proxy 模式;
  8. AAVE 部署;
#AAVE# #Compound# #Defi# #Solidity# #Dapp# #Lend protocol#

声明:AAVE源代码分析 -- AAVE借贷协议简介

链接:https://guotie.github.io/post/aave/brief-introduction-to-aave-protocol/

作者:铁叔

声明: 本博客文章除特别声明外,均采用 CC BY-NC-SA 3.0许可协议,转载请注明出处!

创作实属不易,如有帮助,那就打赏博主些许茶钱吧 ^_^
WeChat Pay

微信打赏

Alipay

支付宝打赏

solidity函数selector的计算
libuv与TCP Keepalive
铁叔

铁叔

千里之行 始于足下

25 日志
14 分类
56 标签
GitHub twitter telegram email medium
标签云
  • Solidity
  • Defi
  • Aave
  • Compound
  • Abi
  • Dapp
  • Ethereum
  • Evm
  • Lend protocol
  • Lending
© 2010 - 2024 铁叔
Powered by - Hugo v0.119.0 / Theme by - NexT
/
0%