CN114172662A - 区块链外部数据获取方法及装置 - Google Patents

区块链外部数据获取方法及装置 Download PDF

Info

Publication number
CN114172662A
CN114172662A CN202111470937.1A CN202111470937A CN114172662A CN 114172662 A CN114172662 A CN 114172662A CN 202111470937 A CN202111470937 A CN 202111470937A CN 114172662 A CN114172662 A CN 114172662A
Authority
CN
China
Prior art keywords
target
data
external data
block chain
contract
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111470937.1A
Other languages
English (en)
Inventor
李鹏飞
张强
梁智昊
周海京
杨毅
王舒榕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hebei Xiong'an New Area Management Committee
Industrial and Commercial Bank of China Ltd ICBC
ICBC Technology Co Ltd
Original Assignee
Hebei Xiong'an New Area Management Committee
Industrial and Commercial Bank of China Ltd ICBC
ICBC Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hebei Xiong'an New Area Management Committee, Industrial and Commercial Bank of China Ltd ICBC, ICBC Technology Co Ltd filed Critical Hebei Xiong'an New Area Management Committee
Priority to CN202111470937.1A priority Critical patent/CN114172662A/zh
Publication of CN114172662A publication Critical patent/CN114172662A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请实施例提供一种区块链外部数据获取方法及装置,可用于区块链技术领域,方法包括:基于预设的预言机合约获取用户合约发送的目标区块链外部的目标数据源标识,并获取该目标数据源标识对应的校验信息和目标预言机事件;将目标预言机事件发送至预设的预言机节点,以使预言机节点根据目标数据源标识自目标区块链外部的目标数据源调取对应的目标外部数据,并对目标外部数据进行签名后返回目标外部数据;若接收到的目标外部数据通过签名校验,且基于预言机合约校验该目标外部数据符合校验信息,则调用用户合约以将目标外部数据发送至目标区块链。本申请能够实现区块链外部数据的获取,并能够提高获取的区块链数据的及时性、真实性及可靠性。

Description

区块链外部数据获取方法及装置
技术领域
本申请涉及数据处理技术领域,特别涉及区块链技术领域,具体涉及区块链外部数据获取方法及装置。
背景技术
区块链上所运行的智能合约的实际操作是对链上数据的信息进行自定义化的价值转移,其价值转移的信息之所以能在去中心化的体系下被链上各节点都认可也正是因为链上所传递信息的真实性及不可篡改性。
目前,去中心化应用(也可以称之为分布式应用)DAPP所使用的数据也仅是通过智能合约获取的链上的数据信息,对于还需要获取区块链下第三方数据源所提供的动态数据信息的数据获取需求,由于无法保证动态、实时的数据信息在数据获取时能够以可信的方式上链,因此无法满足这类数据获取需求,这也就导致去中心化应用DAPP的应用场景是极其有限的。
也就是说,针对需要采用区块链外部的实时信息来进行结合处理的区块链数据处理请求,现有的区块链数据处理方式存在无法实时获取区块链外部数据以及无法保证区块链外部数据的真实性的问题,进而无法对区块链数据处理请求进行有效且及时处理的问题。
发明内容
针对现有技术中的问题,本申请提供一种区块链外部数据获取方法及装置,能够实现区块链外部数据的获取,并能够提高获取的区块链数据的及时性、真实性及可靠性,进而能够提高需要采用区块链外部的实时信息来结合处理应用直接访问区块链的数据处理请求的效率、准确性及可靠性。
为解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种区块链外部数据获取方法,包括:
基于预设的预言机合约获取用户合约发送的目标区块链外部的目标数据源标识,并获取该目标数据源标识对应的校验信息和目标预言机事件;
将所述目标预言机事件发送至预设的预言机节点,以使该预言机节点根据所述目标数据源标识自所述目标区块链外部的目标数据源调取对应的目标外部数据,并对该目标外部数据进行签名后返回该目标外部数据;
若接收到的所述目标外部数据通过预设的签名校验,且基于所述预言机合约校验该目标外部数据符合所述校验信息,则调用所述用户合约以将所述目标外部数据发送至所述目标区块链。
进一步地,所述基于预设的预言机合约获取用户合约发送的目标区块链外部的目标数据源标识,并获取该目标数据源标识对应的校验信息和目标预言机事件,包括:
基于预设的预言机合约接收用户合约发送的具有外部数据获取需求的区块链数据处理请求;
自所述区块链数据处理请求中获取所述外部数据获取需求对应的目标数据源标识和该区块链数据处理请求对应的唯一处理标识,并获取所述用户合约的回调函数;
根据预设的加密算法获取所述回调函数对应的第一加密值,并将所述唯一处理标识和该第一加密值以键值对的形成存储为所述目标数据源标识对应的校验信息;
以及,基于所述目标数据源标识、唯一处理标识和所述回调函数确定对应的目标预言机事件。
进一步地,所述基于所述目标数据源标识、唯一处理标识和所述回调函数确定对应的目标预言机事件,包括:
基于所述预言机合约在所述目标区块链中添加所述目标数据源标识对应的目标数据记录,其中,该目标数据记录中包含有所述目标数据源标识、唯一处理标识和所述回调函数之间的对应关系;
在所述目标区块链中获取所述目标数据记录;
将所述目标数据记录存储为目标预言机事件,并将所述目标预言机事件加入预设的预言机事件消息队列中。
进一步地,所述将所述目标预言机事件发送至预设的预言机节点,以使该预言机节点根据所述目标数据源标识自所述目标区块链外部的目标数据源调取对应的目标外部数据,并对该目标外部数据进行签名后返回该目标外部数据,包括:
自所述预言机事件消息队列中的目标预言机事件获取对应的目标数据源标识;
根据所述目标数据源标识确定对应的数据源地址和目标数据类型;
将预设的标准调用协议、所述数据源地址和目标数据类型发送至预设的预言机节点,以使该预言机节点执行预设的外部数据获取步骤;
其中,所述外部数据获取步骤包括:
将所述标准调用协议解析为所述数据源地址对应的数据源适用协议;
基于所述数据源适用协议,向所述数据源地址对应的数据源发送所述目标数据类型对应的数据调取请求;
若接收到所述数据源基于所述数据调取请求发送的目标数据,则基于所述加密算法对该目标数据进行加密处理,以得到对应的第二加密值;
基于预设的证书对所述第二加密值进行签名;
将签名后的第二加密值和所述目标数据作为所述目标外部数据发出。
进一步地,在所述调用所述用户合约以将所述目标外部数据发送至所述目标区块链之前,还包括:
接收所述预言机节点发送的所述目标外部数据;
基于签名后的第二加密值对所述目标外部数据进行签名校验;
若所述目标外部数据通过签名校验,则基于所述预言机合约校验所述目标外部数据中的第二加密值是否与所述校验信息中的第一加密值相符。
进一步地,若所述外部数据获取需求对应的目标数据源标识有多个,则在所述基于所述预言机合约校验所述目标外部数据中的第二加密值是否与所述校验信息中的第一加密值相符之前,还包括:
将通过签名校验的各个所述目标外部数据存储至预设的数据结果消息队列;
轮询所述数据结果消息队列,并在该数据结果消息队列中新增的目标外部数据满足所述外部数据获取需求对应全部数据之时或之后,对各个所述目标外部数据进行聚合处理,形成已聚合的目标外部数据。
进一步地,所述调用所述用户合约以将所述目标外部数据发送至所述目标区块链,包括:
应用所述预言机合约提取所述用户合约的回调函数;
基于所述回调函数调用对应的所述用户合约,以基于该用户合约将所述目标外部数据发送至所述目标区块链,使得该目标区块链基于所述目标外部数据处理所述区块链数据处理请求。
第二方面,本申请提供一种区块链外部数据获取装置,包括:
跨合约模块,用于基于预设的预言机合约获取用户合约发送的目标区块链外部的目标数据源标识,并获取该目标数据源标识对应的校验信息和目标预言机事件;
预言机取数模块,用于将所述目标预言机事件发送至预设的预言机节点,以使该预言机节点根据所述目标数据源标识自所述目标区块链外部的目标数据源调取对应的目标外部数据,并对该目标外部数据进行签名后返回该目标外部数据;
校验模块,用于若接收到的所述目标外部数据通过预设的签名校验,且基于所述预言机合约校验该目标外部数据符合所述校验信息,则调用所述用户合约以将所述目标外部数据发送至所述目标区块链。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的区块链外部数据获取方法。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的区块链外部数据获取方法。
由上述技术方案可知,本申请提供的一种区块链外部数据获取方法及装置,方法包括:基于预设的预言机合约获取用户合约发送的目标区块链外部的目标数据源标识,并获取该目标数据源标识对应的校验信息和目标预言机事件;将所述目标预言机事件发送至预设的预言机节点,以使该预言机节点根据所述目标数据源标识自所述目标区块链外部的目标数据源调取对应的目标外部数据,并对该目标外部数据进行签名后返回该目标外部数据;若接收到的所述目标外部数据通过预设的签名校验,且基于所述预言机合约校验该目标外部数据符合所述校验信息,则调用所述用户合约以将所述目标外部数据发送至所述目标区块链,通过采用预言机合约及预言机节点等,使得区块链能够获取外部数据,并能够有效提高获取外部数据的及时性及可靠性,以有效提高需要采用区块链外部的实时信息来结合处理应用直接访问区块链的数据处理请求的效率,使得区块链本身能够取得外部的实时信息数据,这也能够有效避免区块链世界与现实世界出现割裂,也使得智能合约几乎可以应用在现实世界的各个领域;通过对获取的外部数据进行签名校验并基于预言机合约校验该外部数据是否符合预言机合约预先生成的校验信息,能够在区块链外部数据获取和传输阶段均保证外部数据的准确性、真实性及可靠性,以确保数据不可篡改的同时也保留了链外数据结果的可被审计的属性,能够提高需要采用区块链外部的实时信息来结合处理应用直接访问区块链的数据处理请求的准确性及可靠性;另外,本申请可以同时对接多个不同的区块链,且对于不同的底层链框架,预言机架构只需少量的适配即可为多种类型的链提供链外数据的获取能力。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中的预言机系统的部署架构示意图。
图2是本申请实施例中的区块链外部数据获取方法的第一种流程示意图。
图3是本申请实施例中的区块链外部数据获取方法中步骤100的具体流程示意图。
图4是本申请实施例中的区块链外部数据获取方法中步骤140的具体流程示意图。
图5是本申请实施例中的区块链外部数据获取方法中步骤200的具体流程示意图。
图6是本申请实施例中的区块链外部数据获取方法中的所述外部数据获取步骤的具体流程示意图。
图7是本申请实施例中的区块链外部数据获取方法中步骤240至步骤260的流程示意图。
图8是本申请实施例中的区块链外部数据获取方法中步骤260的具体流程示意图。
图9是本申请实施例中的区块链外部数据获取方法中步骤300的具体流程示意图。
图10是本申请实施例中的区块链外部数据获取装置的结构示意图。
图11是本申请应用实例提供的预言机系统运行时序图举例示意图。
图12是本申请实施例中的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请公开的区块链外部数据获取方法和装置可用于区块链技术领域,也可用于除区块链技术领域之外的任意领域,本申请公开的区块链外部数据获取方法和装置的应用领域不做限定。
区块链技术的出现近乎重新定义了现有市场条件下的人、组织之间的协作关系。现有的区块链体系中,最核心的创新点之一便在于智能合约。智能合约可以在没有信任第三方的前提下进行价值的可信转移,因此无论是对于类似于以太坊、比特币这类去中心化程度极高的公链网络还是对于类似Fabric等体系下的联盟链下的联盟自治体系的网络而言,链上所传递的信息均可以保证其真实性以及不可篡改性。
在智能合约出现之后,DAPP的概念也相继出现。DAPP是一种去中心化的应用程序,与传统的现有移动、PC端的App应用而言其最大的不同在于DAPP的数据信息并非来自一个中心化系统。
譬如传统的Web应用程序使用HTML、CSS以及JavaScript来呈现页面并与用户进行交互,这种交互的前提是这些页面等文件的信息需要某一个组织机构的后端来提供相应的API接口,这类API接口所呈现出来的信息实际是由一个或多个中心化机构所提供的,而API所对应的数据库也来自于这类中心化机构,他们拥有对自身数据库的绝对掌控权。
DAPP与之不同的点就在于它并非通过API连接到中心化机构的数据库,而是通过智能合约连接到区块链网络去获取相应数据,而区块链网络实际上是一种去中心化的体系。DAPP的出现使得链上操作可以变得更加丰富和灵活,随着DAPP技术上的不断创新与发展,人们对于区块链的使用场景将会丰富到如同现在的互联网一样普及到生活中的各个部分。
区块链上所运行的智能合约的实际操作是对链上数据的信息进行自定义化的价值转移,其价值转移的信息之所以能在去中心化的体系下被链上各节点都认可也正是因为链上所传递信息的真实性及不可篡改性。而DAPP所使用的数据也仅是通过智能合约获取的链上的数据信息,对于还需要获取链下第三方数据源所提供的动态数据信息的数据获取需求,由于无法保证动态数据信息在数据获取时能够以可信的方式上链,因此无法满足这类数据获取需求,这也就导致DAPP的应用场景是极其有限的。
举例来说:公链或联盟链上运行了一个去中心化的使用满足某触发条件后的当前汇率进行结算的交易平台DAPP,根据程序设定,当条件触发时则发生“使用当前人民币汇率进行结算”。该过程是去中心化的,通过智能合约去对账户双方进行结算,不会出现第三方进行操纵。但却无法解决一个问题:条件触发的那一时刻的人民币汇率如何上链才能做到真实性,仅仅通过目前智能合约的体系是无法做到这一点的。
也就是说,无论是目前DAPP的应用还是单纯的智能合约的条件执行,目前都无法以可信的方式获得链下第三方数据源所提供的动态数据信息来支撑链上应用。
基于此,针对需要采用区块链外部的实时信息来进行结合处理的区块链数据处理请求,现有的区块链数据处理方式存在无法实时获取区块链外部数据以及无法保证区块链外部数据的真实性的问题,进而无法对区块链数据处理请求进行有效且及时处理的问题,本申请实施例提供一种区块链外部数据获取方法,通过基于预设的预言机合约获取用户合约发送的目标区块链外部的目标数据源标识,并获取该目标数据源标识对应的校验信息和目标预言机事件;将所述目标预言机事件发送至预设的预言机节点,以使该预言机节点根据所述目标数据源标识自所述目标区块链外部的目标数据源调取对应的目标外部数据,并对该目标外部数据进行签名后返回该目标外部数据;若接收到的所述目标外部数据通过预设的签名校验,且基于所述预言机合约校验该目标外部数据符合所述校验信息,则调用所述用户合约以将所述目标外部数据发送至所述目标区块链,通过采用预言机合约及预言机节点等,使得区块链能够获取外部数据,并能够有效提高获取外部数据的及时性及可靠性,以有效提高需要采用区块链外部的实时信息来结合处理应用直接访问区块链的数据处理请求的效率,使得区块链本身能够取得外部的实时信息数据,这也能够有效避免区块链世界与现实世界出现割裂,也使得智能合约几乎可以应用在现实世界的各个领域;通过对获取的外部数据进行签名校验并基于预言机合约校验该外部数据是否符合预言机合约预先生成的校验信息,能够在区块链外部数据获取和传输阶段均保证外部数据的准确性、真实性及可靠性,以确保数据不可篡改的同时也保留了链外数据结果的可被审计的属性,能够提高需要采用区块链外部的实时信息来结合处理应用直接访问区块链的数据处理请求的准确性及可靠性;另外,本申请可以同时对接多个不同的区块链,且对于不同的底层链框架,预言机架构只需少量的适配即可为多种类型的链提供链外数据的获取能力。
在本申请的一个或多个实施例中,预言机系统已提前部署运行,且预言机系统的链chain模块已与链上某节点进行关联,即chain模块可以通过链节点来对节点上所部署的智能合约发起调用请求。
在本申请的一个或多个实施例中,假设联盟链的某组织机构或公链的某DAPP所希望调用的链外人民币汇率数据的所属数据源已在预言机系统中进行了注册登记。本发明中的预言机系统的设计方案不支持未注册的数据源的数据获取。如:若本系统中未注册登记“某某天气”的获取当前实时天气信息的接口时,组织机构则无法通过本系统来获取该接口所返回的信息数据。
基于上述内容,本申请还提供一种用于实现本申请一个或多个实施例中提供的区块链外部数据获取方法的区块链外部数据获取装置,该区块链外部数据获取装置的具体实现可以为一服务器,在一种具体举例中,参见图1,所述区块链外部数据获取装置可以为一包含有预言机合约的预言机系统部署方或预言机系统,该预言机系统包含有预言机底层平台,该预言机底层平台与所述预言机系统部署方之中以及所述预言机系统部署方之外的各个预言机节点之间分别依次通信连接;各个所述预言机节点分别与第三方数据源(本申请实施例中提及的数据源或目标数据源)之间通信连接;且所述预言机系统或预言机系统部署方可以连接并对应至少一个区块链,在图1中以区块链1和区块链2这两个区块链网络为例,且每个区块链均包含有多个企业对应的区块链节点,其中,n为大于2的正整数。
另外,用户可以通过其持有的客户端设备中的DAPP向目标区块链发送具有外部数据获取需求的区块链数据处理请求,以使区块链外部数据获取装置自所述区块链数据处理请求中获取所述外部数据获取需求对应的目标数据源标识和该区块链数据处理请求对应的唯一处理标识,并获取所述用户合约的回调函数;根据预设的加密算法获取所述回调函数对应的第一加密值,并将所述唯一处理标识和该第一加密值以键值对的形成存储为所述目标数据源标识对应的校验信息;以及,基于所述目标数据源标识、唯一处理标识和所述回调函数确定对应的目标预言机事件。
可以理解的是,所述客户端设备可以包括任何能够安装DAPP的智能手机、平板电子设备、网络机顶盒、便携式计算机、个人数字助理(PDA)、车载设备、智能穿戴设备等任何能够装载应用的移动设备。其中,所述智能穿戴设备可以包括智能眼镜、智能手表、智能手环等。
上述的移动终端可以具有通信模块(即通信单元),可以与远程的目标区块链进行通信连接,实现与所述目标区块链的数据传输。
具体通过下述各个实施例及应用实例分别进行详细说明。
为了解决现有的区块链数据处理方式存在无法实时获取区块链外部数据以及无法保证区块链外部数据的真实性的问题,进而无法对区块链数据处理请求进行有效且及时处理的问题,本申请提供一种区块链外部数据获取方法的实施例,参见图2,基于区块链外部数据获取装置执行的所述区块链外部数据获取方法具体包含有如下内容:
步骤100:基于预设的预言机合约获取用户合约发送的目标区块链外部的目标数据源标识,并获取该目标数据源标识对应的校验信息和目标预言机事件。
可以理解的是,校验信息可以根据用户合约的针对性信息和目标数据源标识的针对性信息获取,例如可以采用用户合约的回调函数和区块链数据处理请求对应的唯一处理标识获取。
在步骤100的一种举例中,组织机构A希望发起一笔名“交易合约”中方法为“结算”的交易来通过当前时段人民币汇率来将某订单中的美元结算为人民币。“交易合约”的“结算”方法中调用本系统中的预言机合约(跨合约调用),传入预言机合约所需的参数,如“交易合约”的“结算”方法将要访问的可以获取链下人民币汇率数据的目标数据源,此处的预言机合约在该节点上已提前安装部署完成。
步骤200:将所述目标预言机事件发送至预设的预言机节点,以使该预言机节点根据所述目标数据源标识自所述目标区块链外部的目标数据源调取对应的目标外部数据,并对该目标外部数据进行签名后返回该目标外部数据。
在步骤200中,预言机节点已提前在预言机系统中进行注册,预言机系统可通过已注册的预言机节点的IP地址和服务端口号向其发起请求,因此预言机节点可以在任意可连通的位置。
步骤300:若接收到的所述目标外部数据通过预设的签名校验,且基于所述预言机合约校验该目标外部数据符合所述校验信息,则调用所述用户合约以将所述目标外部数据发送至所述目标区块链。
在步骤300中,预言机系统在收到了来自于预言机节点所返回的数据结果集后,会对该数据结果的签名进行校验,以确保此预言机节点的证书为当前预言机系统所信任的机构签发的证书。
从上述描述可知,本申请实施例提供的区块链外部数据获取方法,通过采用预言机合约及预言机节点等,使得区块链能够获取外部数据,并能够有效提高获取外部数据的及时性及可靠性,以有效提高需要采用区块链外部的实时信息来结合处理应用直接访问区块链的数据处理请求的效率,使得区块链本身能够取得外部的实时信息数据,这也能够有效避免区块链世界与现实世界出现割裂,也使得智能合约几乎可以应用在现实世界的各个领域;通过对获取的外部数据进行签名校验并基于预言机合约校验该外部数据是否符合预言机合约预先生成的校验信息,能够在区块链外部数据获取和传输阶段均保证外部数据的准确性、真实性及可靠性,以确保数据不可篡改的同时也保留了链外数据结果的可被审计的属性,能够提高需要采用区块链外部的实时信息来结合处理应用直接访问区块链的数据处理请求的准确性及可靠性;另外,本申请可以同时对接多个不同的区块链,且对于不同的底层链框架,预言机架构只需少量的适配即可为多种类型的链提供链外数据的获取能力。
为了有效提高生成校验信息的应用可靠性,在本申请提供的区块链外部数据获取方法的一个实施例,参见图3,所述区块链外部数据获取方法的步骤100具体包含有如下内容:
步骤110:基于预设的预言机合约接收用户合约发送的具有外部数据获取需求的区块链数据处理请求。
步骤120:自所述区块链数据处理请求中获取所述外部数据获取需求对应的目标数据源标识和该区块链数据处理请求对应的唯一处理标识,并获取所述用户合约的回调函数。
步骤130:根据预设的加密算法获取所述回调函数对应的第一加密值,并将所述唯一处理标识和该第一加密值以键值对的形成存储为所述目标数据源标识对应的校验信息。
可以理解的是,所述加密算法可以选取当前各类数据加密算法,本申请的一个具体举例中可以优选哈希算法,相对应的第一加密值和后续的第二加密值均可以指基于该哈希算法生成的哈希值。
步骤140:基于所述目标数据源标识、唯一处理标识和所述回调函数确定对应的目标预言机事件。
步骤130和步骤140之间的执行顺序可以为同时或非同时执行,具体可以根据实际应用情形设置,图3中的执行顺序仅为举例。
举例来说,预言机合约接收到来自“交易合约”获取链外数据的请求,预言机合约对传入的调用参数进行SHA256的同时,以当前交易的ID为key,SHA256的值为value存入世界状态。该SHA256后的值存入世界状态的目的是为了确保预言机合约链下请求结束后回调链上合约时便于被预言机合约用来自动校验,校验的目的是为了确保来自“交易合约”的请求参数未被篡改。“交易合约”传入的参数中还包含了链下数据获取成功后需要进行数据上链时的回调函数。该回调函数是在获取到链下人民币汇率数据后通过预言机系统所连接的节点调用“预言机合约”的回调(callBack)方法时,通过跨合约调用的方式执行“交易合约”中所定义的回调函数即所需参数信息。
从上述描述可知,本申请实施例提供的区块链外部数据获取方法,通过获取区块链数据处理请求对应的唯一处理标识和所述用户合约的回调函数,根据预设的加密算法获取所述回调函数对应的第一加密值,并将所述唯一处理标识和该第一加密值以键值对的形成存储为所述目标数据源标识对应的校验信息,能够有效提高生成校验信息的应用可靠性,该校验信息后续可以确保预言机合约链下请求结束后回调链上合约时便于被预言机合约用来自动校验,校验的目的是为了确保来自用户合约的请求参数未被篡改。
为了保证生成的目标数据源标识、唯一处理标识和所述回调函数之间的对应关系的真实性,在本申请提供的区块链外部数据获取方法的一个实施例,参见图4,所述区块链外部数据获取方法的步骤140具体包含有如下内容:
步骤141:基于所述预言机合约在所述目标区块链中添加所述目标数据源标识对应的目标数据记录,其中,该目标数据记录中包含有所述目标数据源标识、唯一处理标识和所述回调函数之间的对应关系。
步骤142:在所述目标区块链中获取所述目标数据记录。
步骤143:将所述目标数据记录存储为目标预言机事件,并将所述目标预言机事件加入预设的预言机事件消息队列中。
举例来说,步骤130执行后,链上将会产生一笔交易,该交易的内容即为组织机构A通过某节点调用合约时所传入的参数等信息,此处为了更清晰的说明后续步骤,假设定义该步骤所产生的交易id为txid_demo。已提前部署并配置好的预言机系统会持续对链上信息进行监听。经过解析后发现该笔交易为获取链外数据的请求交易即此处定义为预言机事件。此时预言机系统的监听模块将该笔交易的信息存入预言机系统,同时向预言机事件的队列推送一个待处理状态的预言机事件的消息。
从上述描述可知,本申请实施例提供的区块链外部数据获取方法,通过在所述目标区块链中添加所述目标数据源标识对应的目标数据记录,能够有效保证生成的目标数据源标识、唯一处理标识和所述回调函数之间的对应关系的真实性,从接收区块链数据处理请求开始就进行了真实性保障,以确保区块链数据处理请求未被篡改,进而能够进一步在区块链外部数据获取和传输阶段均保证外部数据的准确性、真实性及可靠性,能够提高需要采用区块链外部的实时信息来结合处理应用直接访问区块链的数据处理请求的准确性及可靠性。
为了提高预言机节点直连外部第三方数据源获取外部数据的便捷性及可靠性,在本申请提供的区块链外部数据获取方法的一个实施例,参见图5,所述区块链外部数据获取方法的步骤200具体包含有如下内容:
步骤210:自所述预言机事件消息队列中的目标预言机事件获取对应的目标数据源标识。
步骤220:根据所述目标数据源标识确定对应的数据源地址和目标数据类型。
步骤230:将预设的标准调用协议、所述数据源地址和目标数据类型发送至预设的预言机节点,以使该预言机节点执行预设的外部数据获取步骤。
其中,参见图6,所述外部数据获取步骤具体包含有如下内容:
步骤231:将所述标准调用协议解析为所述数据源地址对应的数据源适用协议。
步骤232:基于所述数据源适用协议,向所述数据源地址对应的数据源发送所述目标数据类型对应的数据调取请求。
步骤233:若接收到所述数据源基于所述数据调取请求发送的目标数据,则基于所述加密算法对该目标数据进行加密处理,以得到对应的第二加密值。
步骤234:基于预设的证书对所述第二加密值进行签名。
步骤235:将签名后的第二加密值和所述目标数据作为所述目标外部数据发出。
举例来说,预言机系统的预言机事件消费队列模块监听到了新推送的预言机事件消息,然后对该事件进行处理消费并修改预言机事件的生命周期状态,并将其推送给预言机系统的Core模块;Core模块接收到来自预言机事件的消费模块所发起的事件,Core对该预言机事件进行分析。由于预言机事件的核心信息来自于txid_demo,而txid_demo中的参数实际包含了组织机构A想要调用的链外数据的数据源的相关信息。如在本例中,组织机构A希望通过汇率网的获取当前人民币汇率的接口去获取当前时间段的人民币汇率。Core块在经过对预言机事件进行分析后了解了目标数据源的位置和信息;预言机Core模块通过分析后明确了该预言机事件所需要获取的数据后,将请求进行整理并发给预言机节点。在本发明中,预言机节点主要用于接收来自Core模块的数据源调用请求。当预言机节点接收到调用请求后解析Core模块发送的描述数据源调用的相关协议来进行请求的转发调用。这里的转发调用是将预言机所定义的标准调用协议解析成符合第三方数据源调用的相关协议并发起实际调用;预言机节点向汇率网这一数据源下的获取当前时间段的人民币汇率接口发起调用后,等待来自该接口的返回信息。若返回失败信息,则同步将失败信息回调给预言机系统Core模块,若返回成功信息,则对返回数据进行SHA256,并使用预言机节点的证书来对该数据进行签名,最终预言机节点将签名后的数据以及源数据本身一起发回给预言机系统的Core模块;预言机节点支持分布式的部署方式,同时每个预言机节点获取到相应的数据返回时,还会对数据结果进行签名。签名的目的是为了保证该结果集的可追溯性,便于后续进行审计。
从上述描述可知,本申请实施例提供的区块链外部数据获取方法,通过根据所述目标数据源标识确定对应的数据源地址和目标数据类型,并将预设的标准调用协议、所述数据源地址和目标数据类型发送至预设的预言机节点,能够有效提高预言机节点直连外部第三方数据源获取外部数据的便捷性及可靠性,能够进一步有效提高获取外部数据的及时性及可靠性,以有效提高需要采用区块链外部的实时信息来结合处理应用直接访问区块链的数据处理请求的效率。
为了在区块链外部数据获取和传输阶段均保证外部数据的准确性、真实性及可靠性,在本申请提供的区块链外部数据获取方法的一个实施例,参见图7,所述区块链外部数据获取方法的步骤200和步骤300之间还具体包含有如下内容:
步骤240:接收所述预言机节点发送的所述目标外部数据。
步骤250:基于签名后的第二加密值对所述目标外部数据进行签名校验。
步骤260:若所述目标外部数据通过签名校验,则基于所述预言机合约校验所述目标外部数据中的第二加密值是否与所述校验信息中的第一加密值相符。
举例来说,预言机Core模块收到了来自于预言机节点所返回的数据结果集后,会对该数据结果的签名进行校验,以确保此预言机节点的证书为当前预言机系统所信任的机构签发的证书。
从上述描述可知,本申请实施例提供的区块链外部数据获取方法,通过对获取的外部数据进行签名校验并基于预言机合约校验该外部数据是否符合预言机合约预先生成的校验信息,能够在区块链外部数据获取和传输阶段均保证外部数据的准确性、真实性及可靠性,以确保数据不可篡改的同时也保留了链外数据结果的可被审计的属性,能够提高需要采用区块链外部的实时信息来结合处理应用直接访问区块链的数据处理请求的准确性及可靠性。
为了对各个所述目标外部数据进行聚合处理,在本申请提供的区块链外部数据获取方法的一个实施例,参见图8,若所述外部数据获取需求对应的目标数据源标识有多个,则所述区块链外部数据获取方法的步骤260还具体包含有如下内容:
步骤261:将通过签名校验的各个所述目标外部数据存储至预设的数据结果消息队列。
步骤262:轮询所述数据结果消息队列,并在该数据结果消息队列中新增的目标外部数据满足所述外部数据获取需求对应全部数据之时或之后,对各个所述目标外部数据进行聚合处理,形成已聚合的目标外部数据。
举例来说,校验后的结果集将会被推送到消息队列中等待预言机的聚合模块进行消费。预言机数据聚合模块会对Core已发送数据源请求的预言机事件进行轮询阻塞式的监听,该轮询监听主要用于等待所有预言机节点返回相应的结果集。如:Core模块向10个预言机节点发起了预言机事件的数据源调用请求,此时数据聚合模块将会针对该预言机事件进行阻塞式监听,只有当10个预言机节点的结果集都有返回结果(可能有的预言机节点返回获取数据失败)或判定超时的情况下,数据聚合模块才会开始启动聚合程序。所有预言机的结果均已有响应后,数据聚合模块会根据已注册的数据源的相关聚合算法进行数据聚合,所有的返回结果集最终会聚合成唯一的聚合结果,聚合的具体算法则由在预言机系统中注册的数据源决定。聚合完成后,聚合结果会由预言机系统的证书进行签名,然后通过预言机系统的chain模块来将聚合结果以及所采用的聚合结果集等数据作为参数传递给预言机合约的回调(callBack)方法。
从上述描述可知,本申请实施例提供的区块链外部数据获取方法,通过将通过签名校验的各个所述目标外部数据存储至预设的数据结果消息队列,并对各个所述目标外部数据进行聚合处理,能够根据已注册的数据源的相关聚合算法进行数据聚合,所有的返回结果集最终会聚合成唯一的聚合结果,聚合的具体算法则由在预言机系统中注册的数据源决定。聚合完成后,聚合结果会由预言机系统的证书进行签名,然后通过预言机系统来将聚合结果以及所采用的聚合结果集等数据作为参数传递给预言机合约,进而能够进一步提高区块链外部数据获取过程的应用可靠性。
为了进一步防止外部数据上链的过程被篡改,在本申请提供的区块链外部数据获取方法的一个实施例,参见图9,所述区块链外部数据获取方法中的步骤300具体包含有如下内容:
步骤310:应用所述预言机合约提取所述用户合约的回调函数;
步骤320:基于所述回调函数调用对应的所述用户合约,以基于该用户合约将所述目标外部数据发送至所述目标区块链,使得该目标区块链基于所述目标外部数据处理所述区块链数据处理请求。
举例来说,预言机合约的回调(callBack)方法接收到数据聚合模块传递过来的人民币汇率的聚合结果以及该预言机事件所对应的交易id为txid_demo的参数等信息,回调(callBack)方法根据txid_demo的值从世界状态获取SHA256的值进行校验。若校验成功,则代表请求参数的信息未被篡改,此时的聚合结果是合法结果,预言机合约的回调(callBack)将根据txid_demo中所描述的“交易合约”的回调函数信息及参数等信息对“交易合约”进行调用。若校验失败,则代表参数请求的信息可能被篡改,此时聚合结果为非法结果。“交易合约”所定义的回调方法调用成功后将会根据该合约所定义的处理逻辑进行处理,处理成功后会生成一笔交易发到链上。预言机系统的交易验证模块会持续监听产生的交易有效性。当该笔交易有效后,会同步更新预言机系统中的预言机事件的生命周期状态为已完成。至此,通过智能合约获取链外数据的步骤已完成。在这个过程中,链外数据的获取和生成等各个环节都会有相关的签名与校验以确保该数据是真实的从第三方数据源获取且结果未曾被篡改。
从上述描述可知,本申请实施例提供的区块链外部数据获取方法,通过基于所述回调函数调用对应的所述用户合约,能够进一步防止外部数据上链的过程被篡改,进而能够进一步在区块链外部数据获取和传输阶段均保证外部数据的准确性、真实性及可靠性,以确保数据不可篡改的同时也保留了链外数据结果的可被审计的属性,能够提高需要采用区块链外部的实时信息来结合处理应用直接访问区块链的数据处理请求的准确性及可靠性。
从软件层面来说,为了解决现有的区块链数据处理方式存在无法实时获取区块链外部数据以及无法保证区块链外部数据的真实性的问题,进而无法对区块链数据处理请求进行有效且及时处理的问题,本申请提供一种用于执行所述区块链外部数据获取方法中全部或部分内容的区块链外部数据获取装置的实施例,参见图10,所述区块链外部数据获取装置具体包含有如下内容:
跨合约模块10,用于基于预设的预言机合约获取用户合约发送的目标区块链外部的目标数据源标识,并获取该目标数据源标识对应的校验信息和目标预言机事件。
预言机取数模块20,用于将所述目标预言机事件发送至预设的预言机节点,以使该预言机节点根据所述目标数据源标识自所述目标区块链外部的目标数据源调取对应的目标外部数据,并对该目标外部数据进行签名后返回该目标外部数据。
校验模块30,用于若接收到的所述目标外部数据通过预设的签名校验,且基于所述预言机合约校验该目标外部数据符合所述校验信息,则调用所述用户合约以将所述目标外部数据发送至所述目标区块链。
本申请提供的区块链外部数据获取装置的实施例具体可以用于执行上述实施例中的区块链外部数据获取方法的实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
从上述描述可知,本申请实施例提供的区块链外部数据获取装置,通过采用预言机合约及预言机节点等,使得区块链能够获取外部数据,并能够有效提高获取外部数据的及时性及可靠性,以有效提高需要采用区块链外部的实时信息来结合处理应用直接访问区块链的数据处理请求的效率,使得区块链本身能够取得外部的实时信息数据,这也能够有效避免区块链世界与现实世界出现割裂,也使得智能合约几乎可以应用在现实世界的各个领域;通过对获取的外部数据进行签名校验并基于预言机合约校验该外部数据是否符合预言机合约预先生成的校验信息,能够在区块链外部数据获取和传输阶段均保证外部数据的准确性、真实性及可靠性,以确保数据不可篡改的同时也保留了链外数据结果的可被审计的属性,能够提高需要采用区块链外部的实时信息来结合处理应用直接访问区块链的数据处理请求的准确性及可靠性;另外,本申请可以同时对接多个不同的区块链,且对于不同的底层链框架,预言机架构只需少量的适配即可为多种类型的链提供链外数据的获取能力。
为了进一步说明本方案,本申请应用实例涉及对联盟链或公链下的节点可通过智能合约来获取链下可信数据的预言机系统的架构设计,克服了现有方案中的缺陷,提供了一种可以解决智能合约在执行过程中所面临的将现实中的数据真实上链的方案。该方案是一套预言机系统的架构设计方案,旨在提供一套可真实的获取链外数据的预言机系统的技术方案,用户合约可通过智能合约向预言机发起链外数据的委托从而获得链外的真实数据上链并完成交易的后续流程。具体来说,以联盟链为例,本申请应用实例提供的区块链外部数据获取方法具体包含有如下内容:
前提1:预言机系统已提前部署运行,且预言机系统的链chain模块已与链上某节点进行关联,即chain模块可以通过链节点来对节点上所部署的智能合约发起调用请求。
前提2:假设联盟链的某组织机构或公链的某DAPP所希望调用的链外人民币汇率数据的所属数据源已在预言机系统中进行了注册登记。本申请应用实例中的预言机系统的设计方案不支持未注册的数据源的数据获取。如:若本系统中未注册登记“某某天气”的获取当前实时天气信息的接口时,组织机构则无法通过本系统来获取该接口所返回的信息数据。
案例:假设公链上的某用户或联盟链上的某节点希望通过一个名叫“交易合约”的智能合约来获取当前的人民币汇率来进行资产的结算。由于在本系统中请求链外数据的步骤无论是公链还是联盟链均通过以下步骤来实现,因此下文中将只描述联盟链某节点通过“交易合约”的智能合约请求链外的情形。
步骤1、组织机构A希望发起一笔名“交易合约”中方法为“结算”的交易来通过当前时段人民币汇率来将某订单中的美元结算为人民币。
步骤2、“交易合约”的“结算”方法中调用本系统中的预言机合约(跨合约调用),传入预言机合约所需的参数,如“交易合约”的“结算”方法将要访问的可以获取链下人民币汇率数据的目标数据源,此处的预言机合约在该节点上已提前安装部署完成。
步骤3、预言机合约接收到来自“交易合约”获取链外数据的请求,预言机合约对传入的调用参数进行SHA256的同时,以当前交易的ID为key,SHA256的值为value存入世界状态。该SHA256后的值存入世界状态的目的是为了确保预言机合约链下请求结束后回调链上合约时便于被预言机合约用来自动校验,校验的目的是为了确保来自“交易合约”的请求参数未被篡改。
步骤4、在步骤3中,“交易合约”传入的参数中还包含了链下数据获取成功后需要进行数据上链时的回调函数。该回调函数是在获取到链下人民币汇率数据后通过预言机系统所连接的节点调用“预言机合约”的回调(callBack)方法时,通过跨合约调用的方式执行“交易合约”中所定义的回调函数即所需参数信息。该回调的详细步骤将在后续进行描述。
步骤5、步骤3的执行成功之后,链上将会产生一笔交易,该交易的内容即为组织机构A通过某节点调用合约时所传入的参数等信息,此处为了更清晰的说明后续步骤,假设定义该步骤所产生的交易id为txid_demo。
步骤6、已提前部署并配置好的预言机系统会持续对链上信息进行监听。当步骤5完成时会向链上写入交易id为txid_demo的一笔交易。与此同时预言机系统的监听模块监听到该笔交易,经过解析后发现该笔交易为获取链外数据的请求交易即此处定义为预言机事件。此时预言机系统的监听模块将该笔交易的信息存入预言机系统,同时向预言机事件的队列推送一个待处理状态的预言机事件的消息。
步骤7、步骤6中,预言机系统的预言机事件消费队列模块监听到了新推送的预言机事件消息,然后对该事件进行处理消费并修改预言机事件的生命周期状态,并将其推送给预言机系统的Core模块。
步骤8、步骤7中Core模块接收到来自预言机事件的消费模块所发起的事件,Core对该预言机事件进行分析。由于预言机事件的核心信息来自于txid_demo,而txid_demo中的参数实际包含了组织机构A想要调用的链外数据的数据源的相关信息。如在本例中,组织机构A希望通过汇率网的获取当前人民币汇率的接口去获取当前时间段的人民币汇率。Core块在经过对预言机事件进行分析后了解了目标数据源的位置和信息,
步骤9、在步骤8中预言机Core模块通过分析后明确了该预言机事件所需要获取的数据后,将请求进行整理并发给预言机节点。在本申请应用实例中,预言机节点主要用于接收来自Core模块的数据源调用请求。当预言机节点接收到调用请求后解析Core模块发送的描述数据源调用的相关协议来进行请求的转发调用。这里的转发调用是将预言机所定义的标准调用协议解析成符合第三方数据源调用的相关协议并发起实际调用。
步骤10、步骤9中的预言机节点向汇率网这一数据源下的获取当前时间段的人民币汇率接口发起调用后,等待来自该接口的返回信息。若返回失败信息,则同步将失败信息回调给预言机系统Core模块,若返回成功信息,则对返回数据进行SHA256,并使用预言机节点的证书来对该数据进行签名,最终预言机节点将签名后的数据以及源数据本身一起发回给预言机系统的Core模块。
步骤11、步骤10中的预言机节点已提前在预言机系统中进行注册,预言机系统的Core模块可通过已注册的预言机节点的IP地址和服务端口号向其发起请求,因此预言机节点可以在任意可连通的位置。为了保证步骤10所返回的数据的真实性,此处的预言机节点支持分布式的部署方式,同时每个预言机节点获取到相应的数据返回时,还会对数据结果进行签名。签名的目的是为了保证该结果集的可追溯性,便于后续进行审计。
步骤12、预言机Core模块收到了来自于步骤11所返回的数据结果集后,会对该数据结果的签名进行校验,以确保此预言机节点的证书为当前预言机系统所信任的机构签发的证书。
步骤13、通过步骤12校验后的结果集将会被推送到消息队列中等待预言机的聚合模块进行消费。预言机数据聚合模块会对Core已发送数据源请求的预言机事件进行轮询阻塞式的监听,该轮询监听主要用于等待所有预言机节点返回相应的结果集。如:Core模块向10个预言机节点发起了预言机事件的数据源调用请求,此时数据聚合模块将会针对该预言机事件进行阻塞式监听,只有当10个预言机节点的结果集都有返回结果(可能有的预言机节点返回获取数据失败)或判定超时的情况下,数据聚合模块才会开始启动聚合程序。
步骤14、步骤13中,所有预言机的结果均已有响应后,数据聚合模块会根据已注册的数据源的相关聚合算法进行数据聚合,所有的返回结果集最终会聚合成唯一的聚合结果,聚合的具体算法则由在预言机系统中注册的数据源决定。聚合完成后,聚合结果会由预言机系统的证书进行签名,然后通过预言机系统的chain模块来将聚合结果以及所采用的聚合结果集等数据作为参数传递给预言机合约的回调(callBack)方法。
步骤15、预言机合约的回调(callBack)方法接收到步骤14传递过来的人民币汇率的聚合结果以及该预言机事件所对应的交易id为txid_demo的参数等信息,回调(callBack)方法根据txid_demo的值从世界状态获取步骤4的SHA256的值进行校验。若校验成功,则代表请求参数的信息未被篡改,此时的聚合结果是合法结果,预言机合约的回调(callBack)将根据txid_demo中所描述的“交易合约”的回调函数信息及参数等信息对“交易合约”进行调用。若校验失败,则代表参数请求的信息可能被篡改,此时聚合结果为非法结果,不进行处理。
步骤16、步骤15中的“交易合约”所定义的回调方法调用成功后将会根据该合约所定义的处理逻辑进行处理,处理成功后会生成一笔交易发到链上。
步骤17、预言机系统的交易验证模块会持续监听步骤16所产生的交易有效性。当该笔交易有效后,会同步更新预言机系统中的预言机事件的生命周期状态为已完成。至此,通过智能合约获取链外数据的步骤已完成。在这个过程中,链外数据的获取和生成等各个环节都会有相关的签名与校验以确保该数据是真实的从第三方数据源获取且结果未曾被篡改。
其中,预言机系统运行时序图举例参见图11,其中资源节点即为预言机节点。在时序图中,用户合约发起预言机事件在本申请应用实例中采用的是跨合约调用的方式,即用户合约发送信息至预言机合约,由预言机合约进行处理执行,然后发起一笔交易。这里还可以借用联盟链或公链的事件机制,由用户合约跨合约调用预言机合约后,预言机合约发起一个事件,而不是交易。之后由预言机系统的监听模块监听链上的事件来做后续一系列的处理。
时序图中的事件收集是通过chain模块调用区块链的接口来实现对链上数据的监听。此处也可以合并事件收集模块与chain模块,即合并后的模块直接监听链上的交易或事件即可。另外,在直接监听链上的交易或事件后,可以不选择将数据发送至消息队列,有很多种选择,例如可以将数据通过http接口的方式发送至时序图的事件消费模块。
另外,本申请应用实例是以联盟链为基础写的,但本申请应用实例也可以在公链以及其他任何符合本申请应用实例使用条件的链场景上进行使用。
本申请应用实例所描述的区块链外部数据获取方法可以使得用户通过智能合约获取链外的数据信息。在没有预言机这类系统的情况下,区块链本身无法取得外界的实时信息数据,这也使得区块链世界与现实世界出现了割裂。本申请应用实例所描述的预言机系统的设计方案提出了这样一个可实现的预言机系统,这就使得智能合约几乎可以应用在现实世界的各个领域。
本申请应用实例所描述的预言机系统的设计方案可以同时对接多个不同的链,且对于不同的底层链框架,本系统所描述的预言机架构只需少量的适配即可为多种类型的链提供链外数据的获取能力。与此同时,本申请应用实例中还提供了数据源的注册登记体系,因此可以通过更多的横向扩展来不断丰富该系统可获取的链外的数据类型。
本申请应用实例所描述的预言机系统的设计方案中,从用户所传入的交易开始就进行了参数的校验,以确保用户所传入的请求未被篡改。同时,在获得链外数据的结果集后,对每一个聚合前的结果都有单独的签名,同时也对聚合后的结果进行了签名,以确保数据不可篡改的同时也保留了链外数据结果的可被审计的属性。
从硬件层面来说,为了解决现有的区块链数据处理方式存在无法实时获取区块链外部数据以及无法保证区块链外部数据的真实性的问题,进而无法对区块链数据处理请求进行有效且及时处理的问题,本申请提供一种用于实现所述区块链外部数据获取方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
图12为本申请实施例的电子设备9600的系统构成的示意框图。如图12所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图12是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
在一实施例中,区块链外部数据获取功能可以被集成到中央处理器中。其中,中央处理器可以被配置为进行如下控制:
步骤100:基于预设的预言机合约获取用户合约发送的目标区块链外部的目标数据源标识,并获取该目标数据源标识对应的校验信息和目标预言机事件。
步骤200:将所述目标预言机事件发送至预设的预言机节点,以使该预言机节点根据所述目标数据源标识自所述目标区块链外部的目标数据源调取对应的目标外部数据,并对该目标外部数据进行签名后返回该目标外部数据。
步骤300:若接收到的所述目标外部数据通过预设的签名校验,且基于所述预言机合约校验该目标外部数据符合所述校验信息,则调用所述用户合约以将所述目标外部数据发送至所述目标区块链。
从上述描述可知,本申请实施例提供的电子设备,通过采用预言机合约及预言机节点等,使得区块链能够获取外部数据,并能够有效提高获取外部数据的及时性及可靠性,以有效提高需要采用区块链外部的实时信息来结合处理应用直接访问区块链的数据处理请求的效率,使得区块链本身能够取得外部的实时信息数据,这也能够有效避免区块链世界与现实世界出现割裂,也使得智能合约几乎可以应用在现实世界的各个领域;通过对获取的外部数据进行签名校验并基于预言机合约校验该外部数据是否符合预言机合约预先生成的校验信息,能够在区块链外部数据获取和传输阶段均保证外部数据的准确性、真实性及可靠性,以确保数据不可篡改的同时也保留了链外数据结果的可被审计的属性,能够提高需要采用区块链外部的实时信息来结合处理应用直接访问区块链的数据处理请求的准确性及可靠性;另外,本申请可以同时对接多个不同的区块链,且对于不同的底层链框架,预言机架构只需少量的适配即可为多种类型的链提供链外数据的获取能力。
在另一个实施方式中,区块链外部数据获取装置可以与中央处理器9100分开配置,例如可以将区块链外部数据获取装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现区块链外部数据获取功能。
如图12所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图12中所示的所有部件;此外,电子设备9600还可以包括图12中没有示出的部件,可以参考现有技术。
如图12所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本申请的实施例还提供能够实现上述实施例中的区块链外部数据获取方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的区块链外部数据获取方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤100:基于预设的预言机合约获取用户合约发送的目标区块链外部的目标数据源标识,并获取该目标数据源标识对应的校验信息和目标预言机事件。
步骤200:将所述目标预言机事件发送至预设的预言机节点,以使该预言机节点根据所述目标数据源标识自所述目标区块链外部的目标数据源调取对应的目标外部数据,并对该目标外部数据进行签名后返回该目标外部数据。
步骤300:若接收到的所述目标外部数据通过预设的签名校验,且基于所述预言机合约校验该目标外部数据符合所述校验信息,则调用所述用户合约以将所述目标外部数据发送至所述目标区块链。
从上述描述可知,本申请实施例提供的计算机可读存储介质,通过采用预言机合约及预言机节点等,使得区块链能够获取外部数据,并能够有效提高获取外部数据的及时性及可靠性,以有效提高需要采用区块链外部的实时信息来结合处理应用直接访问区块链的数据处理请求的效率,使得区块链本身能够取得外部的实时信息数据,这也能够有效避免区块链世界与现实世界出现割裂,也使得智能合约几乎可以应用在现实世界的各个领域;通过对获取的外部数据进行签名校验并基于预言机合约校验该外部数据是否符合预言机合约预先生成的校验信息,能够在区块链外部数据获取和传输阶段均保证外部数据的准确性、真实性及可靠性,以确保数据不可篡改的同时也保留了链外数据结果的可被审计的属性,能够提高需要采用区块链外部的实时信息来结合处理应用直接访问区块链的数据处理请求的准确性及可靠性;另外,本申请可以同时对接多个不同的区块链,且对于不同的底层链框架,预言机架构只需少量的适配即可为多种类型的链提供链外数据的获取能力。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种区块链外部数据获取方法,其特征在于,包括:
基于预设的预言机合约获取用户合约发送的目标区块链外部的目标数据源标识,并获取该目标数据源标识对应的校验信息和目标预言机事件;
将所述目标预言机事件发送至预设的预言机节点,以使该预言机节点根据所述目标数据源标识自所述目标区块链外部的目标数据源调取对应的目标外部数据,并对该目标外部数据进行签名后返回该目标外部数据;
若接收到的所述目标外部数据通过预设的签名校验,且基于所述预言机合约校验该目标外部数据符合所述校验信息,则调用所述用户合约以将所述目标外部数据发送至所述目标区块链。
2.根据权利要求1所述的区块链外部数据获取方法,其特征在于,所述基于预设的预言机合约获取用户合约发送的目标区块链外部的目标数据源标识,并获取该目标数据源标识对应的校验信息和目标预言机事件,包括:
基于预设的预言机合约接收用户合约发送的具有外部数据获取需求的区块链数据处理请求;
自所述区块链数据处理请求中获取所述外部数据获取需求对应的目标数据源标识和该区块链数据处理请求对应的唯一处理标识,并获取所述用户合约的回调函数;
根据预设的加密算法获取所述回调函数对应的第一加密值,并将所述唯一处理标识和该第一加密值以键值对的形成存储为所述目标数据源标识对应的校验信息;
以及,基于所述目标数据源标识、唯一处理标识和所述回调函数确定对应的目标预言机事件。
3.根据权利要求2所述的区块链外部数据获取方法,其特征在于,所述基于所述目标数据源标识、唯一处理标识和所述回调函数确定对应的目标预言机事件,包括:
基于所述预言机合约在所述目标区块链中添加所述目标数据源标识对应的目标数据记录,其中,该目标数据记录中包含有所述目标数据源标识、唯一处理标识和所述回调函数之间的对应关系;
在所述目标区块链中获取所述目标数据记录;
将所述目标数据记录存储为目标预言机事件,并将所述目标预言机事件加入预设的预言机事件消息队列中。
4.根据权利要求3所述的区块链外部数据获取方法,其特征在于,所述将所述目标预言机事件发送至预设的预言机节点,以使该预言机节点根据所述目标数据源标识自所述目标区块链外部的目标数据源调取对应的目标外部数据,并对该目标外部数据进行签名后返回该目标外部数据,包括:
自所述预言机事件消息队列中的目标预言机事件获取对应的目标数据源标识;
根据所述目标数据源标识确定对应的数据源地址和目标数据类型;
将预设的标准调用协议、所述数据源地址和目标数据类型发送至预设的预言机节点,以使该预言机节点执行预设的外部数据获取步骤;
其中,所述外部数据获取步骤包括:
将所述标准调用协议解析为所述数据源地址对应的数据源适用协议;
基于所述数据源适用协议,向所述数据源地址对应的数据源发送所述目标数据类型对应的数据调取请求;
若接收到所述数据源基于所述数据调取请求发送的目标数据,则基于所述加密算法对该目标数据进行加密处理,以得到对应的第二加密值;
基于预设的证书对所述第二加密值进行签名;
将签名后的第二加密值和所述目标数据作为所述目标外部数据发出。
5.根据权利要求4所述的区块链外部数据获取方法,其特征在于,在所述调用所述用户合约以将所述目标外部数据发送至所述目标区块链之前,还包括:
接收所述预言机节点发送的所述目标外部数据;
基于签名后的第二加密值对所述目标外部数据进行签名校验;
若所述目标外部数据通过签名校验,则基于所述预言机合约校验所述目标外部数据中的第二加密值是否与所述校验信息中的第一加密值相符。
6.根据权利要求5所述的区块链外部数据获取方法,其特征在于,若所述外部数据获取需求对应的目标数据源标识有多个,则在所述基于所述预言机合约校验所述目标外部数据中的第二加密值是否与所述校验信息中的第一加密值相符之前,还包括:
将通过签名校验的各个所述目标外部数据存储至预设的数据结果消息队列;
轮询所述数据结果消息队列,并在该数据结果消息队列中新增的目标外部数据满足所述外部数据获取需求对应全部数据之时或之后,对各个所述目标外部数据进行聚合处理,形成已聚合的目标外部数据。
7.根据权利要求2至6任一项所述的区块链外部数据获取方法,其特征在于,所述调用所述用户合约以将所述目标外部数据发送至所述目标区块链,包括:
应用所述预言机合约提取所述用户合约的回调函数;
基于所述回调函数调用对应的所述用户合约,以基于该用户合约将所述目标外部数据发送至所述目标区块链,使得该目标区块链基于所述目标外部数据处理所述区块链数据处理请求。
8.一种区块链外部数据获取装置,其特征在于,包括:
跨合约模块,用于基于预设的预言机合约获取用户合约发送的目标区块链外部的目标数据源标识,并获取该目标数据源标识对应的校验信息和目标预言机事件;
预言机取数模块,用于将所述目标预言机事件发送至预设的预言机节点,以使该预言机节点根据所述目标数据源标识自所述目标区块链外部的目标数据源调取对应的目标外部数据,并对该目标外部数据进行签名后返回该目标外部数据;
校验模块,用于若接收到的所述目标外部数据通过预设的签名校验,且基于所述预言机合约校验该目标外部数据符合所述校验信息,则调用所述用户合约以将所述目标外部数据发送至所述目标区块链。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的区块链外部数据获取方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述的区块链外部数据获取方法。
CN202111470937.1A 2021-12-03 2021-12-03 区块链外部数据获取方法及装置 Pending CN114172662A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111470937.1A CN114172662A (zh) 2021-12-03 2021-12-03 区块链外部数据获取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111470937.1A CN114172662A (zh) 2021-12-03 2021-12-03 区块链外部数据获取方法及装置

Publications (1)

Publication Number Publication Date
CN114172662A true CN114172662A (zh) 2022-03-11

Family

ID=80482975

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111470937.1A Pending CN114172662A (zh) 2021-12-03 2021-12-03 区块链外部数据获取方法及装置

Country Status (1)

Country Link
CN (1) CN114172662A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114331446A (zh) * 2022-03-15 2022-04-12 北京百度网讯科技有限公司 区块链的链外服务实现方法、装置、设备和介质
CN114362968A (zh) * 2022-03-15 2022-04-15 北京百度网讯科技有限公司 区块链获取随机数的方法、装置、设备和介质
CN114781003A (zh) * 2022-05-19 2022-07-22 马上消费金融股份有限公司 一种数据核验和数据更新方法及系统
CN114969724A (zh) * 2022-07-28 2022-08-30 山东省计算中心(国家超级计算济南中心) 一种外部数据源数据可信上链方法及系统
CN115065563A (zh) * 2022-08-17 2022-09-16 中航信移动科技有限公司 一种基于区块链预言机的民航数据处理系统
CN116032494A (zh) * 2023-03-24 2023-04-28 深圳开鸿数字产业发展有限公司 数据交互方法、区块链预言机、设备及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107507005A (zh) * 2017-08-01 2017-12-22 众安信息技术服务有限公司 一种基于联盟链的链外数据访问方法和系统
CN110992020A (zh) * 2019-11-19 2020-04-10 腾讯科技(深圳)有限公司 基于智能合约的数据处理方法、相关节点及存储介质
CN111258725A (zh) * 2020-01-17 2020-06-09 北京百度网讯科技有限公司 一种基于区块链的数据处理方法、装置、设备和介质
CN112650605A (zh) * 2020-12-30 2021-04-13 杭州趣链科技有限公司 一种基于智能合约的预言机调用过程实现方法及装置
CN113055497A (zh) * 2021-04-29 2021-06-29 中国工商银行股份有限公司 用于区块链网络的链外数据上链方法、装置及系统
US20210209091A1 (en) * 2020-09-29 2021-07-08 Beijing Baidu Netcom Science And Technology Co., Ltd. Blockchain-Based Data Processing Method and Apparatus, Device, and Storage Medium
CN113205416A (zh) * 2021-04-19 2021-08-03 杭州溪塔科技有限公司 一种基于区块链预言机的业务处理方法和系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107507005A (zh) * 2017-08-01 2017-12-22 众安信息技术服务有限公司 一种基于联盟链的链外数据访问方法和系统
US20190179821A1 (en) * 2017-08-01 2019-06-13 Zhongan Information Technology Service Co., Ltd. Method and system for accessing out-of-chain data based on consortium block chain
CN110992020A (zh) * 2019-11-19 2020-04-10 腾讯科技(深圳)有限公司 基于智能合约的数据处理方法、相关节点及存储介质
CN111258725A (zh) * 2020-01-17 2020-06-09 北京百度网讯科技有限公司 一种基于区块链的数据处理方法、装置、设备和介质
US20210209091A1 (en) * 2020-09-29 2021-07-08 Beijing Baidu Netcom Science And Technology Co., Ltd. Blockchain-Based Data Processing Method and Apparatus, Device, and Storage Medium
CN112650605A (zh) * 2020-12-30 2021-04-13 杭州趣链科技有限公司 一种基于智能合约的预言机调用过程实现方法及装置
CN113205416A (zh) * 2021-04-19 2021-08-03 杭州溪塔科技有限公司 一种基于区块链预言机的业务处理方法和系统
CN113055497A (zh) * 2021-04-29 2021-06-29 中国工商银行股份有限公司 用于区块链网络的链外数据上链方法、装置及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘加兵,等: "智能合约安全综述", 《网络与信息安全学报》, vol. 6, no. 3, pages 1 - 13 *
李赫;孙继飞;杨泳;汪松;: "智能合约如何可信地与外部世界交互", 中国金融电脑, no. 08, pages 50 - 54 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114331446A (zh) * 2022-03-15 2022-04-12 北京百度网讯科技有限公司 区块链的链外服务实现方法、装置、设备和介质
CN114362968A (zh) * 2022-03-15 2022-04-15 北京百度网讯科技有限公司 区块链获取随机数的方法、装置、设备和介质
CN114781003A (zh) * 2022-05-19 2022-07-22 马上消费金融股份有限公司 一种数据核验和数据更新方法及系统
CN114969724A (zh) * 2022-07-28 2022-08-30 山东省计算中心(国家超级计算济南中心) 一种外部数据源数据可信上链方法及系统
CN115065563A (zh) * 2022-08-17 2022-09-16 中航信移动科技有限公司 一种基于区块链预言机的民航数据处理系统
CN116032494A (zh) * 2023-03-24 2023-04-28 深圳开鸿数字产业发展有限公司 数据交互方法、区块链预言机、设备及介质

Similar Documents

Publication Publication Date Title
CN114172662A (zh) 区块链外部数据获取方法及装置
US11755693B1 (en) Authentication of encrypted media based on immutable ledgers
TWI672648B (zh) 業務處理方法、裝置、資料共享系統及儲存介質
WO2017107732A1 (zh) 登录状态同步方法和系统
US20220391642A1 (en) Method and apparatus for evaluating joint training model
CN111404695B (zh) 令牌请求验证方法和装置
CN112615753A (zh) 一种链路异常追踪方法、第一节点、第二节点以及链路
CN111510493B (zh) 分布式数据传输方法及装置
CN113946811A (zh) 鉴权认证方法及装置
CN111767558A (zh) 数据访问监控方法、装置及系统
CN111327680A (zh) 认证数据同步方法、装置、系统、计算机设备和存储介质
CN113596591B (zh) 视频的播放方法、装置、设备及计算机可读存储介质
CN113158259A (zh) 区块链完整性验证方法及装置
CN115174558A (zh) 云网端一体化身份认证方法、装置、设备及存储介质
CN110635993B (zh) 用于合成多媒体信息的方法和设备
CN114549206A (zh) 一种交易抗抵赖的方法、系统、电子设备及可读存储介质
CN113987062A (zh) 一种数据上链存储方法、系统、装置以及存储介质
CN113497827A (zh) 信息共享方法及设备
CN111343172A (zh) 网络访问权限动态处理方法及装置
CN112422566B (zh) 远程调用处理方法、装置、存储介质及电子装置
CN112511510B (zh) 一种授权认证方法、系统、电子设备及可读存储介质
CN204965435U (zh) 一种智能玩具
CN114143333A (zh) 预言机数据处理方法及中心化预言机模块
CN114339628B (zh) 5g富媒体消息发送方法、设备、存储介质及产品
CN115834584B (zh) 跨网数据传输方法、装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination