CN116684430A - 一种分布式双向预言机和区块链系统 - Google Patents

一种分布式双向预言机和区块链系统 Download PDF

Info

Publication number
CN116684430A
CN116684430A CN202310695764.6A CN202310695764A CN116684430A CN 116684430 A CN116684430 A CN 116684430A CN 202310695764 A CN202310695764 A CN 202310695764A CN 116684430 A CN116684430 A CN 116684430A
Authority
CN
China
Prior art keywords
chain
data
predictor
file
component
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.)
Granted
Application number
CN202310695764.6A
Other languages
English (en)
Other versions
CN116684430B (zh
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.)
Shandong University
Original Assignee
Shandong University
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 Shandong University filed Critical Shandong University
Priority to CN202310695764.6A priority Critical patent/CN116684430B/zh
Publication of CN116684430A publication Critical patent/CN116684430A/zh
Application granted granted Critical
Publication of CN116684430B publication Critical patent/CN116684430B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1091Interfacing with client-server systems or between P2P systems
    • 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/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1053Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • 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/40Network security protocols
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种分布式双向预言机和区块链系统。区块链系统包括链外存储网络配置分布式双向预言机的区块链平台和链外客户端,链外客户端和区块链平台部署的分布式双向预言机配合实现数据推入、数据的拉出和数据的推出。分布式双向预言机包括:设置于链外客户端的预言机链下组件和设置于区块链平台的预言机链上组件,预言机链下组件包括:包含面向链外的链外传送器、面向链内的链上检索器和链上传送器的接口层、包含监听器与控制器的任务层和共识层;预言机链上组件包括:用于与预言机链下组件沟通的链下接口以及进行数据处理与计算组件;面向链外的链外传送器支持与链外设备通信,面向链内的链上检索器和链上传送器支持与链下接口通讯。

Description

一种分布式双向预言机和区块链系统
技术领域
本发明涉及区块链预言机领域,尤其涉及一种分布式双向预言机和区块链系统。
背景技术
由于区块链分布式网络中的每个节点必须在给定相同输入的情况下获得相同的结果,因此该架构被创建为确定封闭的系统环境,只能获取到链内的数据,必须限制信息的输入。为了解决与链外信息的流通,预言机因此而出现,预言机是一套借助于智能合约的中间件系统,提供链上链下或链间的数据传输节点。
区块链对外部数据由各式各样的需求,预言机需要提供多种方式的服务满足区块链。当前主流预言机为输入预言机,他们获取和验证外部数据以供混合智能合约协议使用。当然也有输出预言机,供应链管理、物联网系统和银行网络都可以用预言机来发送数据以指示事件已完成。航运公司可用输出预言机在给定行程中验证敏感货物的恒温状况,单车租赁或共享汽车app也可以使用输入和输出预言机来指示已付款并解锁单车或汽车。但目前没有一种预言机可以做到数据的双向传输。本系统中外部客户端要频繁地与链上进行数据互通,为了达到该目的,一个双向预言机是必需的。此外如今预言机多为中心化预言机,中心化预言机类似于互联网,本质上像一个数据提供平台,数据被直接提供给智能合约,数据的可信度完全取决于平台的公信力,有作恶的风险,但由于不需要节点验证,极大提高了效率,降低了成本。这类平台多是单个的中心化机构,如:银行、具备国企等大型可信背景背书的企业等。受中心化机构背书的限制中心化预言机的使用场景有限。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本发明提供一种分布式双向预言机。
第一方面,本发明提供一种分布式双向预言机,用于支持异构系统与区块链之间的交互,包括:预言机链下组件和预言机链上组件,其中:
所述预言机链下组件包括:接口层、任务层和共识层;所述接口层包含:面向链外的链外传送器、面向链内的链上检索器和链上传送器;所述任务层包括监听器与控制器,所述共识层实现与其他预言机链下组件的PBRT共识;
所述预言机链上组件包括:用于与所述预言机链下组件沟通的链下接口以及进行数据处理与计算组件;面向链外的链外传送器支持与链外设备通信,面向链内的链上检索器和链上传送器支持与链下接口通讯。
更进一步地,所述监听器利用链外传送器监听配置预言机链下组件的节点的本地针对文件的存储和或查询行为,所述监听器利用预言机链上组件的链下接口和配合链下接口的预言机链下组件的接口层监听链上文件更新行为。
更进一步地,所述控制器根据所述监听器监听到的行为控制所述预言机链下组件来实现文件处理、文件传输、文件查询的过程。
更进一步地,所述预言机链上组件的计算组件通过变色龙哈希实现链上文件的维护更新,保持数据点完整性。
第二方面,本发明提供一种区块链系统,应用所述的分布式双向预言机,包括:
链外存储网络,包括:多个存储节点,每个存储节点通过网络协议提供服务;
支持预言机链上组件的区块链平台,所述区块链平台配置预言机链上组件,所述区块链平台配置有IPFS存储系统;
配置有预言机链下组件的多个链外客户端;
链外客户端和区块链平台部署的分布式双向预言机配合实现数据推入、数据的拉出和数据的推出。
更进一步地,链外数据通过数据推入操作存储在区块链上,所述数据推入包括:
链外客户端通过身份组件创建外部账户,外部账户所在链外客户端存储数据的同时,预言机链下组件的监听器监听到存储行为,向区块链平台发送存储申请,验证通过的数据和数据的元数据一并发送到区块链上;预言机链上组件收到数据和元数据后,计算组件对数据的哈希值进行验证,如果验证数据完整,则向所有预言机链下组件广播洪泛,其他预言机链下组件共同监督数据存储;若发起的链外客户端的预言机链下组件未收到广播,则重新申请;预言机链上组件进行数据存储;收到存储请求的链上组件将向满足权限要求的预言机链下组件广播pre-prepare消息,收到pre-prepare消息的预言机链下组件向网络预言机链下组件发送prepare消息,pre-prepare消息和prepare消息包括文件的默克尔哈希用作验证,若任一预言机链下组件收到2f+1个相同内容后,向链上发送承诺信息与文件的默克尔哈希值;预言机链上组件对数据处理时,若有至少2f+1个与本次数据相对应的哈希值,则进行文件的存储;若预言机链上组件的计算组件存储数据成功,则向所有预言机链下组件广播成功消息;若成功消息反馈超时,所有预言机链下组件均能询问并重复存储请求。
更进一步地,所述数据的拉出遵从响应请求方式,包括:
链外客户端节点给出的请求在区块链上搜索相关元数据或原文件;
链外客户端于自身所在链外系统请求一个文件,若该文件之前在区块链内存储过,则区块链上会存储文件的链接映射;链外客户端调用分布式双向预言机,在验证权限后从区块链上获取该文件的默克尔哈希和变色龙哈希;
经过共识后,链外客户端从区块链上获得正确的验证文件,客户端证明组件比对从链外系统获取的文件默克尔哈希和从链上获取的默克尔哈希是否相同,如果相同则证明文件完整可以继续安心访问;若两个默克尔哈希值不同,则再次调用分布式双向预言机,同样经过共识从区块链上获取文件以及元数据;其中共识过程包括:预言机链上组件向满足权限要求的分布式的预言机链下组件广播pre-prepare消息,其中在数据大时,包含相应数据的默克尔哈希,或者在数据小时,包含数据本身,收到pre-prepare消息的预言机链下组件向网络中的其他预言机链下组件发送prepare消息,若任一收到2f+1个相同内容后,向需要该文件的链外客户端发送包含该内容的承诺信息。
更进一步地,分布式双向预言机的请求响应过程包括:作为请求者的链外客户端节点构建智能合约;
请求者将智能合约放到区块链平台上,作为不再更改的证明;
请求者将智能合约在区块链平台上的合约地址传给要调用的分布式双向预言机集合;
分布式双向预言机集合的分布式双向预言机根据合约地址查看合约后,首先验证作为请求者的链外客户端节点是否属于对智能合约指定资源具有访问权限的集合,有则通过验证,分布式双向预言机响应请求者调用,无则结束调用。
更进一步地,分布式双向预言机响应过程包括:
参与响应的分布式双向预言机根据智能合约指定的数据,判断数据共享模式;
如果数据共享模式为请求/响应,则分布式双向预言机直接向资源管理者请求获取智能合约指定的数据,并将获取到的数据发送给请求者所在的集合,完成后使用数据默克尔哈希值作为任务凭证,并且将任务凭证发送给请求者;
如果数据共享模式为发布/订阅,则分布式双向预言机持续向资源管理者请求获取智能合约指定的数据,并将获取到的数据持续更新至请求者所在的集合,每完成一次数据共享就将构建的任务凭证发送给请求者,直到智能合约指定数据被完全获取,或者任一方结束合作;
请求者收到任务凭证后,对任务凭证进行验证,首先查询对应TARGET字段,验证数据存在并且符合要求后,计算数据默克尔哈希并与HASH字段比对,相同则通过验证,作为数据在传输过程中未经篡改的依据;
请求者主动向所在集合同步更新自己的数据库,即可完成数据获取;集合中其他链外客户端节点在获取数据后,按照对应智能合约和分布式双向预言机签名,查找到数据的任务凭证,在本地验证;
如果智能合约规定的任务已经全部完成,响应过程结束。
更进一步地,所述数据的推出包括:链外客户端的预言机链下组件的监听器追踪区块链上文件的发展,当监听到文件内容被更改时,分布式双向预言机收集新的链接映射和更新信息,经共识后同步给订阅该文件的链外客户端。
本发明实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请公开了一种分布式双向预言机,实现了输入预言机和输出预言机的结合,支持异构系统与区块链之间的双向频繁的数据交互和协作,具备可靠的数据传输和处理机制。通过预言机链下组件和预言机链上组件的配合,实现了数据的存储、更新和检索,保障了数据的完整性和一致性,提升了分布式计算和区块链应用的效率和可靠性。实现了预言机的去中心化,无需具有公信力的平台提供信誉背书,采用分布式的共识来保证操作的可靠性,适用的范围更加广泛。
本申请还提供一种应用分布式双向预言机的区块链系统,所述区块链系统基于所述分布式双向预言机实现数据的推入、数据的拉出和数据的推出,从而实现异构系统与区块链平台之间的双向频繁的数据交互和协作。在数据推入过程中,分布式双向预言机利用分布的预言机链下组件对要推入的数据进行共识之后,向预言机链上组件做出承诺,预言机链上组件才进行数据的存储。保证上链数据的可靠性、安全性。在数据的拉出过程中,区块链提供给链外客户端的文件同样经过分布式预言机链下组件共识确认后,向需要文件的链外客户端做出承诺,链外客户端采从区块链上获取文件。保证下链数据的可靠和安全。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种分布式双向预言机的示意图;
图2为本发明实施例提供的区块链系统的示意图;
图3为本发明实施例提供的区块链系统的详细示意图;
图4为本发明实施例提供的数据推入的流程图;
图5为本发明实施例提供的数据拉出的流程图;
图6为本发明实施例提供的请求分布式双向预言机的流程图;
图7为本发明实施例提供的分布式双向预言机响应的流程图;
图8为本发明实施例提供的数据推出的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者装置中还存在另外的相同要素。
为支持异构系统与区块链之间的交互,本发明提供一种分布式双向预言机。
如图1所示,所述分布式双向预言机包括:预言机链上组件与预言机链下组件。
其中:所述预言机链下组件包括:接口层、任务层和共识层。所述接口层提供面向链内和链外两类数据源的接口,面向链外的接口包含链外传送器,面向链内的接口包含链上检索器与链上传送器。
所述任务层包括监听器与控制器。
所述共识层设有PBFT共识,通过共识层能够与其他预言机链下组件进行数据的沟通和统一,以免给链外客户端不实消息,保证了本发明的可靠性。
所述预言机链上组件包括:用于与所述预言机链下组件沟通的链下接口以及进行数据处理与计算组件;所述预言机链上组件的计算组件通过变色龙哈希实现链上文件的维护更新,保持数据点完整性。
面向链外的链外传送器支持与链外设备通信,面向链内的链上检索器和链上传送器支持与链下接口通讯。
所述监听器利用链外传送器监听配置预言机链下组件的节点的本地针对文件的存储和或查询行为,所述监听器利用预言机链上组件的链下接口和配合链下接口的预言机链下组件的接口层监听链上文件更新行为。所述控制器根据所述监听器监听到的行为控制所述预言机链下组件来实现文件处理、文件传输、文件查询的过程。
实施例2
结合参阅图2和图3所示,本发明实施例提供一种区块链系统,应用所述分布式双向预言机,包括:
链外存储网络,包括:多个存储节点,每个存储节点通过网络协议提供服务。
支持预言机链上组件的区块链平台,所述区块链平台配置预言机链上组件,所述区块链平台配置有IPFS存储系统。
配置有预言机链下组件的多个链外客户端。
链外客户端和区块链平台部署的分布式双向预言机配合实现数据推入、数据的拉出和数据的推出。
其中为了和区块链对接,如图2所示,链外客户端配置身份组件、证明组件和传输组件。所述身份组件生成外部账户,保存相应的公私钥对,所述公钥对用以生成外部账户地址Address并签署交易。所述证明组件用于数据验证、对数据进行编码、计算文件哈希。具体的,链外文件的完整性证明借助默克尔哈希算法,通过默克尔哈希算法计算文件F的默克尔哈希充当文件F的标识符。所述证明组件计算文件的默克尔哈希。所述传输组件用于与链外传送器交互,通过链上检索器和链上传送器向从链上检索数据和链上分发数据。所述传输组件支持链下数据分发,即与链外存储网络进行数据通信。
所述预言机链上组件配置在区块链平台专门指定的链内节点上,具体的,所述预言机链上组件的计算组件通过变色龙哈希实现链上文件的维护更新,保持数据点完整性。
为清楚的说明本申请区块链系统所实现的功能,首先对功能涉及到的映射、元数据进行说明:
针对文件F的元数据,预言机链上组件为其分配一个记录标识符RID,并将RID分配给文件F的默克尔哈希,即产生默克尔哈希到RID到元数据的映射。
链外客户端节点n发起文件F的传输时,会产生如下映射:F,n→(Scheme,URI),其中,Scheme为文件存储所使用的方案,并且它产生一个代表单个URI的元组。Scheme限定了本URI使用的范围,比如某个文件在git内存储。而若多个文件F可以依照逻辑划为一组时,多个文件F的URI元组的集合可以被表示为一个URI_Set。
文件处理过程中,除了文件本身外,还会涉及到文件相关信息,通过元数据来标识文件的相关信息,本发明通过身份元数据和存储元数据两种元数据来标识文件的相关信息。其中,身份元数据包含与区块链联系的外部地址Address和用户标识UID,即:MetaUser=(Address,UID),UID是一个特定格式的标准化标识符,适用于网络参与者的全球识别。存储元数据包括时间戳,链外存储网络的URI或URI_Set,以及文件信息Info,表示为MetaFile=(Timestamp,URI_Set,Info)。
就每次的文件存储,链外客户端节点需要发出一个声明,证明存储人的身份和文件信息。所述声明的内容为元数据,包括:身份元数据和存储元数据,即,Metadata=(MetaUser,MetaFile),声明在链外客户端节点本地生成,并根据链上返回的信息添加哈希存储块高到存储元数据。具体的,所述链外客户端节点的身份组件生成外部账户,保存相应的公私钥对,所述公钥对用以生成外部账户地址Address,利用Address和UID形成身份元数据,链外客户端节点利用发起文件F传输时生成的映射:F,n→(Scheme,URI)获取URI或URI_Set构建存储元数据。
在链下,对文件的调用是基于资源链接,而链上文件的维护是通过变色龙哈希,为了支持链下检索链上文件,本发明将资源链接与链上维护文件用的变色龙哈希建立映射关系,包括:将资源链接与默克尔哈希、历史默克尔哈希和上传文件节点的地址Address建立映射。随着时间的推移文件的变动,文件会产生一系列历史版本,即会对应有历史默克尔哈希,建立资源链接与历史默克尔哈希的映射,以支持对历史版本的访问。将上链的文件的每个默克尔哈希和历史默克尔哈希分别对应变色龙哈希来建立映射,以默克尔哈希和历史默克尔哈希为中介,实现资源链接与链上变色龙哈希之间的映射。
链外数据通过数据推入操作存储在区块链上,所述数据推入包括:
S1,外部账户所在链外客户端存储数据的同时,预言机链下组件的监听器监听到存储行为,向区块链平台发送存储申请。链外客户端通过身份组件创建外部账户,并生成相应的公私钥对,用于生成交易签名和外部账户地址Address。链外客户端准备证明组件和传输组件。所述监听器配置定时器,所述定时器在数据推入过程中计时。在存储过程中链外客户端端的证明组件对文件进行编码、默克尔哈希计算并生成声明。
S2,在向区块链平台发送存储申请的同时,链外客户端向其他预言机链下组件广播需上链的内容。
S3,将存储数据过程中验证通过的数据、默克尔哈希和数据的元数据一并发送到区块链上。
S4,预言机链上组件收到数据、默克尔哈希和元数据后,计算组件对数据的默克尔哈希值进行计算并验证,如果验证数据完整,则执行S5,否则执行S6。
S5,预言机链上组件向所有预言机链下组件广播洪泛存储请求,其他预言机链下组件利用共识层基于广播洪泛共同监督数据存储。
S6,发起数据推入的链外客户端的预言机链下组件未收到验证完整的广播,重新申请。
S7,分布式预言机链下组件通过共识层对上链数据进行承诺保证,预言机链上组件收到分布式预言机链下组件承诺信息后进行数据存储。收到存储请求的链上组件将向满足权限要求的预言机链下组件广播pre-prepare消息,收到pre-prepare消息的预言机链下组件向网络其他预言机链下组件发送prepare消息,pre-prepare消息和prepare消息包括文件的默克尔哈希用作验证。若任一预言机链下组件收到2f+1个相同内容后,向链上发送承诺信息与文件的默克尔哈希值。预言机链上组件对数据处理时,若有至少2f+1个与本次数据相对应的哈希值,则进行文件的存储。
S8,判断存储数据是否成功,成功则执行S9。
S9,预言机链上组件的计算组件生成数据对应的变色龙哈希,预言机链上组件向所有预言机链下组件广播成功消息,并提供文件的变色龙哈希。
S10,检测成功消息反馈是否超时,是则执行S11。成功消息的反馈超时由全部的收到广播洪泛的预言机链下组件的定时器监督。
S11,所有参与监督的预言机链下组件均能询问并重复存储请求。
在存储成功后,链外客户端在区块链上创建一个链接映射,该链接映射用于验证和检索数据。
具体实施过程中,参阅图5所示,所述数据的拉出遵从响应请求方式,包括:
链外客户端于自身所在链外系统请求一个文件;若该文件之前在区块链内存储过,则区块链上会存储文件的链接映射。链外客户端调用分布式双向预言机,在验证权限和分布式预言机链下组件共识承诺后从区块链上获取该文件的默克尔哈希和变色龙哈希;链外客户端证明组件比对从链外系统获取的文件默克尔哈希和从链上获取的默克尔哈希是否相同,如果相同则证明文件完整可靠可以继续安心访问;若两个默克尔哈希值不同,则再次调用分布式双向预言机,同样经过共识从区块链上获取文件以及元数据。具体的,共识承诺过程包括:预言机链上组件向满足权限要求的分布式的预言机链下组件广播包含验证文件或文件的pre-prepare消息,收到pre-prepare消息的预言机链下组件向网络中的其他预言机链下组件发送prepare消息,若任一收到2f+1个相同内容后,向需要该文件的链外客户端发送包含该内容的承诺信息。因此链外客户端可以获得一个安全数量的承诺信息,保证了数据的可靠。
从映射关系方面,对链外客户端文件的检索和验证过程进行说明:
链外客户端利用传输组件配合预言机链下组件的链外传送器与预言机链下组件通讯,利用预言机链下组件的链上检索器进行链上检索时,通过资源链接和资源链接与默克尔哈希之间的映射确定文件的默克尔哈希。
如果要检索文件的元数据,则根据文件的默克尔哈希与记录标识符RID之间的映射找到链上对应文件默克尔哈希的RID,进而基于RID与元数据之间的映射找到相应的声明记录。利用预言机链上组件的接口将声明记录经预言机链下组件返回给链外客户端。
如果要检索文件本身,则根据文件的默克尔哈希与变色龙哈希之间的映射找到链上文件的变色龙哈希,利用变色龙哈希从区块链的IPFS文件系统中找到文件,并利用预言机链上组件的链下接口将文件经预言机链下组件返回链外客户端。
链外客户端调取文件时,链外客户端从链外存储网络获取文件,链外客户端配置的证明组件计算文件的默克尔哈希,并将计算的默克尔哈希与从链上获取的相应默克尔哈希进行对比,验证文件的完整性,验证文件的完整性通过,则说明从链外存储网络获取的文件未经篡改,获取的文件可用。若验证文件的完整性未通过,则说明文件被篡改,找到链上相应文件的变色龙哈希,通过变色龙哈希定位链上相应文件位置,并通过分布式双向预言机执行数据拉出功能,将文件传给链外客户端。
具体实施过程中,参阅图6所示,所述分布式双向预言机的请求过程包括:
作为请求者的链外客户端节点构建智能合约。
请求者将智能合约放到区块链平台上,作为不再更改的证明;具体的,请求者的所述预言机链下组件接口层的链上传送器将智能合约发送到区块链平台上,请求者的所述预言机链下组件的共识层基于PBFT共识与其他预言机链下组件进行沟通与统一。智能合约的上传通过数据推入实现,确保智能合约的可靠。
请求者将智能合约在区块链平台上的智能合约地址传给要调用的分布式双向预言机集合中的一个;具体实施过程中,区块链平台的预言机链上组件的链下接口通过区块链界面接收智能合约地址并经预言机链下组件的发送给请求者,请求者将智能合约地址发送给调用的分布式双向预言机集合中的一个。
该分布式双向预言机根据智能合约地址查看智能合约后,首先验证作为请求者的链外客户端节点是否属于对智能合约指定资源具有访问权限的集合,有则通过验证,分布式双向预言机响应请求者调用,无则结束调用。具体实施过程中,该分布式双向预言机通过预言机链下组件任务层的监听器监听请求者所属集合信息,并通过任务层的控制器对请求者进行验证。
具体实施过程中,参阅图7所示,分布式双向预言机响应过程包括:
参与响应的分布式双向预言机根据智能合约指定的数据,判断数据共享模式;参与响应的分布式双向预言机的预言机链下组件任务层的控制器对智能合约中的数据共享模式进行判断。
如果数据共享模式为请求/响应,则分布式双向预言机直接向资源管理者请求获取智能合约指定的数据。并将获取到的数据发送给请求者所在的集合,完成后使用数据默克尔哈希值作为任务凭证,并且将任务凭证发送给请求者;具体的,预言机链上组件的链下接口向资源管理者发起请求获取智能合约指定数据,预言机链上组件的数据处理组件将获取到的数据发送给请求者所在集合,预言机链上组件的计算组件生成数据的默克尔哈希值作为任务凭证,并经预言机链上组件的链下接口将任务凭证发送给请求者。
如果数据共享模式为发布/订阅,则分布式双向预言机持续向资源管理者请求获取智能合约指定的数据,并将获取到的数据持续更新至请求者所在的集合,每完成一次数据共享就将构建的任务凭证发送给请求者,直到智能合约指定数据被完全获取,或者任一方结束合作;具体的,预言机链上组件的链下接口持续向资源管理者发起请求获取智能合约指定数据,预言机链上组件的数据处理组件持续将获取到的数据发送给请求者所在集合,每完成一次数据共享预言机链上组件的计算组件生成数据的默克尔哈希值作为任务凭证,并经预言机链上组件的链下接口将任务凭证发送给请求者。
请求者收到任务凭证后,对任务凭证进行验证,首先查询对应TARGET字段,验证数据存在并且符合要求后,计算数据默克尔哈希并与HASH字段比对,相同则通过验证,作为数据在传输过程中未经篡改的依据;请求者主动向所在集合同步更新自己的数据库,即可完成数据获取;集合中其他链外客户端节点在获取数据后,按照对应智能合约和分布式双向预言机签名,查找到数据的任务凭证,在本地验证;如果智能合约规定的任务已经全部完成,响应过程结束。
具体实施过程中,参阅图8所示,数据的推出发生在触发指定的文件更新或读取事件时,所述数据的推出包括:
链外客户端的预言机链下组件的监听器通过追踪订阅的文件的变化来检测是否发生文件更新或读取事件。当与某个链外客户端相关的文件被更新,或特殊文件被读取时,触发设定的文件更新或读取事件。
检测到发生文件更新或读取事件后,分布式双向预言机收集新的链接映射和更新信息,经预言机链下组件的共识层对收集到的新的链接映射和更新信息共识承诺后同步给订阅该文件的链外客户端,具体的,预言机链下组件使用传输组件将新的链接映射和更新信息传递给订阅的链外客户端所在的链外系统,实现新的链接映射和更新信息的同步。收到同步新的链接映射和更新信息的订阅节点更新本地连接映射或/和执行指定操作。共识承诺过程与数据拉出的共识承诺过程一致。
在本发明所提供的实施例中,应该理解到,所揭露的结构和方法,可以通过其它的方式实现。例如,以上所描述的结构实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,结构或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种分布式双向预言机,用于支持异构系统与区块链之间的交互,其特征在于,包括:预言机链下组件和预言机链上组件,其中:
所述预言机链下组件包括:接口层、任务层和共识层;所述接口层包含:面向链外的链外传送器、面向链内的链上检索器和链上传送器;所述任务层包括监听器与控制器,所述共识层实现与其他预言机链下组件的PBRT共识;
所述预言机链上组件包括:用于与所述预言机链下组件沟通的链下接口以及进行数据处理与计算组件;面向链外的链外传送器支持与链外设备通信,面向链内的链上检索器和链上传送器支持与链下接口通讯。
2.根据权利要求1所述的分布式双向预言机,其特征在于,所述监听器利用链外传送器监听配置预言机链下组件的节点的本地针对文件的存储和或查询行为,所述监听器利用预言机链上组件的链下接口和配合链下接口的预言机链下组件的接口层监听链上文件更新行为。
3.根据权利要求1所述的分布式双向预言机,其特征在于,所述控制器根据所述监听器监听到的行为控制所述预言机链下组件来实现文件处理、文件传输、文件查询的过程。
4.根据权利要求1所述的分布式双向预言机,其特征在于,所述预言机链上组件的计算组件通过变色龙哈希实现链上文件的维护更新,保持数据点完整性。
5.一种区块链系统,应用如权利要求1-4任一所述的分布式双向预言机,其特征在于,包括:
链外存储网络,包括:多个存储节点,每个存储节点通过网络协议提供服务;
支持预言机链上组件的区块链平台,所述区块链平台配置预言机链上组件,所述区块链平台配置有IPFS存储系统;
配置有预言机链下组件的多个链外客户端;
链外客户端和区块链平台部署的分布式双向预言机配合实现数据推入、数据的拉出和数据的推出。
6.根据权利要求5所述的区块链系统,其特征在于,链外数据通过数据推入操作存储在区块链上,所述数据推入包括:
链外客户端通过身份组件创建外部账户,外部账户所在链外客户端存储数据的同时,预言机链下组件的监听器监听到存储行为,向区块链平台发送存储申请,验证通过的数据和数据的元数据一并发送到区块链上;预言机链上组件收到数据和元数据后,计算组件对数据的哈希值进行验证,如果验证数据完整,则向所有预言机链下组件广播洪泛,其他预言机链下组件共同监督数据存储;若发起的链外客户端的预言机链下组件未收到广播,则重新申请;预言机链上组件进行数据存储;收到存储请求的链上组件将向满足权限要求的预言机链下组件广播pre-prepare消息,收到pre-prepare消息的预言机链下组件向网络预言机链下组件发送prepare消息,pre-prepare消息和prepare消息包括文件的默克尔哈希用作验证,若任一预言机链下组件收到2f+1个相同内容后,向链上发送承诺信息与文件的默克尔哈希值;预言机链上组件对数据处理时,若有至少2f+1个与本次数据相对应的哈希值,则进行文件的存储;若预言机链上组件的计算组件存储数据成功,则向所有预言机链下组件广播成功消息;若成功消息反馈超时,所有预言机链下组件均能询问并重复存储请求。
7.根据权利要求5所述的区块链系统,其特征在于,所述数据的拉出遵从响应请求方式,包括:
链外客户端节点给出在区块链上搜索相关元数据或原文件的请求;
链外客户端于自身所在链外系统请求一个文件,若该文件之前在区块链内存储过,则区块链上会存储文件的链接映射;链外客户端调用分布式双向预言机,在验证权限后从区块链上获取该文件的默克尔哈希和变色龙哈希;
经过共识后,链外客户端从区块链上获得正确的验证文件,客户端证明组件比对从链外系统获取的文件默克尔哈希和从链上获取的默克尔哈希是否相同,如果相同则证明文件完整可以继续安心访问;若两个默克尔哈希值不同,则再次调用分布式双向预言机,同样经过共识从区块链上获取文件以及元数据;其中共识过程包括:预言机链上组件向满足权限要求的分布式的预言机链下组件广播pre-prepare消息,其中在数据大时,包含相应数据的默克尔哈希,或者在数据小时,包含数据本身,收到pre-prepare消息的预言机链下组件向网络中的其他预言机链下组件发送prepare消息,若任一收到2f+1个相同内容后,向需要该文件的链外客户端发送包含该内容的承诺信息。
8.根据权利要求7所述的区块链系统,其特征在于,分布式双向预言机的请求响应过程包括:作为请求者的链外客户端节点构建智能合约;
请求者将智能合约放到区块链平台上,作为不再更改的证明;
请求者将智能合约在区块链平台上的合约地址传给要调用的分布式双向预言机集合;
分布式双向预言机集合的分布式双向预言机根据合约地址查看合约后,首先验证作为请求者的链外客户端节点是否属于对智能合约指定资源具有访问权限的集合,有则通过验证,分布式双向预言机响应请求者调用,无则结束调用。
9.根据权利要求7所述的区块链系统,其特征在于,分布式双向预言机响应过程包括:
参与响应的分布式双向预言机根据智能合约指定的数据,判断数据共享模式;
如果数据共享模式为请求/响应,则分布式双向预言机直接向资源管理者请求获取智能合约指定的数据,并将获取到的数据发送给请求者所在的集合,完成后使用数据默克尔哈希值作为任务凭证,并且将任务凭证发送给请求者;
如果数据共享模式为发布/订阅,则分布式双向预言机持续向资源管理者请求获取智能合约指定的数据,并将获取到的数据持续更新至请求者所在的集合,每完成一次数据共享就将构建的任务凭证发送给请求者,直到智能合约指定数据被完全获取,或者任一方结束合作;
请求者收到任务凭证后,对任务凭证进行验证,首先查询对应TARGET字段,验证数据存在并且符合要求后,计算数据默克尔哈希并与HASH字段比对,相同则通过验证,作为数据在传输过程中未经篡改的依据;
请求者主动向所在集合同步更新自己的数据库,即可完成数据获取;集合中其他链外客户端节点在获取数据后,按照对应智能合约和分布式双向预言机签名,查找到数据的任务凭证,在本地验证;
如果智能合约规定的任务已经全部完成,响应过程结束。
10.根据权利要求5所述的区块链系统,其特征在于,所述数据的推出包括:链外客户端的预言机链下组件的监听器通过追踪订阅的文件的变化来检测是否发生文件更新或读取事件,检测到发生文件更新或读取事件后,分布式双向预言机收集新的链接映射和更新信息,经预言机链下组件的共识层对收集到的新的链接映射和更新信息共识后同步给订阅该文件的链外客户端。
CN202310695764.6A 2023-06-13 2023-06-13 一种分布式双向预言机和区块链系统 Active CN116684430B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310695764.6A CN116684430B (zh) 2023-06-13 2023-06-13 一种分布式双向预言机和区块链系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310695764.6A CN116684430B (zh) 2023-06-13 2023-06-13 一种分布式双向预言机和区块链系统

Publications (2)

Publication Number Publication Date
CN116684430A true CN116684430A (zh) 2023-09-01
CN116684430B CN116684430B (zh) 2024-03-08

Family

ID=87788793

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310695764.6A Active CN116684430B (zh) 2023-06-13 2023-06-13 一种分布式双向预言机和区块链系统

Country Status (1)

Country Link
CN (1) CN116684430B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111176668A (zh) * 2019-12-30 2020-05-19 支付宝(杭州)信息技术有限公司 预言机部署方法、装置、电子设备及存储介质
CN112016105A (zh) * 2020-08-17 2020-12-01 东北大学秦皇岛分校 基于分布式预言机和同态加密的链上链下数据共享方案
CN112948900A (zh) * 2021-03-31 2021-06-11 工银科技有限公司 应用于区块链系统的链下数据获取方法和装置
CN113064898A (zh) * 2021-04-06 2021-07-02 北京瑞卓喜投科技发展有限公司 一种基于链上合约微型索引的检索方法、装置和电子设备
CN114428978A (zh) * 2021-12-06 2022-05-03 南京理工大学 基于计算预言机的工业互联网区块链可信计算架构及方法
CN114493865A (zh) * 2022-01-06 2022-05-13 北京邮电大学 基于区块链的去中心化互联网协同系统和数据交互方法
CN114818001A (zh) * 2021-01-22 2022-07-29 重庆金窝窝网络科技有限公司 一种数据处理方法、装置及介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111176668A (zh) * 2019-12-30 2020-05-19 支付宝(杭州)信息技术有限公司 预言机部署方法、装置、电子设备及存储介质
CN112016105A (zh) * 2020-08-17 2020-12-01 东北大学秦皇岛分校 基于分布式预言机和同态加密的链上链下数据共享方案
CN114818001A (zh) * 2021-01-22 2022-07-29 重庆金窝窝网络科技有限公司 一种数据处理方法、装置及介质
CN112948900A (zh) * 2021-03-31 2021-06-11 工银科技有限公司 应用于区块链系统的链下数据获取方法和装置
CN113064898A (zh) * 2021-04-06 2021-07-02 北京瑞卓喜投科技发展有限公司 一种基于链上合约微型索引的检索方法、装置和电子设备
CN114428978A (zh) * 2021-12-06 2022-05-03 南京理工大学 基于计算预言机的工业互联网区块链可信计算架构及方法
CN114493865A (zh) * 2022-01-06 2022-05-13 北京邮电大学 基于区块链的去中心化互联网协同系统和数据交互方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
翟社平;杨媛媛;张海燕;赵江明;: "区块链中的隐私保护技术", 西安邮电大学学报, no. 05 *
郭叶斌;徐欣;: "基于区块链的加密云存储平台模型研究", 软件导刊, no. 01 *

Also Published As

Publication number Publication date
CN116684430B (zh) 2024-03-08

Similar Documents

Publication Publication Date Title
US20210240858A1 (en) System for protecting integrity of transaction data
US8725682B2 (en) Distribution and synchronization of digital objects
CN110599095B (zh) 基于区块链网络的危废处理方法及区块链网络的节点
CN110188563B (zh) 一种信任数据更新方法及装置
US11685283B2 (en) Transport-based energy allocation
CN112671580B (zh) 一种基于区块链技术的qar数据管理方法
CN111461723A (zh) 基于区块链的数据处理系统及方法、装置
CN110933187A (zh) 基于区块链共识加密机制的物联网数据传输系统
CN105247529A (zh) 在目录服务之间同步凭证散列
CN112417037A (zh) 一种工业领域分布式身份认证的区块链构建方法
CN113271311B (zh) 一种跨链网络中的数字身份管理方法及系统
CN112036886B (zh) 一种基于区块链的电力大数据交换方法及系统
CN110730081B (zh) 基于区块链网络的证书吊销方法、相关设备及介质
JP7434201B2 (ja) エネルギーの一部を提供するための輸送装置への無線通知
CN114493865A (zh) 基于区块链的去中心化互联网协同系统和数据交互方法
CN111988307A (zh) 基于区块链技术的建筑工程用工信息共享平台及操作方法
CN109947844B (zh) 一种基于医疗区块链的医疗数据管理系统
Chiasserini et al. Blockchain-based mobility verification of connected cars
US11756031B1 (en) Multicurrency blockchain platform and method of use
CN116684430B (zh) 一种分布式双向预言机和区块链系统
CN101888415A (zh) 对等网络用户信用系统
CN116827957A (zh) 基于多区块链的信息处理方法、装置、设备以及介质
CN115499454B (zh) 基于联盟中继链的农产品数据跨链共享方法
CN103269371A (zh) 一种基于Anycast的物联网DS查询方法及系统
CN111797166B (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
GR01 Patent grant
GR01 Patent grant