本公开涉及区块链领域,特别是涉及一种区块链事务处理方法、相关装置和介质。
背景技术:
1、目前的区块链分层共识体系中,局部共识网络针对局部产生的事务进行明文区块链上链操作。但是,某些类型的事务出于安全性考量,不希望在区块链上以明文方式被第三方所知。因此,不希望在区块链上以明文方式公开的目标类型的事务,发送到目标共识网络中,记录到目标区块链上,目标区块链禁止目标共识网络外部访问。但是,正由于目标区块链禁止外部访问的特点,局部共识网络难以验证和查询。如何在不读取目标区块链信息的情况下进行可信任的上链结果交互,成为一个难题。
技术实现思路
1、本公开实施例提供了一种区块链事务处理方法、相关装置和介质,它能够在不读取目标区块链信息的情况下进行可信任的上链结果交互。
2、根据本公开的一方面,提供了一种区块链事务处理方法,所述区块链事务处理方法由目标共识网络执行,所述区块链事务处理方法包括:
3、从第一区块链的各第一区块中获取增加的第一目标区块,其中,所述第一区块由所述目标共识网络生成,用于记录来自局部共识网络的目标类型的第一事务,所述第一区块链禁止所述目标共识网络的外部进行访问;
4、从所述第一目标区块中获取第一目标事务和第一区块头;
5、获取与所述第一目标事务对应的第一验证信息;
6、基于所述第一目标事务、所述第一验证信息和所述第一区块头,进行所述第一目标事务的上链验证;
7、如果所述上链验证成功,获取所述第一目标事务的事务结果数据;
8、将所述事务结果数据发送到订阅节点,以供所述局部共识网络从所述订阅节点获取。
9、根据本公开的一方面,提供了一种区块链事务处理装置,所述区块链事务处理装置位于目标共识网络,所述区块链事务处理装置包括:
10、第一获取单元,用于从第一区块链的各第一区块中获取增加的第一目标区块,其中,所述第一区块由所述目标共识网络生成,用于记录来自局部共识网络的目标类型的第一事务,所述第一区块链禁止所述目标共识网络的外部进行访问;
11、第二获取单元,用于从所述第一目标区块中获取第一目标事务和第一区块头;
12、第三获取单元,用于获取与所述第一目标事务对应的第一验证信息;
13、上链验证单元,用于基于所述第一目标事务、所述第一验证信息和所述第一区块头,进行所述第一目标事务的上链验证;
14、第四获取单元,用于如果所述上链验证成功,获取所述第一目标事务的事务结果数据;
15、第一发送单元,用于将所述事务结果数据发送到订阅节点,以供所述局部共识网络从所述订阅节点获取。
16、可选地,所述上链验证包括第一子验证和第二子验证;
17、所述上链验证单元具体用于:
18、获取所述第一区块链上所述第一目标区块的下一区块的第二区块头;
19、基于所述第一区块头和所述第二区块头,进行第一子验证;
20、基于所述第一目标事务、所述第一验证信息和所述第一区块头,进行第二子验证。
21、可选地,所述第一区块的区块头包括所述第一区块的第一区块体摘要值、和在所述第一区块链上所述第一区块的上一区块的第二区块体摘要值;
22、所述上链验证单元还具体用于:
23、如果所述第一区块头中的所述第一区块体摘要值、与所述第二区块头中的所述第二区块体摘要值相同,确定所述第一子验证成功。
24、可选地,所述第三获取单元具体用于:
25、生成第一树,所述第一树包括多层特征,其中,所述第一树的最下面一层特征是所述第一目标区块中多个第一事务的摘要值,多个所述第一事务包括所述第一目标事务;所述第一树的每一层的两个相邻特征,连接到并生成一个更上一层的特征,直到生成作为所述第一树的第一树根特征,所述第一树根特征为所述第一区块体摘要值;
26、获取第一路径的第一旁路特征,作为所述第一验证信息,其中,所述第一路径为所述第一树上所述第一目标事务的摘要值到所述第一树根特征之间的路径,所述第一旁路特征是所述第一路径上除所述第一目标事务的摘要值之外的其它特征还连接到的下一层特征;
27、所述上链验证单元还具体用于:
28、确定所述第一目标事务的摘要值;
29、基于所述第一目标事务的摘要值、和所述第一验证信息,确定所述第一树的第二树根特征;
30、如果所述第二树根特征与所述第一区块头中的所述第一区块体摘要值一致,则确定所述第二子验证成功。
31、可选地,所述目标共识网络具有第一可信执行环境,所述第一可信执行环境内具有第一安全执行空间和第一密钥,所述第一安全执行空间禁止所述第一安全执行空间外部访问,所述第一区块链的各所述第一区块用所述第一密钥加密;
32、所述第二获取单元具体用于:在所述第一安全执行空间中,利用所述第一密钥,解密所述第一目标区块,得到解密后第一目标区块,并从所述解密后第一目标区块中获取所述第一目标事务和所述第一区块头;
33、所述上链验证单元还具体用于:在所述第一安全执行空间中,调用第一区块链上记录的第一子验证合约,基于所述第一区块头和所述第二区块头,进行第一子验证;
34、所述上链验证单元还具体用于:在所述第一安全执行空间中,调用第一区块链上记录的第二子验证合约,基于所述第一目标事务、所述第一验证信息和所述第一区块头,进行第二子验证。
35、可选地,在从第一区块链的各第一区块中获取增加的第一目标区块之后,所述区块链事务处理装置还包括:
36、第五获取单元,用于获取所述第一区块链的第一区块链高度信息;
37、第二发送单元,用于将所述第一区块链高度信息转发到全局共识网络,以便所述全局共识网络将所述第一区块链高度信息同步到所述局部共识网络;
38、所述第一发送单元具体用于:将所述事务结果数据发送到订阅节点,以供所述局部共识网络在从所述全局共识网络接收的所述第一区块链高度信息、和上一次从所述全局共识网络接收的第二区块链高度信息不一致时,从所述订阅节点获取。
39、可选地,所述目标类型的所述第一事务由第一中继节点通过以下方式获取并发送到所述目标共识网络:
40、确定所述局部共识网络生成的所述第一事务的事务类型;
41、如果所述事务类型为非目标类型,将所述第一事务保持在所述局部共识网络中,由所述局部共识网络记录到第二区块链,所述第二区块链允许所述局部共识网络的外部进行访问;
42、如果所述事务类型为目标类型,获取所述第一事务并发送到所述目标共识网络。
43、可选地,所述第一获取单元具体用于:
44、设置第一区块链高度计数器,其中,当所述第一区块链上增加一个所述第一区块时,所述第一区块链高度计数器增加1;
45、如果所述第一区块链高度计数器的当前的第一值、与上一次获取增加的所述第一目标区块时的第二值的差达到第一阈值,获取所述第一区块链上从区块高度为所述第二值加1的所述第一区块、到区块高度为所述第一值的所述第一区块,作为所述第一目标区块;
46、如果所述第一区块链高度计数器的当前的第一值、与上一次获取增加的所述第一目标区块时的第二值的差未达到所述第一阈值,但当前时间与上一次获取增加的所述第一目标区块时的时间点之间的时间差达到第二阈值,获取所述时间差内增加的所述第一区块,作为所述第一目标区块。
47、可选地,在从第一区块链的各第一区块中获取增加的第一目标区块之前,所述区块链事务处理装置还包括:
48、第一接收单元,用于接收所述订阅节点的第一订阅请求,所述第一订阅请求中具有第一订阅条件;
49、所述第一获取单元还具体用于:
50、获取所述第一区块链上增加的所述第一区块;
51、如果增加的所述第一区块中含有符合所述第一订阅条件的第一目标事务,则获取增加的所述第一区块作为所述第一目标区块。
52、可选地,所述第一订阅请求中还具有订阅期限;
53、所述第一获取单元还具体用于:
54、确定所述第一订阅请求中所述订阅期限未到期的有效订阅请求;
55、如果增加的所述第一区块中含有符合所述有效订阅请求的所述第一订阅条件的第一目标事务,则获取增加的所述第一区块作为所述第一目标区块。
56、可选地,在接收所述订阅节点的第一订阅请求之前,所述区块链事务处理装置还包括:
57、第二接收单元,用于接收所述订阅节点的注册请求,所述注册请求中带有所述订阅节点的私钥;将所述订阅节点的所述私钥记录到所述第一区块链上;
58、所述第一订阅请求包含所述订阅节点的所述私钥;
59、在接收所述订阅节点的第一订阅请求之后,所述区块链事务处理装置还包括:
60、私钥验证单元,用于验证所述第一订阅请求中包含的所述私钥与记录到所述第一区块链上的所述私钥一致。
61、可选地,所述订阅节点为对应于多个事务子类型的多个订阅节点,所述第一订阅条件为所述订阅节点对应的所述事务子类型;
62、所述第一发送单元还具体用于:将所述事务结果数据发送到所述事务子类型对应的所述订阅节点。
63、可选地,所述第一区块中的第一事务包括关联对象标识,所述订阅节点为对应于多个对象集的多个订阅节点,所述第一订阅条件为所述第一事务的所述关联对象标识属于所述订阅节点对应的所述对象集;
64、所述第一发送单元还具体用于:将所述事务结果数据发送到所述关联对象标识对应的所述订阅节点。
65、可选地,所述第二获取单元还具体用于:如果多个所述第一事务中符合所述第一订阅条件的所述第一事务数目大于1,按照预定顺序获取符合所述第一订阅条件的所述第一事务,作为所述第一目标事务,其中,所述预定顺序通过以下方式确定:
66、确定所述第一事务的关联对象的第一优先级;
67、确定所述第一订阅条件对应的所述订阅节点的第二优先级;
68、根据所述第一优先级和所述第二优先级,确定所述预定顺序。
69、可选地,所述第二获取单元还具体用于:
70、根据所述第一优先级,确定所述第一事务的第一分数;
71、根据所述第二优先级,确定所述第一事务的第二分数;
72、基于所述第一分数和所述第二分数,确定所述第一事务的总分数;
73、基于所述第一事务的所述总分数,确定所述预定顺序。
74、可选地,所述事务结果数据为所述第一目标事务执行后影响的变量;
75、所述第四获取单元具体用于:如果所述上链验证成功,获取所述第一目标事务执行后影响的变量、和与所述变量对应的第二验证信息;
76、所述第一发送单元还具体用于:将所述变量和所述第二验证信息发送到订阅节点,以便所述订阅节点基于所述变量和所述第二验证信息进行事务结果验证,并在所述事务结果验证成功后,存储所述变量,以供所述局部共识网络从所述订阅节点获取。
77、可选地,所述第四获取单元还具体用于:
78、生成第二树,所述第二树包括多层特征,其中,所述第二树的最下面一层特征是各个所述第一事务执行后影响的所述变量的摘要值,各个所述第一事务包含所述第一目标事务;所述第二树的每一层的两个相邻特征,连接到并生成一个更上一层的特征,直到生成所述第二树的第三树根特征;
79、获取第二路径的第二旁路特征,连同所述第三树根特征,作为所述第二验证信息,其中,所述第二路径为所述第二树上所述第一目标事务执行后影响的所述变量的摘要值到所述第三树根特征之间的路径,所述第二旁路特征是所述第二路径上除所述第一目标事务执行后影响的所述变量之外的其它特征还连接到的下一层特征;
80、所述第一发送单元还具体用于:
81、根据所述变量的摘要值、和所述第二旁路特征,确定所述第二树的第四树根特征;
82、如果所述第三树根特征与所述第四树根特征一致,则确定所述事务结果验证成功。
83、可选地,所述订阅节点具有第二可信执行环境,所述第二可信执行环境内具有第二安全执行空间和第二密钥,所述第二安全执行空间禁止所述第二安全执行空间外部访问;
84、所述第一发送单元还具体用于:
85、用所述局部共识网络的公钥加密所述事务结果数据,得到第一加密后事务结果数据;
86、将所述第一加密后事务结果数据发送到所述订阅节点,以便所述订阅节点在所述第二安全执行空间中,用所述第二密钥加密所述第一加密后事务结果数据,得到第二加密后事务结果数据,响应于来自局部共识网络的事务结果数据获取请求,在所述第二安全执行空间中,用所述第二密钥解密所述第二加密后事务结果数据,得到第一解密后事务结果数据,将所述第一解密后事务结果数据发送到所述局部共识网络,由所述局部共识网络利用所述局部共识网络的私钥解密所述第一解密后事务结果数据,得到所述事务结果数据。
87、根据本公开的一方面,提供了一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上所述的区块链事务处理方法。
88、根据本公开的一方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的区块链事务处理方法。
89、根据本公开的一方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器读取并执行,使得该计算机设备执行如上所述的区块链事务处理方法。
90、本公开实施例中,目标共识网络对于第一区块链上增加的第一目标区块,获取其中的第一目标事务、与第一目标事务对应的第一验证信息、以及第一区块头,据此进行第一目标事务是否真实上链的验证,并在验证成功后,获取事务结果数据发送到订阅节点供局部共识网络查询。这样,局部共识网络在没有读取目标区块链信息、没有降低目标区块链数据安全性的前提下,也得到了事务结果数据,实现了保障目标区块链信息安全性的情况下的可信任的上链结果交互。
91、本公开的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
1.一种区块链事务处理方法,其特征在于,所述区块链事务处理方法由目标共识网络执行,所述区块链事务处理方法包括:
2.根据权利要求1所述的区块链事务处理方法,其特征在于,所述上链验证包括第一子验证和第二子验证;
3.根据权利要求2所述的区块链事务处理方法,其特征在于,所述第一区块的区块头包括所述第一区块的第一区块体摘要值、和在所述第一区块链上所述第一区块的上一区块的第二区块体摘要值;
4.根据权利要求3所述的区块链事务处理方法,其特征在于,所述获取与所述第一目标事务对应的第一验证信息,包括:
5.根据权利要求2所述的区块链事务处理方法,其特征在于,所述目标共识网络具有第一可信执行环境,所述第一可信执行环境内具有第一安全执行空间和第一密钥,所述第一安全执行空间禁止所述第一安全执行空间外部访问,所述第一区块链的各所述第一区块用所述第一密钥加密;
6.根据权利要求1所述的区块链事务处理方法,其特征在于,在从第一区块链的各第一区块中获取增加的第一目标区块之后,所述区块链事务处理方法还包括:
7.根据权利要求1所述的区块链事务处理方法,其特征在于,所述目标类型的所述第一事务由第一中继节点通过以下方式获取并发送到所述目标共识网络:
8.根据权利要求1所述的区块链事务处理方法,其特征在于,所述从第一区块链的各第一区块中获取增加的第一目标区块,包括:
9.根据权利要求1所述的区块链事务处理方法,其特征在于,在从第一区块链的各第一区块中获取增加的第一目标区块之前,所述区块链事务处理方法还包括:接收所述订阅节点的第一订阅请求,所述第一订阅请求中具有第一订阅条件;
10.根据权利要求9所述的区块链事务处理方法,其特征在于,所述第一订阅请求中还具有订阅期限;
11.根据权利要求9所述的区块链事务处理方法,其特征在于,在接收所述订阅节点的第一订阅请求之前,所述区块链事务处理方法还包括:接收所述订阅节点的注册请求,所述注册请求中带有所述订阅节点的私钥;将所述订阅节点的所述私钥记录到所述第一区块链上;
12.根据权利要求9所述的区块链事务处理方法,其特征在于,所述从所述第一目标区块中获取第一目标事务,包括:如果多个所述第一事务中符合所述第一订阅条件的所述第一事务数目大于1,按照预定顺序获取符合所述第一订阅条件的所述第一事务,作为所述第一目标事务,其中,所述预定顺序通过以下方式确定:
13.根据权利要求12所述的区块链事务处理方法,其特征在于,所述根据所述第一优先级和所述第二优先级,确定所述预定顺序,包括:
14.根据权利要求1所述的区块链事务处理方法,其特征在于,所述事务结果数据为所述第一目标事务执行后影响的变量;
15.根据权利要求14所述的区块链事务处理方法,其特征在于,所述获取与所述变量对应的第二验证信息,包括:
16.根据权利要求1所述的区块链事务处理方法,其特征在于,所述订阅节点具有第二可信执行环境,所述第二可信执行环境内具有第二安全执行空间和第二密钥,所述第二安全执行空间禁止所述第二安全执行空间外部访问;
17.一种区块链事务处理装置,其特征在于,所述区块链事务处理装置位于目标共识网络,所述区块链事务处理装置包括:
18.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现根据权利要求1至16任意一项所述的区块链事务处理方法。
19.一种计算机可读存储介质,所述存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现根据权利要求1至16任意一项所述的区块链事务处理方法。
20.一种计算机程序产品,该计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器读取并执行,使得该计算机设备执行根据权利要求1至16任意一项所述的区块链事务处理方法。
