上班路上,你用导航软件给你规划的路线是30分钟到公司,?#23548;?#19978;用了整整一个小时,被领导一顿痛骂。你拨打导航软件的客服电话要求赔偿,客服却?#30340;?#26465;路突发车祸,或者?#30340;?#26465;道路临时关闭,或者突然下雨影响前方车辆速度,blah blah blah……你很愤怒,到底它说的是不是真的?

那么,到底怎么厘清责任?智能合约怎么判定导航软件该不该赔偿?当当当,预言机来了。预言机可以帮你搜集区块链系统之外的复杂信息,为你找到问题根源。那预言机到底是个啥东东?

1

场景引入

?

昨天的文?#38534;?#25105;把他推到了情敌怀里》提到,在贝?#25214;?#29983;活的2025,预言机能?#35805;?#21161;实现区块链上智能合约与现实世界的交互,预言机通过搜集现实世界繁杂多变的信息,再转?#24576;?#20026;确定的数据传到链上。

预言机通过搜集的天气信息,以及航线上的云层厚度、高度、雾气情况、气流、风向、空气中致雨颗粒物等信息,在程序内进行综合判断,并根据自身独有的算法生成确定的数据,打包成区块传到链上,再由此作为智能合约的判定标准,贝?#25214;?#22240;此能够知道航班晚点,心爱的女友将在三点到达机场。

今天我们将详细解释一下预言机(Oracle)这个听起来十分高大上的名词到底是什么。聚光灯、话筒已经准备就绪,表演即将开始,请各位读者拿好笔和小本本,乖巧做?#22987;恰?/p>

?

2

预言机简析

?

1)定义

简单来说,预言机是为区块链的智能合约提供链外信息的平台,这是如今对 Oracle 的主要定义。

预言机(Oracle)提供了智能合约在合约条款得到满足时运行的一系列必要条件,例如上面提到的一系列检测天气变化的详情,因此预言机是区块链智能合约与链下真实物理世界进行交互的唯一途径。

2)作用

在区块链和智能合约的情景中,预言机是一种代理,负责查找并验证真实世界中的事件,并提交此信息到区块链,以供智能合同使用。这种代理可以是软件、硬件或人。预言机(oracle)作为一个数据传送者,可以在去中心化应用(Dapp)与互联网API之间提供可靠连接,让基于智能合约的Dapp取得可信任的外部信息和数据。

?

3)分类

?

软件预言机

?

软件预言机的数据获取主要是通过API从第三方服务商或者网站获取,来作为智能合约的输入数据。最常用的如天气变化数据、金融市场波动数据等。

硬件预言机

?

物联网上的数据采集器是硬件预言机的通常表现?#38382;健?例如现在物流领域常用的溯源系统,安装在各个设备上的传感器就是硬件预言机。区块链?#38469;?#22312;物联网领域的广泛应用将催生出大量的“硬件预言机?#20445;?#30828;件预言机”的核心?#38469;?#19982;区块链无关,表现?#38382;?#26356;多是传感器和数据采集器。

共识预言机

?

共识预言机也被称为去中心化预言机,和前两种预言机的中心化特征不同的是,这种预言机需要通过分?#38469;?#30340;参与者进行投票。区块链由于其不可篡改的特征被认为是信任的机器,可是区块链本身其实并不产生信任,信任的输入是由区块链的基础设施——预言机(Oracle)来完成的。

3

?#38469;?#20381;托:TLS证明?#38469;?/strong>

如何保障预言机(Oracle)提供的信息安全并且可靠呢?TLS证明?#38469;酰═LSnotary)的保障,为预言机(oracle)提供了一个可证明的从外部世界安全获取信息的能力。此外,预言机(oracle)还提供了其他两种证明机制:Android SafetyNet证明、IPFS大文件传送?#30171;?#20648;证明。 TLS用于在两个通信应用程序之间提供保密性和数据完整性,最大优势就在于独立于应用协议。

TLS包含三个基本阶段:

1)对等协商支援的密钥算法;

2)基于私钥?#29992;?#20132;换公钥、基于PKI证书的身份?#29616;ぃ?/p>

3)基于公钥?#29992;?#30340;保密数据传输。

在整个传输中,TLS的master key可以分成三个部分:服务器方、受审核方和审核方;在整个流程中,互联网数据源作为服务器方,预言机(oracle)作为受审核方,一个专门设计的,部署在云上的开源实例作为审核方,每个人都可以通过这个审?#21697;?#26381;务对预言机(oracle)过去提供的数据进行审查和检验,以保证数据的完整性和安全性。

4

为啥需要高大上的Oracle

在之前的文章中提过,2025年,人们将会倡导共享出行的方式。由于公共交通用具的使用者数量巨大,车辆的使用与保护方面将会有诸多?#38469;?#26465;款。例如贝?#25214;?#22312;使用共享汽车的时候,智能合约的其中一个条款声明,路线的智能规划将保证堵车时间限定在10分钟以内,行驶到目的地的时间不超过30分钟,一旦超时,汽车公司将对贝?#25214;?#36827;行补偿。

贝?#25214;?#22312;还有1km到达目的地的时候,由于道路前方一起货车违规变道导致的交通事故,发生了拥?#38534;?#22914;果按照原本的道路规划状况,目前选择行驶的路线车流量特别低毫无拥堵情况,贝?#25214;?#23436;全可以在30min以内抵达,可是事故发生在2min前,意外出现的十分突然。所以汽车公司究竟是否应该给贝?#25214;?#30456;应的赔偿呢?

按照传统惯例,此时智能合约会发起一个外部请求给汽车公司,假设汽车公司提供了一个外部查询接口,然后根据这个接口返回的价格,执行智能合约,但这样做会遇到以下问题:

1、由于区块链是基于共识机制的系统,假设有 5000个矿工,需要矿工们对赔偿与否达成一致,才能?#34892;?#25191;行,而每个矿工的智能合同是独立执行的,这样 5000个矿工?#31361;?#20998;别向道路规划查询请求,不仅效?#23454;?#19979;,?#22815;?#24418;成巨大的资源浪?#36873;?/p>

2、如果矿工的网络状况各不相同,造成延迟,一旦有事故出现,?#31361;?#23548;致矿工们获取到的道路情况各不相同,无法形成共识。

这种时候由于预言机的存在,加之其不可篡改、稳定服务的特点,可以通过签名机制引入关于外部世界状态的信息,从而?#24066;?#30830;定的智能合约对外界不确定的变量作出反应。因此,在上述意外临时发生时,预言机可以通过行?#23548;?#24405;仪的记录分析得出此次拥堵不属于汽车公司规划路线的责任,不予赔偿。

5

结语

区块链线性世界的固有特性赋予了它不变性,却减少了灵活性和可扩展性,?#19978;?#23454;世界却是不确定离散型的,预言机的存在为二者的交互提供了可能。随着区块链经济的蓬勃发展,智能合?#38469;?#29992;数量的不断增加,区块链?#31361;?#32852;网之间的沟通将变得更加高效简单,这也意味着预言机(Oracle)的生态也将会越来越完善。预言机将改变当前区块链应用的开发模式,破除链上与链下的屏障,逐渐发展成为链接数字世界与物理世界之间的桥梁,解锁出全新的Dapp生态?#35745;住?/p>