CN114266665B - 合约多主链跨链方法、设备和存储介质 - Google Patents

合约多主链跨链方法、设备和存储介质 Download PDF

Info

Publication number
CN114266665B
CN114266665B CN202111668166.7A CN202111668166A CN114266665B CN 114266665 B CN114266665 B CN 114266665B CN 202111668166 A CN202111668166 A CN 202111668166A CN 114266665 B CN114266665 B CN 114266665B
Authority
CN
China
Prior art keywords
transaction
main chain
transactions
sequence
contract
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.)
Active
Application number
CN202111668166.7A
Other languages
English (en)
Other versions
CN114266665A (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.)
Hangzhou Fuzamei Technology Co Ltd
Original Assignee
Hangzhou Fuzamei Technology Co Ltd
Filing date
Publication date
Application filed by Hangzhou Fuzamei Technology Co Ltd filed Critical Hangzhou Fuzamei Technology Co Ltd
Priority to CN202111668166.7A priority Critical patent/CN114266665B/zh
Publication of CN114266665A publication Critical patent/CN114266665A/zh
Application granted granted Critical
Publication of CN114266665B publication Critical patent/CN114266665B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供一种合约多主链跨链方法、设备和存储介质,涉及区块链等技术领域,该方法包括:在监测到第一主链生成了第一主链区块时,按序同步第一主链区块中的各需要调用第一类合约的第一交易;执行各第一交易以更新二层网络上第一主链的第一状态树;响应于触发结算条件,按序根据各第二交易的第二交易信息生成零知识证明证据,根据按序的各第二交易、零知识证明证据生成第一证明数据;将第一证明数据发送给各主链。本申请在节省成本的基础上防止双花。

Description

合约多主链跨链方法、设备和存储介质
技术领域
本申请涉及区块链技术领域,具体涉及一种合约多主链跨链方法、设备和存储介质。
背景技术
当前基于二层网络的跨链方案一般是一对一的,一个二层网络对应一个主链。申请人希望提出一种一个二层网络对应多个主链的跨链方案,上述方案相较于现有技术,更加节省了成本,但也存在双花的问题。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种在节省成本的基础上防止双花的合约多主链跨链方法、设备和存储介质。
第一方面,本发明提供一种适用于二层网络的节点的合约多主链跨链方法,二层网络上有分别对应于各主链的状态树,各状态树的初始根哈希相同,各主链配置有跨链验证合约,跨链验证合约中部署有验证交易信息的零知识证明电路,需要调用第一类合约的交易在被各主链的主链节点执行成功时存证到所在主链,第一类合约包括存款合约、取款合约,上述方法包括:
在监测到第一主链生成了第一主链区块时,按序同步第一主链区块中的各需要调用第一类合约的第一交易;其中,第一主链区块还用于供其它各主链的主链节点:
通过区块生成合约在监测到第一主链区块时,按序同步各第一交易;
在获取所在主链的待生成的最新的第二主链区块的打包权时,生成包括按序的各第一交易的第二主链区块,将第二主链区块广播给所在主链的其它各主链节点,以供所在主链的其它各主链节点:
判断第二主链区块中的各第一交易的顺序与所同步的各第一交易的顺序是否相同:
否,则拒绝第二主链区块;
执行各第一交易以更新二层网络上第一主链的第一状态树;
响应于触发结算条件,按序根据各第二交易的第二交易信息生成零知识证明证据,根据按序的各第二交易、零知识证明证据生成第一证明数据;
将第一证明数据发送给各主链,以供各主链的主链节点:
通过跨链验证合约判断第一证明数据中的各第二交易的顺序与所存证的各第二交易的顺序是否相同:
顺序相同,则将零知识证明证据输入零知识证明电路以验证各第二交易信息是否正确:
验证正确,则结束;
其中,第二交易信息包括操作类型、用户地址、通证数量。
第二方面,本发明提供一种适用于主链节点的合约多主链跨链方法,二层网络上有分别对应于各主链的状态树,各状态树的初始根哈希相同,各主链配置有跨链验证合约,跨链验证合约中部署有验证交易信息的零知识证明电路,需要调用第一类合约的交易在被各主链的主链节点执行成功时存证到所在主链,第一类合约包括存款合约、取款合约,上述方法包括:
通过区块生成合约在监测到第一主链生成了第一主链区块时,按序同步第一主链区块中的各需要调用第一类合约的第一交易;其中,第一主链区块还用于供二层网络的节点:
在监测到第一主链区块时,按序同步各第一交易;
执行各第一交易以更新二层网络上第一主链的第一状态树;
在获取所在主链的待生成的最新的第二主链区块的打包权时,生成包括按序的各第一交易的第二主链区块,将第二主链区块广播给所在主链的其它各主链节点,以供所在主链的其它各主链节点:
判断第二主链区块中的各第一交易的顺序与所同步的各第一交易的顺序是否相同:
否,则拒绝第二主链区块;
接收二层网络的节点生成并发送的第一证明数据;其中,第一证明数据由二层网络的节点根据按序的各第二交易、零知识证明证据生成,零知识证明证据由二层网络的节点响应于触发结算条件,按序根据各第二交易的第二交易信息生成;
通过跨链验证合约判断第一证明数据中的各第二交易的顺序与所存证的各第二交易的顺序是否相同:
顺序相同,则将零知识证明证据输入零知识证明电路以验证各第二交易信息是否正确:
验证正确,则结束;
其中,第二交易信息包括操作类型、用户地址、通证数量。
第三方面,本发明还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本发明各实施例提供的合约多主链跨链方法。
第四方面,本发明还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本发明各实施例提供的合约多主链跨链方法。
本发明诸多实施例提供的合约多主链跨链方法、设备和存储介质通过在监测到第一主链生成了第一主链区块时,按序同步第一主链区块中的各需要调用第一类合约的第一交易;执行各第一交易以更新二层网络上第一主链的第一状态树;响应于触发结算条件,按序根据各第二交易的第二交易信息生成零知识证明证据,根据按序的各第二交易、零知识证明证据生成第一证明数据;将第一证明数据发送给各主链的方法,在节省成本的基础上防止双花。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本发明一实施例提供的一种合约多主链跨链方法的流程图。
图2为本发明一实施例提供的生成第一树根的示意图。
图3为本发明一实施例提供的另一种合约多主链跨链方法的流程图。
图4为本发明一实施例提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
申请人希望提出一种一个二层网络对应多个主链的跨链方案,上述方案相较于现有技术,更加节省了成本,但也存在双花的问题——如果运营方作弊存款后和另一条链的资产交换,另一条链将无法验证。举例,假设有3条主链(A链、B链、C链);A链上运行有资产AAA,B链上运行有资产BBB,C链上运行有资产CCC,AAA与BBB与CCC的兑换比例为1:1:1;假设运营方私自在二层网络中存款100AAA,并立即和二层网络中某一用户的BBB做了交换,这100AAA是凭空多出来的,最终会在A链上验证失败,但是运营者已经兑换了100BBB并提交到了B链,对B链造成危害。
上述问题可以通过本申请的各实施例解决。
图1为本发明一实施例提供的一种合约多主链跨链方法的流程图。如图1所示,在本实施例中,本发明提供一种适用于二层网络的节点的合约多主链跨链方法,二层网络上有分别对应于各主链的状态树,各状态树的初始根哈希相同,各主链配置有跨链验证合约,跨链验证合约中部署有验证交易信息的零知识证明电路,需要调用第一类合约的交易在被各主链的主链节点执行成功时存证到所在主链,第一类合约包括存款合约、取款合约,上述方法包括:
S11:在监测到第一主链生成了第一主链区块时,按序同步第一主链区块中的各需要调用第一类合约的第一交易;其中,第一主链区块还用于供其它各主链的主链节点:
通过区块生成合约在监测到第一主链区块时,按序同步各第一交易;
在获取所在主链的待生成的最新的第二主链区块的打包权时,生成包括按序的各第一交易的第二主链区块,将第二主链区块广播给所在主链的其它各主链节点,以供所在主链的其它各主链节点:
判断第二主链区块中的各第一交易的顺序与所同步的各第一交易的顺序是否相同:
否,则拒绝第二主链区块;
S12:执行各第一交易以更新二层网络上第一主链的第一状态树;
S13:响应于触发结算条件,按序根据各第二交易的第二交易信息生成零知识证明证据,根据按序的各第二交易、零知识证明证据生成第一证明数据;
S14:将第一证明数据发送给各主链,以供各主链的主链节点:
通过跨链验证合约判断第一证明数据中的各第二交易的顺序与所存证的各第二交易的顺序是否相同:
顺序相同,则将零知识证明证据输入零知识证明电路以验证各第二交易信息是否正确:
验证正确,则结束;
其中,第二交易信息包括操作类型、用户地址、通证数量。
假设有3条主链(A链、B链、C链);A链的主链节点为A1~A10、B链的主链节点为B1~B10、C链的主链节点为C1~C10;A链上运行有资产AAA,B链上运行有资产BBB,C链上运行有资产CCC,AAA与BBB与CCC的兑换比例为1:1:1;二层网络上有A链的状态树TreeA、B链的状态树TreeB,C链的状态树TreeC,TreeA、TreeB、TreeC的初始根哈希相同;上述第一主链为A链,A链的主链节点按序根据tx1~tx10生成了主链区块block(100),其中,tx1、tx2为需要调用第一类合约的交易,tx1为用户甲请求存款100个AAA,tx2为用户B请求取款10个AAA;
A链的主链节点生成包括tx1、tx2的主链区块block(100)_A,tx1、tx2存证于A链上;
二层网络的节点执行步骤S11,在监测到A链生成了block(100)_A时,按序同步tx1和tx2;
B链和C链的主链节点通过区块生成合约在监测到A链生成了block(100)时,按序同步tx1、tx2;
以B链为例,假设B链待生成的最新的主链区块为block(100)_B,B1获得了block(100)_B的打包权;
B1生成包括按序的tx1、tx2的block(100)_B,并广播给B2~B10;
B2~B10判断block(100)_B中的tx1、tx2的顺序,与所同步的tx1、tx2的顺序是否相同:
假设相同,则将tx1、tx2存证于B链上;本领域技术人员应当理解,还可以根据实际需求配置B2~B10的后续步骤,例如配置为,在block(100)_B共识成功时,删除所同步的tx1、tx2;上述后续步骤可以释放B2~B10的存储空间,以及,防止B2~B10后续再打包tx1、tx2;对于B2~B10,若后续再打包tx1、tx2,则还需要消耗内存通过查重的方式删除所打包的tx1、tx2;
假设不同,则拒绝block(100)_B;
C链的主链节点的操作与B链的主链节点相似,此处不再赘述;
二层网络的节点执行步骤S12,执行tx1、tx2以更新二层网络上的TreeA;
假设按序的各第二交易为tx1、tx2、tx11~tx20;
响应于触发结算条件,二层网络的节点执行步骤S13,按序根据tx1、tx2、tx11~tx20的交易信息生成零知识证明证据proof1,根据tx1、tx2、tx11~tx20、proof1生成证明数据proofchunk1;在更多实施例中,触发结算条件可以根据实际需求进行配置,例如配置为,在距离上次结算到达第一时长时,或,配置为,接收到结算请求时,可实现相同的技术效果;
二层网络的节点执行步骤S14,将proofchunk1发送给A链、B链、C链;
A链、B链、C链的主链节点通过跨链验证合约判断proofchunk1中的tx1、tx2、tx11~tx20的顺序与所存证的tx1、tx2、tx11~tx20的顺序是否相同:
假设顺序相同,则A链、B链、C链的主链节点将proof1输入零知识证明电路以验证tx1、tx2、tx11~tx20的交易信息是否正确:
假设验证正确,则结束。
需要说明的是,tx1、tx2是从A链同步的交易,并假设tx11~tx20是从B链同步的交易,则:
对于A链,各主链的主链节点判断proofchunk1中的tx1、tx2的顺序与所存证的tx1、tx2的顺序是否相同;
对于B链,各主链的主链节点判断proofchunk1中的tx11~tx20的顺序与所存证的tx11~tx20的顺序是否相同;
假设proofchunk1中的各交易为tx1、tx11、tx2、tx12~tx20,只要各主链的主链节点存证的交易信息中,tx1、tx2的交易信息的顺序为tx1→tx2,tx11~tx20的交易信息的顺序为tx11→tx20,各主链的主链节点验证顺序也是相同的;
在更多实施例中,交易信息还可以根据实际需求进行配置,例如配置为用户地址、资产类型、资产数量和操作类型等,可实现相同的技术效果;
上述实施例使得多条主链都在二层网络上维护一个共同账本,节省成本;以及,只有在交易顺序和交易信息均正确的基础上二层网络才能继续正常运行,防止双花。
优选的,上述方法还包括:
在监测到顺序不正确,或,验证不正确时,回滚各主链的状态树至未执行各第二交易时的状态;
返回按序根据各第二交易的第二交易信息生成零知识证明证据步骤,以重新生成零知识证明证据和第一证明数据。
在监测到A链、B链、C链上顺序不正确,或,验证不正确时,二层网络的节点回滚TreeA~TreeC至未执行tx1、tx2、tx11~tx20时的状态;
二层网络的节点返回“按序根据各第二交易的第二交易信息生成零知识证明证据”步骤,以重新生成proof1和proofchunk1;
本领域技术人员应当理解,假设二层网络上还执行了tx21,tx21的执行需要借助于tx1、tx2、tx11~tx20其中一笔或多笔交易的执行结果,则回滚TreeA~TreeC时还应当回滚tx21。
优选的,按序根据各第二交易的第二交易信息生成零知识证明证据前,还包括:
接收若干客户端生成的需要调用第二类合约的第三交易;其中,第二类合约包括转账合约、跨链转账合约;
对各第三交易执行如下操作:执行第三交易以更新二层网络上第三交易指定的需跨链的第二主链的第二状态树,和,第三交易指定的待跨链的第三主链的第三状态树;
通过跨链验证合约判断第一证明数据中的各第二交易的顺序与所存证的各第二交易的顺序是否相同包括:
通过跨链验证合约判断第一证明数据中的除去第三交易的各第二交易的顺序与所存证的各第二交易的顺序是否相同。
具体的,将本申请的主链节点配置为接收客户端生成的第一类合约的交易,而二层网络的节点配置为接收客户端生成的第二类合约的交易。
结合图1所示的实施例,假设tx11~tx15为调用第二类合约的第三交易,tx16~tx20为从A链的block(101)中同步的调用第一类合约的第一交易;可以看出,二层网络的节点先从A链的block(100)中同步到了tx1、tx2,接着按序接收到了tx11~tx15,又从A链的block(101)中按序同步到了tx16~tx20;因此各交易的顺序是tx1、tx2、tx11~tx20;相应的,B链和C链的主链节点同步到的交易的顺序为tx1、tx2、tx16~tx20。
对于tx1、tx2、tx11~tx20:A链、B链、C链的主链节点只验证tx1、tx2、tx16~tx20的顺序是否正确。
本领域技术人员应当理解,调用第二类合约的第三交易的交易信息还应当包括资产类型。
优选的,根据按序的各第二交易、零知识证明证据生成第一证明数据包括:
根据按序的各第二交易、第一树根、零知识证明证据生成第一证明数据;其中,第一树根根据各状态树的默克尔树根生成;
通过跨链验证合约判断第一证明数据中的各第二交易的顺序与所存证的各第二交易的顺序是否相同包括:
通过跨链验证合约根据各第二交易、所存储的第二树根计算第三树根,在第三树根与第一树根相同时,将第二树根的值更新为第一树根的值;以及,
通过跨链验证合约判断第一证明数据中的各第二交易的顺序与所存证的各第二交易的顺序是否相同。
具体的,proofchunk1中还包括第一树根chain tree root;图2为本发明一实施例提供的生成第一树根的示意图,如图2所示,chain tree root根据merkleroothash(treeA)~merkleroothash(tree C)生成,假设其值为R1;
A链、B链、C链的主链节点通过跨链验证合约根据tx1、tx2、tx11~tx20,所存储的chain tree root(即上一个chain tree root,假设其值为R2)计算chain tree root’,假设chain tree root’的值为R3;若R1=R3,则将所存储的chain tree root的值由R2更新为R1;以及,
通过跨链验证合约判断proofchunk1中的tx1、tx2、tx11~tx20的顺序与所存证的tx1、tx2、tx11~tx20的顺序是否相同。
优选的,根据按序的各第二交易、零知识证明证据生成第一证明数据包括:
根据按序的各第二交易的第二交易信息、零知识证明证据生成第一证明数据;
通过跨链验证合约判断第一证明数据中的各第二交易的顺序与所存证的各第二交易的顺序是否相同包括:
通过跨链验证合约判断第一证明数据中的各第二交易信息与所存证的各第二交易是否匹配;
顺序相同,则将零知识证明证据输入零知识证明电路以验证各第二交易信息是否正确包括:
匹配,则将零知识证明证据输入零知识证明电路以验证各第二交易信息是否正确。
在图1所示的实施例中,第一证明数据中包括tx1、tx2、tx11~tx20;而在本实施例中,第一证明数据中包括tx1、tx2、tx11~tx20的交易信息;以tx1为例,tx1的交易信息为“deposit,addr(A),100”,tx1的交易信息的数据量明显小于tx1;
相应的,需要验证第一证明数据中的各第二交易信息与所存证的各第二交易是否匹配,以tx1为例,即验证deposit,addr(A),100与tx1是否匹配;
上述实施例减少了第一证明数据的数据量。
优选的,二层网络的节点在各主链上缴纳有若干押金,各主链的主链节点在监测到顺序不正确,或,验证不正确时,扣除第一数量的押金。
上述实施例对二层网络的节点进行惩罚,进一步阻止双花。
图3为本发明一实施例提供的另一种合约多主链跨链方法的流程图。图3所示的方法可与图1所示的方法配合使用。如图3所示,在本实施例中,本发明提供一种适用于主链节点的合约多主链跨链方法,二层网络上有分别对应于各主链的状态树,各状态树的初始根哈希相同,各主链配置有跨链验证合约,跨链验证合约中部署有验证交易信息的零知识证明电路,需要调用第一类合约的交易在被各主链的主链节点执行成功时存证到所在主链,第一类合约包括存款合约、取款合约,上述方法包括:
S21:通过区块生成合约在监测到第一主链生成了第一主链区块时,按序同步第一主链区块中的各需要调用第一类合约的第一交易;其中,第一主链区块还用于供二层网络的节点:
在监测到第一主链区块时,按序同步各第一交易;
执行各第一交易以更新二层网络上第一主链的第一状态树;
S22:在获取所在主链的待生成的最新的第二主链区块的打包权时,生成包括按序的各第一交易的第二主链区块,将第二主链区块广播给所在主链的其它各主链节点,以供所在主链的其它各主链节点:
判断第二主链区块中的各第一交易的顺序与所同步的各第一交易的顺序是否相同:
否,则拒绝第二主链区块;
S23:接收二层网络的节点生成并发送的第一证明数据;其中,第一证明数据由二层网络的节点根据按序的各第二交易、零知识证明证据生成,零知识证明证据由二层网络的节点响应于触发结算条件,按序根据各第二交易的第二交易信息生成;
S241:通过跨链验证合约判断第一证明数据中的各第二交易的顺序与所存证的各第二交易的顺序是否相同:
S2421:顺序相同,则将零知识证明证据输入零知识证明电路以验证各第二交易信息是否正确:
S2422:验证正确,则结束;
其中,第二交易信息包括操作类型、用户地址、通证数量。
上述实施例的合约多主链跨链原理可参考图1所示的方法,此处不再赘述。
图4为本发明一实施例提供的一种设备的结构示意图。
如图4所示,作为另一方面,本申请还提供了一种设备,包括一个或多个中央处理单元(CPU)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储部分408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM403中,还存储有设备400操作所需的各种程序和数据。CPU401、ROM402以及RAM403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
以下部件连接至I/O接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。
特别地,根据本公开的实施例,上述任一实施例描述的方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行上述任一方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。
作为又一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例的装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,该程序被一个或者一个以上的处理器用来执行描述于本申请提供的方法。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,各所述单元可以是设置在计算机或移动智能设备中的软件程序,也可以是单独配置的硬件装置。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离本申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (12)

1.一种合约多主链跨链方法,其特征在于,二层网络上有分别对应于各主链的状态树,各所述状态树的初始根哈希相同,各主链配置有跨链验证合约,所述跨链验证合约中部署有验证交易信息的零知识证明电路,需要调用第一类合约的交易在被各主链的主链节点执行成功时存证到所在主链,所述第一类合约包括存款合约、取款合约,所述方法适用于二层网络的节点,所述方法包括:
在监测到第一主链生成了第一主链区块时,按序同步所述第一主链区块中的各需要调用所述第一类合约的第一交易;其中,所述第一主链区块还用于供其它各主链的主链节点:
通过区块生成合约在监测到所述第一主链区块时,按序同步各所述第一交易;
在获取所在主链的待生成的最新的第二主链区块的打包权时,生成包括按序的各所述第一交易的所述第二主链区块,将所述第二主链区块广播给所在主链的其它各主链节点,以供所在主链的其它各主链节点:
判断所述第二主链区块中的各所述第一交易的顺序与所同步的各所述第一交易的顺序是否相同:
否,则拒绝所述第二主链区块;
执行各所述第一交易以更新二层网络上所述第一主链的第一状态树;
响应于触发结算条件,按序根据各第二交易的第二交易信息生成零知识证明证据,根据按序的各所述第二交易、所述零知识证明证据生成第一证明数据;
将所述第一证明数据发送给各主链,以供各主链的主链节点:
通过所述跨链验证合约判断所述第一证明数据中的各所述第二交易的顺序与所存证的各第二交易的顺序是否相同:
顺序相同,则将所述零知识证明证据输入所述零知识证明电路以验证各所述第二交易信息是否正确:
验证正确,则结束;
其中,所述第二交易信息包括操作类型、用户地址、通证数量。
2.根据权利要求1所述的方法,其特征在于,还包括:
在监测到顺序不同,或,验证不正确时,在二层网络上回滚各主链的状态树至未执行各所述第二交易时的状态;
返回所述按序根据各第二交易的第二交易信息生成零知识证明证据步骤,以重新生成所述零知识证明证据和所述第一证明数据。
3.根据权利要求1所述的方法,其特征在于,所述按序根据各第二交易的第二交易信息生成零知识证明证据前,还包括:
接收若干客户端生成的需要调用第二类合约的第三交易;其中,所述第二类合约包括转账合约、跨链转账合约;
对各所述第三交易执行如下操作:执行所述第三交易以更新二层网络上所述第三交易指定的需跨链的第二主链的第二状态树,和,所述第三交易指定的待跨链的第三主链的第三状态树;
所述通过所述跨链验证合约判断所述第一证明数据中的各所述第二交易的顺序与所存证的各第二交易的顺序是否相同包括:
通过所述跨链验证合约判断所述第一证明数据中的除去所述第三交易的各所述第二交易的顺序与所存证的各第二交易的顺序是否相同。
4.根据权利要求1所述的方法,其特征在于,所述根据按序的各所述第二交易、所述零知识证明证据生成第一证明数据包括:
根据按序的各所述第二交易、第一树根、所述零知识证明证据生成第一证明数据;其中,所述第一树根根据各所述状态树的默克尔树根生成;
所述通过所述跨链验证合约判断所述第一证明数据中的各所述第二交易的顺序与所存证的各第二交易的顺序是否相同包括:
通过所述跨链验证合约根据各所述第二交易、所存储的第二树根计算第三树根,在所述第三树根与所述第一树根相同时,将所述第二树根的值更新为所述第一树根的值;以及,
通过所述跨链验证合约判断所述第一证明数据中的各所述第二交易的顺序与所存证的各第二交易的顺序是否相同。
5.根据权利要求1所述的方法,其特征在于,所述根据按序的各所述第二交易、所述零知识证明证据生成第一证明数据包括:
根据按序的各所述第二交易的第二交易信息、所述零知识证明证据生成第一证明数据;
所述通过所述跨链验证合约判断所述第一证明数据中的各所述第二交易的顺序与所存证的各第二交易的顺序是否相同包括:
通过所述跨链验证合约判断所述第一证明数据中的各所述第二交易信息与所存证的各第二交易是否匹配;
所述顺序相同,则将所述零知识证明证据输入所述零知识证明电路以验证各所述第二交易信息是否正确包括:
匹配,则将所述零知识证明证据输入所述零知识证明电路以验证各所述第二交易信息是否正确。
6.一种合约多主链跨链方法,其特征在于,二层网络上有分别对应于各主链的状态树,各所述状态树的初始根哈希相同,各主链配置有跨链验证合约,所述跨链验证合约中部署有验证交易信息的零知识证明电路,需要调用第一类合约的交易在被各主链的主链节点执行成功时存证到所在主链,所述第一类合约包括存款合约、取款合约,所述方法适用于主链节点,所述方法包括:
通过区块生成合约在监测到第一主链生成了第一主链区块时,按序同步所述第一主链区块中的各需要调用所述第一类合约的第一交易;其中,所述第一主链区块还用于供二层网络的节点:
在监测到所述第一主链区块时,按序同步各所述第一交易;
执行各所述第一交易以更新二层网络上所述第一主链的第一状态树;
在获取所在主链的待生成的最新的第二主链区块的打包权时,生成包括按序的各所述第一交易的所述第二主链区块,将所述第二主链区块广播给所在主链的其它各主链节点,以供所在主链的其它各主链节点:
判断所述第二主链区块中的各所述第一交易的顺序与所同步的各所述第一交易的顺序是否相同:
否,则拒绝所述第二主链区块;
接收二层网络的节点生成并发送的第一证明数据;其中,所述第一证明数据由二层网络的节点根据按序的各第二交易、零知识证明证据生成,所述零知识证明证据由二层网络的节点响应于触发结算条件,按序根据各所述第二交易的第二交易信息生成;
通过所述跨链验证合约判断所述第一证明数据中的各所述第二交易的顺序与所存证的各第二交易的顺序是否相同:
顺序相同,则将所述零知识证明证据输入所述零知识证明电路以验证各所述第二交易信息是否正确:
验证正确,则结束;
其中,所述第二交易信息包括操作类型、用户地址、通证数量。
7.根据权利要求6所述的方法,其特征在于,二层网络的节点在监测到顺序不同,或,验证不正确时,在二层网络上回滚各主链的状态树至未执行各所述第二交易时的状态;以及,返回所述按序根据各第二交易的第二交易信息生成零知识证明证据步骤,以重新生成所述零知识证明证据和所述第一证明数据。
8.根据权利要求6所述的方法,其特征在于,所述第一证明数据中的第二交易中包括若干调用第二类合约的第三交易,所述第三交易由客户端生成,所述第二类合约包括转账合约、跨链转账合约;所述第三交易由二层网络的节点在生成所述第一证明数据前所接收并执行如下操作:执行所述第三交易以更新二层网络上所述第三交易指定的需跨链的第二主链的第二状态树,和,所述第三交易指定的待跨链的第三主链的第三状态树;
所述通过所述跨链验证合约判断所述第一证明数据中的各所述第二交易的顺序与所存证的各第二交易的顺序是否相同包括:
通过所述跨链验证合约判断所述第一证明数据中的除去所述第三交易的各所述第二交易的顺序与所存证的各第二交易的顺序是否相同。
9.根据权利要求6所述的方法,其特征在于,所述第一证明数据由二层网络的节点根据按序的各第二交易、第一树根、零知识证明证据生成;其中,所述第一树根根据各所述状态树的默克尔树根生成;
所述通过所述跨链验证合约判断所述第一证明数据中的各所述第二交易的顺序与所存证的各第二交易的顺序是否相同包括:
通过所述跨链验证合约根据各所述第二交易、所存储的第二树根计算第三树根,在所述第三树根与所述第一树根相同时,将所述第二树根的值更新为所述第一树根的值;以及,
通过所述跨链验证合约判断所述第一证明数据中的各所述第二交易的顺序与所存证的各第二交易的顺序是否相同。
10.根据权利要求6所述的方法,其特征在于,所述第一证明数由二层网络的节点根据按序的各所述第二交易的第二交易信息、所述零知识证明证据生成;
所述通过所述跨链验证合约判断所述第一证明数据中的各所述第二交易的顺序与所存证的各第二交易的顺序是否相同包括:
通过所述跨链验证合约判断所述第一证明数据中的各所述第二交易信息与所存证的各第二交易是否匹配;
所述顺序相同,则将所述零知识证明证据输入所述零知识证明电路以验证各所述第二交易信息是否正确包括:
匹配,则将所述零知识证明证据输入所述零知识证明电路以验证各所述第二交易信息是否正确。
11.一种计算机设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1-10中任一项所述的方法。
12.一种存储有计算机程序的存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-10中任一项所述的方法。
CN202111668166.7A 2021-12-31 合约多主链跨链方法、设备和存储介质 Active CN114266665B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111668166.7A CN114266665B (zh) 2021-12-31 合约多主链跨链方法、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111668166.7A CN114266665B (zh) 2021-12-31 合约多主链跨链方法、设备和存储介质

Publications (2)

Publication Number Publication Date
CN114266665A CN114266665A (zh) 2022-04-01
CN114266665B true CN114266665B (zh) 2024-07-05

Family

ID=

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109919615A (zh) * 2019-03-01 2019-06-21 上海分布信息科技有限公司 基于区块链的跨链数据交互方法及跨链数据交互系统
CN110445616A (zh) * 2019-07-15 2019-11-12 杭州复杂美科技有限公司 一种区块打包节点的打包顺序确定方法、设备及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109919615A (zh) * 2019-03-01 2019-06-21 上海分布信息科技有限公司 基于区块链的跨链数据交互方法及跨链数据交互系统
CN110445616A (zh) * 2019-07-15 2019-11-12 杭州复杂美科技有限公司 一种区块打包节点的打包顺序确定方法、设备及存储介质

Similar Documents

Publication Publication Date Title
CN110737664B (zh) 一种区块链节点同步的方法及装置
US20210351939A1 (en) Parachain Data Synchronization Method, Device and Storage Medium
CN111080449B (zh) 区块链的跨链交易方法、管理节点、区块链网络
CN109189853A (zh) 一种区块链之间数据同步方法与装置
CN109377365B (zh) 一种资产转移方法、设备和存储介质
CN108492108A (zh) 区块链跨链通信方法、系统和计算机可读存储介质
CN110458631B (zh) 基于区块链的票据号码分配方法、装置及电子设备
CN109558454B (zh) 平行链挖矿共识方法、设备和存储介质
CN107480990A (zh) 区块链记账方法及装置
CN109831514A (zh) 平行链共识方法、数据异常处理方法、设备和存储介质
CN111444196B (zh) 块链式账本中全局状态的哈希的生成方法、装置及设备
CN109981279B (zh) 一种区块链系统、通信方法、装置、设备及介质
CN110187831B (zh) 区块链联盟链的区块数据存储系统及方法
CN111127011B (zh) 一种基于区块链进行对账的交易方法、系统和计算机可读存储介质
CN113179272A (zh) 基于智能合约的区块链跨链交互方法、装置和计算机可读存储介质
CN112184436B (zh) 数据同步方法、电子设备及可读存储介质
CN112087497B (zh) 数据同步方法、装置、电子设备及可读存储介质
CN110599175A (zh) 一种区块处理方法及相关设备
CN111008249B (zh) 平行链区块同步方法、设备和存储介质
CN112488683B (zh) 一种区块链的链下交易方法及装置
CN114266665B (zh) 合约多主链跨链方法、设备和存储介质
CN113656497A (zh) 一种基于区块链的数据验证方法和装置
CN111679902B (zh) 基于区块链的智能合约调用方法及装置、电子设备
CN114202425A (zh) 预言机多主链跨链方法、设备和存储介质
CN114283010B (zh) 基于多主链二层网络状态树的多主链跨链方法

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant