乐趣区

关于区块链:预言机-区块链的触角

在保险、金融、随机预测、物联网等各个场景中,预言机在区块链中曾经展现出其不可代替的价值:作为区块链延伸的触角,搭建了链内与链外之间的可信桥梁,构建互相交融的价值生态。

本文将从预言机的起源、定义、原理、倒退等角度进行介绍。

—— Part 1 从神谕、图灵机角度看预言机 ——

说起预言机 Oracle 性能,颇具历史和神话色调,它与 Oracle 甲骨文公司无关,最早起源于古希腊神话中的角色“神谕者”,神谕者能够跟奥林匹斯山上的诸神进行沟通,对将来做出预言,并将神的旨意传播给期求将来的人民,因而 Oracle 最早有着“先知”的含意;在计算复杂度实践与可计算性实践中,预言机(oracle machine)是一种形象电脑,用来钻研确定性问题。能够被视为一个附加了黑盒子(预言者)的图灵机,这个黑盒子的性能是能够在繁多运算之内解答特定问题。依据给定,预言者能够给予“是否”或者确定的计算决策后果。

置信大家曾经看出在不同的场景中,预言机都会做着雷同的事:在将来的某个工夫给予某个零碎一个确定的输出。区块链中的预言机也不例外,甚至能够说是天作之合,其作用恰好解决了区块链中的一大痛点问题:内部数据源的输出确定性。

图 1 预言机的多种含意
—— Part 2 区块链预言机中间件解读 ——

区块链为什么这么在意内部输出的确定性?

因为在分布式系统中,须要确保多个节点最终执行后果的一致性,从而保证系统稳固运行,对于随机数、实时数据等操作是极具危险的,所以区块链就义了会导致执行后果不统一的内部动态数据的获取须要,把本人变成了一个关闭的、确定性的沙箱环境。

在这个环境中,链上的数据都是被动失去的(通过交易的模式输出),且区块链在运行智能合约的过程中无奈对外部申请获取新数据,只能基于已有数据以一种确定性的形式产生新数据,而区块链上的智能合约或者去中心化利用(DApp)对外界数据又有强烈的交互需要,这与智能合约的执行环境产生了矛盾。

预言机因解决此矛盾而诞生,并且一发而不可收,通过预言机中间件,智能合约能够被动获取内部的数据,触角能够延长到传统业务零碎、公开网站、物联设施、链下计算、链链互通等方面,做到了很多之前做不到的事件:获取传统业务数据、调用公开网站信息、物流快递追踪、保险主动赔付、获取其余链的信息 … 从此关上了想象力的大门。

—— Part 3 预言机性能架构解读 ——

听起来如同预言机也没什么了不起,只是一种中间件调用内部数据,而后把数据返回到区块链中,但现实很简略,事实很骨感,如果思考上来,你会发现在应用过程中有几个难点:

如何保障获取的内部数据源真实可信?

如何保证数据在传输和处理过程中的平安?

时效性、老本 …?

针对上述问题,咱们依据趣链区块链平台预言机架构流程图进行论述阐明。

图 2 预言机架构模型图
首先,预言机个别会作为区块链的一个独立模块或第三方服务与执行引擎进行交互。预言机只负责数据的可信获取,不直接参与交易的执行。首先,用户通过合约调用的模式(也能够通过非凡的 API 接口服务等其余形式发动预言机服务申请)发动预言机的服务申请,通过调用某个内置合约接口(图中“预言机服务”接口),告知区块链执行引擎,用户想要执行一笔含预言机服务的交易。

其次,执行引擎执行过程中检测到对预言机的服务申请,通过外部通信组件将它转发给预言机模块,这个申请里会封装申请内部数据源的一些信息,如一个 Web 数据申请,会蕴含常见的 URL、HTTP Headers 等信息。

再次,预言机在收到服务申请后,向内部数据源发动数据获取申请,拿到数据后利用交易生成器产生一笔新的外部回调交易,并对其进行签名(这一过程会应用 TEE 等硬件技术保障平安及不可篡改)。

最初,预言机将这笔回调交易发向执行引擎,执行对获取到的数据组织、治理、存储等一系列操作,至此一个残缺的含预言机服务的区块链交易执行流程完结。

根据上述的生命周期流程,咱们对结尾的问题进行一一探讨:

1)如何保障获取的内部数据源真实可信

这是预言机应用过程中最外围的问题,答复是没有相对可信,只能做到绝对可信。咱们在设计过程中次要在数据源认证、数据获取规范流程、数据格式对立等方面进行束缚:

a)数据源选取和可信认证。预言机须要审慎抉择内部数据源,必须保障对每个选取的内部数据源,都能够验证其是可信的,如对于 Web 的数据获取,选取的数据源需持有证书。

b)数据获取规范流程。开发者必须明确执行引擎、用户、内部数据源与预言机的数据交换流程,且对于不同的数据源类型要可能对立或明确辨别数据的交互流程,确保交互计划可执行可落地。

c)数据交互格局的对立定义。不同的数据源类型有不同的数据交互格局,以传感器作为数据源和以 Web 作为数据源获取到的数据格式是不一样的,针对不同状况,明确对立的数据编解码层,以对不同数据源的数据进行申请和解释。

2)如何保证数据在传输和处理过程中的平安

预言机通过两个阶段对进行中的数据实现可靠保证。

a)数据从网上到本地,采纳 HTTPS 协定(底层采纳 TLS 协定)去保障连贯和数据的正确性、完整性。

b)数据从本地到链上,预言机采纳可信执行环境 (TEE) 技术,TEE 是 CPU 内一块平安区域,和操作系统独立运行,能够确保数据处理过程中的机密性、可靠性,趣链区块链平台研发了基于 SGX 的 TEE 实现以及基于国产芯片的 TEE 实现,进行预言机的平安爱护。

3)时效性、老本等

链外的数据交互解决绝对于链内来说,在数据源可信度、预言机可信度、解决复杂度等方面都会减少,而实在场景中可信度的不同,重大影响着预言机的实现效率以及实现老本。在私有链中,默认多方齐全不可信,所以会通过多预言机模型实现聚合解决、共识规定、奖惩机制及声望零碎,以达到进步作恶老本的作用,这无疑减少了性能实现的复杂度;在联盟链场景中,预言机应用场景绝对可信关闭,且机构节点间可信度高,单预言机实现效率高、成本低,但存在单点作恶的问题,所以各位在应用过程中应该就地取材,依据场景具体抉择最适宜的实现形式。

—— Part 4 技术现状解读 ——

当初市面上预言机的分类次要为中心化预言机和去中心化预言机两种。

▲ 中心化预言机

中心化预言机因其中心化的思维,须要引入第三方可信机构,如国家或能提供背书的大型企业,验证形式也是通过第三方独立验证。

以预言机我的项目 Oraclize 为例,作为一个中心化预言机,通过 TLS(Transport Layer Security,传输层平安)协定实现 Web 数据的牢靠传输,并联合 Intel SGX(Intel Software Guard Extension)确保数据在本地不可篡改,Oraclize 给用户提供了 API 接口,用户只须要调用事后设计好的合约接口,就能够应用预言机服务获取内部数据。

因为 Oraclize 是中心化预言机,作为一个独立的单点模块,这样的实现具备高性能的劣势,但同样也有单点故障、难以拓展的危险,且中心化的思维与区块链的去中心化理念有一些南辕北辙,国内支流联盟链趣链区块链平台、蚂蚁链等大都采纳中心化预言机的实现形式。

▲ 去中心化预言机

去中心化预言机秉持着与区块链雷同的去中心化准则,通常应用多重签名或分布式算法保证数据的正确性、一致性,不须要引入第三方机构,但在实现上会更艰难,性能也会成为瓶颈。

以 Chainlink 为例,它建设了一个去中心化的数据网络,每个预言机都是网络中的一个节点,其架构分为链上组件和链下组件。链上组件负责和用户交互,收集、响应用户申请,而链下组件则是之前提到的数据网络,用于解决数据获取和传输。

在这个架构中,因为 Chainlink 是一个分布式的数据网络,所以能够防止单点故障的问题,但同样地,因为减少了分布式的数据一致性需要,其性能和实现难度成为了新的难题。

比照来看,中心化预言机由单机负责数据获取,须要引入第三方可信机构,而去中心化预言机则是多机并行,通过相互验证保障一致性。因而中心化预言机实用于对实时性要求高、可信度高的场景,用户体验较好;而去中心化预言机则相同。

—— Part 5 总结 ——

从性能角度来看,预言机的性能比拟纯正,次要解决区块链内外数据可信连通问题。针对不同的信赖场景,预言机也采取了中心化和非中心化的两种形式提供服务。

从利用场景来看,链外数据是一个很大的生态,预言机能够利用在公开网站信息、物流追踪、保险主动赔付、获取跨链信息等多场景 … 预言机的倒退一方面依赖于区块链 / 智能合约技术的倒退,一方面又助力区块链 / 智能合约的业务延长,随着区块链在金融、保险、物联网等行业生态规模的扩充,预言机将来的生态价值也很值得期待。

从商业角度来看,预言机模式其实相似一个数据服务提供商,中心化预言机的商业模式实质上是一个数据服务平台,而去中心化预言机是一个多元的数据服务生态,两者倒退方向各有千秋。

氛围衬托到这里,置信大家对于预言机的利用场景案例会比拟感兴趣,咱们会在姊妹篇《预言机利用场景介绍》进一步论述,各位看官敬请期待,有更多想理解的也欢送与咱们交换探讨~增加小助手桔子(18458407117)退出技术交换群,不错过每一次干货分享

作者简介
李世敬
趣链科技根底平台部产品负责人
负责区块链底层产品相干业务

参考文献
[1] 预言机
https://baike.baidu.com/item/…
[2] 央行 2018 年第 4 号 区块链能做什么、不能做什么?
http://www.pbc.gov.cn/yanjiuj…
[3] Nick Szabo, Smart Contracts: Building Blocks for Digital Markets. www.fon.hum.uva.nl., 2017
[4] 李赫, 孙继飞, 杨泳, 汪松. 智能合约如何可信地与内部世界交互[J]. 中国金融电脑,2017

退出移动版