在大多数 DeFi 借贷协议中,用户需要抵押资产才能借出资金。例如,用户可能抵押 ETH 来借出稳定币。系统会根据预言机提供的市场价格计算抵押品价值,并据此判断账户是否处于安全状态。
当抵押资产价格下跌到某个阈值时,系统就会触发清算机制,将抵押资产出售以偿还债务。整个过程几乎完全依赖预言机的价格更新,因此预言机数据的准确性与更新速度直接决定了清算系统是否能够正常运行。
如果价格更新过慢,系统可能无法及时触发清算,导致协议承担坏账风险;而如果价格突然出现异常波动,则可能引发大量不必要的清算。为了降低这种风险,DeFi 协议通常会结合以下几种机制进行风险控制:
这些设计共同构成了 DeFi 清算系统的基础框架,而预言机则是这一系统能够运行的核心前提。
虽然预言机的目标是提供可信的数据,但在现实中,攻击者往往会尝试操纵价格数据,从而在 DeFi 协议中获取不当收益,这类攻击通常被称为预言机攻击(Oracle Attack)。
一种常见方式是通过操纵去中心化交易所的价格。例如,如果某个协议直接使用 DEX 的即时价格作为预言机数据,攻击者可以通过大额交易短时间改变市场价格,然后利用这个异常价格在借贷协议或衍生品协议中获利。
在过去几年中,DeFi 生态曾多次出现类似事件。这些攻击通常具有几个共同特点:攻击者先通过闪电贷获得大量资金,然后在流动性较低的交易对中操纵价格,最后利用异常价格在其他协议中完成套利。由于整个过程可以在一个区块内完成,系统往往难以及时反应。
这些案例揭示了一个关键问题:如果预言机过度依赖单一市场数据,其价格就可能被短时间操纵。因此,许多 DeFi 项目开始重新设计其预言机系统,以降低被攻击的可能性。
为了降低价格操纵风险,DeFi 协议通常不会直接使用某一时刻的市场价格,而是采用更稳健的数据处理方式。其中最常见的方案之一是时间加权平均价格(TWAP)。
TWAP 的核心思想是将一段时间内的价格进行平均计算,而不是依赖瞬时价格,这样即使攻击者短时间内改变市场价格,也很难对最终数据产生决定性影响。由于操纵价格需要持续较长时间,攻击成本会显著提高。
除了时间加权机制之外,许多预言机系统还会使用多数据源设计。也就是说,系统不会依赖单一交易所或单一市场,而是从多个交易平台获取价格信息,然后进行聚合计算。通过这种方式,预言机能够减少单个市场波动带来的影响。
在更复杂的系统中,预言机还可能结合以下安全策略:
这些机制共同构成了现代 DeFi 预言机的安全架构,使系统在面对市场波动与潜在攻击时仍然能够保持稳定运行。