区块链预言机
区块链预言机是为智能合约提供服务的第三方工具。预言机通过外部数据源向链上的智能合约提供可信的信息,通常封装了区块链之外的复杂性。这种封装带来了多种工程优势,其中最显著的是:关键错误和潜在故障点在链下比在链上更容易缓解[1]。
示例 编辑
例如,在一个自动以预定价格购买比特币的合约中,触发条件依赖于当前的比特币汇率。链下的预言机可以持续监控价格,并将触发条件传递给智能合约。
预言机类型 编辑
根据 Kustov 和 Selanteva 的分类,预言机可以分为以下几种类型:
- 程序预言机 运行在区块链之外的程序,例如提供体育赛事结果用于博彩,或提供交通摄像头信息用于开罚单。
- 单元预言机 内嵌于物理传感器中的预言机,例如交通摄像头直接获取信息。
- 入口预言机 执行存储在链上的代码,并将结果(如符合条件的比特币价格)作为输入提供给智能合约。
- 出口预言机 处理智能合约的结果,通过操作现实中的设备(例如开门)来实现。这些代码也可以存储在链上。
- 预言机协议 聚合多个预言机的数据,在现实世界的预言机结果不一致时确定最终条件。
问题与担忧 编辑
如果预言机依赖单一的数据来源(中心化),可能会导致以下问题:数据源可能遭受中间人攻击,或者被其所有者篡改,从而影响智能合约的正确性。去中心化的预言机(共识预言机)通过查询多个数据源来提高信息可靠性,从而将信任分散到参与者之间。然而,这种方法并未实现完全去信任化,因为预言机并不是主区块链共识的一部分,因此不受公共区块链安全机制的保护[2]。