欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 基于区块链预言机的数据处理方法、装置及电子设备独创技术22650字

基于区块链预言机的数据处理方法、装置及电子设备

2021-04-08 02:53:34

基于区块链预言机的数据处理方法、装置及电子设备

  技术领域

  本发明实施例提供了一种基于区块链预言机的数据处理方法、装置及电子设备,属于区块链技术领域

  背景技术

  传统的区块链是一个确定性的、封闭的系统环境,传统的区块链节点只能获取区块链内的数据,而不能获取到区块链外的数据。传统的区块链以账本的方式记录区块链内的操作,而随着区块链的广泛应用,其应用的场景也越来越广泛。

  随着智能合约的提出,允许以程序代码的形式在区块链内进行各种互动、决策、信息存储等,使得区块链的应用范围更加广泛。一般智能合约的执行需要触发条件,当智能合约的触发条件是区块链的外部数据时,就必须需要预言机来提供数据服务,通过预言机将现实世界的数据输入到区块链上,因为智能合约不支持对外请求。

  现有区块链技术提供的预言机机制,一般是在区块链上以去中心化的方式直接执行,即各个区块链节点都可以进行预言机调用,从区块链网络外部获取外部数据,并向区块链网络中进行发布。由于区块链上节点数量较多,并且对于同一个数据获取需求,区块链上的各个节点是单独进行,但是各个区块链节点获取外部数据的方式、来源以及时间都可能不同,这种方式容易造成获取到的外部数据不统一的问题,从而造成区块链中数据混乱的现象,破坏了区块链网络内部的确定性环境。

  发明内容

  本发明实施例提供了一种基于区块链预言机的数据处理方法、装置及电子设备,以提高区块链对外部数据获取的可靠性。

  本发明实施例提供了一种基于区块链预言机的数据处理方法,包括:

  合约调用者将第一外部数据的获取需求和在获取到所述第一外部数据后需要触发的第一智能合约事件的事件内容信息,发送给提供预言机服务的可信节点;

  所述可信节点执行预言机调用,获取所述第一外部数据;

  所述可信节点基于所述第一外部数据和所述事件内容信息,生成所述第一智能合约事件,并向所述区块链网络进行发布。

  本发明实施例还提供了一种基于区块链预言机的数据处理装置,包括:

  调用信息获取模块,用于获取来自合约调用者的第一外部数据的获取需求和在获取到所述第一外部数据后需要触发的第一智能合约事件的事件内容信息;

  预言机调用模块,用于执行预言机调用,获取所述第一外部数据;

  智能合约事件生成模块,用于基于所述第一外部数据和所述事件内容信息,生成所述第一智能合约事件,并向所述区块链网络进行发布。

  本发明实施例还提供了一种电子设备,包括:

  存储器,用于存储程序;

  处理器,用于运行所述存储器中存储的所述程序,以执行如下处理:

  获取来自合约调用者的第一外部数据的获取需求和在获取到所述第一外部数据后需要触发的第一智能合约事件的事件内容信息;

  执行预言机调用,获取所述第一外部数据,以及基于所述第一外部数据和所述事件内容信息,生成所述第一智能合约事件,并向所述区块链网络进行发布。

  本发明实施例提供的基于区块链预言机的数据处理方法、装置及电子设备,通过由可信节点统一获取外部数据,提高了区块链网络对外部数据获取的一致性,从而减少区块链中数据混乱的现象,降低对区块链网络内部的确定性环境的破坏。

  上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式

  附图说明

  图1为本发明实施例的基于区块链预言机的数据处理系统的应用架构图;

  图2为本发明实施例的基于区块链预言机的数据处理方法的流程示意图;

  图3为本发明实施例的基于区块链预言机的数据处理装置的结构示意图;

  图4为本发明实施例的电子设备的结构示意图。

  具体实施方式

  下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

  传统的区块链网络为确定性的环境,它不允许不确定的事情或因素。然而随着智能合约技术的发展,智能合约对于事务的处理需要区块链以外世界的数据,由此,产生了预言机(Oracle Machine)。区块链中的节点通过预言机机制来获取区块链网络以外的数据,以用于区块链中的智能合约的处理。然而,区块链中的各个节点以彼此独立的方式来使用预言机获取外部数据,会造成获取到的数据的不确定性,从而给确定的区块链网络引入了更多的不确定因素。这对这一问题,本发明实施例提出了一种基于区块链预言机的数据处理技术,将预言机调用处理集中到少数的可信节点上,从而降低获取到的外部数据的不确定性,维护区块链网络的数据处理的可信度。

  智能合约是基于区块链的基本规则,能够区块链上运行的应用或程序。通常情况下,它们为一组具有特定规则的数字化协议,且该协议能够被强制执行。这些规则由计算机源代码预先定义,所有网络节点会复制和执行这些计算机源码。合约调用者是对区块链网络上发布的智能合约的调用方,通过调用操作来触发智能合约的执行,具体的调用方式是基于区块链网络上的智能合约来生成智能合约事件,并发布到区块链网络上,从而触发区块链网络对该智能合约事件的处理。在本发明实施例中,合约调用者可以是区块链网络中的任意一个节点或者接入区块链网络的客户端(对应于区块链的用户),也可以是另外一个智能合约,即一个智能合约的执行触发另一个智能合约,这种情况也是在某个智能合约被节点或者客户端调用时而实际触发的。在区块链网络中,智能合约的运行是通过智能合约事件来触发的,合约调用者对某个智能合约的调用过程,实际上是生成与该智能合约对应的智能合约事件,并发布到区块链网络中,从而触发该智能合约的执行。智能合约事件可以认为是智能合约的实例化,对于某个具体的智能合约事件,可以携带有运行该智能合约所需要的具体数据,将该具体数据作为智能合约的输入,从而获得相应的处理结果。

  举例来说,某个智能合约的程序逻辑是基于天气数据来预测交通拥堵程度,区块链网络中的节点或者客户端可以对于该智能合约的调用,在调用的过程中,需要提供天气数据作为触发条件,然后基于输入的天气数据,来生成对于交通拥堵程度的预测结果。而天气数据来源于区块链网络之外,例如可以从国家气象中心的网站去获取天气数据,可以去一些新网网站或者提供天气预报服务的服务器上去获取天气数据。为了获取区块链以外的天气数据,就需要调用预言机来访问外部数据源,以获取天气数据。在本发明实施例中,在对预言机的调用机制上进行了改进,引入了可信节点,从而将预言机的调用处理集中在部分节点上。

  具体地,如图1所示,其为本发明实施例的基于区块链预言机的数据处理系统的应用架构图,如图所示,多个区块链节点基于区块链的分布式协议相互连接,形成了区块链网络。其中,部分区块链节点可以作为提供预言机服务的可信节点,可信节点除了能够调用预言机来获取外部数据外,本身也具备一般区块链节点的功能,包括发布智能合约事件以及获取智能合约事件并进行处理等等。

  预言机的调用需求一般是来源于智能合约的需求,合约调用者在发布了某个智能合约事件后,在该智能合约的处理逻辑中,涉及了对外部数据的使用,从而会触发对预言机的调用。在现有技术中,区块链的节点在处理该智能合约事件的过程中,直接调用预言机,来获取外部数据,并继续完成智能合约事件的处理。

  在本发明实施例中,合约调用者会将外部数据的获取需求以及需要使用该外部数据的智能合约事件的内容,先发送给可信节点。由可信节点统一调用预言机功能,在获取到外部数据后,结合合约调用者提供的后续要执行的智能合约事件的内容。生成使用该外部数据的智能合约事件,并发布到区块链网络中,从而触发该智能合约事件的处理。可信节点所发布的智能合约事件中已经包含了获取到的外部数据,区块链网络中的各个节点,在处理该智能合约事件的过程中,无需再另行调用预言机来获取外部数据,而是使用由可信节点统一获取到的外部数据。

  实施例一

  如图2所示,其为本发明实施例的基于区块链预言机的数据处理方法的流程示意图,该方法包括:

  S101:合约调用者将第一外部数据的获取需求和在获取到第一外部数据后需要触发的第一智能合约事件的事件内容信息,发送给提供预言机服务的可信节点。和现有技术不同,对于需要使用外部数据的智能合约调用,合约调用者不会自行使用预言机来获取外部数据,而是将对于外部数据的获取需求以及后续要调用的智能合约的事件信息,发给区块链网络中可信节点。为了与后面提到的智能合约事件以及外部数据进行区分,这里采用了“第一”的表述。这里所说的获取需求可以包括需要获取的外部数据的名称或者描述信息,可信节点根据这些信息查找对应的外部数据源并进行获取。另外,为了让外部数据获取更加准确,获取需求可以直接包括外部数据源的地址信息,例如提供外部数据源的URL等,从而也便于可信节点执行外部数据获取。

  区块链网络中的可信节点可以为多个,可以由较为权威的、公信度较高的节点来充当,例如由较大组织管理的区块链节点。另外,可信节点也可以是动态确定的,例如,每隔一段时间,在区块链网络中发起投票,以确定出可信节点。

  此外,为了更好地对可信节点进行管理,还可以设置黑名单/白名单的机制,定期在区块链网络中发起对各个可信节点的评价,从而来不断更新黑名单/白名单的内容。基于黑名单/白名单的机制,合约调用者会先根据可信节点的黑名单和/或白名单选定可信节点,然后再进行获取需求以及后续的事件内容信息的发送。

  对于合约调用者与可信节点之间可以采用基于区块链网络的通信方式也可以采用基于互联网协议的直接通信方式。

  对于基于互联网协议的直接通信方式,合约调用者与可信节点之间通过使用HTTPS(HyperText Transfer Protocol Secure,也称为HTTP over SSL,超文本传输安全协议)协议进行加密保护的通信信道进行通信。具体地,合约调用者将第一外部数据的获取需求和事件内容信息,基于HTTPS协议进行消息封装,然后,通过上述的通信信道发送给可信节点。

  对于基于区块链网络的通信方式,依然采用事件驱动机制,即通过在区块链网络中发布事件的方式来传递信息。具体地,合约调用者向区块链网络发布第二智能合约事件,该第二智能合约事件中包括第一外部数据的获取需求和在获取到第一外部数据后,需要触发的第二智能合约事件对应的事件内容信息,然后,可信节点从区块链网络中获取第二智能合约事件。

  S102:可信节点执行预言机调用,获取第一外部数据。在本发明实施例中,预言机的功能设置在少数的可信节点上,从而能够在外部数据的获取方面,更加可靠并有利于获取到的外部数据的统一性。在可信节点为多个的情况下,可以基于共识机制,在可信节点之间进行数据统一。具体地,多个可信节点可以分别执行预言机调用,以获取区块链网络外部的第二外部数据,然后,多个可信节点基于共识机制进行交互,根据获取到的多个第二外部数据,生成第一外部数据。其中,共识机制可以采用对各个可信节点获取到的外部数据(即第二外部数据)进行加权平均的方式来最终确定用于执行后续智能合约处理的外部数据(即第一外部数据)。此外,在合约调用者提供了外部信息源的地址信息的情况下,可信节点可以直接根据信息源的地址,来执行预言机调用,以获取第一外部数据。如果合约调用者没有提供具体的外部信息源的地址信息,则可以根据合约调用者获取信息的需求,根据可信节点存储的外部数据的信息来执行预言机调用,以获取外部数据。

  S103:可信节点基于第一外部数据和事件内容信息,生成第一智能合约事件,并向区块链网络进行发布。在本发明实施例中,可信节点除了行使预言机调用的角色外,还可以继续执行与获取到外部数据关联的智能合约的调用,即在获取到外部数据后,无需再将外部数据返回给合约调用者,而是直接完成合约调用者所要进行的智能合约调用,即以生成包含了获取到的外部数据的智能合约事件的方式,发起对需要使用该外部数据的智能合约的调用。具体地,可信节点在生成第一智能合约事件的过程中,将获取到的第一外部数据、可信时间戳以及可信节点的签名写入到第一智能合约事件中。其中,时间戳是为了准确记录获得外部数据的时间,而可信节点签名是为了鉴权需要,用来证明该外部数据的是来自于可信节点,以确保在区块链内的数据的可靠性。

  本发明实施例的基于区块链预言机的数据处理方法,将预言机功能集中到可信节点上,由偏中心化的可信节点来执行预言机的功能,统一向区块链外获取外部数据,由此,能够保证获取到的外部数据的统一性,以避免造成向区块链内引入外部数据所造成的混乱。

  实施例二

  如图3所示,其为本发明实施例的基于区块链预言机的数据处理装置的结构示意图,该装置可以设置于上述的可信节点中,其包括:

  调用信息获取模块11,用于获取来自合约调用者的第一外部数据的获取需求和在获取到第一外部数据后需要触发的第一智能合约事件的事件内容信息。对于合约调用者与可信节点可以前面介绍的基于区块链网络的通信方式也可以采用基于互联网协议的直接通信方式。

  预言机调用模块12,用于执行预言机调用,获取第一外部数据。如前所介绍的,可信节点可以为多个,则预言机调用模块12除了进行本节点的预言机调用来获取外部数据外,还可以基于共识机制,在可信节点之间进行数据统一的协商处理。具体地,多个可信节点的预言机调用模块12可以分别执行预言机调用,以获取区块链网络外部的第二外部数据,然后,多个可信节点的预言机调用模块12基于共识机制进行交互,根据获取到的多个第二外部数据,生成第一外部数据。其中,共识机制可以采用对各个可信节点获取到的外部数据(即第二外部数据)进行加权平均的方式来最终确定用于执行后续智能合约处理的外部数据(即第一外部数据)。

  智能合约事件生成模块13,用于基于第一外部数据和事件内容信息,生成第一智能合约事件,并向区块链网络进行发布。其中,在生成第一智能合约事件的过程中,可以将获取到的第一外部数据、可信时间戳以及可信节点的签名写入到第一智能合约事件中。

  对于上述处理过程具体说明、技术原理详细说明以及技术效果详细分析在前面实施例中进行了详细描述,在此不再赘述。

  实施例三

  前面实施例描述了基于区块链预言机的数据处理方法的流程处理及装置结构,上述的方法和装置的功能可借助一种电子设备实现完成,如图4所示,其为本发明实施例的电子设备的结构示意图,具体包括:存储器110和处理器120。

  存储器110,用于存储程序。

  除上述程序之外,存储器110还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。

  存储器110可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

  处理器120,耦合至存储器110,用于执行存储器110中的程序,以执行前述实施例中所描述的基于区块链预言机的数据处理方法的操作步骤。具体地,该电子设备还可以执行程序以实现作为可信节点的处理:

  获取来自合约调用者的第一外部数据的获取需求和在获取到第一外部数据后需要触发的第一智能合约事件的事件内容信息;

  执行预言机调用,获取第一外部数据,以及基于第一外部数据和事件内容信息,生成第一智能合约事件,并向区块链网络进行发布。

  此外,该电子设备还可以执行程序以实现作为合约调用者的处理:将第一外部数据的获取需求和在获取到第一外部数据后需要触发的第一智能合约事件的事件内容信息,发送给提供预言机服务的可信节点。

  此外,处理器120也可以包括前述实施例所描述的各种模块以执行基于区块链预言机的数据处理,并且存储器110可以例如用于存储这些模块执行操作所需要的数据和/或所输出的数据。

  对于上述处理过程具体说明、技术原理详细说明以及技术效果详细分析在前面实施例中进行了详细描述,在此不再赘述。

  进一步,如图所示,电子设备还可以包括:通信组件130、电源组件140、音频组件150、显示器160等其它组件。图中仅示意性给出部分组件,并不意味着电子设备只包括图中所示组件。

  通信组件130被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件130经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件130还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。

  电源组件140,为电子设备的各种组件提供电力。电源组件140可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。

  音频组件150被配置为输出和/或输入音频信号。例如,音频组件150包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器110或经由通信组件130发送。在一些实施例中,音频组件150还包括一个扬声器,用于输出音频信号。

  显示器160包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。

  本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

  最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

《基于区块链预言机的数据处理方法、装置及电子设备.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)