CN112783877A - 跨链数据验证方法、装置、设备和存储介质 - Google Patents
跨链数据验证方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN112783877A CN112783877A CN202011613864.2A CN202011613864A CN112783877A CN 112783877 A CN112783877 A CN 112783877A CN 202011613864 A CN202011613864 A CN 202011613864A CN 112783877 A CN112783877 A CN 112783877A
- Authority
- CN
- China
- Prior art keywords
- data
- chain
- verified
- verification
- cross
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 98
- 238000013524 data verification Methods 0.000 title claims abstract description 53
- 238000012795 verification Methods 0.000 claims abstract description 355
- 238000004422 calculation algorithm Methods 0.000 claims description 19
- 230000007246 mechanism Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012544 monitoring process Methods 0.000 claims description 9
- 238000013502 data validation Methods 0.000 claims description 8
- 239000004744 fabric Substances 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 5
- 239000000126 substance Substances 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 35
- 230000005540 biological transmission Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- LPLLVINFLBSFRP-UHFFFAOYSA-N 2-methylamino-1-phenylpropan-1-one Chemical compound CNC(C)C(=O)C1=CC=CC=C1 LPLLVINFLBSFRP-UHFFFAOYSA-N 0.000 description 1
- 241000132539 Cosmos Species 0.000 description 1
- 235000005956 Cosmos caudatus Nutrition 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Computational Linguistics (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种跨链数据验证方法、装置、设备和存储介质,涉及区块链技术领域,可用于云计算和云服务。具体实现方案为:中继节点响应于源链中的跨链查询事件,从目标链中获取包括查询数据的待验证数据;对所述待验证数据进行初始验证,得到初始验证结果;将所述初始验证结果和所述待验证数据反馈至所述源链,以供所述源链中的区块链节点根据所述初始验证结果,对所述待验证数据进行二次验证。本申请在区块链之间进行跨链查询过程中,提高了跨链数据验证通用性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及区块链技术,可用于云计算和云服务。
背景技术
区块链的链上数据是一个数据孤岛,不同的区块链之间无法做到互联互通,这阻碍了区块链应用生态的进一步发展。
跨链技术是用于解决两条或多条区块链之间互操作性的技术,让数据跨过链与链之间的障碍,使价值在不同的区块链之间得以流通。而跨链查询为跨链技术的前提,用于通过源链接收并验证目标链上的数据。
现有技术中的跨链查询过程存在通用性较差等缺陷。
发明内容
本申请提供了一种通用性更好的跨链数据验证方法、装置、设备和存储介质。
根据本申请的一方面,提供了一种跨链数据验证方法,应用于中继节点,包括:
响应于源链中的跨链查询事件,从目标链中获取包括查询数据的待验证数据;
对所述待验证数据进行初始验证,得到初始验证结果;
将所述初始验证结果和所述待验证数据反馈至所述源链,以供所述源链中的区块链节点根据所述初始验证结果,对所述待验证数据进行二次验证。
根据本申请的另一方面,还提供了一种跨链数据验证方法,应用于区块链节点,包括:
响应于源链向目标链的跨链查询请求,调用跨链合约,生成跨链查询事件;
接收中继节点基于所述跨链查询事件,从所述目标链获取的待验证数据,以及对所述待验证数据的初始验证结果;
基于所述跨链合约,根据所述初始验证结果,对所述待验证数据进行二次验证。
根据本申请的另一方面,还提供了一种跨链数据验证装置,配置于中继节点,包括:
待验证数据获取模块,用于响应于源链中的跨链查询事件,从目标链中获取包括查询数据的待验证数据;
初始验证模块,用于对所述待验证数据进行初始验证,得到初始验证结果;
待验证数据反馈模块,用于将所述初始验证结果和所述待验证数据反馈至所述源链,以供所述源链中的区块链节点根据所述初始验证结果,对所述待验证数据进行二次验证。
根据本申请的另一方面,还提供了一种跨链数据验证装置,配置于区块链节点,包括:
跨链查询事件生成模块,用于响应于源链向目标链的跨链查询请求,调用跨链合约,生成跨链查询事件;
数据反馈模块,用于接收中继节点基于所述跨链查询事件,从所述目标链获取的待验证数据,以及对所述待验证数据的初始验证结果;
二次验证模块,用于基于所述跨链合约,根据所述初始验证结果,对所述待验证数据进行二次验证。
根据本申请的另一方面,还提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请实施例提供的任意一种跨链数据验证方法。
根据本申请的另一方面,还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本申请实施例提供的任意一种跨链数据验证方法。
根据本申请的另一方面,还提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本申请实施例提供的任意一种跨链数据验证方法。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1A是现有技术中的一种跨链系统结构图;
图1B是本申请实施例提供的一种跨链数据验证方法的流程图;
图2是本申请实施例提供的另一种跨链数据验证方法的流程图;
图3A是本申请实施例提供的一种跨链系统结构图;
图3B是本申请实施例提供的另一种跨链数据验证方法的流程图;
图4是本申请实施例提供的一种跨链数据验证装置的结构图;
图5是本申请实施例提供的另一种跨链数据验证装置的结构图;
图6是用来实现本申请实施例的跨链数据验证方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
为了清楚的介绍本申请的技术方案,首先对现有技术中跨链数据验证方法进行示例性说明。
现有技术通常基于Cosmos的区块链间通信协议(IBC协议),采用中继模式实现两个同构区块链的互操作。具体参见图1A所示的现有技术中的跨链系统结构图。在该系统中,包括源链中的源链节点(也即源链中的区块链节点)、目标链中的目标链节点(也即目标链中的区块链节点)和中继节点。其中,源链和目标链可以是同构区块链或异构区块链。
其中,源链节点中设置有与目标链对应的目标链客户端,用于维护目标链的区块链状态;目标链节点中设置有与源链对应的源链客户端,用于维护源链的区块链状态。
具体的,中继节点向目标链客户端实时同步目标链生成的区块头数据;以及向源链客户端实时同步源链生成的区块头数据。
若源链节点需要查询目标链节点中的区块数据时,通过目标链客户端对获取的目标链的区块数据进行验证;若目标链节点需要查询源链节点中的区块数据时,通过源链客户端对获取的源链的区块数据进行验证。
由于源链节点与源链客户端之间、目标链节点与目标链客户端之间,需要通过IBC协议通信,而IBC协议不具有主动兼容性,也即对于已经存在的异构链,不能直接实现IBC协议,需要对其代码进行分叉或对区块链网络自身进行改造,导致上述现有技术的方案通用性较差,难以适配多样化的区块链网络需求。另外,当一条源链需要与多条目标链进行跨链时,需要在源链中分别设置与各目标链对应的客户端,可扩展性差。
有鉴于此,本申请提供了至少一种通用性更好的跨链数据验证方法和跨链数据验证装置,适用于在区块链之间进行跨链数据查询时,对跨链数据的有效性或正确性等进行验证。各跨链数据验证方法可以由跨链数据验证装置执行,该装置可以采用软件和/或硬件实现,并具体配置于电子设备中,该电子设备可以是承载有区块链节点的计算设备、或具备一定算力的其他设备。
参见图1B所示的一种跨链数据验证方法,应用于中继节点,包括:
S101、响应于源链中的跨链查询事件,从目标链中获取包括查询数据的待验证数据。
其中,源链用于表征具备跨链需求的区块链;目标链用于表征存储有跨链需求对应的跨链数据的区块链;中继节点用于实现源链和目标链之间的数据传输。其中,查询数据即为跨链数据。
其中,跨链查询事件为源链向目标链进行数据查询的事件。示例性地,该跨链查询事件可以由源链中的区块链节点,响应于源链向目标链的跨链查询请求,调用源链的区块链节点所部署的跨链合约后生成。
在一个具体实现方式中,当用户具备跨链查询需求时,可以在源链中发起向目标链的跨链查询请求;或者,当在源链中执行某一事务请求的过程中,需要借助目标链中的数据进行辅助运算时,可以通过在源链中关联发起向目标链的跨链查询请求。源链中的区块链节点接收到该跨链查询请求后,调用自身部署的跨链合约,生成源链向目标链的跨链查询事件。
其中,跨链合约用于在具备跨链需求时,进行跨链数据获取、存储和验证等。跨链合约可以在区块链节点参与到区块链网络时进行合约部署,还可以在区块链网络运行过程中,在具备跨链需求时,在区块链网络的各区块链节点中进行跨链合约的统一部署。
示例性地,当源链生成跨链查询事件时,中继节点会向跨链查询事件中的目标链发送数据查询请求,其中,数据查询请求中包括目标链中的查询数据(跨链数据)的数据标识。相应的,目标链接收到该数据查询请求之后,根据数据查询请求中的查询数据的数据标识,获取查询数据;生成包括查询数据的待验证数据反馈至中继节点;中继节点接收该待验证数据。
可选的,当源链中有跨链查询事件生成时,可以直接向中继节点发送提醒信息;中继节点接收到该提醒信息后,会基于该跨链查询事件向目标链进行待验证数据获取。
然而,区块链网络中的区块链节点,主动向区块链网络以外的其他设备进行数据交互,将会带来一定的安全隐患。为了保证源链中的数据安全性,可选的,由中继节点实时或定时监听源链中是否生成跨链查询事件;若时,则从跨链查询事件中的目标链中获取包括查询数据的待验证数据;否则,持续对源链进行跨链查询事件的监听操作。
S102、对待验证数据进行初始验证,得到初始验证结果。
S103、将初始验证结果和待验证数据反馈至源链,以供源链中的区块链节点根据初始验证结果,对待验证数据进行二次验证。
中继节点对待验证数据进行初始验证,以确定待验证数据的准确性或有效性;将初始验证结果和待验证数据发送至源链的区块链节点;源链的区块链节点根据初始验证结果,对待验证数据进行二次验证,从而根据两次验证情况,实现对跨链数据的验证。具体的,若两次验证均通过,则最终确定待验证数据验证通过;否则,最终确定待验证数据验证不通过。
在一个可选实施例中,中继节点可以对待验证数据进行初始验证,得到初始验证结果;将初始验证结果和待验证数据发送至源链;源链的区块链节点识别初始验证结果是否通过;若通过,则对所接收的待验证数据进行二次验证,确定二次验证结果;若不通过,则直接确定二次验证不通过。
可以理解的是,中继节点作为源链和目标链之间的数据传输枢纽,能够起到异构链适配的作用。也即,当源链和目标链所采用的区块链类型不同时,能够将从目标链获取的待验证数据转化为源链能够接收、识别和处理的相应类型的待验证数据,为源链二次验证的顺利执行奠定基础。
为了减少源链中区块链节点的数据传输量和数据运算量,在另一可选实施例中,中继节点还可以对待验证数据进行初始验证,得到初始验证结果;若验证通过,则将待验证数据发送至源链,以供源链中的区块链节点对待验证数据进行二次验证;若验证不通过,则禁止将待验证数据发送至源链。
可以理解的是,在中继节点向源链进行数据传输时,仅发送待验证数据,不进行初始验证结果的传输,减少了中继节点与源链之间的数据传输量。另外,在初始验证不通过时,源链的区块链节点不再执行对待验证数据的二次验证操作,减少了验证过程的数据运算量,避免了资源的无端损耗。
为了进一步减少源链中区块链节点的数据运算量,在又一可选实施例中,中继节点还可以对待验证数据进行初始验证;若验证通过,则对待验证数据进行签名,得到初始验证结果;将初始验证结果和待验证数据反馈至源链;源链的区块链节点对初始验证结果进行验签;根据验签结果确定二次验证结果。具体的,若验签通过,则二次验证通过;若验签不通过,则二次验证不通过。
可以理解的是,在中继节点进行初始验证之后,对待验证数据进行签名,为源链的二次验证提供数据支撑,从而减少了源链的区块链节点二次验证的复杂度,进而减少了源链区块链节点的数据运算量。
在一个可选实施方式中,中继节点可以直接将初始验证结果和待验证数据反馈至源链中,以供源链的区块链节点进行二次验证。
为了便于将待验证数据与执行业务合约所生成的常规业务数据加以区分,便于源链的区块链节点及时进行待验证数据的二次验证,中继节点通常采用调用源链的跨链合约的方式,向源链进行数据传输。也即,调用源链中的跨链合约,将初始验证结果和待验证数据反馈至源链。其中,业务合约用于实现区块链中常规业务功能,例如区块链账户之间的数字资产转移等;跨链合约用于在具备跨链需求时,进行跨链数据获取、存储和验证等。
上述内容对中继节点和源链之间的数据传输机制以及源链对待验证数据的二次验证机制进行了介绍,以下将对中继节点对待验证数据的初始验证过程进行详细说明。
由于不同区块链所采用的数据结构或共识机制各不相同,因此,中继节点对不同区块链所采用的验证方式也存在一定差异。
示例性地,对待验证数据进行初始验证,可以是:确定目标链对应的目标验证策略;根据目标验证策略,对待验证数据进行初始验证。
可选的,可以预先将目标链的区块链信息在中继节点中进行注册,在注册时,建立不同目标链与验证策略之间的关联关系。相应的,通过该关联关系,确定目标链对应的目标验证策略;根据目标验证策略,对待验证数据进行初始验证。
由于预先存储目标链与验证策略之间的关联关系,会带来一定存储资源的占用。当中继节点所关联的目标链数量较多时,为了减少存储资源损耗,还可以由中继节点根据目标链的数据结构和共识机制等信息中的至少一种,确定目标链的区块链类型;根据区块链类型,确定目标链的目标验证策略;根据目标验证策略,对待验证数据进行初始验证。
示例性地,若目标链为共识算法类联盟链,则根据目标验证策略,对待验证数据进行初始验证可以包括下述至少一种:对待验证数据的发送节点的节点地址准确性进行初始验证;对待验证数据的签名节点准确性进行初始验证;基于目标链的共识算法,对待验证数据的签名节点数量进行初始验证。
具体的,基于目标链的共识算法,对待验证数据的签名节点数量进行初始验证,可以是:若共识算法为BFT(Byzantine Fault Tolerance,拜占庭容错)类算法,若签名节点数量大于共识节点数量的2/3,则初始验证通过;若签名节点数量不大于共识节点数量的2/3,则初始验证不通过。若共识算法为CFT(Crash Fault Tolerance,故障容错)类算法,若签名节点数量为至少一个,则初始验证通过;若签名节点数量小于1,则初始验证不通过。
示例性地,若目标链为支持默克尔树数据结构的区块链,则根据目标验证策略,对待验证数据进行初始验证,可以是:基于默克尔证明机制,对待验证数据进行初始验证。
具体的,可以预先同步目标链的区块头数据,生成参考验证数据;基于共识机制,根据参考验证数据,对待验证数据进行初始验证。
示例性地,若目标链为fabric联盟链,则根据目标验证策略,对待验证数据进行初始验证,可以是:基于背书节点证书,对待验证数据进行初始验证。
具体的,在fabric联盟链构建时,成员节点之间通常存在一定的信任基础。具体的,通过信任度较高的几个背书节点对事务请求执行过程进行背书,保证了事务请求执行过程的可信度。因此,可以通过背书节点证书的存在性、一致性和证书数量中的至少一种,对待验证数据进行初始验证。
需要说明的是,中继节点针对不同类型的区块链采用对应的验证机制,对待验证数据进行初始验证,丰富了初始验证机制,能够适配目标链的类型多样性,提高了跨链数据验证方法的可扩展性。
本申请实施例通过中继节点,对目标链获取的包括跨链数据的待验证数据,进行初始验证;通过源链中的区块链节点,基于初始验证结果,对待验证数据进行二次验证,将源链对目标链的跨链数据的验证过程拆分为两个阶段的验证操作,从而无需在源链中专门设置与目标链相对应的客户端,并进行相应客户端的运行和维护,也即无需对区块链网络中的各节点进行代码分叉或改造,使得验证过程更加便捷。另外,上述方案能够适用于新搭建的区块链网络或已运行的区块链网络中,因此,对新搭建和已运行的区块链网络均具备主动兼容性,通用性更好。
在上述各技术方案的基础上,为了保证初始验证过程的准确性和安全性,还可以在TEE(Trusted Execution Environment,可信执行环境)中,对待验证数据进行初始验证。
由于可信执行环境是芯片层面为代码执行提供一片独立区域,这片区域无法从软件和/或硬件层面被其他程序所获取,因此确保了区域中执行代码的机密性和不可篡改性,从而保证了初始验证逻辑能够按照预期执行。另外,将中继节点的私钥等敏感信息存储在可信执行环境中,只要可信执行环境中的数据没有被覆盖、或者包含可信执行环境的芯片没有丢失,上述敏感信息将不会被外界程序所获取,提高了验证过程的安全性。
需要说明的是,在可信执行环境中对待验证数据进行初始验证后,可以通过可信执行环境的私钥信息进行签名,得到初始验证结果,作为源链的区块链节点对待验证数据二次验证的参照。
上述各技术方案以源链和目标链之间的中继节点为执行主体,对跨链数据验证过程进行了详细说明。本申请还提供了一种以源链的区块链节点为执行主体,进行跨链数据验证的可选实施例。
参见图2所示的一种跨链数据验证方法,应用于区块链节点,包括:
S201、响应于源链向目标链的跨链查询请求,调用跨链合约,生成跨链查询事件。
在区块链网络的各区块链节点中部署有智能合约,以通过智能合约调用的方式,自动化实现智能合约相应的功能。其中,智能合约包括业务合约和跨链合约。其中,业务合约用于实现相应的常规业务功能,例如区块链账户之间进行数据转账等;跨链合约用于在具备跨链需求时,进行跨链数据获取、存储和验证等。
其中,跨链合约可以在区块链节点参与到区块链网络时进行合约部署,还可以在区块链网络运行过程中,在具备跨链需求时,在区块链网络的各区块链节点中进行合约的统一部署。
当用户具备跨链查询需求时,可以在源链中发起向目标链的跨链查询请求;或者,当在源链中执行某一事务请求的过程中,需要借助目标链中的数据进行辅助运算时,可以通过在源链中关联发起向目标链的跨链查询请求。相应的,源链中的区块链节点接收到该跨链查询请求后,调用自身部署的跨链合约,生成源链向目标链的跨链查询事件。
其中,源链用于表征具备跨链需求的区块链;目标链用于表征存储有跨链需求对应的跨链数据的区块链。
需要说明的是,为了便于目标链中针对跨链查询请求进行对应查询数据的获取,通常在跨链查询请求中会携带有该查询数据的标识信息。由于在源链中向目标链发起的跨链查询请求的数量可能不止一个,为了便于对不同跨链查询请求加以区分,从而实现对后续所获取的待验证数据的区分,还可以在跨链查询请求中携带跨链查询请求的标识信息,也即跨链查询请求标识。
S202、接收中继节点基于跨链查询事件,从目标链获取的待验证数据,以及对待验证数据的初始验证结果。
其中,查询数据即为前述跨链数据。其中,中继节点用于实现源链和目标链之间的数据传输。
当源链中有跨链查询事件生成时,中继节点会基于该跨链查询事件,向目标链进行包括查询数据的待验证数据的获取;中继节点对待验证数据进行初始验证,得到初始验证结果,并将初始验证结果和待验证数据反馈至源链。相应的,源链的区块链节点,接收并处理所接收数据。
示例性地,当源链中有跨链查询事件生成时,可以直接向中继节点发送提醒信息,以触发中继节点向目标链的待验证数据的数据获取操作。
然而,区块链网络中的区块链节点,主动向区块链网络以外的其他设备进行数据交互,将会带来一定的安全隐患。为了保证源链中的数据安全性,示例性地,还可以由中继节点主动监听源链中是否有跨链查询事件的生成;若监听到源链中生成了跨链查询事件,则触发中继节点向目标链的待验证数据的数据获取操作;否则,持续对源链进行跨链查询事件的监听操作。
示例性地,中继节点可以直接向源链中的区块链节点发送待验证数据。为了便于将待验证数据与执行业务合约所生成的常规业务数据加以区分,示例性地,中继节点还可以通过调用跨链合约的方式,向源链的区块链节点反馈待验证数据。
需要说明的是,为了对源链向目标链发起的至少一个跨链查询请求加以区分,避免出现待验证数据混淆的情况,中继节点会基于跨链查询请求的跨链查询请求标识,向源链的区块链节点反馈相应的待验证数据和待验证数据的初始验证结果。
S203、基于跨链合约,根据初始验证结果,对待验证数据进行二次验证。
在一个可选实施例中,中继节点可以对待验证数据进行初始验证,得到初始验证结果;将初始验证结果和待验证数据发送至源链;源链的区块链节点基于跨链合约,识别初始验证结果是否通过;若通过,则对所接收的待验证数据进行二次验证,确定二次验证结果;若不通过,则直接确定二次验证不通过。其中,对待验证数据的二次验证可以与前述中继节点对待验证数据的初始验证操作相同或不同,本申请对此不做任何限定。
可以理解的是,中继节点作为源链和目标链之间的数据传输枢纽,能够起到异构链适配的作用。也即,当源链和目标链所采用的区块链类型不同时,能够将从目标链获取的待验证数据转化为源链能够接收、识别和处理的相应类型的待验证数据,为源链二次验证的顺利执行奠定基础。
为了减少源链中区块链节点的数据传输量和数据运算量,在另一可选实施例中,中继节点还可以对待验证数据进行初始验证,得到初始验证结果;若验证通过,则将待验证数据发送至源链,以供源链中的区块链节点对待验证数据进行二次验证;若验证不通过,则禁止将待验证数据发送至源链。其中,对待验证数据的二次验证可以与前述中继节点对待验证数据的初始验证操作相同或不同,本申请对此不做任何限定。
可以理解的是,在中继节点向源链进行数据传输时,仅发送待验证数据,不进行初始验证结果的传输,减少了中继节点与源链之间的数据传输量。另外,在初始验证不通过时,源链的区块链节点不再执行对待验证数据的二次验证操作,减少了验证过程的数据运算量,避免了资源的无端损耗。
为了进一步减少源链中区块链节点的数据运算量,在又一可选实施例中,中继节点还可以对待验证数据进行初始验证;若验证通过,则对待验证数据进行签名,得到初始验证结果;将初始验证结果和待验证数据反馈至源链。相应的,源链的区块链节点可以基于跨链合约,确定初始验证结果中是否包含中继节点的节点地址;根据确定结果,对待验证数据进行二次验证。具体的,若包含节点地址,且所包含节点地址与中继节点的节点地址一致,则确定二次验证通过;否则,确定二次验证不通过。
或者,可选的,源链的区块链节点还可以基于跨链合约,对初始验证结果中的签名进行验签;根据验签结果,对待验证数据进行二次验证。具体的,若验签通过,则二次验证通过;若验签不通过,则二次验证不通过。
可以理解的是,在中继节点进行初始验证之后,对待验证数据进行签名,为源链的二次验证提供数据支撑,从而减少了源链的区块链节点二次验证的复杂度,进而减少了源链区块链节点的数据运算量。
在一个可选实施方式中,中继节点可以直接将初始验证结果和待验证数据反馈至源链中,以供源链的区块链节点进行二次验证。
为了便于将待验证数据与执行业务合约所生成的常规业务数据加以区分,便于源链的区块链节点及时进行待验证数据的二次验证,中继节点通常采用调用源链的跨链合约的方式,向源链进行数据传输。也即,调用源链中的跨链合约,将初始验证结果和待验证数据反馈至源链。其中,业务合约用于实现区块链中常规业务功能,例如区块链账户之间的数字资产转移等;跨链合约用于在具备跨链需求时,进行跨链数据获取、存储和验证等。
在一个可选实施例中,若中继节点对待验证数据的初始验证过程在可信环境中执行,源链的区块链节点对初始验证结果的验签操作,可以借助预先注册的可信环境信息加以实现。
示例性地,可信环境信息包括可信执行环境的公钥信息;相应的,源链的区块链节点可以根据公钥信息,对可信执行环境的签名结果准确性进行验证。
示例性地,可信环境信息还可以包括可信执行环境的证明信息;相应的,源链的区块链节点可以根据证明信息,验证可信执行环境的有效性,以避免可信执行环境失效给跨链数据验证结果准确度和安全性带来的影响。
本申请实施例通过中继节点,对目标链获取的包括跨链数据的待验证数据,进行初始验证;通过源链中的区块链节点,基于初始验证结果,对待验证数据进行二次验证,将源链对目标链的跨链数据的验证过程拆分为两个阶段的验证操作,从而无需在源链中专门设置与目标链相对应的客户端,并进行相应客户端的运行和维护,也即无需对区块链网络中的各节点进行代码分叉或改造,使得验证过程更加便捷。另外,上述方案能够适用于新搭建的区块链网络或已运行的区块链网络中,因此,对新搭建和已运行的区块链网络均具备主动兼容性,通用性更好。
上述各技术方案均以源链中的区块链节点为执行主体,对跨链数据验证过程进行了详细说明。然而,源链还可以作为其他区块链的目标链,相应的,该源链的区块链节点,还可以用于在参与跨链查询过程中,为其他源链的跨链数据验证过程提供跨链数据。其中,其他源链可以是前述示例中的目标链,以实现源链和目标链之间的跨链交互;当然,其他源链还可以为前述示例中的目标链以外的其他区块链,本申请对此不做任何限定。
在一个可选实施例中,在跨链数据验证过程中,前述示例中源链的区块链节点,还可以接收中继节点基于其他区块链的跨链查询请求发送的数据查询请求;向中继节点反馈包括其他查询数据的其他待验证数据,以使中继节点执行如下操作:对其他待验证数据进行初始验证,得到其他初始验证结果;将其他初始验证结果和其他待验证数据反馈至其他区块链,用于对其他待验证数据进行二次验证。
示例性地,当前述源链作为其他区块链的目标链时,其他区块链会基于用户需求生成跨链查询请求,或者业务合约调用过程中,生成跨链查询请求;其他区块链中的区块链节点调用自身部署的跨链合约,生成跨链查询事件;中继节点基于该跨链查询事件向该源链发送数据查询请求;源链中的区块链节点根据数据查询请求中其他查询数据的数据标识,向其他区块链的区块链节点反馈包括其他查询数据的其他待验证数据;中继节点对该其他待验证数据进行初始验证,得到其他初始验证结果;将其他初始验证结果和其他待验证数据发送至其他区块链;其他区块链的区块链节点基于该其他初始验证结果,对其他待验证数据进行二次验证。其中,初始验证和二次验证的具体验证过程可参见前述示例说明,仅需将该可选实施例中的源链作为前述目标链;将该可选实施例中的其他区块链作为前述源链即可,在此不再赘述。
可以理解的是,上述技术方案通过区块链节点接收其他区块链的跨链查询事件生成的数据查询请求,向中继节点反馈包括其他查询数据的其他待验证数据,以供中继节点对其他待验证数据进行初始验证,以及其他区块链对其他待验证数据进行二次验证,能够适配源链作为其他区块链的目标链时,其他区块链向源链进行跨链查询的应用场景。
在上述各技术方案的基础上,本申请提供了一种包含至少两个区块链的超级链网络中,执行区块链间跨链数据验证的一个优选实施例。
在该实施例中,结合图3A所示的一种跨链系统结构图和图3B所示的一种跨链数据验证方法的流程图,对跨链数据验证过程进行详细说明。
参见图3B所示的一种跨链数据验证方法,包括:
S310、初始化阶段;
S320、跨链查询阶段。
示例性地,初始化阶段,包括:
S311、目标链在中继节点中注册区块链信息;其中,区块链信息包括区块链名称、节点地址、节点公钥、区块头数据、和背书节点证书等中的至少一种。
若目标链为共识算法类联盟链,则区块链信息至少包括节点地址和节点公钥;若目标链为支持默克尔树数据结构的区块链,则区块链信息至少包括目标链中各区块的区块头数据;若目标链为fabric联盟链,则区块链信息至少包括背书节点证书。当然,区块链信息还可以根据目标链的区块链类型的不同,根据需要增加或删除部分数据,本申请对此不做任何限定。
S312、中继节点将区块链信息传入TEE内进行配置。
S313、源链部署跨链合约,并注册TEE信息;其中,TEE信息包括TEE公钥和TEE证明信息。
其中,跨链合约设置有跨链查询(queryChainData)接口,用于触发跨链查询事件;还设置有中继回调查询(queryChainDataCallback)接口,用于中继回调跨链查询结果;还设置有跨链记录查询(queryRecord)接口,用于查询跨链记录。
其中,TEE公钥,用于验证TEE签名的准确性;TEE证明信息(quote),用于验证TEE的有效性。
示例性地,跨链查询阶段,包括:
S321、中继节点监听源链是否生成跨链事件;若是,则执行S323;否则,返回执行S321。
S322、源链节点响应于跨链查询请求,调用跨链合约生成向目标链的跨链事件。其中,跨链查询请求包括目标链标识。
参见图3A可知,跨链查询请求可以由用户基于自身需求直接调用跨链合约生成,还可以由业务合约在实现相应业务功能过程中,需要进行目标链中的数据获取时,在业务合约调用过程中关联生成。
示例性地,源链节点响应于跨链查询请求,调用跨链合约中的跨链查询接口,生成向目标链的跨链事件。
S323、中继节点向目标链节点发送数据查询请求。
S324、目标链节点根据数据查询请求中的查询数据标识获取查询数据,并生成包括查询数据的待验证数据。
若目标链为共识算法类联盟链,目标链还会基于查询数据所属区块的区块头数据生成默克尔证明信息,并生成包括查询数据和默克尔证明信息的待验证数据。
S325、目标链节点向中继节点反馈待验证数据。
S326、中继节点根据目标链的区块链类型,确定目标链的目标验证策略。
若目标链为共识算法类联盟链,则将共识验证机制作为目标验证策略;若目标链为支持默克尔树数据结构的区块链,则将默克尔证明机制作为目标验证策略;若目标链为fabric联盟链,则将背书证明机制作为目标验证策略。
S327、根据目标验证策略,获取相应的区块链信息,对待验证数据进行初始验证。
需要说明的是,当源链能够与至少两个目标链进行跨链查询时,可以根据目标链标识,在中继节点中进行该目标链对应的至少部分区块链信息的获取,用于对待验证数据进行初始验证。
具体的,若目标链为共识算法类联盟链,则对待验证数据的发送节点的节点地址准确性进行验证;对待验证数据的签名节点准确性进行验证;基于目标链的共识算法,对待验证数据的签名节点数量进行验证。若目标链为支持默克尔树数据结构的区块链,则基于默克尔证明机制,对待验证数据进行验证。若目标链为fabric联盟链,则基于背书节点证书,对待验证数据进行初始验证。
S328、若验证通过,则通过TEE对待验证数据进行签名。
S329、调用跨链可约,将签名后的待验证数据反馈至源链节点。
示例性地,中继节点调用跨链合约中的中继回调查询接口,将签名后的待验证数据反馈至源链节点。
S331、源链节点根据TEE证明信息,对TEE有效性进行验证,以及根据TEE公钥对待验证数据的签名进行二次验证,将二次验证结果作为待验证数据的验证结果。
S332、将验证通过的待验证数据上链存储。
S333、响应于跨链记录查询请求,调用跨链合约,在源链中查询跨链记录查询请求对应的跨链数据。
示例性地,源链节点调用跨链合约中的跨链记录查询接口,在源链中根据跨链记录查询请求中的数据标识,确定对应的跨链数据。
参见图3A,源链节点和目标链节点可以彼此互换角色,实现数据的相互查询,本申请对此不做任何限定。
在上述各技术方案的基础上,本申请还提供了一种实现前述各跨链数据验证方法的虚拟装置的实施例。
参见图4所示的一种跨链数据验证装置400,配置于中继节点,包括:待验证数据获取模块401、初始验证模块402和待验证数据反馈模块403。其中,
待验证数据获取模块401,用于响应于源链中的跨链查询事件,从目标链中获取包括查询数据的待验证数据;
初始验证模块402,用于对所述待验证数据进行初始验证,得到初始验证结果;
待验证数据反馈模块403,用于将所述初始验证结果和所述待验证数据反馈至所述源链,以供所述源链中的区块链节点根据所述初始验证结果,对所述待验证数据进行二次验证。
本申请实施例通过中继节点,对目标链获取的包括跨链数据的待验证数据,进行初始验证;通过源链中的区块链节点,基于初始验证结果,对待验证数据进行二次验证,将源链对目标链的跨链数据的验证过程拆分为两个阶段的验证操作,从而无需在源链中专门设置与目标链相对应的客户端,并进行相应客户端的运行和维护,也即无需对区块链网络中的各节点进行代码分叉或改造,使得验证过程更加便捷。另外,上述方案能够适用于新搭建的区块链网络或已运行的区块链网络中,因此,对新搭建和已运行的区块链网络均具备主动兼容性,通用性更好。
在一个可选实施例中,所述初始验证模块402,包括:
初始验证单元,用于对所述待验证数据进行初始验证;
签名单元,用于若验证通过,则对所述待验证数据进行签名,得到初始验证结果。
在一个可选实施例中,所述初始验证模块402,包括:
目标验证策略确定单元,用于确定所述目标链对应的目标验证策略;
初始验证单元,用于根据所述目标验证策略,对所述待验证数据进行初始验证。
在一个可选实施例中,若所述目标链为共识算法类联盟链,则所述初始验证单元,包括共识算法类验证子单元,用于执行下述至少一种验证方法:
对所述待验证数据的发送节点的节点地址准确性进行初始验证;
对所述待验证数据的签名节点准确性进行初始验证;以及,
基于所述目标链的共识算法,对所述待验证数据的签名节点数量进行初始验证;
若所述目标链为支持默克尔树数据结构的区块链,则所述初始验证单元,包括:
默克尔验证子单元,用于基于默克尔证明机制,对所述待验证数据进行初始验证;
若所述目标链为fabric联盟链,则所述初始验证单元,包括:
证书验证子单元,用于基于背书节点证书,对所述待验证数据进行初始验证。
在一个可选实施例中,所述初始验证模块402,包括:
可信初始验证单元,用于在可信执行环境中对所述待验证数据进行初始验证。
在一个可选实施例中,所述待验证数据反馈模块403,包括:
跨链合约调用单元,用于调用所述源链中的跨链合约,将所述初始验证结果和所述待验证数据反馈至所述源链。
在一个可选实施例中,该装置还包括:
监听模块,用于监听所述源链中是否产生跨链查询事件;
监听响应模块,用于若存在,则触发待验证数据获取操作。
上述跨链数据验证装置可执行本申请任意实施例所提供的跨链数据验证方法,具备执行跨链数据验证方法相应的功能模块和有益效果。
在上述各技术方案的基础上,本申请还提供了另一种实现前述各跨链数据验证方法的虚拟装置的实施例。
参见图5所示的一种跨链数据验证装置500,配置于区块链节点,包括:跨链查询事件生成模块501、数据反馈模块502和二次验证模块503。
其中,
跨链查询事件生成模块501,用于响应于源链向目标链的跨链查询请求,调用跨链合约,生成跨链查询事件;
数据反馈模块502,用于接收中继节点基于所述跨链查询事件,从所述目标链获取的待验证数据,以及对所述待验证数据的初始验证结果;
二次验证模块503,用于基于所述跨链合约,根据所述初始验证结果,对所述待验证数据进行二次验证。
本申请实施例通过中继节点,对目标链获取的包括跨链数据的待验证数据,进行初始验证;通过源链中的区块链节点,基于初始验证结果,对待验证数据进行二次验证,将源链对目标链的跨链数据的验证过程拆分为两个阶段的验证操作,从而无需在源链中专门设置与目标链相对应的客户端,并进行相应客户端的运行和维护,也即无需对区块链网络中的各节点进行代码分叉或改造,使得验证过程更加便捷。另外,上述方案能够适用于新搭建的区块链网络或已运行的区块链网络中,因此,对新搭建和已运行的区块链网络均具备主动兼容性,通用性更好。
在一个可选实施例中,所述二次验证模块503,包括:
节点地址确定单元,用于基于所述跨链合约,确定所述初始验证结果中是否包含所述中继节点的节点地址;
二次验证单元,用于根据确定结果,对所述待验证数据进行二次验证。
在一个可选实施例中,所述二次验证模块503,包括:
验签单元,用于基于所述跨链合约,对所述初始验证结果中的签名进行验签;
二次验证单元,用于根据验签结果,对所述待验证数据进行二次验证。
在一个可选实施例中,若所述初始验证过程在所述中继节点中的可信执行环境中执行,则所述装置还包括:
可信环境验证模块,用于验证所述可信执行环境的有效性。
在一个可选实施例中,该装置还包括:
数据查询请求接收模块,用于接收所述中继节点基于其他区块链的跨链查询请求发送的数据查询请求;
其他待验证数据反馈模块,用于向所述中继节点反馈包括其他查询数据的其他待验证数据,以使所述中继节点执行如下操作:对所述其他待验证数据进行初始验证,得到其他初始验证结果;将所述其他初始验证结果和所述其他待验证数据反馈至所述其他区块链,用于对所述其他待验证数据进行二次验证。
上述跨链数据验证装置可执行本申请任意实施例所提供的跨链数据验证方法,具备执行跨链数据验证方法相应的功能模块和有益效果。
根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图6示出了可以用来实施本申请的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如跨链数据验证方法。例如,在一些实施例中,跨链数据验证方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的跨链数据验证方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行跨链数据验证方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
云计算(cloud computing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作系统、网络、软件、应用和存储设备等,并可以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (27)
1.一种跨链数据验证方法,应用于中继节点,包括:
响应于源链中的跨链查询事件,从目标链中获取包括查询数据的待验证数据;
对所述待验证数据进行初始验证,得到初始验证结果;
将所述初始验证结果和所述待验证数据反馈至所述源链,以供所述源链中的区块链节点根据所述初始验证结果,对所述待验证数据进行二次验证。
2.根据权利要求1所述的方法,其中,所述对所述待验证数据进行初始验证,得到初始验证结果,包括:
对所述待验证数据进行初始验证;
若验证通过,则对所述待验证数据进行签名,得到初始验证结果。
3.根据权利要求1所述的方法,其中,所述对所述待验证数据进行初始验证,包括:
确定所述目标链对应的目标验证策略;
根据所述目标验证策略,对所述待验证数据进行初始验证。
4.根据权利要求3所述的方法,若所述目标链为共识算法类联盟链,则所述根据所述目标验证策略,对所述待验证数据进行初始验证,包括下述至少一种:
对所述待验证数据的发送节点的节点地址准确性进行初始验证;
对所述待验证数据的签名节点准确性进行初始验证;以及,
基于所述目标链的共识算法,对所述待验证数据的签名节点数量进行初始验证;
若所述目标链为支持默克尔树数据结构的区块链,则所述根据所述目标验证策略,对所述待验证数据进行初始验证,包括:
基于默克尔证明机制,对所述待验证数据进行初始验证;
若所述目标链为fabric联盟链,则所述根据所述目标验证策略,对所述待验证数据进行初始验证,包括:
基于背书节点证书,对所述待验证数据进行初始验证。
5.根据权利要求1-4任一项所述的方法,其中,所述对所述待验证数据进行初始验证,包括:
在可信执行环境中对所述待验证数据进行初始验证。
6.根据权利要求1-4任一项所述的方法,其中,所述将所述初始验证结果和所述待验证数据反馈至所述源链,包括:
调用所述源链中的跨链合约,将所述初始验证结果和所述待验证数据反馈至所述源链。
7.根据权利要求1-4任一项所述的方法,还包括:
监听所述源链中是否产生跨链查询事件;
若存在,则触发待验证数据获取操作。
8.一种跨链数据验证方法,应用于区块链节点,包括:
响应于源链向目标链的跨链查询请求,调用跨链合约,生成跨链查询事件;
接收中继节点基于所述跨链查询事件,从所述目标链获取的待验证数据,以及对所述待验证数据的初始验证结果;
基于所述跨链合约,根据所述初始验证结果,对所述待验证数据进行二次验证。
9.根据权利要求8所述的方法,其中,所述基于所述跨链合约,根据所述初始验证结果,对所述待验证数据进行二次验证,包括:
基于所述跨链合约,确定所述初始验证结果中是否包含所述中继节点的节点地址;
根据确定结果,对所述待验证数据进行二次验证。
10.根据权利要求8所述的方法,其中,所述基于所述跨链合约,根据所述初始验证结果,对所述待验证数据进行二次验证,包括:
基于所述跨链合约,对所述初始验证结果中的签名进行验签;
根据验签结果,对所述待验证数据进行二次验证。
11.根据权利要求8-10任一项所述的方法,若所述初始验证过程在所述中继节点中的可信执行环境中执行,则所述方法还包括:
验证所述可信执行环境的有效性。
12.根据权利要求8-10任一项所述的方法,还包括:
接收所述中继节点基于其他区块链的跨链查询请求发送的数据查询请求;
向所述中继节点反馈包括其他查询数据的其他待验证数据,以使所述中继节点执行如下操作:对所述其他待验证数据进行初始验证,得到其他初始验证结果;将所述其他初始验证结果和所述其他待验证数据反馈至所述其他区块链,用于对所述其他待验证数据进行二次验证。
13.一种跨链数据验证装置,配置于中继节点,包括:
待验证数据获取模块,用于响应于源链中的跨链查询事件,从目标链中获取包括查询数据的待验证数据;
初始验证模块,用于对所述待验证数据进行初始验证,得到初始验证结果;
待验证数据反馈模块,用于将所述初始验证结果和所述待验证数据反馈至所述源链,以供所述源链中的区块链节点根据所述初始验证结果,对所述待验证数据进行二次验证。
14.根据权利要求13所述的装置,其中,所述初始验证模块,包括:
初始验证单元,用于对所述待验证数据进行初始验证;
签名单元,用于若验证通过,则对所述待验证数据进行签名,得到初始验证结果。
15.根据权利要求13所述的装置,其中,所述初始验证模块,包括:
目标验证策略确定单元,用于确定所述目标链对应的目标验证策略;
初始验证单元,用于根据所述目标验证策略,对所述待验证数据进行初始验证。
16.根据权利要求15所述的装置,若所述目标链为共识算法类联盟链,则所述初始验证单元,包括共识算法类验证子单元,用于执行下述至少一种验证方法:
对所述待验证数据的发送节点的节点地址准确性进行初始验证;
对所述待验证数据的签名节点准确性进行初始验证;以及,
基于所述目标链的共识算法,对所述待验证数据的签名节点数量进行初始验证;
若所述目标链为支持默克尔树数据结构的区块链,则所述初始验证单元,包括:
默克尔验证子单元,用于基于默克尔证明机制,对所述待验证数据进行初始验证;
若所述目标链为fabric联盟链,则所述初始验证单元,包括:
证书验证子单元,用于基于背书节点证书,对所述待验证数据进行初始验证。
17.根据权利要求13-16任一项所述的装置,其中,所述初始验证模块,包括:
可信初始验证单元,用于在可信执行环境中对所述待验证数据进行初始验证。
18.根据权利要求13-16任一项所述的装置,其中,所述待验证数据反馈模块,包括:
跨链合约调用单元,用于调用所述源链中的跨链合约,将所述初始验证结果和所述待验证数据反馈至所述源链。
19.根据权利要求13-16任一项所述的装置,还包括:
监听模块,用于监听所述源链中是否产生跨链查询事件;
监听响应模块,用于若存在,则触发待验证数据获取操作。
20.一种跨链数据验证装置,配置于区块链节点,包括:
跨链查询事件生成模块,用于响应于源链向目标链的跨链查询请求,调用跨链合约,生成跨链查询事件;
数据反馈模块,用于接收中继节点基于所述跨链查询事件,从所述目标链获取的待验证数据,以及对所述待验证数据的初始验证结果;
二次验证模块,用于基于所述跨链合约,根据所述初始验证结果,对所述待验证数据进行二次验证。
21.根据权利要求20所述的装置,其中,所述二次验证模块,包括:
节点地址确定单元,用于基于所述跨链合约,确定所述初始验证结果中是否包含所述中继节点的节点地址;
二次验证单元,用于根据确定结果,对所述待验证数据进行二次验证。
22.根据权利要求20所述的装置,其中,所述二次验证模块,包括:
验签单元,用于基于所述跨链合约,对所述初始验证结果中的签名进行验签;
二次验证单元,用于根据验签结果,对所述待验证数据进行二次验证。
23.根据权利要求20-22任一项所述的装置,若所述初始验证过程在所述中继节点中的可信执行环境中执行,则所述装置还包括:
可信环境验证模块,用于验证所述可信执行环境的有效性。
24.根据权利要求20-22任一项所述的装置,还包括:
数据查询请求接收模块,用于接收所述中继节点基于其他区块链的跨链查询请求发送的数据查询请求;
其他待验证数据反馈模块,用于向所述中继节点反馈包括其他查询数据的其他待验证数据,以使所述中继节点执行如下操作:对所述其他待验证数据进行初始验证,得到其他初始验证结果;将所述其他初始验证结果和所述其他待验证数据反馈至所述其他区块链,用于对所述其他待验证数据进行二次验证。
25.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-12中任一项所述的一种跨链数据验证方法。
26.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-12中任一项所述的一种跨链数据验证方法。
27.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-12中任一项所述的一种跨链数据验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011613864.2A CN112783877B (zh) | 2020-12-30 | 跨链数据验证方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011613864.2A CN112783877B (zh) | 2020-12-30 | 跨链数据验证方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112783877A true CN112783877A (zh) | 2021-05-11 |
CN112783877B CN112783877B (zh) | 2024-06-07 |
Family
ID=
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113259237A (zh) * | 2021-06-02 | 2021-08-13 | 支付宝(杭州)信息技术有限公司 | 区块链网络间的交易转发方法 |
CN113420090A (zh) * | 2021-06-29 | 2021-09-21 | 北京百度网讯科技有限公司 | 跨链处理方法、装置、电子设备及可读存储介质 |
CN113434881A (zh) * | 2021-06-29 | 2021-09-24 | 北京百度网讯科技有限公司 | 跨链交易的可信性验证方法、装置及电子设备 |
CN113468268A (zh) * | 2021-06-29 | 2021-10-01 | 北京百度网讯科技有限公司 | 跨链处理方法、装置、电子设备及可读存储介质 |
CN113595979A (zh) * | 2021-06-25 | 2021-11-02 | 福建师范大学 | 一种基于跨链的众包数据隐私保护方法 |
CN113704249A (zh) * | 2021-07-14 | 2021-11-26 | 杭州溪塔科技有限公司 | 一种区块链中使用静态默克尔树的方法和装置 |
CN114726583A (zh) * | 2022-03-14 | 2022-07-08 | 湖南天河国云科技有限公司 | 基于区块链分布式标识的可信硬件跨链交易隐私保护系统及方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107464148A (zh) * | 2017-08-23 | 2017-12-12 | 众安信息技术服务有限公司 | 一种基于联盟链的智能合约升级方法和系统 |
CN108810137A (zh) * | 2018-06-11 | 2018-11-13 | 西安纸贵互联网科技有限公司 | 一种联盟区块链系统 |
CN110035046A (zh) * | 2018-11-16 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 跨区块链的交互系统 |
CN110035045A (zh) * | 2018-11-16 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 跨链数据的可信管理方法及装置、电子设备 |
CN110650189A (zh) * | 2019-09-20 | 2020-01-03 | 深圳供电局有限公司 | 一种基于中继的区块链的交互系统及方法 |
CN111489154A (zh) * | 2019-01-29 | 2020-08-04 | 北京天德科技有限公司 | 一种基于多重签名的跨链交易方法 |
CN111563744A (zh) * | 2020-04-21 | 2020-08-21 | 杭州趣链科技有限公司 | 一种对Fabric复杂背书策略在跨链中验证的方法 |
CN111769957A (zh) * | 2020-09-02 | 2020-10-13 | 百度在线网络技术(北京)有限公司 | 区块链跨链查询方法、装置、设备和存储介质 |
CN111935318A (zh) * | 2020-09-28 | 2020-11-13 | 北京百度网讯科技有限公司 | 跨链数据验证方法、装置、设备及介质 |
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107464148A (zh) * | 2017-08-23 | 2017-12-12 | 众安信息技术服务有限公司 | 一种基于联盟链的智能合约升级方法和系统 |
CN108810137A (zh) * | 2018-06-11 | 2018-11-13 | 西安纸贵互联网科技有限公司 | 一种联盟区块链系统 |
CN110035046A (zh) * | 2018-11-16 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 跨区块链的交互系统 |
CN110035045A (zh) * | 2018-11-16 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 跨链数据的可信管理方法及装置、电子设备 |
CN111489154A (zh) * | 2019-01-29 | 2020-08-04 | 北京天德科技有限公司 | 一种基于多重签名的跨链交易方法 |
CN110650189A (zh) * | 2019-09-20 | 2020-01-03 | 深圳供电局有限公司 | 一种基于中继的区块链的交互系统及方法 |
CN111563744A (zh) * | 2020-04-21 | 2020-08-21 | 杭州趣链科技有限公司 | 一种对Fabric复杂背书策略在跨链中验证的方法 |
CN111769957A (zh) * | 2020-09-02 | 2020-10-13 | 百度在线网络技术(北京)有限公司 | 区块链跨链查询方法、装置、设备和存储介质 |
CN111935318A (zh) * | 2020-09-28 | 2020-11-13 | 北京百度网讯科技有限公司 | 跨链数据验证方法、装置、设备及介质 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113259237A (zh) * | 2021-06-02 | 2021-08-13 | 支付宝(杭州)信息技术有限公司 | 区块链网络间的交易转发方法 |
CN113259237B (zh) * | 2021-06-02 | 2021-09-24 | 支付宝(杭州)信息技术有限公司 | 区块链网络间的交易转发方法 |
CN113595979A (zh) * | 2021-06-25 | 2021-11-02 | 福建师范大学 | 一种基于跨链的众包数据隐私保护方法 |
CN113420090A (zh) * | 2021-06-29 | 2021-09-21 | 北京百度网讯科技有限公司 | 跨链处理方法、装置、电子设备及可读存储介质 |
CN113434881A (zh) * | 2021-06-29 | 2021-09-24 | 北京百度网讯科技有限公司 | 跨链交易的可信性验证方法、装置及电子设备 |
CN113468268A (zh) * | 2021-06-29 | 2021-10-01 | 北京百度网讯科技有限公司 | 跨链处理方法、装置、电子设备及可读存储介质 |
CN113434881B (zh) * | 2021-06-29 | 2024-03-26 | 北京百度网讯科技有限公司 | 跨链交易的可信性验证方法、装置及电子设备 |
CN113704249A (zh) * | 2021-07-14 | 2021-11-26 | 杭州溪塔科技有限公司 | 一种区块链中使用静态默克尔树的方法和装置 |
CN114726583A (zh) * | 2022-03-14 | 2022-07-08 | 湖南天河国云科技有限公司 | 基于区块链分布式标识的可信硬件跨链交易隐私保护系统及方法 |
CN114726583B (zh) * | 2022-03-14 | 2023-10-20 | 湖南天河国云科技有限公司 | 基于区块链分布式标识的可信硬件跨链交易隐私保护系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111769957B (zh) | 区块链跨链查询方法、装置、设备和存储介质 | |
US10740455B2 (en) | Encave pool management | |
US11176246B2 (en) | Enclave pool shared key | |
US11343095B2 (en) | Cryplet binding key graph | |
US20180332011A1 (en) | Secure cryptlet tunnel | |
US10637645B2 (en) | Cryptlet identity | |
US20220239496A1 (en) | Blockchain consensus method, device and system | |
EP3701413A1 (en) | Cross-blockchain interaction method, apparatus, system, and electronic device | |
US10664591B2 (en) | Enclave pools | |
CN105556919B (zh) | 使用服务请求票据进行多因素认证 | |
WO2022166637A1 (zh) | 基于区块链网络的数据处理方法、装置及计算机设备 | |
CN112650742A (zh) | 跨链数据验证方法、装置、设备和存储介质 | |
CN112650764A (zh) | 跨链数据处理方法、装置、设备和存储介质 | |
CN112714158B (zh) | 事务处理方法、中继网络、跨链网关、系统、介质和设备 | |
CN113434881B (zh) | 跨链交易的可信性验证方法、装置及电子设备 | |
CN113505520A (zh) | 用于支持异构联邦学习的方法、装置和系统 | |
CN113420090A (zh) | 跨链处理方法、装置、电子设备及可读存储介质 | |
CN112783877B (zh) | 跨链数据验证方法、装置、设备和存储介质 | |
CN112783877A (zh) | 跨链数据验证方法、装置、设备和存储介质 | |
CN114338051B (zh) | 区块链获取随机数的方法、装置、设备和介质 | |
CN111399749A (zh) | 一种数据处理系统及方法 | |
CN112995932B (zh) | 基于哈希算法的短信链路监控方法、装置、设备及介质 | |
CN114095343A (zh) | 基于双活系统的容灾方法、装置、设备及存储介质 | |
CN112926981B (zh) | 用于区块链的交易信息处理方法、装置、介质及电子设备 | |
CN114553548A (zh) | 通信方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |