预言机是现实世界(链下)服务和区块链(链上)协议之间架起桥梁的中间方。预言机检索链下数据,并将这些数据发布到区块链上供智能合约使用。它们还将智能合约中的信息和指令转发给链下的外部系统。此外,预言机还必须确保提供准确的数据,并能抵抗操纵。
在计算复杂度理论与可计算性理论中,预言机(英语:oracle machine),又称谕示机,是一种抽象电脑,用来研究决定性问题。可以被视为一个多了个黑盒子(预言者)的图灵机,这个黑盒子的功能是可以在单一运算之内解答特定问题。预言者可以解答的问题,根据给定可以是任何复杂度类之内的问题。甚至可以使用不可判定问题,像是停机问题。
理想中的预言机应有以下几种特质:
1. 高水平的准确性——价格预言机应准确反映当前数据。
2. 抗操纵性——预言机应能抵抗操纵。
3. 及时性——来自价格预言机的数据应该及时提供,且最好是每个区块的数据。
4. 去中心化——预言机价格要在去中心化且无准入的系统中进行验证。
DeFi预言机可分为链上链下两种,前者的价格来自链上源(如Uniswap),而后者的价格则来自链下源。除此之外,预言机还可以进一步分为中心化和去中心化的,前者的数据由单一运营商验证(如Compound),而后者的数据则由独立运营商验证(如MakerDAO)。
虽然 DeFi 中预言机的主要用途是与借贷协议的清算有关,但价格预言机还有其他几种用途:
1. 抵押品不足的贷款清算--借贷协议(即Maker、Compound、Cream和Aave)依靠价格预言机来决定何时清算用户的贷款。如果一个用户的抵押品下降到某个阈值以下,该账户就可以被清算。
2. 衍生品定价--衍生品平台(即Synthetix、Perpetual、Hegic)使用预言机来计算加密资产,包括期权、期货、合成资产的价值。
3. 指数定价--指数平台(如Set)使用预言机来检索指数成分的价格。
4. 保险协议--保险协议(如Nexus Mutual)在向区块链报告和发布索赔之前利用预言机来验证索赔。
5. 预测市场--去中心化的预测市场(即August和Gnosis)依靠预言机进行链下事件结算。
每个预言机,无论链上或链下,都有自己的优势和弱点。以太坊价格预言机是否会遭受另一个黑色星期四的崩溃,仍有待确定。在评估预言机时,牢记以下攻击载体或许会有所帮助:
1. 51%攻击:如果一个实体拥有或一个团体勾结控制了大多数节点?届时,这部分实体便可以控制哪些价格信息被使用,将哪些数据认作是绝对真理。
2. 镜像攻击:一个预言机节点能否将其数据分享给它所控制的其他节点呢?虚假的信息可以像电话游戏一样轻松传播。
3. 数据篡改:预言机是否从可信的来源接收数据?外部数据提供者可能会发送被操纵的或错误的数据。
4. 活跃度问题:预言机或节点是否及时向链上推送数据?预言机或节点的更新可能会有意或无意地停止,从而对依赖它们的智能合约造成破坏性影响。
随着加密协议的不断发展,准确的链上和链下数据的重要性也在不断增加。此外,随着这些无准入协议与外部系统、物联网设备和其他软件的进一步整合,将外部数据准确传达给区块链网络的需求将获得极大关注。不同的用例可能需要特定的预言机设计,协议或公司也需要根据上述的权衡选择特定的解决方案。