掌桥专利:专业的专利平台
掌桥专利
首页

一种应用于区块链的数据迁移方法及装置

文献发布时间:2023-06-19 13:45:04


一种应用于区块链的数据迁移方法及装置

技术领域

本说明书涉及区块链技术领域,尤其涉及一种应用于区块链的数据迁移方法及装置。

背景技术

区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的技术。在实际业务中,可能由于业务转型、或者技术迭代的原因,需要将一条区块链中的数据迁移到另一条区块链中。

在相关技术中,可以直接将旧链的交易进行改造后到新链进行重新上链,相当于交易在新链上重新上链,但是在该方案中,运营方存在迁移过程中对原有交易数据进行造假和篡改的可能,导致方案的可靠性不佳。

发明内容

有鉴于此,本说明书公开了一种应用于区块链的数据迁移方法和装置。

根据本说明书实施例的第一方面,公开了一种应用于区块链的数据迁移方法,应用于对接到原区块链和目标区块链的服务端;所述方法包括:

获取待迁移的原交易在原区块链中对应的存在性证明 ;

将所述存在性证明在目标区块链的预设区块中存证;

构建迁移交易,所述迁移交易中包括待迁移的原交易、以及查找标记 ;所述查找标记用于在所述预设区块中,查找所述待迁移的原交易在原区块链中对应的存在性证明;

将所述迁移交易在所述目标区块链中发布上链。

可选的,所述方法还包括 :

从被发布上链的迁移交易中,获取待校验的原区块链交易对应的目标查找标记;

基于所述目标查找标记,在所述预设区块中查找对应的目标存在性证明;

校验所述目标存在性证明是否合法。

可选的,所述目标区块链中预先部署了用于基于查找标记从所述预设区块中查找对应的存在性证明的智能合约;

所述基于所述目标查找标记,在所述预设区块中查找对应的目标存在性证明,包括:

向所述目标区块链发起携带目标查找标记的存在性证明查找交易,以使所述目标区块链响应于所述存在性证明查找交易,调用所述智能合约中的查找逻辑,从所述预设区块中查找与所述目标查找标记对应的目标存在性证明,并生成与所述目标存在性证明对应的结果返回事件;

响应于所述结果返回事件,从所述区块链的预设区块中获取所述目标存在性证明。

可选的,所述存在性证明中包括所述原区块链中所述原交易所在区块的区块高度,以及下列信息中的至少一种:

所述原交易所在区块的区块头信息、所述区块头信息的密码学证明、交易哈希列表。

可选的,所述目标存在性证明中的区块头信息包括区块哈希、区块时间戳、共识签名、交易根、父区块哈希;所述校验所述目标存在性证明是否合法,包括:执行下述校验中任意一项或者多项的组合:

基于所述目标存在性证明中的共识签名,校验所述目标存在性证明的区块哈希是否被共识参与者签名;

查找区块高度为所述目标存在性证明的区块高度减1的、所述目标存在性证明的对应的区块的父区块,并校验所述目标存在性证明的父区块哈希字段,是否与所述父区块的区块哈希字段匹配;

基于所述目标存在性证明中的区块哈希、区块时间戳、共识签名、交易根、父区块哈希,校验所述目标存在性证明的区块头信息的密码学证明是否成立;

校验所述目标存在性证明的交易哈希列表与交易根是否匹配。

根据本说明书实施例的第二方面,公开了一种应用于区块链的数据迁移装置,应用于对接到原区块链和目标区块链的服务端;所述装置包括:

第一获取模块,获取待迁移的原交易在原区块链中对应的存在性证明 ;

存证模块,将所述存在性证明在目标区块链的预设区块中存证;

构建模块,构建迁移交易,所述迁移交易中包括待迁移的原交易、以及查找标记 ;所述查找标记用于在所述预设区块中,查找所述待迁移的原交易在原区块链中对应的存在性证明;

发布模块,将所述迁移交易在所述目标区块链中发布上链。

可选的,所述装置还包括 :

第二获取模块,从被发布上链的迁移交易中,获取待校验的原区块链交易对应的目标查找标记;

查找模块,基于所述目标查找标记,在所述预设区块中查找对应的目标存在性证明;

校验模块,校验所述目标存在性证明是否合法。

可选的,所述目标区块链中预先部署了用于基于查找标记从所述预设区块中查找对应的存在性证明的智能合约;

所述查找模块进一步:

向所述目标区块链发起携带目标查找标记的存在性证明查找交易,以使所述目标区块链响应于所述存在性证明查找交易,调用所述智能合约中的查找逻辑,从所述预设区块中查找与所述目标查找标记对应的目标存在性证明,并生成与所述目标存在性证明对应的结果返回事件;

响应于所述结果返回事件,从所述区块链的预设区块中获取所述目标存在性证明。

可选的,所述存在性证明中包括所述原区块链中所述原交易所在区块的区块高度,以及下列信息中的至少一种:

所述原交易所在区块的区块头信息、所述区块头信息的密码学证明、交易哈希列表。

可选的,所述目标存在性证明中的区块头信息包括区块哈希、区块时间戳、共识签名、交易根、父区块哈希;所述校验模块进一步执行下述校验中任意一项或者多项的组合:

基于所述目标存在性证明中的共识签名,校验所述目标存在性证明的区块哈希是否被共识参与者签名;

查找区块高度为所述目标存在性证明的区块高度减1的、所述目标存在性证明的对应的区块的父区块,并校验所述目标存在性证明的父区块哈希字段,是否与所述父区块的区块哈希字段匹配;

基于所述目标存在性证明中的区块哈希、区块时间戳、共识签名、交易根、父区块哈希,校验所述目标存在性证明的区块头信息的密码学证明是否成立;

校验所述目标存在性证明的交易哈希列表与交易根是否匹配。

根据本说明书实施例的第三方面,公开了一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现上述任一方面实施例所述的方法。

根据本说明书实施例的第四方面,公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一放麦呢实施例所述的方法。

以上技术方案中,一方面,由于被发布到目标区块链中的迁移交易中包含了待迁移的原交易,因此原区块链中的交易数据被迁移到了目标区块链中;可见,上述技术方案可以完成区块链之间的交易数据迁移。

另一方面,由于本方案中还在目标区块链的预设区块中,存证了待迁移的原交易在原区块链中对应的存在性证明,如果服务端在数据迁移过程中尝试篡改或者伪造交易数据,则篡改或者伪造后的交易数据就无法与前述存在性证明相匹配;因此,上述技术方案可以保证数据迁移过程中交易数据难以被篡改或者伪造,从而提高区块链数据迁移的可靠性。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书文本一同用于解释原理。

图1是本说明书示出的一种区块链间数据迁移的情景示例图;

图2是本说明书示出的一种应用于区块链的数据迁移方法的流程示例图;

图3是本说明书示出的一种智能合约的部署和调用的示例图;

图4是本说明书示出的一种应用于区块链的数据迁移装置的结构示例图;

图5是本说明书示出的一种用于应用于区块链的数据迁移的计算机设备的结构示例图。

具体实施方式

为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。

下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的系统和方法的例子。

在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

请参见图1,图1是本说明书示出的一种区块链间数据迁移的情景示例图;

如图1所示,该应用情景中包括原区块链、目标区块链以及分别对接到上述两条区块链的服务端。其中,上述原区块链可以是包含待迁移的原交易的区块链,亦可以称为旧链;上述目标区块链则可以是即将接收来自上述原区块链迁移出的数据的区块链,亦可以称为新链;上述服务端则可以是与上述原区块链和目标区块链相对接的物理服务器或者云平台中设立的虚拟服务器。

其中,上述服务端与上述两条区块链对接时,既可以分别与上述两条区块链的节点设备建立通信连接,也可以将服务端本身作为上述两条区块链的节点设备直接加入上述两条区块链。本领域技术人员应知,上述服务端、原区块链、目标区块链既可以运行于不同的物理计算机上,亦可以运行于同一个云平台中。

可以理解的是,上述情境中虽然仅公开了一条原区块链以及一条目标区块链,但在实际应用中,区块链间数据迁移也可以发生在多条区块链之间,例如,将多条原区块链中的数据合并至一条目标区块链中,或者,将一条原区块链中的数据拆分至多条目标区块链中,又或者,将多条原区块链中的数据重新分发到多条目标区块链中。本说明书对于上述服务端具体对接到的区块链的数量不作限制。

在相关技术中,可以直接将旧链的交易进行改造后到新链进行重新上链,相当于交易在新链上重新上链;举例而言,假设旧链是一个用于存证用户的水电表计数的区块链A,其中的交易基本格式为“住户ID-抄表日期-水表读数-电表读数”,而新链是一用于通用存证的区块链B,其中交易的基本格式为“存证类型-存证数据”,则在将上述区块链A中的交易数据迁移到上述区块链B时,则需要服务端将形如“id123456-202104-153.3-456.5”、指代住户id为id123456在2021年4月的水表读数为153.3且电表度数为456.5的交易,改造为形如“水电表计数- id123456-202104-153.3-456.5”的、适应于区块链B的交易,再将改造得到的交易在区块链B中上链。

但是在该方案中,运营方存在在迁移过程中对原有交易数据进行造假和篡改的可能;继续以上述水电表计数数据迁移为例,业内通常使用散列校验的方式来确定数据是否被伪造或者篡改,但由于在将区块链A中的交易数据改造为区块链B支持的交易格式,因此交易的散列值发生变化通常不可避免,故而散列值的变化并不能用于判断数据是否被伪造或者篡改。因此,上述相关技术方案的可靠性不佳。

基于此,本说明书提出一种不仅将待迁移的原交易在目标区块链中上链,而且将上述原交易在原区块链中对应的存在性证明存证到目标区块链的技术方案。

在实现时,可以将上述待迁移的原交易在原区块链中对应的存在性证明存证到上述目标区块链的预设区块中,构建包含上述待迁移的原交易的迁移交易并发布到目标区块链中;其中,上述迁移交易中还可以包括用于在该预设区块中查找上述待迁移的原交易在原区块链中对应的存在性证明的查找标记。

在以上技术方案中,一方面,由于被发布到目标区块链中的迁移交易中包含了待迁移的原交易,因此原区块链中的交易数据被迁移到了目标区块链中;可见,上述技术方案可以完成区块链之间的交易数据迁移。

另一方面,由于本方案中还在目标区块链的预设区块中,存证了待迁移的原交易在原区块链中对应的存在性证明,如果服务端在数据迁移过程中尝试篡改或者伪造交易数据,则篡改或者伪造后的交易数据就无法与前述存在性证明相匹配;因此,上述技术方案可以保证数据迁移过程中交易数据难以被篡改或者伪造,从而提高区块链数据迁移的可靠性。

下面通过具体实施例并结合具体的应用场景对本说明书进行描述。

请参考图2,图2是本说明书一实施例提供的一种应用于区块链的数据迁移方法,应用于对接到原区块链和目标区块链的服务端;所述方法可以包括以下步骤:

S201,获取待迁移的原交易在原区块链中对应的存在性证明;

S202,将所述存在性证明在目标区块链的预设区块中存证;

S203,构建迁移交易,所述迁移交易中包括待迁移的原交易、以及查找标记 ;所述查找标记用于在所述预设区块中,查找所述待迁移的原交易在原区块链中对应的存在性证明;

S204,将所述迁移交易在所述目标区块链中发布上链。

上述原区块链以及目标区块链,可以包括任意形式的区块链;在本领域中,区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(Private Blockchain)和联盟链(Consortium Blockchain)。此外,还可以有上述多种类型的结合,比如私有链+联盟链、联盟链+公有链等。其中,去中心化程度最高的是公有链,私有链则可以为一个弱中心化系统,其对节点具有严格限制且节点数量较少,联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。本领域技术人员可以根据具体的业务需求自行选择具体使用的区块链类型,本说明书对此不作详细限定。

在本说明书中,上述服务端可以首先获取待迁移的原交易在原区块链中对应的存在性证明。通常,区块链的区块头中包含基于散列加密算法生成的散列值,该散列值的具体数值与该区块中的交易相关;由于散列加密算法通常具有抗碰撞的数学性质,对于已经发布到原区块链的原交易而言,很难在维持其对应的散列值不变的情况下作出更改,所以上述散列值就可以作为上述交易数据的存在性证明。可以理解的是,对于不同的区块链而言,生成存在性证明所使用的散列算法可能存在差异,存在性证明本身所采用的数据结构也可能不同;因此,本说明书对于存在性证明的具体形式无需进行具体限定。

在本说明书中,上述服务端可以将上述存在性证明在目标区块链的预设区块中存证。具体而言,上述存在性证明可以被上述服务端在上述目标区块链的预设区块中存证。例如,预设区块可以是目标区块链的第一个区块,也被称为创世区块,上述服务端可以将上述待迁移的原交易在原区块链中对应的存在性证明存入该创世区块中,以备在未来需要对原交易的存在性进行确认时,从该创世区块中查询到上述存在性证明。

当然可以理解的是,除了上述将上述创世区块作为上述存在性证明的存储位置以外,还可以在其他区块中存储上述存在性证明。例如,原区块链为规模较小的私有链,而目标区块链则为已经运行一段时间的联盟链,该联盟链的创世区块已经不可写入,则上述存在性证明则可以存储在目标区块链的最新区块中。

在示出的一种具体实施方式中,上述存在性证明中包括上述原区块链中上述原交易所在区块的高度,以及下列信息中的至少一种:所述原交易所在区块的区块头信息、所述区块头信息的密码学证明、交易哈希列表。通常,区块高度可以作为标识以快速区分不同的区块对应的存在性证明;区块头信息可以用于指示区块体中交易数据的真实性,而区块头信息的密码学证明可以用于证明区块头信息的真实性,交易哈希列表可以用于校验某交易是否被打包进当前区块;因此,存在性证明中记录上述信息,可以增强存在性证明的可信度。

举例而言,上述存在性证明在上述目标区块链中的存储结构,可以是键值对(Key-Value)的形式,其中,键值对中的key为区块高度,而value则可以包括区块头信息、所述区块头信息的密码学证明、交易哈希列表等信息;在需要查找某一原交易对应的存在性证明时,就可以根据上述某一原交易在原区块链中所在区块的区块高度,在上述键值对存储结构中进行查询。

在本说明书中,上述服务端可以构建包括待迁移的原交易、以及查找标记的迁移交易;其中,查找标记用于在上述预设区块中,查找上述待迁移的原交易在原区块链中对应的存在性证明。具体而言,通常认为将待迁移的原交易重新在目标区块链中上链时,需要对该原交易进行改造,而在本方案中,可以在与目标区块链相适配的迁移交易结构中预设数据存储区域以存储待迁移的原交易。

例如,通过在迁移交易中增设一个扩展字段,该扩展字段用于存储上述待迁移的原交易以及查找标记。在实现时,为了进一步方便存储{<原交易>,<查找标记>}此类成对的信息,可以将上述成对的信息先编码为Bytes格式,再将其存储至上述迁移交易的扩展字段中,从而得到与上述待迁移的原交易相对应的迁移交易。当然,上述存储方案仅为一可行示例,本领域技术人员还可以使用数组、链表、向量等等数据结构以及对应的读写算法实现其他种类的存储方案,本说明书对于上述待迁移的原交易以及查找标记的具体存储方案无需进行限定。

针对上述查找标记而言,其具体内容可以是上述存在性证明在上述目标区块链的分布式账本中的存储地址,也可以是可以用于查询的关键字等等;例如,假设上述原交易在原区块链的所在区块的编号为blocknumber,该原交易在该区块中的位置序号为position,则上述用于查询的关键字就可以是{blcknumber, position}这样一个二元组。

可以理解的是,上述构建迁移交易的步骤以及上述存证存在性证明的步骤,两者并不严格要求执行的先后顺序,也就是说,既可以先将上述存在性证明在目标区块链的预设区块中存证,再构建迁移交易,也可以先构建迁移交易,后将存在性证明在目标区块链的预设区块中存证,还可以将上述两个步骤并行执行。本说明书中对于上述两个步骤的执行顺序不做限定。

在本说明书中,可以将上述迁移交易在上述目标区块链中发布上链。在构建完毕上述迁移交易之后,上述服务端即可将上述迁移交易在上述目标区块链中发布上链。如前所述,上述服务端既可以与上述目标区块链的节点设备建立有通信连接,本身不加入上述目标区块链,也可以直接作为上述目标区块链的一个节点设备加入上述目标区块链;因此,在将上述迁移交易在上述目标区块链中发布上链时,上述服务端既可以将该交易发送给目标区块链的节点设备,以使该节点设备将该迁移交易在目标区块链上发布,也可以本身作为上述目标区块链的节点设备,直接向上述目标区块链中发送该迁移交易。

在示出的一种实施方式中,上述服务端还可以从被发布上链的迁移交易中,获取待校验的原区块链交易对应的目标查找标记;再基于上述目标查找标记,在上述预设区块中查找对应的目标存在性证明;最后,校验上述目标存在性证明是否合法。通过上述过程,可以在需要对被迁移到目标区块链的原交易的合法性进行校验时,根据与上述原交易共同存储在迁移交易中的目标查找标记,在上述目标区块链的预设区块中查找对应的目标存在性证明,如果能够查找到对应的目标存在性证明,且该目标存在性证明合法,则可以间接证明上述被迁移到目标区块链的原交易是合法交易。

在一种示出的实施方式中,上述根据与上述原交易共同存储在迁移交易中的目标查找标记,在上述目标区块链的预设区块中查找对应的目标存在性证明的过程,可以通过智能合约实现。具体而言,区块链上的智能合约是在区块链上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。智能合约可以以规定的方式在区块链网络中每个节点独立的执行,所有执行记录和数据都保存在区块链上,所以当这样的交易执行完毕后,区块链上就保存了无法篡改、不会丢失的交易凭证。

请参见图3,图3是本说明书示出的一创建智能合约和调用智能合约的示意图;如图3所示,以以太坊为例,要创建一个智能合约,可以经过编写智能合约、变成字节码、部署到区块链等过程;以太坊中调用智能合约,则可以发起一笔指向智能合约地址的交易,各个节点的EVM可以分别执行该交易,将智能合约代码分布式的运行在以太坊网络中每个节点的虚拟机中。

在通过智能合约实现上述目标存在性证明的查找过程时,所调用的智能合约可以是被预先部署在上述目标区块链中、用于基于查找标记从上述预设区块中查找对应的存在性证明的智能合约;上述服务端可以向上述目标区块链发起携带目标查找标记的存在性证明查找交易,以使上述目标区块链响应于上述存在性证明查找交易,调用上述智能合约中的查找逻辑,从上述预设区块中查找与所述目标查找标记对应的目标存在性证明,并生成与上述目标存在性证明对应的结果返回事件;之后,上述服务端即可响应于上述结果返回事件,从上述区块链的预设区块中获取上述目标存在性证明。可以理解的是,事件机制仅是区块链内外数据交互的一种可行形式,除此之外,本领域技术人员还可以选用其他的链内外数据交互途径,将智能合约从上述预设区块中查找到的目标存在性证明传递至服务端。

在本说明书中,对上述目标存在性证明的合法性的校验方式可以根据具体业务需求以及上述目标存在性证明中的内容而定,例如,可以通过多个方面的校验来提高合法性校验的可信度;在示出的一种实施方式中,上述目标存在性证明中的区块头信息包括区块哈希、区块时间戳、共识签名、交易根、父区块哈希;则上述校验上述目标存在性证明是否合法的方式可以包括执行下述校验中任意一项或者多项的组合:

基于上述目标存在性证明中的共识签名,校验上述目标存在性证明的区块哈希是否被共识参与者签名;例如,假设某目标存在性证明中的区块哈希的共识签名与共识参与者的验签公钥不匹配,则可以证明该目标存在性证明中的区块哈希并非由共识参与者签名,也就可以证明该目标存在性证明不合法;反之,则可以该维度上证明上述目标存在性证明合法。

查找区块高度为上述目标存在性证明的区块高度减1的、上述目标存在性证明的对应的区块的父区块,并校验上述目标存在性证明的父区块哈希字段(又称为parentHash),是否与上述父区块的区块哈希字段匹配;通常,合法的区块中会存储有其父区块的哈希,则可以通过比对待校验的目标存在性证明中存储的父区块哈希字段,与待校验的目标存在性证明对应的区块的父区块的区块哈希字段,若两者匹配,则可以证明上述两个区块的连接关系,从而从一个维度上证明上述目标存在性证明合法。

基于上述目标存在性证明中的区块哈希、区块时间戳、共识签名、交易根、父区块哈希,校验上述目标存在性证明的区块头信息的密码学证明是否成立;例如,区块头信息的密码学证明中可以存储有上述区块哈希、区块时间戳、共识签名、交易根、父区块哈希的总哈希,若上述区块哈希、区块时间戳、共识签名、交易根、父区块哈希中任意一者被篡改,则重新生成的总哈希将无法与上述区块头信息的密码学证明中的总哈希相匹配,即,密码学证明不成立;因此,如果上述目标存在性证明的区块头信息的密码学证明成立,则可以证明上述区块哈希、区块时间戳、共识签名、交易根、父区块哈希未被篡改,进而证明上述目标存在性证明合法。

校验上述目标存在性证明的交易哈希列表与交易根是否匹配。通常,区块头中的交易根是根据交易哈希列表计算得到的;如果上述目标存在性证明的交易哈希列表与交易根不匹配,则可以证明上述两者中存在被篡改的数据;反之,则可以证明上述目标存在性证明的交易哈希列表与交易根均未被篡改,从而证明上述目标存在性证明合法。

可以理解的是,除上述校验方法以外,本领域技术人员还可以根据具体的需求自行选择其他的合法性校验方法,以取得满足业务需求的校验可信度。

上述内容即为本说明书针对所述应用于区块链的数据迁移方法的全部实施例。本说明书还提供了对应的应用于区块链的数据迁移装置的实施例如下:

本说明书提出一种应用于区块链的数据迁移装置,应用于对接到原区块链和目标区块链的服务端;该装置的结构示例图可以如图4所示,包括:

第一获取模块401,获取待迁移的原交易在原区块链中对应的存在性证明;

存证模块402,将所述存在性证明在目标区块链的预设区块中存证;

构建模块403,构建迁移交易,所述迁移交易中包括待迁移的原交易、以及查找标记;所述查找标记用于在所述预设区块中,查找所述待迁移的原交易在原区块链中对应的存在性证明;

发布模块404,将所述迁移交易在所述目标区块链中发布上链。

在一种具体实施方式中,上述存在性证明中包括上述原区块链中上述原交易所在区块的高度,以及下列信息中的至少一种:所述原交易所在区块的区块头信息、所述区块头信息的密码学证明、交易哈希列表。通常,区块高度可以作为标识以快速区分不同的区块对应的存在性证明;区块头信息可以用于指示区块体中交易数据的真实性,而区块头信息的密码学证明可以用于证明区块头信息的真实性,交易哈希列表可以用于校验某交易是否被打包进当前区块;因此,存在性证明中记录上述信息,可以增强存在性证明的可信度。

在一种具体实施方式中,上述装置中还可以包括第二获取模块、查找模块以及校验模块,该第二获取模块可以从被发布上链的迁移交易中,获取待校验的原区块链交易对应的目标查找标记;该查找模块可以基于上述目标查找标记,在上述预设区块中查找对应的目标存在性证明;该校验模块可以校验上述目标存在性证明是否合法。通过上述过程,可以在需要对被迁移到目标区块链的原交易的合法性进行校验时,根据与上述原交易共同存储在迁移交易中的目标查找标记,在上述目标区块链的预设区块中查找对应的目标存在性证明,如果能够查找到对应的目标存在性证明,且该目标存在性证明合法,则可以间接证明上述被迁移到目标区块链的原交易是合法交易。

在一种示出的实施方式中,上述查找模块根据与上述原交易共同存储在迁移交易中的目标查找标记,在上述目标区块链的预设区块中查找对应的目标存在性证明的过程,可以通过智能合约实现。所调用的智能合约可以是被预先部署在上述目标区块链中、用于基于查找标记从上述预设区块中查找对应的存在性证明的智能合约;上述查找模块可以向上述目标区块链发起携带目标查找标记的存在性证明查找交易,以使上述目标区块链响应于上述存在性证明查找交易,调用上述智能合约中的查找逻辑,从上述预设区块中查找与所述目标查找标记对应的目标存在性证明,并生成与上述目标存在性证明对应的结果返回事件;之后,上述查找模块可响应于上述结果返回事件,从上述区块链的预设区块中获取上述目标存在性证明。

在示出的一种实施方式中,上述目标存在性证明中的区块头信息包括区块哈希、区块时间戳、共识签名、交易根、父区块哈希;则上述校验上述目标存在性证明是否合法的方式可以包括执行下述校验中任意一项或者多项的组合:

基于上述目标存在性证明中的共识签名,校验上述目标存在性证明的区块哈希是否被共识参与者签名;

查找区块高度为上述目标存在性证明的区块高度减1的、上述目标存在性证明的对应的区块的父区块,并校验上述目标存在性证明的父区块哈希字段,是否与上述父区块的区块哈希字段匹配;

基于上述目标存在性证明中的区块哈希、区块时间戳、共识签名、交易根、父区块哈希,校验上述目标存在性证明的区块头信息的密码学证明是否成立;

校验上述目标存在性证明的交易哈希列表与交易根是否匹配。

本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述的应用于区块链的数据迁移方法。

图5示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。

处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。

输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。

总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的应用于区块链的数据迁移方法。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。

相关技术
  • 一种应用于区块链的数据迁移方法及装置
  • 一种区块链升级的数据迁移方法及数据迁移系统
技术分类

06120113792820