预言机是什么

预言机其实是用于区块链网络中的一种数据服务。预言家的英文叫oracle,这个又与甲骨文公司的数据库同名,但是在区块链世界中,它们毫无关系。因为oracle这个最早出自于古希腊宗教,其含义就是预言。那么预言家到底是什么?我们用一句简单的话概括“区块链外信息写入区块链内的机制一般被称为预言机。”

比特币系统中仅有的数据就是转账数据,以太坊相比比特币更进了一步,它在系统内除了转账多了智能合约执行的数据,但是你向以太坊链上询问“明天的天气如何”,“今天的菜价如何”,它是完全无法得知的。预言机此时就能发挥它的作用了,预言机就像一座桥梁,它连接着区块链上与链下的世界。有的小伙伴就会问了,不就是取数据吗?用得着这么复杂吗?

为什么要使用预言机

例如我们要在智能合约上进行白菜交易,但是区块链上无法得知价格。但是在区块链下,作为交易双方的你我都能很容易的查到今天的菜价,但是我们无法相信对方的报价,这时候就需要一个第三方来告诉智能合约现在区块链下的正常交易价格,这就是预言机的作用。预言机相比直接从某个网站,平台抓取数据更准确。因为如果单个平台出现数据作恶(胡乱改写数据)或者平台崩溃,会导致整个智能合约崩塌,预言机是采用的是去中心化的数据收集。

目前市面上预言机的三种数据获取方式:

1.中心化机构提供数据

2.分布式的节点提供数据

3.多个联盟节点提供数据

这三种方式各有优劣,第一种方式通过中心化机构,例如天气数据我们通过气象局,股票数据我们通过证券交易所,通过权威机构获取,这种方式速度快便捷,但是非常中心化,如果中心平台出现问题会导致智能合约崩溃。第二种是分布式节点提供数据,这种方式是去中心化的获取方式,选出投票最多的数据为最终数据,不容易出现中心化作恶情况,但是效率较低,也有着较高的成本。第三种是通过建立可信任的联盟节点,这是一个折中的方式,去中心化的程度也比较适中。纵观三种方案,第二种分布式节点提供数据最符合Web3精神,也是目前运用最多的方案。