CN114285846A - 一种跨链数据验证方法、区块链节点和链下设备 - Google Patents
一种跨链数据验证方法、区块链节点和链下设备 Download PDFInfo
- Publication number
- CN114285846A CN114285846A CN202111516207.0A CN202111516207A CN114285846A CN 114285846 A CN114285846 A CN 114285846A CN 202111516207 A CN202111516207 A CN 202111516207A CN 114285846 A CN114285846 A CN 114285846A
- Authority
- CN
- China
- Prior art keywords
- chain
- blockchain
- data
- transaction
- identification
- 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.)
- Pending
Links
Images
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
一种跨链数据验证方法、区块链节点和链下设备,所述由区块链节点执行的方法包括:从链下设备接收数据验证请求,数据验证请求中包括第一数据的标识;根据第一数据的标识确定第一区块链中是否存储有第一数据;在确定第一区块链中存储有第一数据的情况中,从第一区块链获取预先存储的第一区块链的链标识,所述链标识通过在可信设备注册而获取;向链下设备发送第一区块链的链标识。
Description
技术领域
本说明书实施例属于区块链技术领域,尤其涉及一种跨链数据验证方法、区块链节点和链下设备。
背景技术
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。不同的区块链之间可以跨链发送数据。在相关技术中,通常通过简单支付验证(SimplifiedPayment Verification,SPV)方法对跨链数据的真实性进行验证。
发明内容
本发明的目的在于提供一种跨链数据验证方法,以更有效可靠地验证跨链数据。
本说明书第一方面提供一种跨链数据验证方法,由第一区块链的节点执行,包括:
从链下设备接收数据验证请求,所述数据验证请求中包括第一数据的标识;
根据所述第一数据的标识确定所述第一区块链中是否存储有所述第一数据;
在确定所述第一区块链中存储有所述第一数据的情况中,从所述第一区块链获取预先存储的所述第一区块链的链标识,所述链标识通过在可信设备注册而获取;
向所述链下设备发送所述第一区块链的链标识。
在一种实施方式中,所述根据所述第一数据的标识确定所述第一区块链中是否存储有所述第一数据包括:确定所述第一区块链中是否关联存储有所述第一数据的标识与所述第一区块链的链标识。
在一种实施方式中,所述第一数据为第一交易,所述方法还包括:
接收所述第一交易;
在所述第一区块链中关联地存储所述第一交易的标识和所述第一区块链的链标识。
在一种实施方式中,所述第一交易中调用第一合约,所述在所述第一区块链中关联地存储所述第一交易的标识和所述第一区块链的链标识包括,在所述第一合约的状态存储中关联地存储所述第一交易的标识和所述第一区块链的链标识。
在一种实施方式中,所述方法还包括:
接收第二交易,所述第二交易由可信设备发起,所述第二交易中以所述第一区块链的链标识为传入参数调用所述第一合约;
在所述第一合约的状态存储中存储所述第一区块链的链标识。
在一种实施方式中,所述可信设备为第二区块链中的任一节点设备。
在一种实施方式中,所述在所述第一合约的状态存储中关联地存储所述第一交易的标识和所述区块链的链标识包括,从所述第一合约的状态存储中读取所述第一区块链的链标识,在所述第一合约的状态存储中关联地存储所述第一交易的标识和所述第一区块链的链标识。
在一种实施方式中,所述数据验证请求为调用所述第一合约的跨链交易,所述从所述第一区块链获取预先存储的所述第一区块链的链标识包括,从所述第一合约的合约存储中获取预先存储的所述第一区块链的链标识。
本说明书第二方面提供一种跨链数据验证方法,由链下设备执行,包括:
对第一区块链的节点发送数据验证请求,所述数据验证请求中包括第一数据的标识;
从所述第一区块链的节点接收所述第一区块链的链标识;
确定所述链标识是否为在可信设备中注册的链标识,以验证所述第一数据是否可信。
在一种实施方式中,所述确定所述链标识是否为在可信设备中注册的链标识包括,向所述可信设备发送对所述链标识的验证请求,从所述可信设备接收对所述链标识的验证结果。
本说明书第三方面提供一种区块链节点,包括:
接收单元,用于从链下设备接收数据验证请求,所述数据验证请求中包括第一数据的标识;
确定单元,用于根据所述第一数据的标识确定所述第一区块链中是否存储有所述第一数据;
获取单元,用于在确定所述第一区块链中存储有所述第一数据的情况中,从所述第一区块链获取预先存储的所述第一区块链的链标识,所述链标识通过在可信设备注册而获取;
发送单元,用于向所述链下设备发送所述第一区块链的链标识。
在一种实施方式中,所述确定单元具体用于:确定所述第一区块链中是否关联存储有所述第一数据的标识与所述第一区块链的链标识。
在一种实施方式中,所述第一数据为第一交易,
所述接收单元还用于接收所述第一交易;
所述区块链节点还包括存储单元,用于在所述第一区块链中关联地存储所述第一交易的标识和所述第一区块链的链标识。
在一种实施方式中,所述第一交易中调用第一合约,所述存储单元具体用于,在所述第一合约的状态存储中关联地存储所述第一交易的标识和所述第一区块链的链标识。
在一种实施方式中,所述接收单元还用于:接收第二交易,所述第二交易由可信设备发起,所述第二交易中以所述第一区块链的链标识为传入参数调用所述第一合约;
所述存储单元还用于:在所述第一合约的状态存储中存储所述第一区块链的链标识。
在一种实施方式中,所述存储单元具体用于,从所述第一合约的状态存储中读取所述第一区块链的链标识,在所述第一合约的状态存储中关联地存储所述第一交易的标识和所述第一区块链的链标识。
在一种实施方式中,所述数据验证请求为调用所述第一合约的跨链交易,所述获取单元具体用于,从所述第一合约的合约存储中获取预先存储的所述第一区块链的链标识。
本说明书第四方面提供一种链下设备,包括:
发送单元,用于对第一区块链的节点发送数据验证请求,所述数据验证请求中包括第一数据的标识;
接收单元,用于从所述第一区块链的节点接收所述第一区块链的链标识;
确定单元,用于确定所述链标识是否为在可信设备中注册的链标识,以验证所述第一数据是否可信。
在一种实施方式中,所述确定单元具体用于,向所述可信设备发送对所述链标识的验证请求,从所述可信设备接收对所述链标识的验证结果。
本说明书第五方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面所述的方法。
本说明书第六方面提供一种区块链节点,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面或第二方面所述的方法。
通过本说明书实施例的跨链数据验证方案,链下设备在验证链上数据时,只需要从区块链获取其从可信设备获取的链ID,在对链ID验证通过之后,即可以确认链上数据是真实可信的数据,相比于现有技术中的跨链数据验证方案,更加方便易行可靠,且节省了链下设备的计算成本、数据传输成本等。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一实施例中的系统架构图;
图2为本说明书一实施例中的跨链数据验证方法的流程图;
图3为本说明书一实施例中的区块链节点架构图;
图4为本说明书一实施例中的链下设备的架构图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
在区块链中,多个节点可通过共识使得每个节点执行相同的交易而产生区块链中的相同的状态,区块链中的每个节点存储相同的状态数据库,同时,区块链中的每个节点存储相同的区块数据库,从而实现对数据的去中心化的分布式存储。然而,当两个不同的区块链之间相互发送跨链数据时,如何对跨链数据的真实性进行验证一直是较为重要的问题。一些对数据可靠性要求较高的业务尤其要求方便可靠地对跨链数据进行验证。
图1为本说明书一实施例中的系统架构图。如图1所示,该系统中例如包括属于第一机构的区块链100(下文表示为第一区块链100)和属于第二机构的区块链200(下文表示为第二区块链200)。其中,第一区块链100例如包括节点1~节点6,第二区块链例如包括节点7~节点 12。节点之间的连线示意性的表示P2P(Peer to Peer,点对点)连接。可以理解,图1中虽然示出了区块链中包括6个节点,本说明书实施例不限于此,而是可以包括其他数目的节点。具体是,区块链中包含的节点可以满足拜占庭容错(Byzantine FaultTolerance,BFT)要求。所述的拜占庭容错要求可以理解为在区块链内部可以存在拜占庭节点,而区块链对外不体现拜占庭行为。一般的,一些拜占庭容错算法中要求节点个数大于3f+1,f为拜占庭节点个数,例如实用拜占庭容错算法PBFT(Practical Byzantine FaultTolerance)。
在第一机构处理案件时,案件相关方可以向第一机构链上传案件的相关数据以进行存证。第二区块链例如在处理与第一机构相关的事务时,可能需要从第一机构链跨链获取存证数据,该存证数据例如以交易的形式存储在第一机构链中。第二区块链在从第一区块链获取到交易数据之后,为了确保该交易数据的真实性,需要验证该交易为第一机构链中真实存储的交易。
在相关技术中,为了进行上述对跨链数据的验证,通常通过SPV方法对跨链数据进行验证。具体是,第一区块链可以将目标交易和该交易所属的目标区块中的交易树中与该目标交易相关的路径数据一起发送给第二区块链,所述交易树例如可以为默克树或者MPT树等。第二区块链中预先存储了第一区块链中各个区块的区块头,第二区块链可以根据接收的目标交易及其路径数据计算目标区块的交易树的根哈希值,并将该计算的根哈希值与预先存储的目标区块的区块头中的交易树的根哈希值进行比较,从而确定目标交易是否为在目标区块中的交易,从而确定目标交易是否为第一区块链中的交易。该验证方式需要在第一区块链与第二区块链之间传输较多的数据,并且第二区块链在进行验证时需要进行繁琐的计算,验证效率较低,成本较高。
本说明书实施例提供一种方便而可靠的跨链数据验证方案,参考图1,第一区块链100可在可信设备300中注册链ID。可信设备300在验证第一区块链100可信之后相对于第一区块链 100生成链ID(例如链ID“1234a”),在本地存储该链ID,并将链ID返回给第一区块链100,从而第一区块链100可存储该链ID。具体是,第一区块链100中部署有跨链合约,从而可在跨链合约的状态存储中存储链ID。当第二区块链200需要验证第一区块链100中的交易时,可以向第一区块链100发送交易验证请求,该交易验证请求例如为调用跨链合约的交易,用于对第一区块链100中的目标交易进行验证,所述目标交易例如为交易Tx3,其例如可以以交易Tx3 的交易哈希值(Tx3hash)“cd235”作为标识。第一区块链100在接收到交易验证请求之后,首先验证目标交易是否为第一区块链100中的交易,在验证“是”的情况中,向第二区块链200 返回第一区块链100的链ID。第二区块链200可通过可信设备300验证链ID是否可信,从而验证第一区块链100的可信性,在验证第一区块链100可信之后,即可确定目标交易为第一区块链 100中的交易。
下文将详细描述本说明书实施例中的交易验证方案。
图2为本说明书一实施例中的跨链数据验证方法的流程图。该方法可由用户设备(图1中未示出)、第一区块链节点、可信设备和第二区块链节点执行。
如图2所示,首先,在步骤S201,可信设备响应于第一机构对第一区块链的注册请求生成第一区块链的链ID。
第一机构可向可信设备所属的可信机构提供第一机构的机构证明材料、以及第一区块链的相关信息,以用于在可信设备300中注册第一区块链100。其中,第一区块链的相关信息例如包括第一区块链中的节点的连接地址、公钥等信息。可信设备300所属的可信机构例如为公证机构等、第三机构等机构,所述可信设备300可以为通过可信执行环境(TEE)执行操作的设备、或者可以为除第一区块链100和第二区块链200之外的另一区块链(例如注册区块链) 中的节点设备,对此不作限定。其中,在可信设备300为注册区块链中的节点设备的情况下,存入该区块链的注册信息分布式存储在各个区块链节点,不可篡改且可验证,因此该注册区块链的节点设备是可信的。
可信机构的业务人员可线下对第一机构的机构证明材料进行验证,在验证通过之后,通过可信设备生成第一区块链100的链ID,在可信设备300中存储链ID及第一区块链100的其他相关信息。
具体是,在可信设备300为注册区块链的节点设备的情况下,可信设备300可在注册区块链中发起用于进行注册的交易(例如交易Tx1),该交易Tx1中包括第一区块链100的相关信息。注册区块链中的每个节点在执行该交易Tx1之后,根据预设规则生成相同的链ID,并关联地存储链ID和第一区块链的相关信息。
在步骤S203,可信设备向第一区块链节点返回第一区块链ID。
可以理解,本说明书实施例中虽然以第一区块链100的注册为例进行描述,本说明书实施例不限于此,其它可信机构的区块链(例如第二区块链200)在线下验证通过之后可以相同地在可信设备300进行注册,并在可信设备300中存储其链ID、连接信息、账户公钥等信息。其他链下设备也可以在验证通过之后在可信设备中注册,以获得各个区块链的连接信息。第一区块链100的各个链下设备(例如第二区块链200的节点)在可信设备300中注册之后,可以从可信设备300读取第一区块链100的连接信息,从而可连接第一区块链100,以从第一区块链100 读取数据,如此进一步保证了安全性。
具体是,可信设备300可以向第一区块链100发送交易(例如交易Tx2)以向第一区块链的节点3返回第一区块链的链ID,从而使得第一区块链中的每个节点都可以接收到该交易Tx2,并在执行该交易Tx2之后在区块链中100存储第一区块链的链ID。具体地,交易Tx2中可调用跨链合约中的链ID返回函数,并以生成的第一区块链100的链ID作为该函数的传入参数。
可信设备300中每注册一个新的区块链(例如第一区块链)或者设备之后,可以向可信设备300中已经注册的各个区块链或设备更新注册信息。从而,在可信设备300中注册的每个设备可以根据本地更新的注册信息进行对跨链数据的验证。
在步骤S205,第一区块链节点存储第一区块链的链ID。
具体是,第一区块链100的各个节点(例如节点3)在执行交易Tx2之后,可执行交易Tx2 中调用的链ID返回函数,从而在跨链合约的合约存储中存储第一区块链100的链ID(例如图1 中的“1234a”)。可以理解,本说明书实施例中不限于在跨链合约的合约存储中存储链ID,也可以在区块数据库中存储链ID,对此不作限定。
在步骤S207,用户设备向第一区块链节点发送存证交易。
第一机构在审理案件时,案件的相关方(如原告或被告)可通过其用户设备向第一区块链100的任一节点(例如节点3)发送存证交易(例如交易Tx3),以将相关的证据等数据存证到第一区块链100中。具体是,该交易Tx3可调用跨链合约中的存证函数。
在步骤S209,第一区块链节点存储存证数据标识。
第一区块链100的节点在接收到交易Tx3之后,将交易Tx3广播给第一区块链100中的每个节点,从而每个节点都将执行交易Tx3,每个节点在执行交易Tx3之后,由于交易3的交易体中包括待存证的数据,从而可以将交易3的标识作为存证数据标识。以节点3为例,节点3在执行交易Tx3之后,执行交易Tx3中调用的存证函数,从而获取交易Tx3的交易标识,并在第一区块链100中存储交易Tx3的交易标识,同时,节点3存储交易Tx3的交易体,以存储交易体中包括的待存证数据。在一种实施方式中,可以以交易Tx3的交易体的哈希值(下文中称为交易Tx3 的哈希值)作为交易Tx3的交易标识,节点3在执行存证函数之后,可将交易Tx3的哈希值存储到跨链合约的合约存储中。在一种实施方式中,如图1所示,节点3可以将交易Tx3的哈希值 (Tx3hash)与第一区块链100的链ID关联地存储到跨链合约的合约存储中。
可以理解,上文中对通过交易的交易体进行存证进行了示例描述,本说明书不限于此,在本说明书实施例中,还可以将待存证的数据存储到交易的收据中、合约的状态存储中等等,从而可将交易Tx3的收据标识或者交易Tx3在合约状态存储中的状态标识作为存证数据标识,对应地,可在合约的状态存储中关联存储交易Tx3的收据的标识和链ID、或者关联存储合约中的状态标识与链ID。下文中将以交易标识作为存证数据标识进行示例描述。
在步骤S211,第二区块链节点向第一区块链节点发送数据验证请求。
第二机构在审理第一机构相关的案件时,可能需要从第一区块链中获取相关的存证数据 (例如交易Tx3),从而可通过第二区块链节点向第一区块链节点发送交易验证请求,以用于获取交易Tx3,并对交易Tx3的真实性进行验证。可以理解,本说明书实施例中虽然以第二区块链节点向第一区块链节点发送交易验证请求为例进行描述,本说明书实施例不限于此,除第一区块链节点之外可信设备(例如在可信设备中注册的链下设备、或者可通过其他方式验证的可信设备)都可以向第一区块链节点发送交易验证请求,以用于对第一区块链100中的交易进行验证。
具体是,第二区块链200中的节点在希望进行交易验证时,可发起交易Tx4,该交易Tx4中调用第二区块链200中部署的跨链合约中的跨链函数。第二区块链200中的节点在执行交易Tx4 中的跨链函数之后,生成发送给第一区块链节点的跨链交易(例如交易Tx5),交易Tx5中以交易Tx3的标识(例如交易Tx3的哈希值)为传入参数调用跨链合约中的验证函数。之后,第二区块链200的节点将生成的交易Tx5发送给第一区块链100的节点(例如节点3),以进行对交易Tx3的验证。
在一种实施方式中,可信设备300中除了存储各个注册区块链的链ID之外,还存储各个注册区块链的连接地址,第二区块链200在可信设备300中注册成功之后,可获取第一区块链100 的连接方式,从而可向第一区块链100的节点发送跨链交易。在该方式中,第一区块链100的节点在接收到交易Tx5之后,可确认第二区块链的节点是可信的,因此不需要对第二区块链的节点是否可信进行验证。
在另一种实施方式中,交易Tx5例如由链下设备发送至第一区块链100的节点,第一区块链100的节点在接收到交易Tx5之后,需要验证该链下设备是否可信,在确定该链下设备可信之后,才执行交易Tx5。
在步骤S213,第一区块链节点对目标交易进行验证。
第一区块链节点(例如节点3)在接收到交易Tx5之后,执行交易Tx5中调用的跨链合约的验证函数,验证交易Tx3是否为第一区块链100中的交易。具体是,如前文所述,节点3可以判断跨链合约的合约存储中是否存储有交易Tx3的哈希值,如果是,则可验证交易Tx3是第一区块链100中的交易。可以理解,第一区块链100的节点可以通过其他方式验证交易Tx3是否为第一区块链100中的交易,例如,第一区块链100的节点可确定区块数据库中是否存储有哈希值为交易Tx3的哈希值的交易,如果是,则可验证交易Tx3是第一区块链100中的交易。
在步骤S215,第一区块链节点向第二区块链节点返回第一区块链的链ID。
在验证交易Tx3是第一区块链100中的交易之后,节点3可从第一区块链100中读取第一区块链100的链ID,并将该链ID返回给第二区块链节点。具体是,节点3可从跨链合约的合约存储中读取预先存储的第一区块链100的链ID,生成跨链交易Tx6,该Tx6以链ID为传入参数调用第二区块链200中部署的跨链合约的数据返回函数,并将交易Tx6发送给第二区块链的节点。
在交易验证请求中还包括对交易Tx3的数据请求时,节点3还根据交易Tx3的哈希值从区块数据库中读取交易Tx3的交易体,并在交易Tx6中以交易Tx3的交易体和链ID为传入参数调用数据返回函数。
第二区块链节点在接收到交易Tx6之后,对第一区块链100的链ID进行验证,在验证通过之后,第二区块链节点可确信:第一区块链100是可信的,并且第一区块链100的节点已经验证了交易Tx3为第一区块链100中的交易,从而,第二区块链节点可确认交易Tx3为第一区块链 100中的交易。
在一种实施方式中,第二区块链节点中存储有在可信设备300中注册的全部区块链各自的链ID,从而,第二区块链节点可根据本地存储的已注册的各个区块链的链ID,验证第一区块链100的链ID是否为在可信设备300中注册的区块链的链ID。
在另一种实施方式中,第二区块链节点可通过向可信设备300发送验证请求,以使得可信设备300对第一区块链100的链ID进行验证。
具体是,在步骤S217,第二区块链节点向可信设备发送链ID验证请求。
当可信设备300为注册区块链的节点的情况中,第二区块链节点可向可信设备发送跨链交易Tx7,该交易Tx7中包括第一区块链100的链ID,用于对该链ID进行验证。
在步骤S219,可信设备300对第一区块链的链ID进行验证。
可信设备300在接收到验证请求之后,验证该验证请求中的链ID是否为预先存储的已注册的区块链的链ID,如果是,则验证通过。具体是,注册区块链中的各个节点(包括可信设备 300)可执行交易Tx7,从交易Tx7中获取第一区块链100的链ID,验证注册区块链中存储的已注册链ID表中是否包括该第一区块链100的链ID,如果包括,则验证通过。
在步骤S221,可信设备300向第二区块链节点返回验证结果。
具体是,可信设备300可向第二区块链节点发送交易Tx8,交易Tx8中以验证结果为传入参数调用第二区块链200中的跨链合约的结果返回函数。假设验证结果为验证通过,第二区块链节点在执行交易Tx8之后,可确认交易Tx3为第一区块链100中的真实数据,从而可使用交易Tx3 中包括的数据。
通过本说明书实施例的跨链数据验证方案,链下设备在验证链上数据时,只需要从区块链获取其从可信设备获取的链ID,在对链ID验证通过之后,即可以确认链上数据是真实可信的数据,相比于现有技术中的跨链数据验证方案,更加方便易行可靠,且节省了链下设备的计算成本、数据传输成本等。
图3为本说明书一实施例中的区块链节点架构图,包括:
接收单元31,用于从链下设备接收数据验证请求,所述数据验证请求中包括第一数据的标识;
确定单元32,用于根据所述第一数据的标识确定所述第一区块链中是否存储有所述第一数据;
获取单元33,用于在确定所述第一区块链中存储有所述第一数据的情况中,从所述第一区块链获取预先存储的所述第一区块链的链标识,所述链标识通过在可信设备注册而获取;
发送单元34,用于向所述链下设备发送所述第一区块链的链标识。
在一种实施方式中,所述确定单元32具体用于:确定所述第一区块链中是否关联存储有所述第一数据的标识与所述第一区块链的链标识。
在一种实施方式中,所述第一数据为第一交易,
所述接收单元31还用于接收所述第一交易;
所述区块链节点还包括存储单元35,用于在所述第一区块链中关联地存储所述第一交易的标识和所述第一区块链的链标识。
在一种实施方式中,所述第一交易中调用第一合约,所述存储单元35具体用于,在所述第一合约的状态存储中关联地存储所述第一交易的标识和所述第一区块链的链标识。
在一种实施方式中,所述接收单元31还用于:接收第二交易,所述第二交易由可信设备发起,所述第二交易中以所述第一区块链的链标识为传入参数调用所述第一合约;
所述存储单元35还用于:在所述第一合约的状态存储中存储所述第一区块链的链标识。
在一种实施方式中,所述存储单元35具体用于,从所述第一合约的状态存储中读取所述第一区块链的链标识,在所述第一合约的状态存储中关联地存储所述第一交易的标识和所述第一区块链的链标识。
在一种实施方式中,所述数据验证请求为调用所述第一合约的跨链交易,所述获取单元 33具体用于,从所述第一合约的合约存储中获取预先存储的所述第一区块链的链标识。
图4为本说明书一实施例中的链下设备的架构图,包括:
发送单元41,用于对第一区块链的节点发送数据验证请求,所述数据验证请求中包括第一数据的标识;
接收单元42,用于从所述第一区块链的节点接收所述第一区块链的链标识;
确定单元43,用于确定所述链标识是否为在可信设备中注册的链标识,以验证所述第一数据是否可信。
在一种实施方式中,所述确定单元43具体用于,向所述可信设备发送对所述链标识的验证请求,从所述可信设备接收对所述链标识的验证结果。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行图2所示的方法。
本说明书实施例还提供一种区块链节点,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现图2所示的方法。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、 CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language) 等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、 Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为服务器系统。当然,本申请不排除随着未来计算机技术的发展,实现上述实施例功能的计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和 /或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和 /或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。
Claims (14)
1.一种跨链数据验证方法,由第一区块链的节点执行,包括:
从链下设备接收数据验证请求,所述数据验证请求中包括第一数据的标识;
根据所述第一数据的标识确定所述第一区块链中是否存储有所述第一数据;
在确定所述第一区块链中存储有所述第一数据的情况中,从所述第一区块链获取预先存储的所述第一区块链的链标识,所述链标识通过在可信设备注册而获取;
向所述链下设备发送所述第一区块链的链标识。
2.根据权利要求1所述的方法,所述根据所述第一数据的标识确定所述第一区块链中是否存储有所述第一数据包括:确定所述第一区块链中是否关联存储有所述第一数据的标识与所述第一区块链的链标识。
3.根据权利要求2所述的方法,所述第一数据为第一交易,所述方法还包括:
接收所述第一交易;
在所述第一区块链中关联地存储所述第一交易的标识和所述第一区块链的链标识。
4.根据权利要求3所述的方法,其中,所述第一交易中调用第一合约,所述在所述第一区块链中关联地存储所述第一交易的标识和所述第一区块链的链标识包括,在所述第一合约的状态存储中关联地存储所述第一交易的标识和所述第一区块链的链标识。
5.根据权利要求4所述的方法,所述方法还包括:
接收第二交易,所述第二交易由可信设备发起,所述第二交易中以所述第一区块链的链标识为传入参数调用所述第一合约;
在所述第一合约的状态存储中存储所述第一区块链的链标识。
6.根据权利要求5所述的方法,其中,所述可信设备为第二区块链中的任一节点设备。
7.根据权利要求5所述的方法,其中,所述在所述第一合约的状态存储中关联地存储所述第一交易的标识和所述第一区块链的链标识包括,从所述第一合约的状态存储中读取所述第一区块链的链标识,在所述第一合约的状态存储中关联地存储所述第一交易的标识和所述第一区块链的链标识。
8.根据权利要求4或5所述的方法,其中,所述数据验证请求为调用所述第一合约的跨链交易,所述从所述第一区块链获取预先存储的所述第一区块链的链标识包括,从所述第一合约的合约存储中获取预先存储的所述第一区块链的链标识。
9.一种跨链数据验证方法,由链下设备执行,包括:
对第一区块链的节点发送数据验证请求,所述数据验证请求中包括第一数据的标识;
从所述第一区块链的节点接收所述第一区块链的链标识;
确定所述链标识是否为在可信设备中注册的链标识,以验证所述第一数据是否可信。
10.根据权利要求9所述的方法,所述确定所述链标识是否为在可信设备中注册的链标识包括,向所述可信设备发送对所述链标识的验证请求,从所述可信设备接收对所述链标识的验证结果。
11.一种区块链节点,包括:
接收单元,用于从链下设备接收数据验证请求,所述数据验证请求中包括第一数据的标识;
确定单元,用于根据所述第一数据的标识确定所述第一区块链中是否存储有所述第一数据;
获取单元,用于在确定所述第一区块链中存储有所述第一数据的情况中,从所述第一区块链获取预先存储的所述第一区块链的链标识,所述链标识通过在可信设备注册而获取;
发送单元,用于向所述链下设备发送所述第一区块链的链标识。
12.一种链下设备,包括:
发送单元,用于对第一区块链的节点发送数据验证请求,所述数据验证请求中包括第一数据的标识;
接收单元,用于从所述第一区块链的节点接收所述第一区块链的链标识;
确定单元,用于确定所述链标识是否为在可信设备中注册的链标识,以验证所述第一数据是否可信。
13.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-10中任一项的所述的方法。
14.一种区块链节点,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111516207.0A CN114285846A (zh) | 2021-12-07 | 2021-12-07 | 一种跨链数据验证方法、区块链节点和链下设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111516207.0A CN114285846A (zh) | 2021-12-07 | 2021-12-07 | 一种跨链数据验证方法、区块链节点和链下设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114285846A true CN114285846A (zh) | 2022-04-05 |
Family
ID=80872266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111516207.0A Pending CN114285846A (zh) | 2021-12-07 | 2021-12-07 | 一种跨链数据验证方法、区块链节点和链下设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114285846A (zh) |
-
2021
- 2021-12-07 CN CN202111516207.0A patent/CN114285846A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111401902B (zh) | 基于区块链的业务处理方法、业务处理方法、装置及设备 | |
EP3893180B1 (en) | Service data processing method and apparatus | |
CN110046996B (zh) | 数据处理方法和装置 | |
CN111340631B (zh) | 资产转移方法、装置、设备及系统 | |
CN112241506B (zh) | 用户行为的回溯方法、装置、设备及系统 | |
CN112149187B (zh) | 一种基于区块链的溯源信息的处理方法及装置 | |
CN111159304A (zh) | 一种基于区块链的数据处理方法、装置、设备及系统 | |
WO2019180733A1 (en) | System and method for composite-key based blockchain device control | |
CN114884674B (zh) | 一种基于区块链的用户数据流转方法、装置及设备 | |
CN110263580B (zh) | 基于区块链的数据处理方法、装置和区块链节点 | |
CN113468602A (zh) | 一种数据检验方法、装置及设备 | |
CN113570479B (zh) | 一种房产交易数据的区块链传输方法、系统及存储介质 | |
CN111371559A (zh) | 基于区块链的物资盘点数据提供方法、装置及系统 | |
CN113849191B (zh) | 智能合约部署方法、系统、装置及存储介质 | |
CN111597269A (zh) | 一种基于区块链的合约实现方法、装置及设备 | |
CN114708093A (zh) | 基于区块链的数字资源处理方法和装置 | |
CN112291321B (zh) | 业务处理方法、装置及系统 | |
CN110992039B (zh) | 交易处理方法、装置及设备 | |
CN113761496B (zh) | 一种基于区块链的身份校验方法及装置和电子设备 | |
CN114285846A (zh) | 一种跨链数据验证方法、区块链节点和链下设备 | |
CN112434347B (zh) | 租赁业务的处理方法、装置、设备及系统 | |
CN115018499A (zh) | 一种基于区块链的数字凭证发行方法、装置和系统 | |
CN114780994A (zh) | 一种基于智能合约的数据处理方法以及区块链节点 | |
CN115037548B (zh) | 基于区块链的数据安全多方计算的系统、方法、装置、介质及设备 | |
CN115114334A (zh) | 在区块链中查询数据的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |