区块链预言机(5):预言机原理

1. 趣链预言机架构

预言机一般会作为区块链的一个独立模块或第三方服务与执行引擎进行交互。预言机只负责数据的可信获取,不直接参与交易的执行。

step1.用户通过合约调用的形式(也可以通过特殊的API接口服务等其他方式发起预言机服务请求)发起预言机的服务请求,通过调用某个内置合约接口(图中“预言机服务”接口),告知区块链执行引擎,用户想要执行一笔含预言机服务的交易。

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

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

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

2. chainlink

Chainlink 通过在链上的智能合约和链下的数据节点,即用户的智能合约把请求给链上 Oracle 合约,通过链下的 API 接口获得外部数据,更确切的说是外部把数据给链上的 Oracle 合约,然后 Oracle 合约再把数据给用户的智能合约。

step1.用户通过智能合约向 Chainlink oracle 合约发起数据请求,并且附带相应的数据需求参数(链上),其实也是一笔 LINK 的代币转账,在转账事务的 payload 中携带有数据请求的参数;

step2.Chainlink 节点组成的网络通过订阅 Oracle 合约的日志获取相关信息;

step3.Chainlink Core 拆解用户需求(链下);

step4.拆解后的任务由不同的节点通过外部的 API 数据源完成,获取数据返回;

step5.返回的数据发送至 Chainlink Core;

step6.Chainlink Core 将数据再次返回至链上的 Chainlink 智能合约上;

step7.Chainlink 链上合约整合数据(利用不同节点提供的数据的概率分配、去除异常值(Outliers)等操作),同时根据最终结果纪录每一个提供数据的节点声誉,最终将结果发送给用户的智能合约,完成整个流程。

3. 总结:不论哪种方法,最后都是通过创建一笔交易将数据返回给智能合约

:) 对读者提问 : 智能合约与交易的关系 ?

参考

[1].QTech.预言机-区块链的触角

版权声明:本文为CSDN博主「thefist11」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:

https://blog.csdn.net/thefist...

文章来源:CSDN博主「thefist11」
文章原标题:《区块链预言机(5)预言机原理》
如有侵权请与我们联系删除。

你可能感兴趣的:(区块链预言机-oracle)