在稳妥、金融、随机预测、物联网等各个场景中,预言机在区块链中已经展现出其不可代替的价值:作为区块链延伸的触角,搭建了链内与链外之间的可信桥梁,构建彼此融合的价值生态。
本文将从预言机的来源、界说、原理、开展等视点进行介绍。
—— 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 总结 ——
从功用视点来看,预言机的功用比较朴实,首要处理区块链内外数据可信连通问题。针对不同的信赖场景,预言机也采取了中心化和非中心化的两种方法供给服务。
从使用场景来看,链外数据是一个很大的生态,预言机能够使用在揭露网站信息、物流追寻、稳妥主动赔付、获取跨链信息等多场景...预言机的开展一方面依赖于区块链/智能合约技能的开展,一方面又助力区块链/智能合约的事务延伸,跟着区块链在金融、稳妥、物联网等行业生态规划的扩大,预言机未来的生态价值也很值得期待。
从商业视点来看,预言机模式其实类似一个数据服务供给商,中心化预言机的商业模式本质上是一个数据服务渠道,而去中心化预言机是一个多元的数据服务生态,两者开展方向各有千秋。
气氛烘托到这儿,信赖咱们关于预言机的使用场景案例会比较感兴趣,咱们会在姊妹篇《预言机使用场景介绍》进一步阐述,各位看官敬请期待,有更多想了解的也欢迎与咱们沟通讨论~
作者简介
李世敬
趣链科技基础渠道部产品担任人
担任区块链底层产品相关事务
视野开拓
燃烧效率更高的蒸汽机并不会导致更少的煤炭消耗。-《城市的胜利》