Oracle 攻击是指一种网络攻击,它利用计算机系统对外部数据源(称为“预言机”)的信任中的漏洞。预言机是第三方数据提供商,向 智能合约 和 去中心化应用程序 (DApps) 提供信息,这些应用程序位于 区块链 网络上。这些数据源通过提供真实世界的数据(例如价格信息、天气状况和其他外部事件),在使智能合约能够自主执行方面发挥着关键作用。[1][4]
Oracle 攻击通常涉及操纵预言机提供的信息,以欺骗 智能合约 或 DApp。这些攻击的目标可能各不相同,但通常包括经济利益或破坏去中心化系统的正常运行。攻击者可能会尝试更改数据馈送,以触发智能合约中意外的操作,从而导致不良结果。[2]
1. 价格操纵:在 去中心化金融 (DeFi) 应用程序的背景下,攻击者可以操纵价格预言机以提供虚假的价格数据。这可以被利用来执行有利可图的交易或导致借贷平台内的清算。[5]
2. 篡改外部数据:攻击者可能会破坏数据源本身或其通信渠道,以将虚假信息注入到预言机馈送中。例如,攻击者可以伪造保险 智能合约 中使用的天气数据,以欺诈性地索赔赔偿。[4]
Oracle 操纵对借贷协议构成挑战,可能会导致更大规模的破产局面。例如,oracle 漏洞有可能在协议内引发不利的债务头寸,其中抵押品的价值低于用户的债务。鉴于借款人可能缺乏偿还债务的动机,这种情况可能会迫使流动性提供者承担损失。[2]
除了协议破产的风险外,oracle 攻击还有可能在各种情况下引发全面的经济失败。例如,如果 oracle 不准确地报告价格波动,算法 稳定币 和 rebase 代币可能会失去其预期的价格挂钩。[2]
为了避免破产,DeFi 货币市场密切监控 抵押品 资产的市场价值,并在债务头寸达到抵押不足的水平之前执行清算。但是,如果协议基于不准确的 oracle 数据进行计算,则这些清算可能是不合理的。[2]
缓解 oracle 攻击的措施包括:
1. 多个 Oracle:使用多个独立的 oracle 并聚合其数据可以降低单个恶意源操纵的风险。[3]
2. 去中心化 Oracle:利用从各种提供商处获取数据并采用共识机制的去中心化 oracle 网络可以使攻击者更难以操纵数据馈送。[2][3]
3. 经济激励:设计鼓励 oracle 提供商诚实行为的机制,例如要求 抵押品 或 质押,可以阻止恶意活动。[4]
4. Oracle 升级和治理:定期更新和改进 oracle 设计,同时让社区参与治理,可以帮助解决新兴漏洞。[4][5]