首页>财经 > 正文
快消息!闪电贷技术详解(2)
来源: SharkTeam 发布于:2022-08-05 16:29:01

熊市就像一块试金石,Defi的各核心业态,哪些能够穿越周期,更好的发展?在周期中又暴露了哪些问题,值得后来者借鉴?SharkTeam合约安全系列课程之【DeFi安全】和您一起讨论和深入。第二课【闪电贷技术详解】。

文章较长,分为3个部分,这是第2部分:


(相关资料图)

1.闪电贷原理和应用场景;

2.闪电贷合约实现和风险防范。

3.闪电贷相关项目协议分析。

1 闪电贷合约实现

1.1 闪电贷

以Aave项目为例,Aave项目实现了闪电贷业务的主要合约是 LendingPool.sol合约,关键函数为 flashLoan函数。

以下是AaveV1的实现代码:

IFlashLoanReceiver 代码如下:

FlashLoanReceiverBase 代码如下:

其中需要注意:

l闪电贷接收方合约 IFlashLoanReceiver (接口合约)的实现是需要闪电贷发起方自定义的。自定义闪电贷合约需要继承 IFlashLoanReceiver 接口合约或者 FlashLoanReceiverBase 合约,并实现其中的 executeOperation 函数。

l自定义闪电贷合约部署在区块链中的地址即为 flashloan 函数的参数 _receiver。

以下是 AaveV1 闪电贷的一个代码实现示例:

1.2 闪电兑

以 UniswapV2 项目为例,UniswapV2 项目实现了闪电兑换业务的主要 错误! 超链接引用无效。合约中的 swap函数,代码如下:

其中需要注意:

l闪电贷接收方合约 IUniswapV2Callee(接口合约)是需要闪电贷发起方自定义的。自定义闪电贷合约需要继承该接口合约,并实现其中的 uniswapV2Call函数。

l自定义闪电贷合约部署在区块链中的地址即为 swap 函数的参数 to。

以下是UniswapV2闪电贷的一个代码实现示例:

2 闪电贷风险与防范

2.1 闪电贷优点

1.没有任何资金风险,而借款人只需要支付借款手续费及Gas费用即可。

2.无需任何资产抵押,就可以借到高达百万美元甚至千万、上亿美元的资产,用来进行杠杆等金融业务进行获利,不用抵押任何资产。

2.2 闪电贷缺点

1.有一定的技术门槛及金融知识门槛,调用者需要熟悉用智能合约进行闪电贷的操作,并且要利用金融知识从闪电贷操作中进行获利,这样才不会有任何财产损失(比如借款手续费及Gas费用)

2.会被别有用心者用于黑客攻击:利用项目方的智能合约漏洞,从闪电贷借到巨额资金,从项目方资金池中获取巨额收益。

2.3 闪电贷攻击

闪电贷是一种金融技术,同时也是一把双刃剑,既为人们提供了极大的便利性,也为别有用心者提供了一把利器。

通过闪电贷,黑客可以利用智能合约中的漏洞,用极低的成本,从闪电贷协议借得大量资金,用于攻击操作,获得巨大的利益。

另外一面,黑客的攻击行为在造成巨大财产损失的同时,也产生了一种鲶鱼效应,让整个DeFi生态系统得到了加强,并不断完善和发展。

2.4 安全防范建议

闪电贷攻击的根本原因在于被攻击的项目的智能合约(尤其是价格预言机)存在漏洞,黑客利用了其中的漏洞完成攻击,而闪电贷只是提供了攻击的资金,降低了黑客攻击的成本。

因此,闪电贷攻击并没有有效的防范措施,只能尽可能的让项目的业务逻辑和合约代码不存在漏洞。

解决闪电贷攻击的办法:

1.说服所有的闪电贷协议停止提供这种服务

这是不可能的。提供闪电贷款符合每个协议的利益,并且其用户有合理原因的希望使用此功能。因此,我们可以放心地消除这一选项。闪电贷不会消失。

2.迫使关键交易跨越两个区块

如果一个资本密集型交易需要跨越至少 两个区块,用户需要至少在两个区块时间段取出贷款,闪电攻击就成为不可能。

3.要求提供链上证明,证明完成闪电贷后用户的账户余额未出现变化

如果可以通过某种方法来检测用户的 实际余额是多少 (即在他们贷款之前和还款之后的余额分别是多少) ,我们就可以战胜闪电攻击。

在原生 EVM 机制中无法执行此操作,但是可以对其进行修改。你要做的是:在用户与你的协议进行交互之前,你要求其提供 Merkle证明,证明在上一个区块末尾时他们有足够的余额来偿还当前使用的资金。 你需要针对每个区块中的每个用户跟踪此情况。

这种方法一定程度上是奏效的。当然,它还很粗糙,有一些问题:验证这些链上证据在链上的 成本极高,思维正常的用户没有人愿意提供这类证明,并为整个过程支付 gas 费用。另外用户完全可能有合法合理的理由,在上个区块想调整其余额。所以,尽管这种方法理论上有些作用,它不是一种可行的解决方案。

减缓闪电贷攻击的办法:

1.市场价预言机

像 Uniswap或 OasisDEX等市场价预言机 , 由于闪电攻击的可能性,你任何情况下不能把当前市价中位数当成喂价。 攻击者只需要一笔交易就能轻而易举地大幅改变市价中位数,让预言机失灵。对此最好的解决方案是通过 时间加权平均价格(TWAP) 或 成交量加权平均价格(VWAP) 计算 上一批 X 区块的加权平均数。 Uniswap v2会自带这一功能; 经济学家 Max Wolff 的著作 《 Polaris》为其它协议提供了一种通用方法。

2.治理代币

链上治理则是则会带来一连串令人头疼的问题。链上治理通常由治理代币持币人按权重投票决定。但如果这种治理代币进入某一贷款池,任何攻击者可以偷走大量选票,得到自己想要的结果。 当然,多数治理协议要求这些治理代币在投票期间锁定,这让闪电攻击无计可施。但有些治理协议并非如此,例如 Carbon Vote和Maker的行政投票。在闪电贷攻击的阴影之下,这些治理机制完全可能被攻陷。

理想情况下,你不想让治理代币进入闪电贷款池。但这并非由发币者决定,它是由市场决定的。因此,所有治理行动应该要求 代币锁定期,以阻止闪电攻击。更关键的是,所有治理代币必须有 时间锁(timelocks) 。时间锁迫使所有的执行决策在生效前都有一段等候期。(例如 Compound 的时间锁是 2 天 ) 。如果遭遇意料之外的治理攻击,这一机制让系统有了 容错时间。

关于我们:SharkTeam的愿景是全面保护Web3世界的安全。团队成员分布在北京、南京、苏州、硅谷,由来自世界各地的经验丰富的安全专业人士和高级研究人员组成,精通区块链和智能合约的底层理论,提供包括智能合约审计、链上分析、应急响应等服务。已与区块链生态系统各个领域的关键参与者,如Huobi Global、OKC、polygon、Polkadot、imToken、ChainIDE等建立长期合作关系。

Web:https://www.sharkteam.org

Telegram:https://t.me/sharkteamorg

Twitter:https://twitter.com/sharkteamorg

Reddit:https://www.reddit.com/r/sharkteamorg

更多区块链安全咨询与分析,点击下方链接查看

D查查|链上风险核查https://m.chainaegis.com

关键词: 闪电攻击 解决方案

猜你喜欢

  • 快消息!闪电贷技术详解(2)
  • 天天简讯:闪电贷技术详解(3)
  • 【天天聚看点】诺基亚 5710 XpressAudio 手机即将开售,内置真无线耳机
  • 全球速看:国产光追动作新游《生死轮回》 华硕巨齿鲨3060Ti显卡实测
  • 短讯!不用分区,说分区的都是小白或者不更新知识的老玩具
  • 实时焦点:抖音网红带货日赚400万?税务部门:正在查!
  • 当前播报:在KK WORLD开了家印象国漫馆,佳能让漫迷把梦想都打包带走
  • 观点:精确到街道红绿灯!地图可显示台湾省每个街道
  • 当前信息:魅族专利可对落水车辆电解水供氧
  • 当前最新:助山东企业出海 2022山东(聊城)跨境电商峰会即将举行
  • 快报:智能家电市场规模近6000亿元,转转:二手家电消费开始升温
  • 环球即时:如猎鹰般精准敏锐,决胜游戏战场!HKC CG273Q开箱评测
  • 全球快播:打工人放松神器!惠威居家好物来啦
  • 全球新资讯:ColorOS 12四个功能荣获2022红点优胜奖
  • 苹果公司第10代iPad渲染图曝光 或全系取消耳机孔
  • 苹果Apple Store推出系统稳定性诊断工具 以确定iPhone是否意外重启
  • 徕卡宣布与海信达成战略合作 双方将面向家庭影音市场打造激光电视类产品
  • 谷歌Pixel7系列将于秋季发布 预计搭载自研Tensor2处理器
  • 因未经许可实时转播世界杯比赛节目 PPTV视频需赔偿经济损失400万
  • 蔚来手机公司正式成立 或围绕手机打造不同配件与周边产品