掌桥专利:专业的专利平台
掌桥专利
首页

一种面向多链数据关联性的高效溯源查询方法

文献发布时间:2023-06-19 11:57:35


一种面向多链数据关联性的高效溯源查询方法

技术领域

本发明涉及区块链技术领域,尤其涉及一种面向多链数据关联性的高效溯源查询方法。

背景技术

在多级供应链系统中有效地跟踪物品并验证其真实性是一项重要挑战。溯源查询一系列的保管信息或从一个实体转移到另一个实体的物流信息来确保物品的真实性,例如,追踪物品的真伪,汽车的零配件或艺术品的拍卖流转等。其中,在多级供应链中溯源查询处于不同链的物品信息,保证整个供应链溯源查询的高效性和结果的完整性尤为重要。

区块链是一个仅允许追加的系统,一旦将交易记录在区块链中就不能够删除该交易,以此保证系统的可靠性。区块链账本数据只会越来越大,而账本中不相关交易数据的增长对溯源查询特定交易的效率提出了挑战。随着共识算法的不断改进,系统TPS(Transaction Per Second,每秒所能够处理的事务量)在持续提高,所带来的系统数据存储开销也在激增。越来越多的交易数据存储在区块链中,这导致其中特定交易数据的关联性也会随之降低。用户需要在大量的低相关数据中进行查询,从而面临溯源查询效率低的问题。数据查询完整性也是多级供应链系统中的一个重要问题,因为数据分布在不同的区块链中变成各自独立的数据,难以保证跨链溯源查询返回了所有的查询结果。与分布式数据库不同,区块链处于不受信任的环境中,因此如何确保跨链交易溯源查询的完整性是一个重要挑战。

不同的区块链应用就像一个个孤岛,结构互不相同,信息互不相通,大大降低了不同链上数据信息的可用性。到目前为止,多链之间难以实现数据的溯源查询。链之间的通道,需要采用多重签名的方式对不同链资产转移进行验证并且无法保证跨链交易溯源查询的完整性。

现有技术中如公开号为CN109034833A的专利文献提出了一种产品追溯信息管理系统及方法,该专利采用“链上链下”协同机制来管理供应链信息。其方法主要是先利用“链下”子系统对产品供应链厂商的信息进行采集,对产品信息以及产品在供应链流动过程中所产生的信息进行记录。其次将所搜集的信息数据和验证证据等上传到基于区块链的“链上”子系统保存并管理。该专利首次解决了传统追溯系统面临的非授权篡改问题和信任链传递问题,提高了产品追溯系统的可信性,并保证了系统的灵活性和可扩展性。

然而,该系统目前只能实现通过“链上”子系统这条单链来实现数据溯源,而不能针对供应链系统中具有上下游关系的多链系统进行溯源查询。

现有技术中如公开号为CN108599963B的专利文献提出了一种基于区块链技术的检测数据溯源验证方法,其方法包括:1)对采集的检测数据进行序列化,并将序列化后的数据存储于区块链系统中;2)检测人员对数据进行具体的检测操作,并生成相应的报告,提供数据检测结果的标签;3)根据数据标签与区块链记录的数据状态确定检测数据的真实性和有效性;4)通过对标签中的数据进行检索,获取区块链中该数据的具体信息,并通过计算哈希值验证数据是否被篡改。该专利通过区块链技术的去中心化特性,通过对检测数据的序列化上链,利用数据标签以及哈希值快速对数据进行溯源验证,解决数据安全性的问题。

然而,该专利的局限之处在于,只能预先对检测数据进行序列化存储,对数据标签进行溯源查询时依次访问,无法快速实现数据的批量查询。现有方案在进行数据查询时,需要依次对每个链进行串行遍历,具有很低的链间溯源查询效率,因此设计一种可支持并行查询的系统结构对提升多链溯源查询效率非常重要。

此外,一方面由于对本领域技术人员的理解存在差异;另一方面由于申请人做出本发明时研究了大量文献和专利,但篇幅所限并未详细罗列所有的细节与内容,然而这绝非本发明不具备这些现有技术的特征,相反本发明已经具备现有技术的所有特征,而且申请人保留在背景技术中增加相关现有技术之权利。

发明内容

针对现有技术在不同区块链之间的低效信息溯源问题,本发明提供了一种面向多链数据关联性的高效溯源查询方法,通过多链数据关联性,实现相关数据所在区块链的快速定位以保证溯源查询的完整性,并在基于多链数据关联性的可插拔子区块链(PluggableSub Blockchain,PSB)的基础之上提出一种新型的系统关系区块链(System RelationshipBlockchain,SRB)以实现溯源查询的并行性。

为实现上述目的,按照本发明的第一方面,本发明提供了一种基于多链数据关联性的可插拔子区块链系统。针对跨链技术而言,主链与侧链/中继链的数据格式、数据结构并不统一,在数据交互和通信时,需要验证双方数据是否一致,以形成可识别的计算语言和可用的数据信息。系统的一致性包括每个子系统PSB链内事务的一致性、子系统之间的跨链引用事务的一致性以及跨链引用事务之间的一致性。

链内一致性由PSB的共识结果保证。跨链一致性需要确保跨链引用事务之间存在顺序关系,即区块链S1中的事务A和区块链S2中的事务B需要确保B在A之后执行。跨链间一致性,预先记录跨链行为的先后次序以确保系统的全局一致性,确保溯源查询的完整性。

链内一致性由每个PSB链系统的共识确定,而且由于PSB以块的形式组织事务,因此可以确保单个链中事务的一致性。链间交易需要由SRB进行存储并由相应的交易数据关联性确定跨链依赖。特定的交易行为将执行并记录在特定的PSB中。SRB中存储多链系统中的跨链交易和交易之间的依赖项,以确保跨链间的一致性。

按照交易数据操作的类型,进行基于PSB的多区块链基本操作。

优选地,对跨链交易进行读操作时,先通过跨链交易数据关联性对目标交易进行查询,再由目标交易所在链返回查询结果。

优选地,对某一交易进行多链跨链溯源时,先利用跨链交易数据关联性找到所有对应目标链,然后并行发出查询请求,再由目标链根据需查询的交易的键值对交易进行查询,最后返回查询结果。

优选地,当出现新的交易时,先在当前链确定是否存在前序交易,若不存在利用已经记录的跨链交易数据关联性确定该交易是否在其他链上存在依赖的交易。根据依赖关系和从其他链反馈的结果确定交易是否在链间一致。

按照本发明的第二方面,本发明提供了一种基于PSB的系统关系区块链SRB,所述系统中的子区块链作为SRB中的节点。

PSB在异步环境中执行交易,每个PSB中的时钟不会与其他区块链使用相同的时钟。因为交易将仅在每个PSB中发生,并且仅供应链交易的上下游可能涉及多个区块链。

为了便于描述,将每个PSB视为链状区块链,这些区块链结构可以与现有的区块链系统兼容。唯一需要考虑的问题是,在执行事务处理时,用户需要考虑后续的数据溯源请求。因此,需要确保交易的预引用关系是正确的,特别是当预引用交易出现在其他链时。

SRB需要存储所有的跨链相关交易,可以清楚地记录交易及其从属依赖关系,以快速获取交易数据的上游来源。区块链账本是一个仅递增数据结构,以哈希链的形式记录交易,其中每个块都包含一批交易。在现有的多链数据溯源系统中,批处理事务将丢失事务依赖信息。因此,在SRB中每个块都包含具有依赖关系的事务。SRB中的区块链账本由将发生的跨链交易组成。为了支持交易数据的溯源,需要将具有关联性的事务在跨链交易确认发生之前记录下来,以保证溯源查询相关交易的结果完整性。

整个系统旨在支持一组相互协作的分布式子区块链,每个子区块链都维护一组本地记录。分布式子区块链之间的公共交易将记录在专门的SRB区块链中,根据交易关联性实现多链数据依赖项的构建。每个PSB之间无需保证互相信任,并且可以在保证数据完整的前提下动态地加入或离开整个系统。

本申请提出了一种面向多链数据关联性的高效溯源查询方法,包括:识别要溯源查询的目标交易;基于跨链交易数据关联性找到所有对应的目标链;并行发出查询请求;目标链根据所述目标交易的键值进行查询,返回查询结果。

本申请还提出了一种面向多链数据关联性的高效溯源查询方法,包括:当第一节点需要进行溯源查询时,向基于分布式子区块链的系统关系区块链查询跨链引用交易;根据查询返回结果,在相关的分布式子区块链中的至少一个可插拔子区块链中查询每个链中存在的交易;通过系统关系区块链中记录的跨链交易依赖项,可在每个可插拔子区块链中并行执行此查询过程,返回查询结果。

根据一种优选实施方式,至少一个可插拔子区块链之间的公共交易记录由系统关系区块链进行存储并由相应的交易数据关联性确定跨链依赖,以此根据交易关联性实现跨链交易依赖项的构建。

根据一种优选实施方式,至少一个可插拔子区块链可动态地加入或退出系统关系区块链且不影响系统关系区块链中或可插拔子区块链中数据的完整。

根据一种优选实施方式,不同可插拔子区块链之间使用相同的数据依赖结构,以使得多子链之间的溯源查询可通过直接读取其他链的数据依赖来实现跨链查询。

根据一种优选实施方式,当出现新交易时,在当前链确定是否存在前序交易;若存在,记录交易;若不存在,利用已经记录的跨链交易数据关联性确定该交易是否在其他链上存在依赖的交易。

根据一种优选实施方式,在每个可插拔子区块链反馈查询结果后,第一节点根据之前保存的块头验证查询结果。

根据一种优选实施方式,第一节点根据依赖关系和从其他链反馈的查询结果来确定目标交易是否在链间一致。

根据一种优选实施方式,系统关系区块链在跨链交易确认发生之前将具有关联性的事务记录下来。

本申请还提出了一种面向多链数据关联性的高效溯源查询系统,其特征在于,包括系统关系区块链和至少一个可插拔子区块链,其中,至少一个可插拔子区块链作为系统关系区块链的节点且可动态地加入或退出系统关系区块链,和/或系统关系区块链中存储有各可插拔子区块链之间的跨链交易和交易之间的多链数据依赖项以使得所述高效溯源查询系统能够并行化地处理跨链查询,和/或不同可插拔子区块链之间使用相同的数据依赖结构。

总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:

(1)针对多区块链系统溯源查询的完整性和跨链查询效率低的问题,本发明提出一种具有数据关联性的区块链溯源查询方法,基于数据关联性的SRB区块链使得跨链查询能够并行化地处理,可以实现良好的查询性能。采用子区块链直接作为SRB的节点,相比于传统区块链的区块作为链的节点,子区块链可以实现动态加入退出,从而提升了整个系统的高可扩展性。

(2)本发明对底层的交易数据依赖结构进行统一,不同子区块链之间使用相同的数据依赖结构,因而,多链之间的溯源查询便可通过直接读取其他链的数据依赖实现跨链查询。不同于链式结构的串行化区块数据查询,这种跨链查询方式可以并行执行,提升溯源查询效率。同时,SRB存储了所有跨链交易和对应的依赖,保证多链溯源查询的完整性。

附图说明

图1是本发明提供的优选的多链数据依赖的简化示意图;

图2是本发明提供的优选的高效溯源查询方法的简化流程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,如下先对本申请中涉及的相关术语进行说明:

区块链(Blockchain),狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改的不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次区块链交易信息。通过区块链可以完整、“不可篡改”地记录价值转移(交易)的全过程。区块链的形成按照时间先后顺序进行连接,每一个参与共识形成的节点都有一份区块链信息的完整副本。区块链网络的核心是一种电子记录形式的账簿,其中每一个区块是账簿的一页,从第一页“链接”到最新一页,这些区块一旦被确认,几乎不能做修改操作,每个区块包含了当前一段时间内的所有交易信息和区块元数据。

区块(block),在典型的区块链系统中,数据以区块的方式产生和存储,每一个区块记录了一段时间内发生的所有交易信息。区块是指一种数据结构,其包含两部分:区块元数据和区块体。其中区块元数据记录的是区块的元数据信息,区块体记录的是从上一区块产生到此区块创建之间所发生的所有交易。区块体由一个个Transaction组成,即打包的交易,即存储在区块链中的实际数据。区块元数据包含区块大小、区块头和交易计数器三部分。其中,区块头包括上一区块的哈希值、本区块的哈希值、本区块的块高、时间戳等信息。区块头用于链接之前区块并且通过时间戳机制保证已有数据的完整性。区块体包括交易数据,比如区块链系统中的节点对该区块进行共识的过程中待处理的交易数据以及处理待处理的交易数据得到的交易结果。

新区块,新区块的产生需要得到全网多数(此数量取决于具体的共识机制)节点的认可,并向全网广播以实现全网同步,数据区块一旦生成则不能更改或删除。

交易(Transaction),是指账页中的一笔记录,用于确认一个事实,执行一段代码。

账簿(Ledger,或称账册),是由首尾相连的一组区块(或称一个账页)构成,记录交易和区块世界的状态。

双花问题(Double Spending),在区块链网络中,由于数据的可重复性,数字资产可能被再利用,例如,可以在同一数字资产上执行多个并行区块链交易(称为双花)。在一些情况下,如果多个并行区块链交易在同一数据上读取,则一旦第一并行区块链交易修改数据,其他并行区块链交易可能由于数据修改而失败(称为双花问题)。例如,假如链A已经完成了一笔从链A到链B的跨链交易,随后链A被黑客攻击发生了分叉,之前的跨链交易已经不在链A最长的那条链上了,那么之前转账的账户可以发起一笔双花攻击,再次给链B发送一笔跨链交易,这样链B就会再次释放相应代币,这样就造成了链A的一笔交易在链B上实现了两次释放,造成了双花。

节点,区块链网络中的每一个节点,就相当于存储所有区块数据的每一台电脑或者服务器终端,所有新区块的生产以及交易的验证与记账,并将其广播给全网同步,这些都由节点来完成。在区块链网络中,一个节点是指一个具有唯一身份的参与者,该节点具有一份完整的账本拷贝,具有参与区块链网络共识和账本维护的能力。节点也就是我们俗称的矿工,每个矿工的不同算力,决定了它能分配到多少记账权,收获多少奖励。

共识,是指让整个账本事务在网络中同步的过程。目前,对于区块链中的任一节点,该节点发生交易时,区块链中的每一个其他节点均对其进行共识。节点和节点之间,通过TCP(Transmission Control Protocol,传输控制协议)/IP(Internet protocol,网际协议)协议互相连接。

共识机制,是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。换而言之,区块链是分布式网络,区块信息或者交易信息需要通过网络广播传播给网络中的各个节点,网络节点如何对于广播的信息进行确认以及应该由哪一个区块进行记录的实现机制和原则就是共识机制。共识机制解决了区块链如何在分布式场景下达成一致性的问题。区块链能在众多节点达到一种较为平衡的状态也依赖于共识机制。

共识节点,可参与共识区块的节点,主要功能包括:将交易池内的交易打包成区块、执行交易、运行共识算法、并将达成共识的区块写入账本。区块链系统中的共识节点可以具有多种功能,比如,路由功能、交易功能、区块链功能和共识功能等。具体地说,区块链系统中的共识节点可以把其他共识节点传送过来的交易数据等信息传送给更多的节点以实现节点之间的通信;或者,区块链系统中的共识节点可以用于支持用户进行交易;或者,区块链系统中的共识节点可以用于记录历史上的所有交易;或者,区块链系统中的共识节点可以通过验证和记录交易生成区块链中的新区块。实际应用中,路由功能是区块链系统中的每个共识节点必须具有的功能,而其它功能可由本领域技术人员根据实际需要进行设置。区块链系统中的一个共识节点可以在一台物理机(服务器)上,且一个共识节点具体可以是指服务器中运行的一个进程或者一系列进程。

共识算法,区块链网络中的各个节点通过一种算法对一批交易进行确认,并确保所有节点对这批数据具有一致的确认结果,这种算法就是区块链的共识算法。目前常见的共识算法包括使用拜占庭容错共识算法(PBFT,Pr actical Byzantine Fault Tolerance)和副本容错共识算法(Raft,Replication and Fault Tolerant)。

跨链,一种支持数据或资产在多种区块链之间进行转移的技术,是区块链向外拓展和连接的桥梁。

多链,多链和跨链均是为提高区块链扩展性所提出的解决方案,多链即一个节点可以运行多条链,可理解为每条链都有自己独立的账本数据(即区块数据),不同链上的交易都是并行执行互不影响。

键值,区块链系统中包括应用层和底层数据存储系统,而底层数据存储系统所采用的底层数据存储技术有多种,其中比较广泛采用的一种就是键值对(Key-Value,简称KV)存储系统。区块链系统在执行完一笔交易后一般以Key-Value的形式保存到数据库中。本申请中提及的键值可以是指Key-Valu e分布式存储形式的数据。

交易,在区块链中,任何操作(部署合约、调用合约接口等)都是通过发送交易的方式进行。交易由用户发起,并通过客户端发送至区块链节点。区块链节点在收到交易后,会将交易打包为区块并执行。交易发生在不同区块链网络之间的称为跨链交易,例如交易由母链中的节点发起,交易的对象是公链中的节点,或者交易由一个母链发起,交易的对象是另一个母链。

观察节点(observer node),不参与共识出区块的投票,共识节点参与共识出块和交易/区块同步,观察节点只参与区块同步。共识节点负责从共识节点或副本节点获取最新区块,执行并验证区块执行结果后,将产生的区块上链。

以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

为实现一个具有可扩展性并支持跨链高效溯源查询的区块链系统,本发明首先提出以下的多链数据关联性的结构设计:

(1)多级供应链系统能够支持可插拔的子区块链PSB,子区块链中的区块以及交易并行化地加入到整个系统账本中,而不再是串行化地加入。可插拔的处理不仅有利于提升整个系统的可扩展性,也能够增强链之间交易的吞吐量。

(2)多链之间能够支持有效的并行溯源查询,溯源查询在子区块链PS B内部以及跨链中可以同时进行,包括查询某个交易是否被打包以及查询某个跨链交易是否已经被其他链所接收。

(3)在不同子区块链上实现统一的数据依赖结构,从而减少链与链之间溯源查询格式的转换,并且便于跨链交易直接保存在SRB中,不同链之间不再需要进行额外的数据转换。除此之外,统一的数据依赖结构也能提升链之间的可交互性,不同链之间不再需要进行数据结构的转换,链之间的数据依赖关系可实现更方便的共享。

根据上述所述的多链数据依赖结构,本发明提供一种基于多链数据关联性的高效溯源查询方法。

SRB的交易数据依赖结构在不同的PSB区块链中采用统一的数据结构,增强跨链溯源查询的可用性。由于跨链交易数据依赖项结构的统一,使得每条链的节点可以主动地向其他链请求跨链数据,从而实现通用的跨链交易查询。对于具体的依赖项格式,并不需要进行具体说明,原则上只需保持统一即可。

对于SRB,参与者是所有的PSB节点。PSB节点分为两种类型:共识节点和观察节点。

共识节点首先对将要发生的跨链交易达成共识并将其记录在SRB中,以确保跨链一致性和跨链间一致性。共识节点由需要请求跨链交易的节点构成。

共识节点对发生的交易进行达成共识,并将可能的跨链引用行为记录在SRB上,共识结果提供给观察节点。

观察节点接受共识节点达成的跨链参考共识,以验证当前事务是否具有跨链行为。观察节点由不参与跨链行为的节点构成。

当执行交易时,SRB中的节点首先验证当前交易中是否存在前序的交易。如果存在,记录交易。如果不存在,可能会发生两种情况。一种是该交易没有前序的交易,另一种是该交易的前序的交易可能出现在上游区块链中。这时,交易执行者将向SRB发送查询请求,以查找其他链中是否存在前序的事务。如果它不存在,则意味着该交易没有前序交易,因此可以安全地记录该交易。如果存在,则前序交易所在的区块链需要提供相关交易执行的证明。如果交易存在则执行事务,否则,拒绝事务。

如图1所示,每个PSB区块链之间的执行都是异步的,系统需要确保交易的一致性。由于已经在交易执行前确定了跨链交易规则,因此不会发生如隐藏跨链信息、多链双花等异常的跨链行为。对于每个PSB链内的基本交易,其执行仅存在于单个PSB中,并且可以通过本身的区块链共识机制来保证其可靠性。对于整个系统多区块链跨链行为,当交易无法进行时,其他节点可以通过系统的数据溯源机制找到有问题的节点,从而确保整个多链系统执行过程的容错性。

SRB需要记录跨链交易之间的关联。跨链交易的参与者来自不同的区块链,跨链交易之间的上下游关系对于跨链可追溯性的完整性非常重要。

跨链引用交易是在多个独立的区块链间发生的交易,但这些独立的区块链中的交易具有上游和下游依赖性。这些依赖项必须明确表示,并且它们不依赖于逻辑执行。隐性依赖类似于向同一账户的转移行为,仅当转账行为完成时,交易逻辑才是正确的。即使不按顺序执行,不同账户之间的转账顺序在逻辑上也是正确的。但是,在供应链中,必须明确确定不同参与者之间的交易执行关系,以确保记录的逻辑一致性。多链数据关联性可以是指上述交易执行关系。

为了保证多链溯源查询的完整性和可验证性,在执行特定交易之前,SR B中的共识节点首先需要确定将被跨链引用的交易,然后将交易记录在SRB区块链系统中。该过程类似于供应链中的下订单操作。尽管PSB系统相互之间存在许多非跨链行为,但仍然存在相互依赖的跨链交易。共识节点完成跨链依赖确认后,将结果发送给SRB的观察节点。根据跨链引用关系,观察节点监视与自己相关的跨链交易的区块链头部,以便在执行特定交易时验证前序交易,以确保跨链的一致性。

如图2所示,使用分而治之的思想在与目标关联的多个链上并行执行可追溯性查询操作,同时确保可追溯性查询事务的完整性。当节点需要进行溯源查询时,首先向SRB查询跨链引用交易,然后根据返回结果在相关的PS B中查询每个链中存在的交易。通过SRB中记录了跨链交易依赖项,可以在每个PSB中并行执行此查询过程。每个节点反馈查询结果后,溯源查询节点将根据之前保存的块头验证查询结果。

需要注意的是,上述具体实施例是示例性的,本领域技术人员可以在本发明公开内容的启发下想出各种解决方案,而这些解决方案也都属于本发明的公开范围并落入本发明的保护范围之内。本领域技术人员应该明白,本发明说明书及其附图均为说明性而并非构成对权利要求的限制。本发明的保护范围由权利要求及其等同物限定。本发明说明书包含多项发明构思,诸如“优选地”、“根据一个优选实施方式”或“可选地”均表示相应段落公开了一个独立的构思,申请人保留根据每项发明构思提出分案申请的权利。

相关技术
  • 一种面向多链数据关联性的高效溯源查询方法
  • 一种溯源信息上链、查询方法以及溯源设备
技术分类

06120113117246