一种基于层级区块链的供应链溯源方法及应用与流程

文档序号:23987940发布日期:2021-02-20 12:35阅读:75来源:国知局
一种基于层级区块链的供应链溯源方法及应用与流程

[0001]
本发明涉及区块链应用技术领域,具体涉及一种基于层级区块链的供应链溯源方法及应用。


背景技术:

[0002]
随着人们对产品质量关注度的提高,供应链的可追溯性逐渐成为人们关注的重点。供应链溯源的目的是为产品质量提供保障服务,在产品被发现存在质量问题时能够通过系统中记录的信息找出产品流通的责任方和定位到存在问题的具体的流通环节。
[0003]
供应链溯源系统中实际上包含了对物流和信息流两类信息的跟踪和追溯。在信息流的追溯方面,信息流追溯的主要目的是能够根据供应链的交易链条反向追溯到产品的源产地。对于消费者和监管方而言,产品交易信息的反向追溯也有不同的需求,主要体现在对交易链条交易信息的完整程度上。由于供应链中产品的流通渠道信息对供应商、批发商等供应链实体而言与利益直接相关,因此产品的具体的流动信息属于隐私数据,对于消费者而言只能追溯到源产地而不会提供详细的流通过程,但对于监管方而言,追溯需要完整且真实可靠的产品交易记录。
[0004]
而在交易数据的存储方面目前供应链中的实体大多采用中心化的erp系统进行数据管理,而使用中心化系统通常存在以下弊端:
[0005]
(1)系统出现单点错误时会导致数据的丢失;
[0006]
(2)数据仅由单方面控制时会存在人为篡改的风险,当需要实行追溯时难以验证产品的来源、数量等数据的真实性;
[0007]
(3)不同的erp系统间相互独立,对同一个交易数据的定义可能存在区别,而在追溯时需要花费额外的开销将数据重新串联到一起,数据量越大重新串联数据所花费的开销也就越大。
[0008]
鉴于上述的中心化系统的弊端严重阻碍了供应链溯源的实现,区块链技术的出现为实现更有效的供应链溯源带来了新的可能。区块链技术由于其数据透明、不可篡改、去中心化等特性被认为能够取代传统的中心化系统,提供真实可靠的数据提高供应链溯源的性能。
[0009]
区块链技术为供应链带来的优势主要在于交易数据的可信性和不可篡改性,但目前区块链技术在加密货币以外的应用研究仍处于初步阶段,目前少有研究从区块链节点网络结构的角度对供应链在区块链的应用中存在的问题进行分析。现有大多数区块链框架都是基于全连接网络结构构建,但供应链的实体网络结构不适用于全连接的区块链结构,在不对供应链业务进行结构调整的情况下应用于全连接结构的区块链会带来交易效率过低和数据过度冗余的问题。


技术实现要素:

[0010]
为了克服现有技术存在的缺陷与不足,本发明提供一种基于层级区块链的供应链
溯源方法,根据供应链的实体网络结构对区块链的节点网络进行重构,通过对具体业务逻辑进行分析,将供应链实体网络映射到区块链节点网络,以划分子网的方式重新构造有序的子网结构,达到简化共识流程,减少数据冗余的目的,同时相邻层级子网间保持了交易数据连续性,便于实现供应链反向溯源。
[0011]
本发明的第二目的在提供一种基于层级区块链的供应链溯源系统。
[0012]
本发明的第三目的在于提供一种计算设备。
[0013]
为了达到上述目的,本发明采用以下技术方案:
[0014]
一种基于层级区块链的供应链溯源方法,包括下述步骤:
[0015]
根据给定的具备单一商品流层次有序特性的供应链网络结构进行子网划分;
[0016]
根据供应链网络结构图,以节点交易业务对象关系对供应链网络中的节点进行角色划分,构建节点间的主从关系,划分为父节点与子节点,同时节点与区块链节点是一一对应的关系,对于任意两个相邻层级的子网,下级子网的子节点将作为上级子网的轻节点参与记录区块头信息;
[0017]
根据划分后的子网成员,父节点发起创世区块组建区块链;
[0018]
在区块链子网中,父节点根据所拥有的资产创建合法交易区块,构建完整交易结构、区块头和交易哈希树;
[0019]
父节点将交易区块发送给子网内其他子节点进行验证,进行共识流程;
[0020]
当前交易区块完成共识后,父节点将当前交易区块的区块头和完整交易哈希树发送给轻节点;
[0021]
根据各个节点中所存储的交易信息进行逐级子网的反向追溯。
[0022]
作为优选的技术方案,所述供应链网络结构图中任意具备出度的节点都能作为父节点,单个子网中只有一个父节点,且只有父节点发起交易,任意父节点的交易关系在供应链网络结构图中表示为有向线段,有向线段的箭头所指向的节点作为该父节点对应的子节点成员,子节点参与子网共识,对完整交易区块消息进行记录。
[0023]
作为优选的技术方案,所述父节点发起创世区块组建区块链,具体步骤包括:
[0024]
根据单个子网的成员组建区块链,父节点创建创世区块并向所有子节点广播;
[0025]
所有接收到父节点所发送的创世区块的子节点向父节点返回确认,并将创世区块记录在本地数据库中。
[0026]
作为优选的技术方案,所述父节点根据所拥有的资产创建合法交易区块,具体步骤包括:
[0027]
父节点创建交易时,取出多个该节点所拥有的交易输出结构作为新交易的输入;
[0028]
取出交易输入所属完整交易结构,将该交易结构中除了所需引用的输出结构外的其他所有输出置为哈希零值,计算该交易哈希值并使用ecdsa算法对哈希值签名,将签名摘要写入新的交易输入结构中;
[0029]
将对应的交易输入和交易输入写入交易中,构建完整交易结构;
[0030]
将交易添加到新区块中,同时计算交易的哈希值,并根据当前区块所包含的交易列表构建merkle tree,得到merkle root的哈希值;
[0031]
向区块头中写入必要数据,构建区块头,所述必要数据包括merkle root、上一区块哈希值previoushash、子网号networkid和区块类型type;
[0032]
将区块头和交易列表封装进同一个消息中,将该消息输出为二进制字节流,等待消息发送。
[0033]
作为优选的技术方案,所述merkle tree的结构中任意节点哈希值计算方式如下:
[0034]
value
n
=hash(value
2n
+value
2n+1
),n≥0
[0035]
其中,value
n
表示当前计算的merkle树对应节点哈希值,value
2n
与value
2n+1
均表示子节点的哈希值。
[0036]
作为优选的技术方案,所述父节点将交易区块发送给子网内其他子节点进行验证,进行共识流程,具体步骤包括:
[0037]
父节点将交易区块消息发送给当前子网的所有子节点,并等待子节点回复;
[0038]
子节点接收到交易区块消息后根据当前交易区块中区块头所存信息在本地数据库中查找对应区块,若成功找到对应区块则进行各个交易验证,否则将当前交易区块挂起;
[0039]
子节点对交易区块中所包含的各个交易进行验证,交易的输入是否大于等于输出,若输入小于输出则继续进行验证,否则判定为非法交易,抛弃该区块并向父节点返回确认;
[0040]
子节点对交易区块中所包含的各个交易进行验证,交易中引用的各个输入是否已被其他交易使用,若未标记为已使用则继续进行验证,否则判定为非法交易,抛弃该区块并向父节点返回确认;
[0041]
子节点对交易区块中所包含的各个交易进行验证,交易中引用的各个输入签名是否合法,若签名验证合法则继续进行验证,否则判定为非法交易,抛弃该区块并向父节点返回确认;
[0042]
若子节点在所有交易验证步骤中均验证合法,则子节点向父节点返回交易区块验证合法消息;
[0043]
若父节点收到超过半数的子节点返回确认当前交易区块合法消息,则认定当前区块合法,否则判定当前交易区块为非法区块。
[0044]
作为优选的技术方案,所述父节点将当前交易区块的区块头和完整交易哈希树发送给轻节点,具体步骤包括:
[0045]
在当前交易区块经过共识流程认定合法后,父节点修改交易区块的区块类型,并将修改后的区块头和完整的merkle tree结构封装为区块消息;
[0046]
父节点将区块消息发送给当前子网的所有轻节点成员。
[0047]
作为优选的技术方案,所述根据各个节点中所存储的交易信息进行逐级子网的反向追溯,具体步骤包括:
[0048]
根据交易结构中的sender字段得到该交易的发起节点的公钥,并根据数据库中节点地址与公钥节点间的映射得到节点地址;
[0049]
根据节点地址找到相应节点,并根据交易输入中的txhash字段得到该引用输入所属交易,在相应节点中进行交易查询;
[0050]
重复上述步骤知道交易输入引用为哈希零值,此时表示交易引用输入来自链下,此时表明交易链条完整正确,否则认为交易链条不完整,交易数据遭到篡改。
[0051]
为了到达上述第二目的,本发明采用以下技术方案:
[0052]
一种基于层级区块链的供应链溯源系统,包括:子网划分模块、节点划分模块、区
块链组建模块、合法交易区块创建模块、验证及共识流程模块、发送模块和反向追溯模块;
[0053]
所述子网划分模块用于根据给定的具备单一商品流层次有序特性的供应链网络结构进行子网划分;
[0054]
所述节点划分模块用于根据供应链网络结构图,以节点交易业务对象关系对供应链网络中的节点进行角色划分,构建节点间的主从关系,划分为父节点与子节点,同时节点与区块链节点是一一对应的关系,对于任意两个相邻层级的子网,下级子网的子节点将作为上级子网的轻节点参与记录区块头信息;
[0055]
所述区块链组建模块用于根据划分后的子网成员,发起创世区块组建区块链;
[0056]
所述合法交易区块创建模块用于在区块链子网中,根据所拥有的资产创建合法交易区块,构建完整交易结构、区块头和交易哈希树;
[0057]
所述验证及共识流程模块用于将交易区块发送给子网内其他子节点进行验证,进行共识流程;
[0058]
所述发送模块用于在当前交易区块完成共识后,将当前交易区块的区块头和完整交易哈希树发送给轻节点;
[0059]
所述反向追溯模块用于根据各个节点中所存储的交易信息进行逐级子网的反向追溯。
[0060]
为了到达上述第三目的,本发明采用以下技术方案:
[0061]
一种计算设备,包括处理器和用于存储处理器可执行程序的存储器,所述处理器执行存储器存储的程序时,实现上述基于层级区块链的供应链溯源方法。
[0062]
本发明与现有技术相比,具有如下优点和有益效果:
[0063]
(1)本发明通过划分多个子网的方式,对比全连接结构的区块链在节点存储开销上有显著改善;
[0064]
(2)本发明通过确定单个子网中出块节点的方式能够简化共识流程,提高交易效率;
[0065]
(3)本发明的相邻层级的保持交易数据连续性,便于实现交易数据反向溯源。
附图说明
[0066]
图1为本实施例1基于层级区块链的供应链溯源方法的流程图;
[0067]
图2为本实施例1的子网划分示例图;
[0068]
图3为本实施例1的共识算法流程图。
具体实施方式
[0069]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0070]
实施例1
[0071]
如图1所示,本实施例提供一种基于层级区块链的供应链溯源方法,包括以下步骤:
[0072]
步骤s1:根据给定的具备单一商品流层次有序特性的供应链网络结构进行子网划
分;
[0073]
如图2所示,具体步骤包括:
[0074]
步骤s101:获取供应链网络结构,其中需要在单一商品流下的供应链网络结构能够构造为层次有序的结构;
[0075]
步骤s102:根据供应链网络结构所构成的图,以节点交易业务对象关系对供应链网络中的节点进行角色划分,构建节点间的主从关系,同时节点与区块链节点是一一对应的关系,图中任意具备出度的节点都能作为父节点,单个子网中只有一个父节点,且只有父节点能够发起交易;
[0076]
步骤s103:任意父节点的交易关系在图中表示为有向线段,有向线段的箭头所指向的节点作为该父节点对应的子节点成员,子节点参与子网共识,对完整交易区块消息进行记录,但在当前子网内无法发起交易;
[0077]
步骤s104:对于任意两个相邻层级的子网,下级子网的子节点将作为上级子网的轻节点参与记录区块头信息,在本实施例中,子节点用于验证和记录完整交易区块信息,轻节点仅记录区块头信息而不记录完整区块;
[0078]
步骤s2:根据划分后的子网成员,父节点发起创世区块组建区块链;
[0079]
具体步骤包括:
[0080]
步骤s201:根据单个子网的成员组建区块链,父节点创建创世区块并向所有子节点广播;
[0081]
步骤s202:所有接收到父节点所发送的创世区块的子节点向父节点返回确认,并将创世区块记录在本地数据库中;
[0082]
步骤s3:在区块链子网中,父节点根据所拥有的资产创建合法交易区块;
[0083]
具体步骤包括:
[0084]
步骤s301:父节点创建交易时,取出多个该节点所拥有的交易输出结构中作为新交易的输入,使得交易的输入大于等于输出;
[0085]
步骤s302:取出交易输入所属完整交易结构,将该交易结构中除了所需引用的输出结构外的其他所有输出置为哈希零值,计算该交易哈希值并使用ecdsa算法对哈希值签名,将签名摘要写入新的交易输入结构中;
[0086]
步骤s303:将对应的交易输入和交易输入写入交易中,构建完整交易结构;
[0087]
步骤s304:将交易添加到新区块中,同时计算交易的哈希值,并根据当前区块所包含的交易列表构建merkle tree,得到merkle root的哈希值;
[0088]
本实施例构建完整merkle tree结构,其中merkle tree结构中任意节点哈希值计算方式如下:
[0089]
value
n
=hash(value
2n
+value
2n+1
),n≥0
[0090]
其中,value
n
表示当前计算的merkle树对应节点哈希值,每个merkle树节点有两个子节点,value
2n
与value
2n+1
均表示子节点的哈希值。
[0091]
默克尔树merkle tree结构为二叉树结构,该结构自底向上构建,底部为当前区块中所包含的各个交易的哈希值,顶部哈希值为merkle root;
[0092]
步骤s305:向区块头中写入merkle root,上一区块哈希值previoushash,子网号networkid,区块类型type等必要数据,构建区块头;
[0093]
步骤s306:将区块头和交易列表封装进同一个消息中,将该消息输出为二进制字节流,等待消息发送;
[0094]
步骤s4:父节点将交易区块发送给子网内其他子节点进行验证,进行共识流程,在本实施例中,子网内父节点发起交易后使用共识算法对交易进行验证和记录,共识仅在父节点和子节点间进行;
[0095]
如图3所示,具体步骤包括:
[0096]
步骤s401:父节点将交易区块消息发送给当前子网的所有子节点,并等待子节点回复;
[0097]
步骤s402:子节点接收到交易区块消息后根据当前交易区块中区块头所存的previoushash在本地数据库中查找对应区块,若成功找到对应区块则进行下一步,否则将当前交易区块挂起;
[0098]
步骤s403:子节点对交易区块中所包含的各个交易进行验证,交易的输入是否大于等于输出,若输入小于输出则继续下一步,否则判定为非法交易,抛弃该区块并向父节点返回确认;
[0099]
步骤s404:子节点对交易区块中所包含的各个交易进行验证,交易中引用的各个输入是否已被其他交易使用,若未标记为已使用则继续下一步,否则判定为非法交易,抛弃该区块并向父节点返回确认;
[0100]
步骤s405:子节点对交易区块中所包含的各个交易进行验证,交易中引用的各个输入签名是否合法,若签名验证合法则继续下一步,否则判定为非法交易,抛弃该区块并向父节点返回确认;
[0101]
步骤s406:若子节点在上述所有交易验证步骤中均验证合法,则子节点向父节点返回交易区块验证合法消息;
[0102]
步骤s407:若父节点收到超过半数的子节点返回确认当前交易区块合法消息,则认定当前区块合法,否则将判定当前交易区块为非法区块;
[0103]
步骤s5:当前交易区块完成共识后,父节点将该交易区块的区块头和完整交易哈希树发送给轻节点;
[0104]
具体步骤包括:
[0105]
步骤s501:在当前交易区块经过共识流程认定合法后,父节点修改交易区块的区块类型,并将修改后的区块头和完整的merkle tree结构封装为区块消息;
[0106]
步骤s502:父节点将区块消息发送给当前子网的所有轻节点成员;
[0107]
步骤s6:根据各个节点中所存储的交易信息进行逐级子网的反向追溯;
[0108]
具体步骤包括:
[0109]
步骤s601:从任意节点中根据交易哈希值可查询得到交易的详细数据,根据交易结构中的sender字段可以得到该交易的发起节点的公钥,并进一步根据数据库中节点地址与公钥节点间的映射得到节点地址;
[0110]
步骤s602:根据节点地址找到相应节点,并根据交易输入中的txhash字段可以得到该引用输入所属交易,进一步在相应节点中进行交易查询;
[0111]
步骤s603:重复上述步骤知道交易输入引用为哈希零值,此时表示交易引用输入来自链下,其中链下含义为该数据来自外部输入,此时表明交易链条完整正确,否则认为交
易链条不完整,交易数据遭到篡改。
[0112]
实施例2
[0113]
本实施例提供一种基于层级区块链的供应链溯源系统,包括:子网划分模块、节点划分模块、区块链组建模块、合法交易区块创建模块、验证及共识流程模块、发送模块和反向追溯模块;
[0114]
在本实施例中,子网划分模块用于根据给定的具备单一商品流层次有序特性的供应链网络结构进行子网划分;
[0115]
在本实施例中,节点划分模块用于根据供应链网络结构图,以节点交易业务对象关系对供应链网络中的节点进行角色划分,构建节点间的主从关系,划分为父节点与子节点,同时节点与区块链节点是一一对应的关系,对于任意两个相邻层级的子网,下级子网的子节点将作为上级子网的轻节点参与记录区块头信息;
[0116]
在本实施例中,区块链组建模块用于根据划分后的子网成员,发起创世区块组建区块链;
[0117]
在本实施例中,合法交易区块创建模块用于在区块链子网中,根据所拥有的资产创建合法交易区块,构建完整交易结构、区块头和交易哈希树;
[0118]
在本实施例中,验证及共识流程模块用于将交易区块发送给子网内其他子节点进行验证,进行共识流程;
[0119]
在本实施例中,发送模块用于在当前交易区块完成共识后,将当前交易区块的区块头和完整交易哈希树发送给轻节点;
[0120]
在本实施例中,反向追溯模块用于根据各个节点中所存储的交易信息进行逐级子网的反向追溯。
[0121]
实施例3
[0122]
本实施例一种计算设备,所述的计算设备可以是台式电脑、笔记本电脑、智能手机、pda手持终端、平板电脑或其他具有显示功能的终端设备,该计算设备包括该计算设备包括处理器和存储器,存储器存储有一个或多个程序,处理器执行存储器存储的程序时,实现实施例1的基于层级区块链的供应链溯源方法。
[0123]
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1