预言机(Oracle):连接区块链和现实世界的桥梁

 2023-11-19 23:20:11发布 2023-11-19 23:20:45更新

预言机(Oracle)是一种第三方服务工具,用于获取、验证外部信息并将其传输到运行在区块链上的智能合约中,它们通过提供一个与链下数据交互的机制,以执行有价值的任务和服务,从而扩展智能合约的功能。

为什么需要预言机

区块链的闭环链式结构决定了其是一个封闭的环境,是无法主动获取链外现实世界的真实数据的。区块链技术要真正落地应用,就需要网络外部的信息来执行交易并提供人们真正可以获利的服务,这个提供信息的中间件就是预言机。

预言机已经成为区块链世界的基础设施构件,区块链应用场景的拓展有赖于预言机的发展和它的数据维度的拓展。

从根本上讲,智能合约只是一个自我执行的代码。智能合约会评估来自预言机的传入数据,并根据收到的信息启动执行流程。

举例来说,Alice 和 Bob 对一场赛马进行下注,双方玩家都可以将他们的资金锁定在一个智能合约中,该智能合约将根据现实世界的比赛结果将资金发放给获胜者。

虽然智能合约不能直接与外部世界进行交互,但一个第三方的预言机可以通过查询一个可信的 API 来检索这场赛马的结果,并将结果传输给智能合约,确定获胜者,并让合约能够相应地分配资金。

预言机充当了外部世界和智能合约世界之间的桥梁。

请注意,预言机本身并不是数据源,而是一个检索、验证外部数据并将其转发给智能合约的工具。它们可以传输各种类型的信息,比如价格数据、付款确认信息或传感器的测量值。

此外,预言机必须在传输这些数据的同时保留智能合约固有的特征:无需信任和去中心化。

这基本上就是预言机所需要解决的问题:确保为智能合约服务的链下数据的可靠性、真实性和可信度,同时消除单点故障和漏洞。

区块链预言机的作用

区块链预言机是将区块链安全连接至链下系统的中间层,区块链可以通过预言机连接至数据提供商、web API、企业后端、云服务商、物联网设备、电子签名、支付系统以及其他区块链等各种链下环境。

预言机具有几大关键功能:

等待响应:监控区块链网络,扫描网络中是否有来自于用户或智能合约的链下数据请求

获取数据:从一个或多个链下系统获取数据(比如由第三方web服务器运行的链下API);

格式化:将来自API的数据转换成区块链可读的格式,并将链上数据转换成外部API兼容的格式,以此打破链上链下的交流屏障。

验证:使用数据签名、区块链交易签名、TLS签名、可信执行环境(TEE)证明以及零知识证明等各种工具为预言机服务提供加密证明。

计算:对数据进行运算,比如基于多个预言机提交的数据计算出中位数,或基于不同类型的数据(如:个人风险情况、市场费率和资金成本等)生成保险报价。

广播:通过在区块链上签名并广播交易将数据和相关证明发送至链上智能合约。

数据输出(可选):在智能合约执行时向链下系统发送数据,比如将支付指令发送至传统支付网络,或与信息物理系统进行交互。

为了实现上述功能,预言机系统必须要在链上和链下同时运行。

链上模块的作用是与区块链交互(等待数据响应)、广播数据、发送证明、获取区块链数据以及有时在链上进行运算。

链下模块的作用是处理数据请求、获取链下数据并转换格式、将区块链数据发送至链下系统以及在更高级的预言机网络中进行运算。

预言机的种类

预言机通过为智能合约提供了一种在去中心化区块链网络之外进行通信的方式,为智能合约提供了附加功能。

区块链预言机可以采用多种形式,包括但不限于以下几种。

软件预言机

这种形式的预言机通常包括易于访问的在线信息源,例如网站和公共数据库。它们通常提供以下信息:温度读数,公共交通信息以及各种金融资产的当前价格。

软件预言机可能是目前最强大的预言机类型,因为它们与互联网具有固有的互连性。这种连接允许软件预言机向智能合约提供最新信息。

硬件预言机

这种形式的预言机通常负责物理世界中发生的事件,并将数据发送到智能合约上。

例如,在供应链管理中,如果带有 RFID 标签的物体要到达特定的仓库,则可以将该数据发送到智能合约,硬件预言机系统可以在整个供应链中进行货物跟踪。

输入式预言机

这种形式的预告机具有简单地向智能合约提供数据的功能。所提供的数据在智能合约的外部,并且在接收信息后开始执行。

输出式预言机

这些预言机将智能合约数据传送到外部源。就上面的例子而言,一旦张三被确定为赢家,智能合约便可以将此信息传达给钱包提供商,以便自动更新其余额以反映资金的增加。

在这种情况下,智能合约本身就可以作为输出式预言机运作。

基于共识的预言机

这种预言机的功能是查询多个信息源,并根据它们的共识得出结果。如果所有预言源(网站)返回的值都相同,则智能合约可以成功执行。

预言机的应用场景

理论上来说只要涉及到链外数据的 Dapp,都会需要预言机。

Defi

几乎所有和 Defi 相关的业务都要用到预言机,因为合约凭借自身无法高效地抓取链下数据,如:合约某个地址里有多少 ETH,但是无法知道当时 ETH 的价格是多少。

无法抓取实时的价格更新对于基于智能合约的 Defi 来说是致命的,而提供高准度和可信度数据的预言机较好解决了 Defi 这一弱点。

虽然有很多黑客的攻击手段都是对预言机的攻击,但当前阶段还是没有一个较好的工具能够替代预言机的地位。

去中心化衍生品

衍生品是两方或多方之间的金融合约,其价值基于相关资产。衍生品允许人们对标的资产提出不同的视角(长期或短期),从实质上促进金融稳定。

公共智能合约平台可以创建和交易金融衍生品,包括基于区块链的资产。预言机可以通过提供价格馈送,结算价值和合约到期来确定参与方的收益或损失,从而在去中心化衍生品中发挥重要作用。

稳定币

获取有关稳定币和它们所固定的资产之间的汇率的外部数据是预言机的一个重要场景之一。

保险(及相关)

区块链和保险十分契合,智能合约可以最公平的去判断和执行保险的条例标准。

预言机抓取的链外数据,使得智能合约可以在很多涉及到现实数据的保险及相关领域大展身手;如温度:室外气温高于多少度时,是否应该自动发放高温补贴?

NFT

当前预言机在这一块的应用主要是随机性,随机去分配每一个 NFT 的特征、属性,保证每一个 NFT 稀有度等的绝对公平,以及在 Gamefi、Metaverse 等领域的公平概率随机性事件。

支付

支付,尤其是加密支付也需要用到预言机,其中的代币实时价格、汇率以及相关的计算,都需要预言机来提供一个准确的数字给合约。DEX 、支付以及日后可能的 CBDC,都离不开预言机。

DAO

DAO 里面多会涉及到和工作量挂钩的资金分配,作为去中心化形式的组织,将规则透明的写进智能合约是最合适和公平的了。

具体的工作证明、或是涉及到质押等的收益,都是可以通过合约来完成分配的;而其中诸多的数据抓取(如:投票数据等)都是要靠着预言机。

预言机项目

ChainLink

Chainlink 的目标是构建一个完全去中心化的预言机网络,网络节点兼容以太坊、比特币和 Hyperledger,并支持模块化:系统的每个部分都支持升级。其主要的想法是为预言机打造一个可信的市场。

有良好行为的预言机节点会受到激励,其表现和声誉会公之于众,反之有恶意行为的节点会受到惩罚。

Chainlink

Chainlink

DOS Network

DOS Network是一种可扩展的 layer2 协议,它为主流区块链提供分散的数据馈送预言机和分散的可验证计算预言机。

它将链上智能合约与链下互联网数据连接起来,为区块链提供无限可验证的计算能力,使更多的商业应用能够与真实世界的用例相结合。

DOS Network

DOS Network

Provable

Provable是一款中心化的预言机应用服务,为Ethereum、Rootstock、R3 Corda、Hyperledger Fabric、EOS等区块链提供预言机服务。

Provable开发的解决方案是使用中心化预言机,并证明从原始数据源获取的数据是真实的和未被篡改的。证明通过返回的数据与称为真实性证明的文档一起实现。

真实性证明可以基于不同的技术,例如可审计的虚拟机和可信执行环境。

推荐阅读