区块链预言机预言机原理

Posted thefist11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链预言机预言机原理相关的知识,希望对你有一定的参考价值。

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 . 预言机 - 区块链的触角

以上是关于区块链预言机预言机原理的主要内容,如果未能解决你的问题,请参考以下文章

可信数据中间件 预言机

Cosmos区块链Chainlink预言机教程

听说过”Blockchain oracles“吗?(区块链预言机)

区块链知识系列 - Oracle预言机

区块链知识系列 - Oracle预言机

什么是区块链预言机 BlockChain Oracle