Post

W5-2 AAVE协议

W5-2 AAVE协议

闪电贷原理

⽆抵押贷款

  • ⽆抵押贷款的DeFi产品
  • 需在⼀个交易内完成借款和还款

image1

执⾏流程

  • 调⽤ Pool 合约的 flashLoanSimple() 或 flashLoan()
  • Pool 合约将所借资产转到调⽤者指定的 receiver 合约地址
  • Pool 合约调⽤ receiver 合约的 executeOperation()
  • receiver 合约的 executeOperation() 执⾏⾃⼰的逻辑
  • receiver 合约的 executeOperation() 授权给 Pool 合约所借⾦额 + ⼿续费
  • Pool 合约调⽤ safeTransferFrom() 从 receiver 转账过来
  • 处理还款后续事宜

应⽤示例

套利

  • 假设某⼀个代币在两个DEX之间存在有利可图的价格差,就可利⽤闪电贷实现套利
  • 核⼼在于实现接收闪电贷资产的合约,需实现IFlashLoanSimpleReceiver.sol或IFlashLoanReceiver.sol接⼝
  • 可直接继承⾃抽象合约FlashLoanSimpleReceiverBase或FlashLoanReceiverBase
  • 核⼼逻辑在于实现executeOperation()函数

闪电贷攻击

攻击案例

  • 2020年2⽉16⽇,bZx 遭受闪电贷攻击,15秒内被套利36万美元ETH。
  • 两天后,即2⽉18⽇, bZx再次被闪电贷攻击,攻击者或获利2388个ETH。
  • 10 ⽉ 26 ⽇,DeFi 项⽬ Harvest Finance 遭到闪电贷攻击,造成了约 2400 万 美元的损失。
  • 11 ⽉ 14 ⽇,Value DeFi 协议遭到闪电贷攻击,最终导致超过 700 万美元的损 失。
  • Akropolis 、Cheese Bank 和 Origin Protocol 等 DeFi 协议,也同样接连遭到 闪电贷攻击,均为百万美元级别以上

如何避免

  • 需要⽤到外部价格做为条件判断时,如清算,使⽤安全的价格预⾔机,如 Chainlink 、Uniswap TWAP
  • 某些场景可限制在同个区块内的多次操作,⽐如衍⽣品 DEX ,可以限制在同个 区块内同时开平仓
  • 某些场景可添加全局的交易滑点保护,⽐如当前区块内成交价格不能超过之前 区块最后⼀⼝价格的 5%
This post is licensed under CC BY 4.0 by the author.