什么是 Oracles?
Oracles 是将链外数据传送到智能合约的服务,使代码能够对现实事件做出反应。可以把它们想象成经过验证的信使,直接将价格报价、天气、比赛比分或随机数带入区块链逻辑,不做多余说明。
Oracles 并非区块链内置的魔法按钮。它们是独立的服务,可靠的提供者会从多个来源获取数据并加入防护以避免错误数据。
Oracles 的工作原理
以价格喂价为例,快速说明流程。
- 步骤 1:借贷合约请求最新的 ETH 价格。
- 步骤 2:Oracle 节点从多个交易所和数据提供者处获取价格,然后对其报告进行签名。
- 步骤 3:oracle 系统将聚合值发布到链上,通常取中位数。
- 步骤 4:智能合约检查该喂价并将其与预设阈值比较。
- 步骤 5:如果价格下跌过多,风险头寸可能面临 清算,这一切都由喂价触发。
这就是基本循环。Oracles 获取、验证、传递,然后合约执行相应操作。
为什么 Oracles 很重要
那么你为什么要关心 Oracles?因为它们让智能合约能够与现实数据交互,而不需要你手动监控每次更新。
- 好处:自动化操作节省时间并减少猜测,例如即时贷款健康检查或即时 NFT 随机揭示。
- 形式:有些由单一实体运行并且是 集中式,而有些则将工作分布在多个运营者之间。
- 相关用途:你会在 DeFi 应用、预测市场、游戏、保险和跨链消息中遇到它们。
在评估 Oracles 时,应关注数据来源、更新频率、如何处理异常值以及谁可以发布喂价。快速浏览文档往往很有帮助。
Oracles 的主要特性
Oracles 的工作要点,简要说明:
- 桥梁:它们将链外信息传入链上合约,有时也会将信息传出链外。
- 聚合:良好的设计会合并多个来源并使用诸如中位数之类的数学方法来减少错误数据。
- 延迟:更新速度对交易和借贷很重要,而对天气或比赛等信息则容忍度更高。
- 信任:许多 Oracles 以 去中心化 网络运行,具有多个节点和透明规则。
类型
Oracles 有几种类型,视任务而定:
- 价格:为资产提供喂价,例如 ETH USD 或 BTC USD。
- 事件:实际结果,例如比赛结果或航班延误。
- 随机性:可验证随机数,用于游戏、彩票和 NFT 揭示。
- 计算:链外计算证明任务已正确完成。
- 输出:触发链外操作的信号,例如发送电子邮件或解锁设备。
- 跨链:在不同区块链之间传递数据的消息。
Oracles 不会使事实变为真实。它们只是报告来源所说的内容。如果输入错误或延迟,结果也可能错误或迟到。
示例
在 去中心化应用(dApps) 中的一个借贷市场使用 Oracles 获取 ETH 价格,当喂价变化时调整抵押规则。
趣闻
这个名称来源于古代为难题给出答案的顾问。有趣的是,数据库巨头 Oracle 与此无关,尽管两者都非常重视数据。
总结
一句话:Oracles 让智能合约观察并对现实情况作出反应,这就是许多加密方案从演示阶段走向真正有用的原因。
