本技术涉及区块链,尤其涉及一种基于区块链的数据处理方法、装置、设备以及介质。
背景技术:
1、区块链是一种去中心化的分布式账本系统,具有数据不可篡改、去中心化、开放性的特点。共识机制作为区块链技术的核心,是保证区块链系统正常运行的基础。区块链系统的共识过程可以理解为让各个区块链节点之间的分布式账本保持一致的过程。随着区块链技术的发展和应用,不同区块链之间进行跨链业务的应用也越来越广泛,如在不同的区块链之间进行资产转移,或者在不同的区块链之间进行资产托管授权等;在跨链业务的应用场景中,为了保证不同区块链中的数据的安全性,需要对跨链业务进行验证。
2、目前跨链业务的验证过程中,每一条区块链的节点需要维护另一条或多条区块链上的大量数据(链上所有区块的区块头等),并进行块链结构的验证。在链数据量增大的情形下,区块链的节点的数据存储占用量过大,并且会造成跨链业务的验证效率过低。
技术实现思路
1、本技术实施例提供一种基于区块链的数据处理方法、装置、设备以及介质,可以降低共识节点在跨链交互中的数据存储占用量,提高跨链消息的验证效率。
2、本技术实施例一方面提供了一种基于区块链的数据处理方法,包括:
3、获取转发服务设备所提交的跨链消息,以及获取跨链消息携带的链标识;跨链消息与第一区块链中所存储的跨链交易数据相关联;
4、在链标识对应的第二区块链中获取第一区块链对应的区块默克尔信息,在区块默克尔信息对应的区块默克尔树中获取跨链消息对应的默克尔证明集合;区块默克尔信息在第一区块链中的可验证高度h1大于或等于跨链消息在第一区块链中所处的区块高度h2,区块默克尔树包括多个默克尔子树;
5、根据默克尔证明集合和区块默克尔信息,对跨链消息进行有效性验证,得到跨链消息对应的跨链验证结果;
6、若跨链验证结果指示验证成功,则获取跨链消息对应的事务执行结果,将事务执行结果存储至第二区块链。
7、本技术实施例一方面提供了一种基于区块链的数据处理方法,包括:
8、获取由第一区块链发起的跨链消息,以及获取跨链消息所指示的跨链交易数据在第一区块链中所处的区块高度h2;跨链消息中携带链标识;
9、若在链标识对应的第二区块链中检测到第一区块链对应的可验证高度h1大于或等于区块高度h2,则将跨链消息转发至第二区块链的共识节点,以使第二区块链的共识节点根据跨链消息对应的默克尔证明集合以及可验证高度h1在第一区块链中的区块默克尔信息,对跨链消息进行有效性验证,得到跨链消息对应的跨链验证结果;
10、其中,区块默克尔信息存储在第二区块链中,默克尔证明集合是在区块默克尔信息对应的区块默克尔树中获得的,区块默克尔树包括多个默克尔子树;跨链验证结果指示验证成功时,第二区块链的共识节点用于将跨链消息对应的事务执行结果存储至第二区块链。
11、本技术实施例一方面提供了一种基于区块链的数据处理装置,包括:
12、跨链消息获取单元,用于获取转发服务设备所提交的跨链消息,以及获取跨链消息携带的链标识;跨链消息与第一区块链中所存储的跨链交易数据相关联;
13、证明集合获取单元,用于在链标识对应的第二区块链中获取第一区块链对应的区块默克尔信息,在区块默克尔信息对应的区块默克尔树中获取跨链消息对应的默克尔证明集合;区块默克尔信息在第一区块链中的可验证高度h1大于或等于跨链消息在第一区块链中所处的区块高度h2,区块默克尔树包括多个默克尔子树;
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、区块高度获取单元,用于获取由第一区块链发起的跨链消息,以及获取跨链消息所指示的跨链交易数据在第一区块链中所处的区块高度h2;跨链消息中携带链标识;
43、跨链消息转发单元,用于若在链标识对应的第二区块链中检测到第一区块链对应的可验证高度h1大于或等于区块高度h2,则将跨链消息转发至第二区块链的共识节点,以使第二区块链的共识节点根据跨链消息对应的默克尔证明集合以及可验证高度h1在第一区块链中的区块默克尔信息,对跨链消息进行有效性验证,得到跨链消息对应的跨链验证结果;
44、其中,区块默克尔信息存储在第二区块链中,默克尔证明集合是在区块默克尔信息对应的区块默克尔树中获得的,区块默克尔树包括多个默克尔子树;跨链验证结果指示验证成功时,第二区块链的共识节点用于将跨链消息对应的事务执行结果存储至第二区块链。
45、其中,区块高度获取单元获取由第一区块链发起的跨链消息,以及获取跨链消息所指示的跨链交易数据在第一区块链中所处的区块高度h2,包括:
46、获取第一区块链中的跨链管理合约对应的合约状态,若合约状态为事务待转发状态,则获取由第一区块链中的跨链管理合约发起的跨链消息;
47、在第一区块链中确定跨链消息所指示的跨链交易数据所属的第一跨链事务区块,获取第一跨链事务区块在第一区块链中的区块高度h2。
48、其中,该装置还包括:
49、可验证高度获取单元,用于在第二区块链所部署的链验证合约中,获取第一区块链对应的可验证高度h1;
50、提示信息生成单元,用于若可验证高度h1小于区块高度h2,则生成第一区块链对应的高度更新提示信息;
51、提示信息发送单元,用于将高度更新提示信息发送至可信预言设备,以使可信预言设备根据高度更新提示信息,将第一区块链中的最大区块高度所对应的区块默克尔信息,提交至第二区块链中的链验证合约;
52、其中,最大区块高度对应的区块默克尔信息用于覆盖第二区块链所部署的链验证合约中已存储的区块默克尔信息和可验证高度h1。
53、本技术实施例一方面提供了一种计算机设备,包括存储器和处理器,存储器与处理器相连,存储器用于存储计算机程序,处理器用于调用计算机程序,以使得该计算机设备执行本技术实施例中上述一方面提供的方法。
54、本技术实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序适于由处理器加载并执行,以使得具有处理器的计算机设备执行本技术实施例中上述一方面提供的方法。
55、根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面提供的方法。
56、本技术实施例中,第二区块链的共识节点在获取到由转发服务设备所提交的跨链消息之后,通过该跨链消息中的链标识对应的第二区块链中获取第一区块链对应的区块默克尔信息,并在该区块默克尔信息对应的区块默克尔树中获取跨链消息对应的默克尔证明集合。换言之,在第一区块链和第二区块链之间的交互通信中,第二区块链上只需存储默克尔证明集合所指示的部分数据,无需存储第一区块链中的全量区块头数据,可以降低数据存储占用量,节省存储空间。进一步地,可以依靠区块默克尔信息的验证能力,即根据区块默克尔信息和默克尔证明集合对跨链消息进行有效性验证,可以快速验证区块高度h2下的跨链消息,可以提高跨链消息的验证效率。
1.一种基于区块链的数据处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述在所述链标识对应的第二区块链中获取所述第一区块链对应的区块默克尔信息,在所述区块默克尔信息对应的区块默克尔树中获取所述跨链消息对应的默克尔证明集合,包括:
3.根据权利要求2所述的方法,其特征在于,所述获取所述第一跨链事务区块在所述区块默克尔信息对应的区块默克尔树中的区块路径信息,包括:
4.根据权利要求2所述的方法,其特征在于,所述根据所述默克尔证明集合和所述区块默克尔信息,对所述跨链消息进行有效性验证,得到所述跨链消息对应的跨链验证结果,包括:
5.根据权利要求4所述的方法,其特征在于,所述通过对所述区块默克尔信息和所述第一候选默克尔信息进行比对,得到所述第一跨链事务区块对应的区块验证结果,包括:
6.根据权利要求4所述的方法,其特征在于,所述根据所述交易路径信息和所述交易默克尔信息,对所述跨链交易数据进行有效性验证,得到所述跨链交易数据对应的交易验证结果,包括:
7.根据权利要求1所述的方法,其特征在于,所述若所述跨链验证结果指示验证成功,则获取所述跨链消息对应的事务执行结果,将所述事务执行结果存储至所述第二区块链,包括:
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
9.一种基于区块链的数据处理方法,其特征在于,包括:
10.根据权利要求9所述的方法,其特征在于,所述获取由第一区块链发起的跨链消息,以及获取所述跨链消息所指示的跨链交易数据在所述第一区块链中所处的区块高度h2,包括:
11.根据权利要求9所述的方法,其特征在于,所述方法还包括:
12.一种基于区块链的数据处理装置,其特征在于,包括:
13.一种基于区块链的数据处理装置,其特征在于,包括:
14.一种计算机设备,其特征在于,包括存储器和处理器;
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1至8任一项所述的方法,或者执行权利要求9至11任一项所述的方法。
16.一种计算机程序产品,其特征在于,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现权利要求1至8任一项所述的方法,或者实现权利要求9至11任一项所述的方法。