区块链的区块中存储记录的哈希信息处理方法和系统与流程

文档序号:18198153发布日期:2019-07-17 05:59阅读:351来源:国知局
区块链的区块中存储记录的哈希信息处理方法和系统与流程

本申请涉及计算机软件技术领域,尤其涉及一种区块链的区块中存储记录的哈希信息处理方法和系统。



背景技术:

区块链账本具备真实透明,不可删除的特性,应用范围越来越广泛,基本涉及到各个行业。

但是,由于区块链账本的架构原因,即使对明文进行加密,使用hash上链的方式,公众仍然可以通过解析区块链账本获得区块链上的真实交易量。

在保障数据真实透明的同时,如何对业务的交易规模交易量级进行保护,是亟待解决的技术问题。



技术实现要素:

本申请实施例的目的是提供一种区块链的区块中存储记录的哈希信息处理方法和系统,以对区块链中业务的交易规模交易量级进行保护,使得更多的业务能够使用区块链技术的同时更好地保护业务数据。

为解决上述技术问题,本申请实施例是这样实现的:

第一方面,提出了一种区块链的区块中存储记录的哈希信息处理方法,该方法包括:

获取第一区块链账本的区块中多个存储记录的哈希信息;

对所述多个哈希信息进行至少一层混淆加密处理,得到至少一个目标哈希信息;

将所述至少一个目标哈希信息存储到第二区块链账本中,其中,目标用户具有访问第二区块链账本的权限且不具有访问第一区块链账本的权限。

第二方面,提出了一种区块链系统,该区块链系统包括:

获取模块,获取第一区块链账本的区块中多个存储记录的哈希信息;

混淆加密处理模块,对所述多个哈希信息进行至少一层混淆加密处理,得到至少一个目标哈希信息;

存储模块,将所述至少一个目标哈希信息存储到第二区块链账本中,其中,目标用户具有访问第二区块链账本的权限且不具有访问第一区块链账本的权限。

第三方面,提出了一种电子设备,该电子设备包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:

获取第一区块链账本的区块中多个存储记录的哈希信息;对所述多个哈希信息进行至少一层混淆加密处理,得到至少一个目标哈希信息;将所述至少一个目标哈希信息存储到第二区块链账本中,其中,目标用户具有访问第二区块链账本的权限且不具有访问第一区块链账本的权限。

第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:

获取第一区块链账本的区块中多个存储记录的哈希信息;对所述多个哈希信息进行至少一层混淆加密处理,得到至少一个目标哈希信息;将所述至少一个目标哈希信息存储到第二区块链账本中,其中,目标用户具有访问第二区块链账本的权限且不具有访问第一区块链账本的权限。

由以上本申请实施例提供的技术方案可见,本申请实施例方案至少具备如下一种技术效果:

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请的一个实施例区块链的区块中存储记录的哈希信息处理方法流程图。

图2是本申请的一个实施例电子设备的结构示意图。

图3是本申请的一个实施例区块链系统的结构示意图。

具体实施方式

本申请实施例提供一种区块链的区块中存储记录的哈希信息处理方法、系统和电子设备。

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

图1是本申请的一个实施例区块链的区块中存储记录的哈希信息处理方法流程图。图1的方法可包括:

s110,获取第一区块链账本的区块中多个存储记录的哈希信息。

应理解,在不同的区块链应用场景中,区块链中的存储记录可存储不同的内容。例如,在涉及区块链交易的系统中,一个存储记录即区块链的一个交易记录。

应理解,在本申请实施例中,在获取第一区块链账本的区块中多个存储记录的哈希信息时,可通过该区块的交易树获取多个存储记录的哈希信息。

应理解,在比特币等区块链1.0的区块链系统中,只有一个默克尔(merkle)树,某种程度上来说,这棵树也可以称为交易树;而在以太坊等区块链2.0的区块链系统中,则存在交易(transactions)树、收据(receipts)树和状态(state)树三棵merkle树。

可选地,作为一个实施例,步骤s110可实现为:逐个区块获取第一区块链账本的区块中多个存储记录的哈希信息,以进行混淆加密处理,直至读取完区块链的最新区块。

对于本实施例来说,可以将区块链的历史区块的信息都按照本申请实施例的方案进行混淆加密处理。

或者,可选的,作为另一个实施例,步骤s110可实现为:响应于第一区块链账本的最新区块的存储事件,获取所述最新区块中多个存储记录的哈希信息。

对于本实施例来说,需要在第一区块链账本所属的区块链启动时就执行本申请实施例的方案,才能保证第一区块链账本的所有区块的存储记录混淆后的哈希信息在第二区块链账本可查询。当然,如果不需要查询第一区块链账本的所有区块的存储记录混淆后的哈希信息,也可不对本申请实施例的方法的执行时机进行限制。

s120,对所述多个哈希信息进行至少一层混淆加密处理,得到至少一个目标哈希信息。

在本申请实施例中,通过对区块的存储记录的哈希信息进行混淆加密处理,可以避免泄露区块链中区块的交易量信息。

特别地,所述至少一个目标哈希信息的个数不等于所述多个哈希信息的个数。

s130,将所述至少一个目标哈希信息存储到第二区块链账本中,其中,目标用户具有访问第二区块链账本的权限且不具有访问第一区块链账本的权限。

本申请实施例中,通过将第一区块链账本中区块的存储记录的哈希信息进行混淆加密处理存储到目标用户能够访问的第二区块链账本中,从而能够避免目标用户直接访问第一区块链账本带来的交易规模及交易量级等信息的泄密,保障了第一区块链账本所属的区块链系统的信息安全。

应理解,目标用户具有访问第二区块链账本的权限且不具有访问第一区块链账本的权限,有多种实现方式:

例如所述第一区块链账本所在的区块链为私有链;所述第二区块链账本所在的区块链。此时,所述第一区块链账本所在的区块链的账户节点以外的其它节点将不具备第一区块链账本的访问权限,但可以访问第二区块链账本。

又例如,所述第一区块链账本所在的区块链和所述第二区块链账本所在的区块链都为私有链,目标账户配置了第二区块链账本的访问权限,但没有配置第一区块链账本的访问权限。

应理解,在本申请实施例中,对哈希信息的混淆加密处理可包括多种方式。

可选地,在一种实现方式中,可将多个哈希信息组成的内容进行哈希计算得到一个哈希信息。

例如,假设区块链的某个区块中的4个存储记录对应的哈希信息分别为hasha、hashb、hashc和hashd,则混淆加密处理后的哈希信息hashabcd=hash(hasha+hashb+hashc+hashd),其中,函数hash()表示哈希计算函数,例如md5、sha-1、sha-256、sha-384及sha-512,等等。在比特币系统中,采用的哈希算法为sha-256。

可选地,在另一种实现方式中,可将任一个哈希信息分成多个部分的内容再分别进行哈希计算,得到所述多个部分的内容对应的多个哈希信息。

例如,假设区块链的某个区块中的一个存储记录对应的哈希信息为hasha,可将hasha拆分成hasha1和hasha2,然后分别进行哈希处理,即得到hasha1’=hash(hasha1),hasha2’=hash(hasha2),此时的hasha1’和hasha2’即对hasha进行混淆加密处理后得到的哈希信息。当然,还可将hasha拆分成3个部分、4个部分乃至更多部分,具体拆分成多少个部分,怎么拆分,是可配置的。

可选地,在另一种实现方式中,可将多个哈希信息组成的内容再分成多个部分的内容,并对每个部分的内容分别进行哈希计算,得到所述多个部分的内容对应的多个哈希信息。

例如,假设区块链的某个区块中的4个存储记录对应的哈希信息分别为hasha、hashb、hashc和hashd,其组成的内容hashabcd=(hasha+hashb+hashc+hashd);可将hashabcd分成hashabcd1和hashabcd2,再对hashabcd1和hashabcd2分别进行哈希计算得到hash(hashabcd1)和hash(hashabcd2),hash(hashabcd1)和hash(hashabcd2)即为该多个部分的内容对应的多个哈希信息。

当然,前面仅仅列举了几种,具体还可能存在其它处理的方式,不作限制。

此外,应理解,本申请实施例的混淆方案,还可进行多层混淆加密处理,即将一层混淆加密处理之后的哈希信息,再进行一层或多层的混淆加密处理。不同层混淆加密处理的算法,可以相同,也可以不同。

例如,例如,假设区块链的某个区块中的4个存储记录对应的哈希信息分别为hasha、hashb、hashc和hashd,则第一层混淆加密处理后的哈希信息hashabcd=hash(hasha+hashb+hashc+hashd);第二层混淆加密处理后的哈希信息为hash(hashabcd1)和hash(hashabcd2),其中hashabcd=hashabcd1+hashabcd2。

可选地,作为一个实施例,所述至少一个目标哈希信息为所述区块的交易树的m根。即参照merkle树的生成方式将区块中的存储记录哈希得到哈希信息,再将哈希信息两两哈希得到新的哈希信息,直至得到一个哈希值。

可选地,作为一个实施例,步骤s130具体可实现为:

将所述区块的唯一标识及所述至少一个目标哈希信息存储到所述第二区块链账本中。

本申请实施例中,将区块的唯一标识和生成的至少一个目标哈希信息一起存储到所述第二区块链账本,以便目标用户能够基于区块的唯一标识确定所述至少一个目标哈希信息归属于哪个区块。

进一步的,在本申请实施例的一个具体实现方式中,可将所述区块的唯一标识及所述至少一个目标哈希信息作为一条存储记录存储到所述第二区块链账本中。

在本申请实施例中,一个区块的所有混淆后的哈希信息作为一个存储记录进行存储。

或者,进一步的,在本申请实施例的另一个具体实现方式中,可将所述区块的唯一标识及一个目标哈希信息中作为存储记录存储到所述第二区块链账本中。

在本申请实施例中,一个区块的混淆后的一个哈希信息作为一个存储记录进行存储。

或者,进一步的,在本申请实施例的另一个具体实现方式中,可将所述区块的唯一标识及不多于预定个数的目标哈希信息作为存储记录存储到所述第二区块链账本中。

当然,应理解,在本申请实施例的上述实现方式中,所述存储记录中还可携带所述区块的区块头中的至少一种信息,例如父区块的哈希信息、所述区块的时间戳信息,等等。

可选地,作为一个实施例,所述方法还包括:

将混淆算法的代码存储在第三区块链账本中,所述混淆算法用于对所述多个哈希信息进行至少一层混淆加密处理以得到所述至少一个目标哈希信息。

可选地,作为一个实施例,所述方法通过调用第一区块链账本所在的区块链的智能合约实现。

当然,应理解,所述方法可以由第一区块链账本所在的区块链以外的第三方装置实现,本申请实施例对此不做限制。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

图2是本申请的一个实施例电子设备的结构示意图。请参考图2,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-accessmemory,ram),也可能还包括非易失性存储器(non-volatilememory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。

处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industrystandardarchitecture,工业标准体系结构)总线、pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。

处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成区块链系统。处理器,执行存储器所存放的程序,并具体用于执行以下操作:

获取第一区块链账本的区块中多个存储记录的哈希信息;

对所述多个哈希信息进行至少一层混淆加密处理,得到至少一个目标哈希信息;

将所述至少一个目标哈希信息存储到第二区块链账本中,其中,目标用户具有访问第二区块链账本的权限且不具有访问第一区块链账本的权限。

上述如本申请图1所示实施例揭示的区块链系统执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

该电子设备还可执行图1的方法,并实现区块链系统在图1所示实施例的功能,本申请实施例在此不再赘述。

当然,除了软件实现方式之外,本申请的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行以下操作:

获取第一区块链账本的区块中多个存储记录的哈希信息;

对所述多个哈希信息进行至少一层混淆加密处理,得到至少一个目标哈希信息;

将所述至少一个目标哈希信息存储到第二区块链账本中,其中,目标用户具有访问第二区块链账本的权限且不具有访问第一区块链账本的权限。

图3是本申请的一个实施例区块链系统300的结构示意图。请参考图3,在一种软件实施方式中,区块链系统300可包括:

获取模块310,获取第一区块链账本的区块中多个存储记录的哈希信息;

混淆加密处理模块320,对所述多个哈希信息进行至少一层混淆加密处理,得到至少一个目标哈希信息;

存储模块330,将所述至少一个目标哈希信息存储到第二区块链账本中,其中,目标用户具有访问第二区块链账本的权限且不具有访问第一区块链账本的权限。

本申请实施例中,通过将第一区块链账本中区块的存储记录的哈希信息进行混淆加密处理存储到目标用户能够访问的第二区块链账本中,从而能够避免目标用户直接访问第一区块链账本带来的交易规模及交易量级等信息的泄密,保障了第一区块链账本所属的区块链系统的信息安全。

可选地,获取模块310具体可用于:

响应于第一区块链账本的最新区块的存储事件,获取所述最新区块中多个存储记录的哈希信息。

可选地,所述第一区块链账本所在的区块链为私有链,所述第二区块链账本所在的区块链为公有链。

或者,可选地,所述第一区块链账本所在的区块链为私有链,所述第二区块链账本所在的区块链为私有链。

可选地,一层所述混淆加密处理包括如下之一:

将多个哈希信息组成的内容进行哈希计算得到一个哈希信息;

将任一个哈希信息分成多个部分的内容再分别进行哈希计算,得到所述多个部分的内容对应的多个哈希信息;

将多个哈希信息组成的内容再分成多个部分的内容,并对每个部分的内容分别进行哈希计算,得到所述多个部分的内容对应的多个哈希信息。

可选地,所述至少一个目标哈希信息为所述区块的交易树的m根。

可选地,作为一个实施例,存储模块330具体用于:

将所述至少一个目标哈希信息存储到第二区块链账本中,包括:

将所述区块的唯一标识及所述至少一个目标哈希信息存储到所述第二区块链账本中。

进一步地,在本实施例的一种实现方式中,存储模块330具体用于:

将所述区块的唯一标识及所述至少一个目标哈希信息作为一条存储记录存储到所述第二区块链账本中。

或者,进一步地,在本实施例的另一种实现方式中,存储模块330具体用于:

将所述区块的唯一标识及一个目标哈希信息中作为存储记录存储到所述第二区块链账本中。

或者,进一步地,在本实施例的再一种实现方式中,存储模块330具体用于:

将所述区块的唯一标识及不多于预定个数的目标哈希信息作为存储记录存储到所述第二区块链账本中。

更进一步地,在上述具体的实现方式中,所述存储记录中还可携带所述区块的区块头中的至少一种信息。

可选地,所述存储模块330还可用于:

将混淆算法的代码存储在第三区块链账本中,所述混淆算法用于对所述多个哈希信息进行至少一层混淆加密处理以得到所述至少一个目标哈希信息。

可选地,所述至少一个目标哈希信息的个数不等于所述多个哈希信息的个数。

区块链系统300还可执行图1所示实施例的方法,具体实现可参考图1所示实施例,不再赘述。

总之,以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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

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

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1