构建区块对应的梅克尔树、简单支付验证方法及装置制造方法及图纸

技术编号:21659895 阅读:22 留言:0更新日期:2019-07-20 05:56
公开了一种构建区块对应的梅克尔树、简单支付验证方法及装置。如果写入块链的某个交易是不宜公开的敏感内容,那么,可以将区块链中的该交易替换成该交易的交易哈希,并基于替换的交易哈希进行相关的梅克尔树构建、简单支付验证。

Building Merkel Tree for Block Correspondence, Simple Payment Verification Method and Device

【技术实现步骤摘要】
构建区块对应的梅克尔树、简单支付验证方法及装置
本说明书实施例涉及信息
,尤其涉及一种构建区块对应的梅克尔树、简单支付验证方法及装置。
技术介绍
区块链网络是一种去中心化的、由多个节点参与的分布式数据存储系统。数据一旦被写入每个节点上的区块链,一方面,意味着数据在全网公开,另一方面,写入区块链的数据也难以被删除与篡改。基于此,在数据存证领域,区块链技术具有很大的应用前景。此外,实践中,中心化设备也可以采用类区块链存储(可以视为中心化的区块链存储)的方式对数据进行存储,区块链中的区块与类区块链中的区块的生成原理相同。显然,如果要删除写入类区块链中的数据,除非中心化设备将存储的整个类区块链都删除。因此,中心化的类区块链存储也比较适合应用于数据存证业务。本文将区块链存储方式与其他中心化的类区块链存储方式统称为块链存储。然而,在实际应用中,有些内容(本文称之为敏感内容)一旦被写入块链,就会造成难以消除的危害后果。假设将上述的敏感内容从块链中删除,那么很容易影响到针对其他数据(与所述敏感内容位于同一区块中的数据)的简单支付验证(SimplifiedPaymentVerification,SPV)的准确性,从而影响数据存证业务的正常运行。基于以上,如何既使得写入块链的敏感内容不会被公开,又不会影响针对所述其他数据的存证业务的正常运行,是丞待解决的技术问题。
技术实现思路
为了使得写入块链的敏感内容不会被公开,又不会影响针对所述其他数据的存证业务的正常运行,本说明书实施例提供一种区块对应的构建梅克尔树、简单支付验证方法及装置,技术方案如下:根据本说明书实施例的第1方面,提供一种构建区块对应的梅克尔树的方法,包括:针对块链中的目标区块,获取所述目标区块的标签;若所述目标区块的标签是指定标签,则针对所述目标区块中的每个交易存储位置,从该交易存储位置读取数据;其中,所述指定标签表征所述目标区块中存储过至少一个敏感交易,针对每个敏感交易,该敏感交易已被替换成包含该敏感交易的交易哈希的隐匿化数据;若确定从该交易存储位置读取的数据包括交易,则对读取的数据所包括的交易进行哈希计算,得到该交易存储位置对应的交易哈希;若确定从该交易存储位置读取的数据包括隐匿化数据,则从读取的数据所包括的隐匿化数据中提取交易哈希,作为该交易存储位置对应的交易哈希;基于所述目标区块中各交易存储位置分别对应的交易哈希,构建所述目标区块对应的梅克尔树。根据本说明书实施例的第2方面,提供一种构建区块对应的梅克尔树的装置,包括:获取模块,针对块链中的目标区块,获取所述目标区块的标签;读取模块,若所述目标区块的标签是指定标签,则针对所述目标区块中的每个交易存储位置,从该交易存储位置读取数据;其中,所述指定标签表征所述目标区块中存储过至少一个敏感交易,针对每个敏感交易,该敏感交易已被替换成包含该敏感交易的交易哈希的隐匿化数据;第一处理模块,若确定从该交易存储位置读取的数据包括交易,则对读取的数据所包括的交易进行哈希计算,得到该交易存储位置对应的交易哈希;第二处理模块,若确定从该交易存储位置读取的数据包括隐匿化数据,则从读取的数据所包括的隐匿化数据中提取交易哈希,作为该交易存储位置对应的交易哈希;构建模块,基于所述目标区块中各交易存储位置分别对应的交易哈希,构建所述目标区块对应的梅克尔树。根据本说明书实施例的第3方面,提供一种简单支付验证方法,包括:接收验证请求;所述验证请求包含目标交易标识;根据所述验证请求,在自身的区块链中确定所述目标交易标识对应的交易所在的区块,并基于第1方面的方法构建所述区块对应的梅克尔树;基于构建的梅克尔树,针对所述目标交易标识对应的交易进行简单支付验证。根据本说明书实施例的第4方面,提供一种简单支付验证装置,包括:接收模块,接收验证请求;所述验证请求包含目标交易标识;构建模块,根据所述验证请求,在自身的区块链中确定所述目标交易标识对应的交易所在的区块,并基于第1方面的方法构建所述区块对应的梅克尔树;验证模块,基于构建的梅克尔树,针对所述目标交易标识对应的交易进行简单支付验证。本说明书实施例所提供的技术方案,如果写入块链的某个交易是敏感交易(包含有不宜公开的敏感内容),那么,可以将块链中的该交易替换成包括该交易的交易哈希的隐匿化数据。一方面,该交易的交易哈希是对该交易采用单向散列算法(即哈希算法)计算得到的,由该交易的交易哈希无法逆推出该交易,因此,将该交易替换成隐匿化数据,相当于将块链中公示的该交易的明文内容不可恢复地隐匿起来。另一方面,将该交易替换成隐匿化数据,并不会影响该交易所在区块对应的梅克尔树的稳定性,也就不会影响到针对其他交易(与该交易位于同一区块中的交易)的简单支付验证(SimplifiedPaymentVerification,SPV)的准确性,从而保证了数据存证业务的正常运行。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。附图说明为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1是本说明提供的梅克尔树的结构示意图;图2是本说明书实施例提供的一种对写入块链的交易进行隐匿的方法,的流程示意图;图3是本说明书实施例提供的构造隐匿化数据的过程示意图;图4是本说明书实施例提供的构造隐匿化数据的另一过程示意图;图5是本说明书实施例提供的一种对写入块链的交易进行隐匿的方法的流程示意图;图6是本说明书实施例提供的内容字段与标识字段的示意图;图7是本说明书实施例提供的一种对写入区块链的交易进行隐匿的方法的流程示意图;图8是本说明书实施例提供的一种包含非敏感内容的隐匿化数据的示意图;图9是本说明书实施例提供的一种对写入块链的交易进行隐匿的方法的流程示意图;图10是本说明书实施例提供的一种对写入块链的交易进行隐匿的方法的流程示意图;图11是本说明书实施例提供的一种构建区块对应的梅克尔树的方法的流程示意图;图12是本说明书实施例提供的一种对写入块链的交易进行隐匿的方法的流程示意图;图13是本说明书实施例提供的另一种构建区块对应的梅克尔树的方法的流程示意图;图14是本说明书实施例提供的一种简单支付验证方法的流程示意图;图15是本说明书实施例提供的一种对写入块链的交易进行隐匿的装置的结构示意图;图16是本说明苏实施例提供的一种对写入块链的交易进行隐匿的装置的结构示意图;图17是本说明苏实施例提供的一种对写入块链的交易进行隐匿的装置的结构示意图;图18是本说明苏实施例提供的一种对写入块链的交易进行隐匿的装置的结构示意图;图19是本说明苏实施例提供的一种对写入块链的交易进行隐匿的装置的结构示意图;图20是本说明书实施例提供的一种构建区块对应的梅克尔树的装置的结构示意图;图21是本说明书实施例提供的一种简单支付验证装置的结构示意图;图22是用于配置本说明书实施例装置的一种计算机设备的结构示意图。具体实施方式如前所述,在实际应用中,敏感内容一本文档来自技高网...

【技术保护点】
1.一种构建区块对应的梅克尔树的方法,包括:针对块链中的目标区块,获取所述目标区块的标签;若所述目标区块的标签是指定标签,则针对所述目标区块中的每个交易存储位置,从该交易存储位置读取数据;其中,所述指定标签表征所述目标区块中存储过至少一个敏感交易,针对每个敏感交易,该敏感交易已被替换成包含该敏感交易的交易哈希的隐匿化数据;若确定从该交易存储位置读取的数据包括交易,则对读取的数据所包括的交易进行哈希计算,得到该交易存储位置对应的交易哈希;若确定从该交易存储位置读取的数据包括隐匿化数据,则从读取的数据所包括的隐匿化数据中提取交易哈希,作为该交易存储位置对应的交易哈希;基于所述目标区块中各交易存储位置分别对应的交易哈希,构建所述目标区块对应的梅克尔树。

【技术特征摘要】
1.一种构建区块对应的梅克尔树的方法,包括:针对块链中的目标区块,获取所述目标区块的标签;若所述目标区块的标签是指定标签,则针对所述目标区块中的每个交易存储位置,从该交易存储位置读取数据;其中,所述指定标签表征所述目标区块中存储过至少一个敏感交易,针对每个敏感交易,该敏感交易已被替换成包含该敏感交易的交易哈希的隐匿化数据;若确定从该交易存储位置读取的数据包括交易,则对读取的数据所包括的交易进行哈希计算,得到该交易存储位置对应的交易哈希;若确定从该交易存储位置读取的数据包括隐匿化数据,则从读取的数据所包括的隐匿化数据中提取交易哈希,作为该交易存储位置对应的交易哈希;基于所述目标区块中各交易存储位置分别对应的交易哈希,构建所述目标区块对应的梅克尔树。2.如权利要求1所述的方法,将所述目标区块中存储的敏感交易替换成隐匿化数据的操作如下:确定所述敏感交易的交易哈希;将预设的前标记字符拼接到所述交易哈希的首部;根据所述前标记字符与所述交易哈希拼接成的数据,确定隐匿化数据;将所述敏感交易替换成确定的隐匿化数据。3.如权利要求2所述的方法,根据所述前标记字符与所述交易哈希拼接成的数据,确定隐匿化数据,具体包括:将预设的后标记字符拼接到所述交易哈希的尾部,并且,将备注信息拼接到所述后标记字符的尾部;将所述前标记字符、所述交易哈希、所述后标记字符以及所述备注信息拼接成的数据确定为隐匿化数据。4.如权利要求2或3所述的方法,确定从该交易存储位置读取的数据包括交易,具体包括:若从该交易存储位置读取的数据不包括所述前标记字符,则确定从该交易存储位置读取的数据包括交易;确定从该交易存储位置读取的数据包括隐匿化数据,具体包括:若从该交易存储位置读取的数据包括所述前标记字符,则确定从该交易存储位置读取的数据包括隐匿化数据。5.如权利要求2所述的方法,从读取的数据所包括的隐匿化数据中提取交易哈希,具体包括:将读取的数据所包括的隐匿化数据中位于所述前标记字符之后的数据确定为交易哈希并提取;或,将读取的数据所包括的隐匿化数据中位于所述前标记字符之后的指定长度的数据确定为交易哈希并提取。6.如权利要求3所述的方法,从读取的数据所包括的隐匿化数据中提取交易哈希,具体包括:将读取的数据所包括的隐匿化数据中位于所述前标记字符与所述后标记字符之间的数据确定为交易哈希并提取。7.如权利要求1所述的方法,针对块链中的每个交易存储位置,该交易存储位置存储有内容字段以及标识字段,所述内容字段包括交易或基于所述交易生成的隐匿化数据;其中,当所述内容字段包括交易时,所述标识字段包括第一标识符,当所述内容字段包括基于所述交易生成的隐匿化数据时,所述标识字段包括第二标识符;确定从该交易存储位置读取的数据包括交易,具体包括:若从该交易存储位置读取的数据中的标识字段包括第一标识符,则确定从该交易存储位置读取的数据包括交易;确定从该交易存储位置读取的数据包括隐匿化数据,具体包括:若从该交易存储位置读取的数据中的标识字段包括第二标识符,则确定从该交易存储位置读取的数据包括隐匿化数据。8.如权利要求1所述的方法,所述方法还包括:若所述目标区块的标签不是指定标签,则采用默认方式构建所述目标区块对应的梅克尔树。9.如权利要求8所述的方法,设块链包括N个区块,预先创建的二进制数串的第i个二进制位的值为块链中的第i个区块的标签,i∈[1,N];获取所述目标区块的标签,具体包括:确定所述目标区块的序号M;从所述二进制数串中读取第M个二进制位的值,作为所述目标区块的标签。10.一种简单支付验证方法,包括:接收验证请求;所述验证请求包含目标交易标识;根据所述验证请求,在自身的区块链中确定所述目标交易标识对应的交易所在的区块,并基于权利要求1~9任一项所述的方法构建所述区块对应的梅克尔树;基于构建的梅克尔树,针对所述目标交易标识对应的交易进行简单支付验证。11.一种构建区块对应...

【专利技术属性】
技术研发人员:杨新颖
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1