闪电贷与预言机防篡改性的重要意义

2024-12-07 区块链达人

闪电贷与流动性挖矿一样,都是创新的流动性机制,这两个概念是近期DeFi生态的热门话题,引来了广泛关注。闪电贷用户可以向链上流动性池进行无抵押贷款,条件是在同一笔交易内向流动性池返还借入的资金再加上一小笔交易费。这个创新模式极大丰富了资金的应用场景,将资金面向所有用户开放,并同时保障流动性池的偿付能力。

闪电贷可以让任何人在单笔交易的时间期限内充分募集到资金,盘活了价值几亿美元的流动性。这为套利交易、抵押品互换和杠杆交易打开了大门,但同时也产生了一定风险,特别由于是DeFi生态仍在发展初期,因此各个DeFi协议的去中心化程度和安全性都有所不同。智能合约开发者应该充分了解这些风险,这样才能为用户开发出更加稳健的应用。

闪电贷以及价格预言机攻击

正如上篇关于DeFi智能合约数据安全的文章所述,协议如果从单一数据源获取价格数据,就容易受到恶意攻击,攻击者可以利用大笔资金交易操纵市场。由于闪电贷可以在任何时间为世界上任何一个角落的人即时提供大笔资金,因此越来越多人利用闪电贷的资金对DeFi协议发起攻击。不过在这里我们需要阐明一点,闪电贷只是为攻击提供资金,真正的问题还是中心化的价格预言机无法充分覆盖各个价格市场。

虽然闪电贷攻击的方法和范围不尽相同,但它们所攻击的协议都有一个共同点,那就是只从某一个去中心化交易所获取价格数据。比如闪电贷攻击的受害者是某个DeFi借贷协议,该协议从某一个去中心化交易所获取喂价数据。操作步骤如下:

从一个支持闪电贷的协议中借入大量通证A。

在某个去中心化交易所上将通证A换成通证B。

将兑换的通证B放在另一个DeFi协议中作抵押,而上一步操作中的去中心化交易所是这个DeFi协议唯一的价格数据源;由于价格数据被操纵,因此可以借到高于正常量的通证A。

用其中一部分通证A还之前闪电贷的贷款,然后剩余的通证放进自己的口袋,以此不当获利。

随着去中心化交易所中通证A和通证B的价格通过套利交易逐渐回到真实水平,DeFi协议会出现债务价值超过抵押品价值的情况,这将直接损害其他正常用户的利益。

闪电贷攻击中通过操纵价格预言机发起攻击的具体步骤

由于攻击者能够发起闪电贷并操纵链上交易所,而交易所又是某个DeFi协议唯一的价格预言机,因此他们有能力人为提升抵押通证的价格,并降低债务通证的价格。这样一来,攻击者就可以借入高于正常量的通证,而由于抵押品价值变得低于债务价值,因此导致无法完全清算。这种攻击虽然是在单笔交易中发生的,但是发起交易的次数越多,攻击次数也就越多,最终造会成严重损失。

仅从一家链上交易所获取价格数据会导致市场覆盖严重不足,因为价格只反映了一家交易所的交易活动。如果交易量突然转移到其他交易所,或某一巨鲸暂时操纵了交易所的交易活动,协议将很容易获取错误的喂价。对于流动性较低的加密货币资产来说这个问题尤为严重,而这类资产被越来越多地用在DeFi协议中作为抵押品。

所幸,这种类型的攻击是完全可以避免的,方法就是使用去中心化的预言机,充分保障市场覆盖。

Chainlink去中心化预言机如何避免对喂价发起攻击

Chainlink喂价基于去中心化的预言机节点网络,充分保障市场覆盖。网络从多个独立的数据提供商获取并聚合价格数据,其中包括CoinGecko、Amberdata以及BraveNewCoin等专业的数据聚合商。这些数据聚合商会追踪所有交易环境,并运用成熟的算法综合考虑各个交易所的交易量、流动性和时间差等各种因素。

闪电贷攻击必须在单笔交易中完成,而且只能操纵链上去中心化交易所,因此对Chainlink喂价完全无效,因为喂价是以异步的方式通过多次交易更新的。另外,Chainlink还会从链上去中心化交易所和传统的中心化交易所同时获取并聚合数据,因此可以防止攻击者通过操纵某一交易所的交易来影响喂价。

我们强烈建议智能合约开发者避免使用容易被操纵的DEX价格数据,而是接入Chainlink喂价为其智能合约输入市场价格数据,以防止在未来遭遇闪电贷攻击。这可以保障DeFi协议收到的聚合价格一直能准确反映市场交易行为,并且可以抵御闪电贷攻击以及所有类型的价格预言机攻击风险。

闪电贷攻击对Chainlink喂价无效

总结

闪电贷是一种创新的DeFi金融产品,极大丰富了DeFi应用场景,并降低了市场准入门槛。虽然近期有人利用闪电贷的资金对DeFi协议发起了攻击,但闪电贷本身只是一种金融工具,其价值不应被忽视。闪电贷本身不产生风险漏洞,而是暴露了已经存在的风险漏洞,其中最常见的漏洞就是价格预言机只接入一个链上交易所。

Chainlink生态及其去中心化预言机网络能够大幅提升DeFi协议的防篡改性,特别是提升其获取实时市场数据的关键能力。DeFi协议只有将安全性放在首位,才能应对新的风险,维持用户对其的信任,并逐步将锁仓量从十亿级增长至万亿级。

如果你是一名开发者,并希望快速将智能合约连接至Chainlink价格参考数据,请查看我们的开发者文档并加入我们在Discord上的技术讨论群。如果你希望透过电话具体讨论集成细节,请点击此处联系我们。