在区块链和智能合约的背景下,预言机是一种寻找并验证现实世界事件,并将此信息提交给区块链以供智能合约使用的代理。
智能合约包含价值,只有在满足某些预定义的条件时才会释放该价值。当达到特定值时,智能合约会改变其状态并执行以编程方式预定义的算法,从而自动触发区块链上的事件。预言机的主要任务是以安全和可信的方式向智能合约提供这些值。
区块链无法访问其网络之外的数据。预言机是由第三方服务提供的数据馈送,专为区块链上的智能合约而设计。预言机提供外部数据,并在满足预定义条件时触发智能合约执行。这些条件可以是任何数据,如天气温度、成功支付、价格波动等。
预言机是多重签名合约的一部分,例如,原始受托人签署一份合约,只有在满足某些条件时才会在未来释放资金。在任何资金被释放之前,预言机也必须签署智能合约。
根据使用类型的不同,预言机有不同的类型。我们区分软件预言机、硬件预言机、共识预言机以及入站和出站预言机。
软件预言机处理在线可用的信息。例如,温度、商品和货物的价格、航班或火车延误等。数据来自在线来源,如公司网站。软件预言机提取所需的信息并将其推送到智能合约中。
一些智能合约需要直接来自物理世界的信息,例如,汽车穿过屏障,其中运动传感器必须检测到车辆并将数据发送到智能合约。另一个用例是供应链行业中的RFID传感器。硬件预言机面临的最大挑战是在不牺牲数据安全性的情况下报告读数的能力。Oracalize提出了一种两步解决方案来应对风险,通过提供传感器读数的加密证据和防篡改机制,在发生违规时使设备无法运行。
这些预言机为智能合约提供来自外部世界的数据。示例用例是如果美元达到某个价格,则自动买入订单。
这些预言机为智能合约提供向外部世界发送数据的能力。一个例子是物理世界中的智能锁,它在其区块链地址上收到付款,需要自动解锁。
像Augur和Gnosis这样的预测市场严重依赖预言机来确认未来的结果。仅使用一个信息来源可能存在风险且不可靠。为了避免市场操纵,预测市场实施了预言机的评级系统。为了进一步的安全,可以使用不同预言机的组合,例如,5个预言机中的3个可以确定事件的结果。
预言机是不属于区块链共识机制的第三方服务。预言机的主要挑战是人们需要信任这些信息来源。无论是网站还是传感器,信息来源都需要是值得信赖的。可以使用不同的可信计算技术来解决这些问题。例如,像Oracalize这样的公司一直在利用亚马逊的基于TLSNotary的证明。另一家公司Town Crier专注于利用英特尔软件保护扩展(SGX)。为智能合约提供可信的信息来源对用户至关重要,因为如果出现错误,则无法回滚。