【小哈划重点:对于区块链的理解,很多人都喜欢引用《经济学人》杂志上对区块链的定义:区块链是信任的机器。但是在区块链技术的落地实践中,却经常会遇到一些尴尬的局面。比如食品溯源应用,怎么样才能确保各个生产环节数据上链的真实性,成了开发和运营的关键。因此很多溯源项目名为区块链项目,其实把大多数精力放在了处理现实世界中的诚信数据上链问题上。】
对于区块链的理解,很多人都喜欢引用《经济学人》杂志上对区块链的定义:区块链是信任的机器。
但是在区块链技术的落地实践中,却经常会遇到一些尴尬的局面。比如食品溯源应用,怎么样才能确保各个生产环节数据上链的真实性,成了开发和运营的关键。因此很多溯源项目名为区块链项目,其实把大多数精力放在了处理现实世界中的诚信数据上链问题上。
这个区块链与现实世界进行数据交互的接口就是:预言机,英文名Oracle。
没错,Oracle就是大名鼎鼎的数据库公司甲骨文的英文名字。
预言机是一个对区块链技术非常重要的概念,它连接着区块链世界与真实世界。
对于智能合约来说,预言机就是每个智能合约的输入参数。所有智能合约都绕不开预言机的输入数据,输入数据决定了智能合约的运行结果。
只有像比特币那样没有智能合约的数字货币,可以不需要预言机而独立运行。不需要预言机的区块链就是笔者之前所说的“内生型”信用区块链,与之对应,需要预言机的区块链就是“输入型”信用区块链。
几乎绝大多数的区块链项目都需要预言机,只有预言机的内容确定了,不同节点在运行相同输入数据的智能合约后,才会产生相同的结果。
比如在数字资产上链项目上,线下的中心化资产评估机构就是预言机;在航空延误险中,航班实际起飞时间就是预言机;在棋牌彩票类游戏中,发牌的随机数就是预言机;在国际贸易中,开航时间以及到港时间就是预言机;期货期权市场中,价格就是预言机;溯源确权时,各个生产环节的原始数据的就是预言机。
目前,预言机主要有以下三种类型:
一、软件预言机(Software Oracle)
即通过API从第三方服务商或者网站获取数据,来作为智能合约的输入数据。
最常用的如天气数据、航班数据、证券市场数据等等。
还有一种特殊但非常重要的预言机,就是随机数。目前,要在区块链上即时地产生随机数是个技术难点,于是很多项目采取了中心化的随机数发生器,如从random.org上获取随机数。随机数发生器作为一种预言机,对游戏、彩票类应用非常重要。
二、硬件预言机(Hardware Oracle)
绝大多数物联网上的数据采集器就是硬件预言机,最常见的硬件预言机就是高速路口的检测仪器,可以快速获取车辆数据并迅速上传网络(目前还没有上到区块链)。
再比如溯源系统中,安装在各个设备上的传感器;交通卡刷卡设备;银行卡POS机;采集各种医疗数据的医疗设备等等,都属于硬件预言机。
区块链技术在物联网领域的广泛应用将催生出大量的“硬件预言机”,“硬件预言机”的核心技术与区块链无关,而是传感器和数据采集器。
三、共识预言机(Consensus Oracle)
以上两类预言机很明显是中心化的,近些年,出现了很多通过分布式共识机制达成的预言机,我称之为“共识预言机”。
这种预言机通过分布式的参与者进行投票,来决定输入到区块链的数据。这方面的案例有:Augur、Gnosis和国内的天算Delphy项目。
区块链技术非常伟大,但随着资本的疯狂涌入,区块链的功能被夸大化,神话了。很多项目绕不开预言机这个问题,但有些项目却在有意无意的对“预言机”避而不谈。
由于预言机的存在,其实对区块链的更精准的定义应该是:“维持信任的机器”。区块链本身并不产生信任,信任的输入来自于“预言机”。