在保险、金融、随机预测、物联网等场景中,预言机展示了其在区块链中不可替代的价值:作为区块链延伸的天线,在链内外架起了一座可信的桥梁,构建了完整的价值生态。
本文将介绍预言机的起源、定义、原理和发展。
–第一部分从预言机和图灵机的角度看预言机–
预言机是一种历史和神话机器。这与预言机无关。它起源于古希腊神话中预言机的角色。预言机可以与奥林匹斯山上的众神沟通,预测未来,并将神的旨意传达给为未来祈祷的人们。因此,预言机具有“先知”的含义;在计算复杂性和可计算性理论中,预言机机器是一种抽象的计算机,用于研究确定性问题。它可以被看作是一个图灵机器与一个黑匣子(先知)连接。黑匣子的功能是在单个操作中解决特定问题。根据给定的,先知可以给出“是”或“否”或明确的计算决策结果。
我相信你已经看到,在不同的场景中,预言机会做同样的事情:在未来的某个时间,给某个系统一定的输入。区块链中的预言机也不例外,甚至可以说是天作之合。它的作用只是解决了区块链中的一个大痛点:外部数据源的输入确定性。
图1;预言机的多种含义
–解读第2部分区块链预言机中间件–
为什么区块链如此关心外部输入的确定性?
在分布式系统中,需要保证多个节点最终执行结果的一致性,从而保证系统的稳定运行。对于随机数、实时数据和其他操作来说,风险极大。因此,区块链牺牲了获取外部动态数据的需要,这将导致不一致的执行结果,并将自身变成一个封闭的、确定性的SandBox环境。
在这种环境下,链上的数据是被动获取的(以事务的形式输入),区块链在运行智能合约的过程中无法从外部请求中获取新的数据,只能在现有数据的基础上以确定性的方式生成新的数据,区块链上的智能合约或去中心化应用(DAPP)对外部数据交互有着强烈的需求,这与智能合约的执行环境相冲突。
预言机就是为了解决这一矛盾而诞生的,它一经推出就无法收到。通过预言机中间件,智能合约可以主动获取外部数据,其触角可以延伸到传统业务系统、公共网站、物联网设备、离线计算、连锁互操作等领域。它做了很多以前做不到的事情:获取传统业务数据、调用公共网站信息物流快递跟踪、保险自动赔付、获取其他连锁信息。。。打开了想象之门。
–解读第3部分预言机的功能架构–
听起来预言机什么都不是。它只是一种调用外部数据并将数据返回到区块链的中间件。但理想很简单,现实很艰难。仔细想想,你会发现在使用过程中有几个困难
如何保证外部数据源的真实性?
如何保证数据在传输和处理过程中的安全性?
及时性,成本?
针对上述问题,我们将根据区块链平台的预言机架构流程图进行说明。
图2;预言机体系结构模图
首先,预言机通常作为区块链的独立模块或第三方服务与执行引擎进行交互。预言机只负责数据的可靠获取,不直接参与交易的执行。首先,用户以合同调用的形式发起预言机的服务请求(也可以通过特殊API接口服务等其他方式发起预言机的服务请求),并告诉区块链执行引擎,用户希望通过调用内置的契约接口(图中的“预言机服务”接口)来执行包含预言机服务的事务。
其次,执行引擎在执行过程中检测到对预言机的服务请求,并通过内部通信组件转发给预言机模块。这个请求将封装请求的外部数据源的一些信息,例如web数据请求,它将包含公共URL、HTTP头和其他信息。
第三,预言机接收到服务请求后,将数据采集请求发送到外部数据源,获取数据后,使用事务生成器生成新的内部回调事务并签名(此过程将使用tee等硬件技术来确保安全性和防篡改性)。
**,预言机将回调事务发送给执行引擎,对获取的数据进行组织、管理和存储等一系列操作。至此,一个完整的区块链交易与预言机服务的执行过程完成。
根据上述生命周期过程,我们将逐一讨论第一个问题
1) 如何保证外部数据源的真实性
这是使用预言机过程中的核心问题。答案是没有**的公信力,只有相对的公信力。在设计过程中,主要对数据源认证、数据采集标准流程和数据格式统一进行了限制
a) 数据源选择和可信身份验证。预言机需要谨慎选择外部数据源。它必须确保每一个选定的外部数据源都能被核实为可信的。例如,对于web数据采集,所选数据源需要持有证书。
b) 数据采集标准流程。开发人员必须清楚地实现引擎、用户、外部数据源和预言机的数据交换过程,并能够统一或清楚地区分不同数据源类的数据交互过程,以确保交互方案的执行和实现。
c) 数据交互格式的统一定义。不同类的数据源具有不同的数据交互格式。利用传感器作为数据源和web作为数据源所获得的数据格式是不同的。根据不同的情况,定义了统一的数据编解码层,对不同数据源的数据进行请求和解释。
2) 如何保证数据在传输和处理过程中的安全性
预言机可以通过两个阶段来保证数据的可靠进行。
a) 数据从Internet传输到本地,使用HTTPS协议(底层TLS协议)确保连接和数据的正确性和完整性。
b) 数据从本地到链,预言机采用可信执行环境(TEE)技术,TEE是CPU中的安全区域,操作系统独立运行,保证了数据处理过程的机密性和可靠性。fun chain区块链平台开发了基于SGX的tee实现和基于国产芯片的tee实现,以保护预言机。
3) 及时性、成本等
与链内相比,链外数据交互处理在数据源可信度、预言机可信度、处理复杂度等方面都会有所提高。然而,真实场景中的可信度差异严重影响了预言机的实现效率和成本。在公链中,默认的多方是完全不可信的,因此聚合处理、共识规则、奖惩机制和信誉体系将通过多预言模来实现,增加了邪恶的成本,这无疑增加了功能实现的复杂性;在联盟链场景中,预言机使用场景相对可靠且封闭,机构节点之间可信度较高。单预言机实现效率高、成本低,但存在单点邪恶的问题。因此,要因地制宜,根据具体情况选择最合适的实施方式。
–解读第四部分技术现状–
目前市场上的预言机主要有两种:中心化式预言机和去中心化预言机。
▲中心化式预言机
由于中心化式的思想,中心化式预言机需要引入一个第三方可信任的组织,比如国家或大企业可以提供背书。验证方法也是由第三方独立验证。
以预言机项目为例,作为一个中心化式预言机,它通过TLS(Transport Layer Security)协议实现Web数据的可靠传输,并与Intel SGX(Intel Software guard extension)相结合,保证数据在本地不被篡改。预言机为用户提供API接口,用户只需调用预先设计好的合同接口,就可以使用预言机服务获取外部数据。
由于预言机是一个中心化式预言机,作为一个独立的单点模块,这种实现方式具有性能高的优点,但同时也存在单点故障和难以扩展的风险。而且,中心化的思想与区块链去中心化的思想背道而驰,蚂蚁链等大多由中心化的预言机来实现。
▲去中心化预言机
去中心化的预言机遵循与区块链相同的去中心化原则。通常采用多重签名或分布式算法来保证数据的正确性和一致性。它不需要引入第三方组织,但实施起来会更加困难,其性能将成为瓶颈。
以chainlink为例,建立了一个去中心化的数据网络。每个预言机都是网络中的一个节点,其体系结构分为链上组件和链外组件。链上的组件负责与用户交互、收集和响应用户请求,而链下的组件是前面提到的数据网络,用于处理数据采集和传输。
在该体系结构中,chainlink是一个分布式数据网络,因此可以避免单点故障的问题。然而,由于对分布式数据一致性要求的不断提高,其性能和实现难度成为新的问题。
相比之下,中心化式预言机负责单机数据采集,需要引入第三方可信组织,而去中心化预言机是多机并行的,通过相互验证来保证一致性。因此,中心化式预言机适用于实时性要求高、可靠性高的场景,用户体验好;去中心化的预言机恰恰相反。
–第五部分总结–
从功能上看,预言机的功能比较纯粹,主要解决区块链内外数据的可信连接问题。针对不同的信任场景,预言机还采用中心化式和去中心化的方式提供服务。
从应用场景来看,链外数据是一个大生态。预言机可以应用于开放网站信息、物流跟踪、自动保险赔付、获取跨链信息等场景。。。预言机的发展一方面依赖于区块链/智能合约技术的发展,另一方面借助物联网等产业生态规模的扩大,有助于区块链/智能合约的业务延伸,预言机未来的生态价值也值得期待。
从业务的角度来看,预言机模实际上类似于数据服务提供商。中心化式预言机的商业模式本质上是一个数据服务平台,而去中心化预言机则是一个多元化的数据服务生态系统,有着不同的发展方向。
文章标题:本文论述了甲骨文的起源、定义、原理及发展
文章链接:https://www.btchangqing.cn/278009.html
更新时间:2021年06月11日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。