本文深入探讨了区块链预言机的概念、类型、工作原理以及在DeFi等领域的应用。文章还分析了预言机面临的主要问题,如市场操纵和安全漏洞,并提供了Hacken团队的安全建议,包括使用Chainlink预言机、设置监控工具等,以提升智能合约的安全性。
更新于:2025年6月30日
阅读时长:9 分钟
作者:Oleh Malanii
无论你是刚入门还是经验丰富的 Web3 开发者,理解区块链预言机都至关重要。它们是将你的智能合约连接到现实世界的支柱,使交互超越区块链的范围。如果没有预言机,智能合约只能处理链上已有的内容,从而错失了诸如价格馈送、现实世界事件,甚至是 Web API 等重要数据。
在本文中,我们将详细探讨区块链预言机及其类型:它们为何能改变游戏规则、它们的应用以及它们的潜在弱点。请继续阅读到最后!我们为你准备了一些酷炫的额外内容。
区块链预言机是一种为智能合约提供外部数据的服务,使它们不仅能够从其他区块链获取数据,还能从外部或链下世界获取数据:体育赛事、银行数据等等。
智能合约本质上是隔离且具有确定性的;它们无法在没有中介的情况下访问或检索来自外部环境的数据。预言机充当了这一中介,弥合了链下和链上数据源之间的差距。
换句话说,预言机是区块链通往现实世界的门户。
仍然不确定预言机的作用?为了更好地理解,我们为你提供了一个真实世界的场景:
假设我们创建了一个以太坊智能合约来押注黄金的价格。双方玩家都将赌注存入智能合约中。智能合约需要什么才能在期限结束后分配奖金?它需要有黄金的实际价格。这时,预言机就派上用场了。预言机可以从链下获取准确的价格,并安全可靠地将其传递到区块链上。
用户(智能合约)从外部来源(任何未存储在区块链上的数据)请求并获取一些信息。根据 ethereum.org 的说法,以下是其工作原理的概述:
关于数据源和预言机之间的区别:预言机不是数据的来源;它们是智能合约访问数据的方式。
预言机服务于不同的目的,因此它们具有不同的设计和管理模式。根据 ethereum.org 的分类,最流行的设计模式是 请求-响应,因为它允许智能合约查询特定信息,而不是整个数据集。相比之下,发布-订阅 对于获取动态变化非常有用,例如法币到加密货币的汇率。另一个重要的分类与管理有关。它回答了以下问题:谁控制预言机:是单个实体还是多个对等方?
中心化预言机:
去中心化预言机:
即时读取预言机:
发布-订阅预言机:
请求-响应预言机:
互操作性解决方案 的范围从侧链到与区块链无关的协议。但是,它们带来了各种各样的挑战,例如一致性和代码更改要求。相比之下,预言机在不同的区块链上提供兼容性和安全性。我们在下表中总结了关键的区别:
| 互操作性解决方案 | 预言机 | |
| --- | --- | --- |
| 侧链 | 如果主链受到损害,侧链逻辑可能会失效。确保一致性具有挑战性。 | 预言机不需要区块链之间的兼容性,并且具有多种安全管理方式。 |
| 公证人 | 公证人涵盖互操作性的全部范围,但会集中信任。 | 预言机可以通过去中心化解决方案解决一些 区块链漏洞。 |
| HTLCS | HTLC 是无需信任的,并且适用于交易,但可能会导致资产锁定。仅支持数字资产交换。 | 预言机支持数字和任意数据。 |
| BOB | 区块链引擎无法在全球范围内通信。一些解决方案是中心化的,需要交易费用。 | 去中心化预言机可以克服许多这些限制。 |
| 受信任的中继 | 连接不同的区块链平台非常困难。最大限度地减少恶意中继服务尚不清楚。 | 预言机充当中间件,提供链下数据并具有声誉系统。 |
来源:“区块链预言机:最新技术和研究方向”(Ezzat 等人,2022 年)
预言机通过检索和验证智能合约的外部数据来弥合链上和链下世界之间的差距。
DeFi 中的点对点借贷、借款和资产交易需要实时金融数据,例如汇率和资本市场数据。例如,DeFi 借贷协议将需要作为抵押品存入的资产的当前市场价格。
预言机示例:
基于区块链的游戏或彩票需要不可预测的随机性,由于区块链的确定性,这是一个挑战。
预言机示例:Chainlink VRF 和 API3 QRNG 提供防篡改的随机数生成 (RNG),确保公平性和不可预测性。
允许智能合约响应真实世界事件。去中心化的保险应用程序可能会利用预言机来访问准确的天气数据或灾难报告。
预言机示例:
自动化合约内的功能以维持应用程序功能。Chainlink 的 Keeper Network 允许智能合约以去中心化的方式外包维护任务。
预言机在去中心化金融生态系统中发挥着关键作用,充当外部数据源和智能合约之间的桥梁;然而,它们的关键功能也使它们成为市场操纵策略的主要目标。
市场操纵是为了盈利而故意扭曲价格,以牺牲其他用户为代价。资产越容易交易(其流动性),就越难让别人扰乱其价格。
市场操纵中的常见技术:
虽然许多流行的预言机都经过全面审查和审计,但使用它们的协议仍然可能搞砸事情。一个值得注意的例子是 AaveV3 回退预言机 中的一个严重漏洞,其中“setAssetPrice”函数缺少必要的访问控制,允许黑客设置任何资产的价格。
在发现错误时(2022 年 4 月),Aave 的价值接近 30 亿美元,因此你可以想象潜在黑客攻击的严重程度。由于第三方研究人员发现了该问题并将其报告给 Aave,因此避免了最坏的情况。这些事件强调了即使项目使用经过实战检验的预言机,外部代码审查 的重要性。
但并非所有故事都有一个快乐的结局。请参阅项目损失数百万美元的预言机攻击:
让我们回顾一下最常见的攻击向量。
在这种类型的攻击中,目标是通过提供虚假的价格数据来欺骗智能合约。考虑一下 Inverse Finance 的第一次黑客攻击,以向你提供一个真实世界的场景。向伟大 REKT 文章 的作者致敬。
一个精心策划和执行的黑客攻击让黑客可以影响 INV 代币的价格,并获得以太坊驱动的借贷协议的特别优惠。攻击者最初从 Tornado Cash 提取了 901 ETH。一旦他们使用 Disperse 将 1.5 ETH 分发到 241 个干净的地址,攻击者就会启动 5 个不同的智能合约,而其中只有一个是真实的。然后,他们通过 SushiSwap 上的 INV-WETH 交易对将 500 ETH 兑换为 1.7k INV,由于流动性低,这大大改变了价格。与此同时,攻击者开始发送垃圾邮件交易,以便成为第一个进入下一个区块并从 Sushiswap 获得虚高价格的人。但我们为什么要在这里提到 Inverse Finance?不幸的是,Inverse Finance 通过 Keeper Network 使用了 Sushiswap TWAP 预言机,这导致 INV 的价格大幅上涨。最后,攻击者存入了他们的 1.7k INV(当时的价格应为 64.4 万美元)作为抵押品,并借入了 1560 万美元用于良好目的。
这里有一个教训?我们不应该依赖于从具有短时间样本的单一低流动性 DEX 交易对生成的 TWAP 预言机,这会加剧市场操纵风险。
这种类型的攻击与前一种攻击相互关联,因为闪电贷可以被认为是实现价格变化的一种工具。在闪电贷攻击中,攻击者通过闪电贷借入大量资金,并使用这些资金来操纵 DeFi 平台上资产的价格。
闪电贷攻击 是一种利用闪电贷是无抵押且不需要信用检查这一事实的漏洞。在闪电贷攻击中,黑客通过闪电贷借入大量资金,并使用这些资金来操纵 DeFi 平台上资产的价格。
它通常遵循三个步骤:
确保无法操纵所有代币的价格来源。
使用 Chainlink 预言机。与 TWAP(时间加权平均价格)算法相比,它们更抗操纵、提供高度准确和最新的数据,并且具有更广泛的市场覆盖率。
当 Chainlink 预言机不可用时,可以使用 TWAP 预言机。(这不能总是被认为是正确的决定)。这是 Chainlink 团队创建的两种方法之间的一个很好的 比较。
设置监控工具以检测和警报异常的链上活动,从而实现快速干预。我们公司提供此类服务,因此请随时联系 Extractor 团队。
我们没有忘记我们亲爱的区块链爱好者,因此我们策划了一些有见地的文章,这些文章将极大地提高你的专业知识:
https://blog.pessimistic.io/chainlink-vrf-secure-integration-tips-specifications-eafd63e87022
- 原文链接: hacken.io/discover/block...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!