预言机:区块链与现实世界交互的中间件
预言机的英文是Oracle,原意为神谕,起源于14世纪晚期,它是公众讨论可信知识的来源。
就像专家和技术知识一样,神谕根植于早期民主议会的审议和决策过程中。虽然宗教占卜的想法在我们当代民主制度中已经完全失去了位置,但随着现代计算机科学和密码学的出现,神谕这个概念在技术上卷土重来,并出现在被作为“信任机器”的区块链技术之中。
计算机科学中的神谕
在计算机领域,Oracle概念最早的提出者即是计算机科学之父图灵。图灵在图灵机(Turing Machine)的基础上,加入了一个称为预言者(Oracle)的黑盒,组成了预言机(Oracle Machine)。所谓预言者,是一个可以回答特定问题集合的实体,即它可以向图灵机系统内部输入信息,帮助图灵机完成运算。
在可计算性理论中,图灵机也与“停止问题”有关。这是指从一个任意计算机程序的描述和一个输入来确定程序是否会结束进程或继续永远运行的问题。图灵在1936年证明,对于所有可能的程序输入对,解决停止问题的通用算法并不存在。在一个固定的图灵完备的计算模型中,Oracle的任务是确定当程序在某些给定的输入下运行时是否最终会停止。
关于神谕的另一个重要问题是它们是否可靠。图灵认为机器,作为人类,应该被允许犯错误,“如果机器被期望是绝对正确的,它就不可能是智能的”。实际上,这种考虑适用于现实世界中的许多计算过程,这些过程给出的是一个接近最终答案的序列。神谕被认为应该是无所不知的,总是提供正确的答案这一假设并没有得到一致认同。
此外,在密码学中,“Oracle”的概念可以在“随机预言机”概念中找到。将“随机预言机”设置为“为所有参与方(无论好坏)提供访问随机Oracle的权限”,以确保加密哈希函数的真正随机性。如果没有神谕,用户将依赖于具有弱熵的本地数学函数,这是强加密所需要的。通过Oracle的响应,用户将知道她发出的消息是否足够安全。
总之,从一开始,神谕就是理论和应用计算机科学的核心概念,但它们以不同的方式建模和应用,取决于潜在假设的错误、可靠或值得信赖的程度。
而今,类似的讨论正在区块链领域展开,智能合约通常需要访问外部世界与合约协议有关的信息,从而触发区块链上的状态更改。
区块链预言机
本质上,区块链预言机可以理解为一种数据调用和访问的中间件,它分别解决了「是或否」和「数据是多少」两类问题,从而实现了智能合约对外部数据的调用。
这听起来可能很简单,但实际问题并非如此简单。当智能合约作为加密货币的一部分发挥作用时,交易是通过分布式网络参与者达成共识来授权的,确保其透明度和不存在舞弊的机会,并且发送到智能合约以执行编程事务的信息也是由区块链网络本身提供。
但挑战在于,如果我们想要扩大智能合约的应用场景,就需要建立一个智能合约与外部世界的连接通道,将外部世界的种类繁多的数据输入到“虚拟环境”中,并且确保数据来源是可信的。Oracle则是引导信息从现实世界的来源流向智能合约的媒介,其可分为如下几种类型:
硬件Oracle:它的任务是根据现实世界的情况向智能合约发送数据。例如,一辆汽车穿过障碍物,移动传感器检测到车辆并将数据发送到智能合约;或者像供应链行业的RFID传感器,当对象到达一个特定的仓库,该数据将被发送到智能合约。
软件Oracle:他们包括线上信息来源,如公共数据库和网站,如温度,商品和货物的价格,航班或火车延误等。Oracle提取出所需的信息,并将其放入智能合约中。
出站Oracle:它们将智能合约数据通信到外部源。智能合约条款本身就像一个出站Oracle。
入站Oracle:它的功能是向智能合约提供数据。该数据位于智能合约的外部,一旦接收到信息,它将开始执行路径。例如,提供温度数的新闻网站被归类为入站Oracle。
一致性的Oracle:这种类型的主要功能是查询多个Oracle源,并根据它们的一致意见得出结果。例如,不是使用一个网站源,而是使用四个或五个源,如果它们都返回相同的温度读数,智能合约就可以成功执行。
从上面类型可以看出,Oracle的主要挑战在于,人们需要相信这些外部信息来源,无论它们来自网站还是传感器。由于Oracle是不属于区块链共识机制的第三方服务,因此它们不受此公共基础设施提供的底层安全机制的约束。
对于使用公共数据源的大多数应用程序,在不同的数据源或Oracle之间取得一致意见,能够在更大程度上保持透明度。例如,体育赛事的统计数据、金融市场信息、民意调查结果等都可以来自多个节点。在将这些节点纳入独占区块链网络之前,可以对它们的可靠性和信任度进行验证,并对数据的准确性达成一致意见。甚至政府也可以介入,提供高度安全、分散的Oracle网络,并建立监管。
显然,信任是区块链和智能合约的首要价值主张。区块链预言机为区块链协议提供了在其自身网络之外进行通信的方法,从而扩大了区块链协议的作用范围。一旦跨越上述所提及的挑战,区块链和智能合约将为全局数字化带来焕然一新的推动力。