教你如何执行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小时热点

热点专题

NFT艺术品到底是什么?

Beeple,“EVERYDAYS: THE FIRST 5 ...

2320904

Opera House

了解CHIA这篇就够了

这些清单旨在作为信息来源和研究的出发点,为你的研究提供常识性 ...

636559

Kusama 测试网

什么是 Infura?

11 月 11 日,因以太坊和 IPFS 的 API 服务供 ...

626973

IDG资本

OpenSea 为例子教大家如何购买 NFT

就如同流动性挖矿刚起步时候一样,大多数用户并不了解 NFT ...

609663

CryptoSpells

绿地集团数字化战略的NFT形象——8302款无聊猿!

30年前,绿地还是一家注册资本2000万元的小型绿化公司,历 ...

493829

Bybit

什么是私钥?

私钥是怎么来的,它跟你的密码学货币资产有何关联。

486042

芝麻开门交易所

2024年模因币牛巿SHIB是否能达到1美元?市场另外3个meme币也在热卖

SHIB是仅次于DOGE的第二大流行模因币,它能否达到1美元 ...

476086

Business2Community

数字人直播软件多少钱

数字人直播软件根据您使用的平台、功能范围不同,价格也不尽相同 ...

459247

MXC交易所

被朋友骗去弄数字货币

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

449990

DigiFinex

链圈百科:环境影响评价信用平台

环境影响评价信用平台是指一种使用信用技术来评估环境影响并对社 ...

417532

Tokhun