【技术实现步骤摘要】
构建区块对应的梅克尔树、简单支付验证方法及装置
本说明书实施例涉及信息
,尤其涉及一种构建区块对应的梅克尔树、简单支付验证方法及装置。
技术介绍
区块链网络是一种去中心化的、由多个节点参与的分布式数据存储系统。数据一旦被写入每个节点上的区块链,一方面,意味着数据在全网公开,另一方面,写入区块链的数据也难以被删除与篡改。基于此,在数据存证领域,区块链技术具有很大的应用前景。此外,实践中,中心化设备也可以采用类区块链存储(可以视为中心化的区块链存储)的方式对数据进行存储,区块链中的区块与类区块链中的区块的生成原理相同。显然,如果要删除写入类区块链中的数据,除非中心化设备将存储的整个类区块链都删除。因此,中心化的类区块链存储也比较适合应用于数据存证业务。本文将区块链存储方式与其他中心化的类区块链存储方式统称为块链存储。然而,在实际应用中,有些内容(本文称之为敏感内容)一旦被写入块链,就会造成难以消除的危害后果。假设将上述的敏感内容从块链中删除,那么很容易影响到针对其他数据(与所述敏感内容位于同一区块中的数据)的简单支付验证(SimplifiedPaymentVerification,SPV)的准确性,从而影响数据存证业务的正常运行。基于以上,如何既使得写入块链的敏感内容不会被公开,又不会影响针对所述其他数据的存证业务的正常运行,是丞待解决的技术问题。
技术实现思路
为了使得写入块链的敏感内容不会被公开,又不会影响针对所述其他数据的存证业务的正常运行,本说明书实施例提供一种区块对应的构建梅克尔树、简单支付验证方法及装置,技术方案如下:根据本说明书实施例的第1方面 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。