一种构建梅克尔树、简单支付验证方法及装置制造方法及图纸

技术编号:25917027 阅读:54 留言:0更新日期:2020-10-13 10:36
公开了一种构建梅克尔树、简单支付验证方法及装置。如果写入区块链的某个交易是不宜公开的敏感数据,那么,区块链网络中的各节点可以将区块链中的该交易替换成该交易的交易哈希,并基于替换的交易哈希进行相关的梅克尔树构建、简单支付验证。

【技术实现步骤摘要】
一种构建梅克尔树、简单支付验证方法及装置
本说明书实施例涉及信息
,尤其涉及一种构建梅克尔树、简单支付验证方法及装置。
技术介绍
区块链网络是一种去中心化的、由多个节点参与的分布式数据存储系统。数据一旦被写入每个节点上的区块链,一方面,意味着数据在全网公开,另一方面,写入区块链的数据也难以被删除与篡改。基于此,在数据存证领域,区块链技术具有很大的应用前景。然而,一方面,在实际应用中,有些数据(本文称之为敏感数据)一旦被写入区块链,就会造成不可消除的危害后果。例如,张三对李四进行诽谤,并将诽谤言论的文本文件上传到区块链网络进行存证,导致该文本文件被写入区块链,这相当于给李四的名誉造成不可消除的伤害。又如,A公司盗取B公司的商业机密,并将盗取的商业机密上传到区块链网络进行存证,导致该商业机密被写入区块链,这相当于给B公司造成不可挽回的损失。另一方面,假设将上述的敏感数据从区块链中删除,那么很容易影响到针对其他数据(与所述敏感数据位于同一区块中的数据)的简单支付验证(SimplifiedPaymentVerification,SPV)的准确性,从而影响数据存证业务的正常运行。基于以上,如何既使得写入区块链的敏感数据不会被公开,又不会影响针对所述其他数据的存证业务的正常运行,是丞待解决的技术问题。
技术实现思路
为了使得写入区块链的敏感数据不会被公开,又不会影响针对所述其他数据的存证业务的正常运行,本说明书实施例提供一种构建梅克尔树、简单支付验证方法及装置,技术方案如下:r>根据本说明书实施例的第1方面,提供一种构建梅克尔树的方法,包括:目标全节点针对目标区块中的每个交易存储位置,从该交易存储位置读取数据;所述目标全节点是区块链网络中的任一全节点,所述目标区块是所述目标全节点的区块链中的任一区块;对从该交易存储位置读取的数据进行分析;若确定从该交易存储位置读取的数据为交易,则对读取的交易进行哈希计算,得到交易哈希;若确定从该交易存储位置读取的数据为隐匿化数据,则从所述隐匿化数据中提取交易哈希;其中,从所述隐匿化数据中提取的交易哈希,是该交易存储位置原本存储的交易的交易哈希;将该交易存储位置原本存储的交易替换成所述隐匿化数据的操作,是所述区块链网络中具有交易隐匿权限的节点指令各节点执行的;基于所述目标区块中各交易存储位置分别对应的交易哈希,构建所述目标区块对应的梅克尔树。根据本说明书实施例的第2方面,提供一种简单支付验证方法,包括:目标全节点接收验证请求;所述验证请求包含目标交易标识;所述目标全节点是区块链网络中的任一全节点;根据所述验证请求,在自身的区块链中确定所述目标交易标识对应的交易所在的区块,并基于上述的构建梅克尔树的方法构建所述区块对应的梅克尔树;基于构建的梅克尔树,触发针对所述目标交易标识对应的交易的简单支付验证SPV流程。根据本说明书实施例的第3方面,提供一种构建梅克尔树的装置,所述装置是区块链网络中的任一全节点,所述装置包括:读取模块,针对目标区块中的每个交易存储位置,从该交易存储位置读取数据;所述目标区块是所述装置的区块链中的任一区块;分析模块,对从该交易存储位置读取的数据进行分析;交易哈希确定模块,若确定从该交易存储位置读取的数据为交易,则对读取的交易进行哈希计算,得到交易哈希;若确定从该交易存储位置读取的数据为隐匿化数据,则从所述隐匿化数据中提取交易哈希;其中,从所述隐匿化数据中提取的交易哈希,是该交易存储位置原本存储的交易的交易哈希;将该交易存储位置原本存储的交易替换成所述隐匿化数据的操作,是所述区块链网络中具有交易隐匿权限的节点指令各节点执行的;梅克尔树构建模块,基于所述目标区块中各交易存储位置分别对应的交易哈希,构建所述目标区块对应的梅克尔树。根据本说明书实施例的第4方面,提供一种简单支付验证装置,所述装置是区块链网络中的任一全节点,所述装置包括:接收模块,接收验证请求;所述验证请求包含目标交易标识;确定构建模块,根据所述验证请求,在自身的区块链中确定所述目标交易标识对应的交易所在的区块,并基于上述的构建梅克尔树的方法构建所述区块对应的梅克尔树;触发模块,基于构建的梅克尔树,触发针对所述目标交易标识对应的交易的简单支付验证SPV流程。本说明书实施例所提供的技术方案,如果写入区块链的某个交易是不宜公开的敏感数据,那么,区块链网络中的各节点可以将区块链中的该交易替换成该交易的交易哈希。一方面,该交易的交易哈希是对该交易采用单向散列算法(即哈希算法)计算得到的,由该交易的交易哈希无法逆推出该交易,因此,将该交易替换成该交易的交易哈希,相当于将区块链中公示的该交易的明文内容加密后隐匿起来。另一方面,将该交易替换成该交易的交易哈希,并不会影响该交易所在区块对应的梅克尔树的稳定性,也就不会影响到针对其他交易(与该交易位于同一区块中的交易)的简单支付验证(SimplifiedPaymentVerification,SPV)的准确性,从而保证了数据存证业务的正常运行。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。附图说明为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1是本说明提供的梅克尔树的结构示意图;图2是本说明书实施例提供的一种对写入区块链的交易进行隐匿的方法,的流程示意图;图3是本说明书实施例提供的构造隐匿化数据的过程示意图;图4是本说明书实施例提供的构造隐匿化数据的另一过程示意图;图5是本说明书实施例提供的一种区块链数据读取方法的流程示意图;图6是本说明书实施例提供的一种构建梅克尔树的方法的流程示意图;图7是本说明书实施例提供的一种简单支付验证方法的流程示意图;图8是本说明书实施例提供的一种对写入区块链的交易进行隐匿的装置的结构示意图;图9本说明书实施例提供的一种对写入区块链的交易进行隐匿的装置的结构示意图;图10是本说明书实施例提供的一种区块链数据读取装置的结构示意图;图11是本说明书实施例提供的一种构建梅克尔树的装置的结构示意图;图12是本说明书实施例提供的一种简单支付验证装置的结构示意图;图13是本说明书实施例提供的区块链系统的结构示意图;图14是用于配置本说明书实施例装置的一种计算机设备的结构示意图。具体实施方式需要说明的是,在本说明书中所描述的交易(transaction),是指用户通过区块链的客户端创建,并需要最终发布至区块链的分布式数据库中的一笔数本文档来自技高网...

【技术保护点】
1.一种构建梅克尔树的方法,包括:/n目标全节点针对目标区块中的每个交易存储位置,从该交易存储位置读取数据;所述目标全节点是区块链网络中的任一全节点,所述目标区块是所述目标全节点的区块链中的任一区块;/n对从该交易存储位置读取的数据进行分析;/n若确定从该交易存储位置读取的数据为交易,则对读取的交易进行哈希计算,得到交易哈希;/n若确定从该交易存储位置读取的数据为隐匿化数据,则从所述隐匿化数据中提取交易哈希;其中,从所述隐匿化数据中提取的交易哈希,是该交易存储位置原本存储的交易的交易哈希;将该交易存储位置原本存储的交易替换成所述隐匿化数据的操作,是所述区块链网络中具有交易隐匿权限的节点通过向各节点广播隐匿指令的方式实现的,所述隐匿指令被写入每个节点的区块链;/n基于所述目标区块中各交易存储位置分别对应的交易哈希,构建所述目标区块对应的梅克尔树。/n

【技术特征摘要】
1.一种构建梅克尔树的方法,包括:
目标全节点针对目标区块中的每个交易存储位置,从该交易存储位置读取数据;所述目标全节点是区块链网络中的任一全节点,所述目标区块是所述目标全节点的区块链中的任一区块;
对从该交易存储位置读取的数据进行分析;
若确定从该交易存储位置读取的数据为交易,则对读取的交易进行哈希计算,得到交易哈希;
若确定从该交易存储位置读取的数据为隐匿化数据,则从所述隐匿化数据中提取交易哈希;其中,从所述隐匿化数据中提取的交易哈希,是该交易存储位置原本存储的交易的交易哈希;将该交易存储位置原本存储的交易替换成所述隐匿化数据的操作,是所述区块链网络中具有交易隐匿权限的节点通过向各节点广播隐匿指令的方式实现的,所述隐匿指令被写入每个节点的区块链;
基于所述目标区块中各交易存储位置分别对应的交易哈希,构建所述目标区块对应的梅克尔树。


2.如权利要求1所述的方法,将该交易存储位置存储的交易替换成所述隐匿化数据的操作如下:
获取该交易存储位置存储的交易的交易哈希;
将预设的前标记字符拼接到所述交易哈希的首部;
根据所述前标记字符与所述交易哈希拼接成的数据,确定隐匿化数据;
将该交易存储位置存储的交易替换成所述隐匿化数据。


3.如权利要求2所述的方法,根据所述前标记字符与所述交易哈希拼接成的数据,确定隐匿化数据,具体包括:
将预设的后标记字符拼接到所述交易哈希的尾部,并且,将备注信息拼接到所述后标记字符的尾部;
将所述前标记字符、所述交易哈希、所述后标记字符以及所述备注信息拼接成的数据确定为所述隐匿化数据。


4.如权利要求2或3所述的方法,对从该交易存储位置读取的数据进行分析,具体包括:
若从该交易存储位置读取的数据不包含所述前标记字符,则确定从该交易存储位置读取的数据为交易;
若从该交易存储位置读取的数据包含所述前标记字符,则确定从该交易存储位置读取的数据为隐匿化数据。


5.如权利要求2所述的方法,从所述隐匿化数据中提取交易哈希,具体包括:
将所述隐匿化数据中位于所述前标记字符之后的数据确定为交易哈希并提取。


6.如权利要求3所述的方法,从所述隐匿化数据中提取交易哈希,具体包括:
将所述隐匿化数据中位于所述前标记字符与所述后标记字符之间的数据确定为交易哈希并提取。


7.一种简单支付验证方法,包括:
目标全节点接收验证请求;所述验证请求包含目标交易标识;所述目标全节点是区块链网络中的任一全节点;
根据所述验证请求,在自身的区块链中确定所述目标交易标识对应的交易所在的区块,并基于权利要求1~6任一项所述的方法构建所述区块对应的梅克尔树;
基于构建的梅克尔树,触发针对所述目标交易标识对应的交易的简单支付验证SPV流程。


8.如权利要求7所述的方法,针对写入区块链的任一交易,区块链网络中的各节点上预先记录有该交易的交易标识与区块链中该交易所在的交易存储位置之间的对应关系;
根据所述目标交易标识,在自身的区块链中确定所述目标交易标识对应的交易所在的区块,具体包括:
根据所述目标交易标识以及预先记录的交易标识与交易存储位置的对应关系,确定所述目标交易标识对应的交易存储位置,作为目标交易存储位置;
确定所述目标交易存储位置所属的区块,作为所述目标交易标识对应的交易所在的区块。


9.一种构建梅克尔树的装置,所述装置是区块链网络中的任一全节点,所述装置包括:
读取模块,针对目标区块中的每个交易存储位置,从该交易存储位置读取数据;所述目标区块是所述装置的区块链中的任一区块;
分析模块,对从该交易存储位置读取的数据进行分析;
交易哈希确定模块,若确定从该交易存储位置读取的数据为交易,则对读取的交易进行哈希计算,得到交易哈希;若确定从该交易存储位置读取的数据为隐匿化数据,则从所述隐匿化数据中提取交易哈希;其中,从所述隐匿化数据中提取的交易哈希,是该交易存储位置原本存储的交易的交易哈希;将该交易存储位置原本存储的交易替换成所述隐匿化数据的操作,是所述区块链网络中具有交易隐匿权限的节点通过向各节点广播隐匿指令的方式实现的,所述隐匿指令被写入每...

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

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

1