预言机这个名字并不是区块链领域首创的,它其实是计算机行业的祖师爷图灵第一次提出来的。他在图灵机的基础上,加入了一个黑盒,称之为Oracle,意思是预言者,它可以向图灵机系统内部输入信息,帮助图灵机完成运算。

以太坊的智能合约是“图灵完备(Turing Complete)”的,某种意义上可以看做一个图灵机,所以以太坊的设计者借鉴这个概念,把向“图灵完备的智能合约”这个图灵机输入信息的也被称为预言机oracle。

预言机提供了一种无信任(或至少近乎无信任)的方式来获取外在的(即“真实世界”或“链外”)信息,例如足球比赛的结果、黄金的价格或真正的随机数字,用于以太坊平台上的智能合约。它们还可用于直接将数据安全地中继到DApp前端。

因此,可以将预言机视为弥合链外世界与智能合约之间差距的机制。允许智能合约基于真实世界的事件和数据来强制执行合约关系,从而大大扩展了它们的应用范围。

在解释预言机的之前,就不能不提智能合约。因为区块链预言机其实就是为智能合约来服务的。

智能合约最早由尼克萨博提出的一种,旨在以信息化方式传播、验证或执行合同的计算机协议。虽然智能合约的概念在很早就提出来了,但是在当时由于缺少可信的执行环境,智能合约并没有被应用到实际产业中。

自比特币诞生后,人们认识到比特币的底层技术区块链天生可以为智能合约提供可信的执行环境,以太坊首先看到了区块链和智能合约的契合,发布了白皮书《以太坊:下一代智能合约和去中心化应用平台》A Next-Generation Smart Contract and Decentralized Application Platform,希望可以将以太坊打造成最佳智能合约平台。

但是我们现在所熟知的智能合约已经与最初的概念有了区别。Vitalik在参与比特币的社区开发工作期间,希望可以扩充比特币功能有限的脚本和操作码,设计一个更加功能更加强大的脚本,实现更多的功能。

他的想法没能在比特币上实现,但是他另起炉灶,创立了以太坊,实现了一个专门运行去中心化程序的虚拟环境EVM,并且了一个设计了一个“图灵完备”编程语言,将这种程序取名为智能合约。

“智能合约”这个名字,很容易让人产生一些“不切实际的幻想”,很多人听到名字就会认为,智能合约,应该是能完成我们现在各类合约的功能,并且可以更加智能的完成。但是实际上,智能合约能做的事情非常有限,它既不智能,也不像我们传统的合约那也有法律效力。连Vitalik自己都说,”智能合约“是一个糟糕的名字,我们应该称之为”持久化脚本(persistent scripts)“这类更技术的名字,以免人们对其功能产生误会。

智能合约之所以不够智能,除了受区块链的本身的各类限制之外,还因为它缺乏种类丰富的外部数据信息的输入。就像虽然厨师厨艺高超,但是却没有丰富的食材,自然做不出好吃的菜来。

我们以以太坊为例,以太坊平台的一个关键组件是EVM,它能够在去中心化的网络中的任何节点上执行程序,并获得与以太坊网络内其他节点一致的状态。为了保持共识,EVM的执行过程必须完全确定,并且仅基于以太坊状态和签名交易而改变。这产生了两个特别重要的后果:一个是EVM和智能合约没有内在的随机性来源,因为一切都是确定的;另一个是外部数据只能作为交易的数据载荷引入。

所以我们现在能看到的大部分的合约都是token或者围绕token建立的应用。如果我们想要扩大智能合约的应用场景,就必须建立一个智能合约的与外部世界的连接通道,将外部世界的种类繁多的数据输入到“虚拟环境”中。就像有人所说的那样:“在将智能合约带入到这个世界上之后,这个世界也需要被带入到智能合约中。”

我们假想一个猜硬币决胜负的游戏场景,这个游戏依赖于扔硬币正反面的随意性。矿工可以轻易破解这个游戏:他们只需要打包那些对其有利的随机结果即可。比如某以菠菜竞猜项目而知名的公链(EOS)由于在竞猜时需要随机数,所以经常被黑客进行随机数的攻击,根本原因就是区块链内部的确定性太高而随机性太差。那么我们如何解决这个问题呢?既然所有节点都可以就签名交易的内容达成一致,那么我们就可以引入外部信息,包括随机性、价格信息、天气预报等,作为发送到网络的交易的数据部分。

那么我们有没有办法做到呢,可不可以建立这样一座数据之桥呢。我们可以使用预言机尝试解决这些问题。需要注意的是,并不是有一个叫预言机的东西,可以帮助区块链来实现数据的连通性,而是我们把可以实现数据联通的这种组件,起个名字叫“预言机”。

那么那些领域需要预言机呢?

所有需要连接链上链下数据的地方都需要用到预言机。目前看来应用很成功的是DeFi领域。我们知道目前在区块链或者说加密世界里应用最成功的方向可能就是DeFi了。智能合约是一个由数据驱动的工具,它的运行结果是由输入的数据决定的。而 DeFi 作为金融类的智能合约,就更加依赖高质量金融数据。将数据送到智能合约的装置就是预言机。

一个 DiFi 项目,即使代码是完美的,算法是高效的,但是没有可靠的预言机作为数据输入装置,也是不可能成功的。所以在DeF领域,预言机的应用是最为广泛和成功的,几乎所有的DeFi应用都需要预言机,比如去中心化数字资产抵押借贷、去中心化数字资产期权、稳定币、DEX 等 DeFi 产品和服务,都需要引入真实世界的价格信息,来完成产品自身的逻辑闭环。目前主流的defi都使用我们,我们也正在和更多的defi项目接触中。

热门 DeFi 协议都在使用什么预言机?Chainlink 恐成最大赢家

Aave、Augur、bZx、Compound 等 11 个 DeFi 协议中,有 5 个正在或计划使用 Chainlink 作为预言机。

值得一提的是,很多项目是在出现了预言机攻击的情况之后,开始选择了Chainlink,比如这也印证出了在价格数据方面,Chainlink的安全性是得到了业界的广泛认可的。除了DeFi领域,预言机还可以在金融衍生品、债券、贸易融资、市场数据、数字资产、支付、预测市场、保险、身份信息、生物识别等非常多的领域有这广阔的应用前景。