教你如何执行AAVE清算

AAVE清算操作指南

AAVE 是一个 DeFi 去中心化贷款协议,人们可以使用多种加密资产作为抵押,向其申请贷款。目前能够作为抵押资产的加密资产包括 ETH、DAI、USDT、LINK 等十几种。

作为一个贷款协议,系统本身运行健康与否很大程度上取决于使用该协议进行的各种贷款是否健康。当所有的借款人都有足够的抵押品抵押时,整个系统拥有足够的偿还能力,系统是健康的;而一旦有借款人抵押不足时,整个系统就会增加风险,而一旦这样的借款人过多,整个系统的风险将进一步扩大。因此系统中需要清算人这一角色。清算人对不太健康的借贷(健康系数<1)进行清算,并为此获得抵押物总价值5%-15%的奖励。该奖励措施能够鼓励清算人及时清算不健康的贷款,从而保障整个系统的金融安全。

清算人参与清算有三种方式:

  • 使用 AAVE 应用程序中的清算模块:

  • https://app.aave.com/liquidations

  • 直接调用智能合约中的 liquidationCall() 方法

  • 创建自己的自动化系统或者机器人来对贷款进行清算

鉴于方法一较为简单,按照应用内提示进行操作即可,本文重点讨论后两种。其中方法三也使用到了二的方法,即调用了智能合约中的 liquidationCall()。

触发清算的先决条件

在调用 liquidationCall() 方法时,我们需要知道几个条件:

  • 健康因素低于1的账户。只有健康因素低于1的账户才会被清算。其中健康因素的计算方式为:

其中:

  • Collateral[i] in ETH: 折合成 ETH 计算的抵押的资产i的值

  • Liquidation Threshold[i]: 清算阈值,最大借出资产/总抵押资产

  • Total Borrows in ETH: 折合成 ETH 的借出的资产额度

  • Total Fees in ETH: 折合成 ETH 计算的所有费用

AAVE 采用的是 Chainlink 的喂价机制。

公式可总结为:健康因子与抵押物总和成正比,与借出物总额成反比。抵押物越多,健康因子越大,借款人偿付能力越强,该笔借贷越健康。反之借出物越多,健康因子分母越大,值越小,则表示借款人偿付能力越低,该笔借贷越不健康。只有健康因子低于1的账户才会被清算。

  • 有了低于1的健康因子就可以触发清算条件要清算某条具体的贷款,还需要知道该笔贷款的借款人地址、贷款金额和资产金额,确保自己有足够的余额帮助贷款人偿还债务。

要被清算的账户

只有健康系数低于1的账户才会被清算。有多种方式可以获到用户的健康系数:

  • 使用链上监控

i. 监控 AAVE 协议发出的时间,并在本地保持用户数据的最新状态。每当用户和 AAVE 协议进行交互时(存款、还款、借用等),都会发出时间,这可以在链上监控到;

ii. 监控到用户地址后,就可以使用该用户的地址,在链上调用直接调用查询接口即可查询到 getUserReserveData()。

  • 使用项目方的 API 进行查询(稍有延迟)

项目方提供了查询的 API:https://protocol-api.aave.com/liquidations?get=proto

执行清算

查询到要清算的账户后,我们就能计算可以清算的抵押物的数量。执行清算一般有两种方法:

  • 编写一个智能合约,在智能合约中直接调用 AAVE 中的 liquidationCall() 执行清算

  • 使用 Web3.js 等软件包进行调用

此处以 web3.js 为例:

  1. // Import the ABIs,see:https://docs.aave.com/developers/developing-on-aave/deployed-contract-instances

  2. import DaiTokenABIfrom "./DAItoken.json"

  3. importLendingPoolAddressesProviderABI from"./LendingPoolAddressesProvider.json"

  4. importLendingPoolABI from "./LendingPool.json"

  5. // ... The rest ofyour code ...

  6. // Input variables

  7. constcollateralAddress = 'THE_COLLATERAL_ASSET_ADDRESS'

  8. constdaiAmountInWei = web3.utils.toWei("1000","ether").toString()

  9. const daiAddress ='0x6B175474E89094C44Da98b954EedeAC495271d0F' // mainnet DAI

  10. const user ='USER_ACCOUNT'

  11. constreceiveATokens = true

  12. constlpAddressProviderAddress = '0x24a42fD28C976A61Df5D00D0599C34c4f90748c8' //mainnet

  13. const lpAddressProviderContract= new web3.eth.Contract(LendingPoolAddressesProviderABI,lpAddressProviderAddress)

  14. // Get the latestLendingPoolCore address

  15. const lpCoreAddress= await lpAddressProviderContract.methods

  16. .getLendingPoolCore()

  17. .call()

  18. .catch((e) => {

  19. throw Error(`Errorgetting lendingPool address: ${e.message}`)

  20. })

  21. // Approve theLendingPoolCore address with the DAI contract

  22. const daiContract =new web3.eth.Contract(DAITokenABI, daiAddress)

  23. awaitdaiContract.methods

  24. .approve(

  25. lpCoreAddress,

  26. daiAmountInWei

  27. )

  28. .send()

  29. .catch((e) => {

  30. throw Error(`Errorapproving DAI allowance: ${e.message}`)

  31. })

  32. // Get the latestLendingPool contract address

  33. const lpAddress =await lpAddressProviderContract.methods

  34. .getLendingPool()

  35. .call()

  36. .catch((e) => {

  37. throw Error(`Errorgetting lendingPool address: ${e.message}`)

  38. })

  39. // Make the deposittransaction via LendingPool contract

  40. const lpContract =new web3.eth.Contract(LendingPoolABI, lpAddress)

  41. awaitlpContract.methods

  42. .liquidationCall(

  43. collateralAddress,

  44. daiAddress,

  45. user,

  46. daiAmountInWei,

  47. receiveATokens,

  48. )

  49. .send()

  50. .catch((e) => {

  51. throw Error(`Errorliquidating user with error: ${e.message}`)

  52. })

设置一个清算机器人

以上即为清算的逻辑,在设计清算机器人时,按照以下步骤即可:

  • 清算前需要计算,确保机器人自己有足够的资金能帮贷款人还清债务,也要计算能够获得足够的资金作为报偿;

  • 考虑清算最有利可图的抵押品,不仅要考虑到贷款债务的金额,还需要把 gas 的成本计算在内,以此判断是否有足够的获利能力;

  • 确保机器人访问的是最新版本的 AAVE 协议;

  • 其他系统故障和资产安全等。

计算收益

  • 获取抵押品的详细信息,例如抵押的用户、清算奖励比率等

  • 获取抵押品的数量,并从预言机中获取到抵押品当前的总价值

  • 最大清算奖励=抵押品总价值*清算奖励比例

  • 计算交易需要的 gas 费用

  • 最大获利=最大清算奖励减去gas 费用

清算奖励比例根据币种的不同而有所变化,一般来说,稳定币清算奖励相对较低,非稳定币价格则更高:https://docs.aave.com/risk/asset-risk/risk-parameters

24小时热点

投资者寻找 2025 年牛市前爆升10大潜力币 8月最佳百倍币

随着 2024 年进入下半年,全球投资者的目光正紧紧聚焦于能 ...

115307

非小号

元宇宙原力币是什么?有什么用?

随着科技的不断进步,元宇宙的概念已经逐渐从科幻小说中走入现实 ...

178886

区块链圈小菜鸡

元宇宙入口是什么?原力元宇宙官方网站入口及注册流程

原力元宇宙官方网站入口是 https://meta-forc ...

104764

树图链

被朋友骗去弄数字货币

  有一次,一个朋友突然给我说他有一种可以赚钱的新方法,他说 ...

446050

DigiFinex

链圈百科:韩国政府机构组织图

一、行政院 韩国行政院是一个由政府的行政机构组成的中央政府 ...

1045804

BitKeep钱包

中国十大庞氏骗局之RUNE币 THORChain

RUNE- 简介详情 THOR ...

146951

非小号

国家版本数据中心

国家版本数据中心(National Data Version ...

439370

元视觉

元宇宙平台合法吗

现在,元宇宙平台备受热捧,但有人质疑其合法性。在此,我们将对 ...

989208

T网

盘点目前最火的区块链游戏项目排名

随着区块链技术的不断成熟和普及,其在游戏行业的应用也逐渐兴起 ...

153476

波场区块链浏览器

2024年以太坊会恢复挖矿吗?后续有什么调整?

以太坊在2022年完成了从工作量证明(PoW)到权益证明(P ...

87534

波场区块链浏览器

热点专题

NFT艺术品到底是什么?

Beeple,“EVERYDAYS: THE FIRST 5 ...

2318557

Opera House

最全的NFT发展史

当我们理解一个新生事物,必须要首先了解其起源,通过对其源头以 ...

1752801

iBox

“华英会”诈骗圈钱5000亿!崩盘后将会凄惨无比

“华英会”崩盘的预警已多次发出,尽管尚未正式宣布崩盘,但大家 ...

1328854

Magic Eden

什么是IDO?这种模式会带来怎样的影响?

要理解IDO(Initial DeFi Offering)初 ...

1158056

Bitstamp交易所

链圈百科:韩国政府机构组织图

一、行政院 韩国行政院是一个由政府的行政机构组成的中央政府 ...

1045720

BitKeep钱包

有黑客采取新型 USDT 假充值手法

根据慢雾区情报,有黑客采取新型 USDT 假充值手法,黑客采 ...

1015812

区块链博客

元宇宙平台合法吗

现在,元宇宙平台备受热捧,但有人质疑其合法性。在此,我们将对 ...

988901

T网

4种利用永续合约资金费率套利的策略

下文将介绍在保持市场中立的条件下,如何从永续掉期资金费率中套 ...

948964

DCG区块链孵化器

国内NFT平台是怎么赚钱的?

2021年被称为NFT的“元年”,互联网巨头、各大企业、艺术 ...

813235

CoinBene满币网

宝二爷郭宏才的乘风破浪之旅

10年后的比特币会涨到10万美元吗?宝二爷说过:“先吹吹牛B ...

727516

QuillAudits