一种对写入区块链的交易进行隐匿的方法及装置制造方法及图纸

技术编号:21686730 阅读:47 留言:0更新日期:2019-07-24 14:50
公开了一种对写入区块链的交易进行隐匿的方法及装置。如果写入区块链的某个交易是不宜公开的敏感数据,那么,区块链网络中的各节点可以将区块链中的该交易替换成该交易的交易哈希。

A method and device for hiding transactions written to block chains

【技术实现步骤摘要】
一种对写入区块链的交易进行隐匿的方法及装置
本说明书实施例涉及信息
,尤其涉及一种对写入区块链的交易进行隐匿的方法及装置。
技术介绍
区块链网络是一种去中心化的、由多个节点参与的分布式数据存储系统。数据一旦被写入每个节点上的区块链,一方面,意味着数据在全网公开,另一方面,写入区块链的数据也难以被删除与篡改。基于此,在数据存证领域,区块链技术具有很大的应用前景。然而,在实际应用中,有些数据(本文称之为敏感数据)一旦被写入区块链,就会造成不可消除的危害后果。例如,张三对李四进行诽谤,并将诽谤言论的文本文件上传到区块链网络进行存证,导致该文本文件被写入区块链,对李四的名誉造成不可消除的伤害。又如,A公司盗取B公司的商业机密,并将盗取的商业机密上传到区块链网络进行存证,导致该商业机密被写入区块链,给B公司造成不可挽回的损失。
技术实现思路
为了解决敏感数据被写入区块链容易造成危害后果的问题,本说明书实施例提供一种对写入区块链的交易进行隐匿的方法及装置,技术方案如下:根据本说明书实施例的第1方面,提供一种对写入区块链的交易进行隐匿的方法,包括:执行节点获取目标交易标识;所述执行节点是区块链网络中具有交易隐匿权限的节点;所述执行节点构建包含所述目标交易标识的隐匿指令,并向所述区块链网络广播所述隐匿指令;针对所述区块链网络中的每个节点,该节点根据所述隐匿指令,将区块链中对应于所述目标交易标识的交易替换成隐匿化数据;所述隐匿化数据包括所述目标交易标识对应的交易的交易哈希。根据本说明书实施例的第2方面,提供一种区块链系统,包括由多个节点组成的区块链网络;所述区块链网络中具有交易隐匿权限的节点,获取目标交易标识;构建包含所述目标交易标识的隐匿指令,并向所述区块链网络广播所述隐匿指令;所述区块链网络中的每个节点,根据所述隐匿指令,将区块链中对应于所述目标交易标识的交易替换成隐匿化数据;所述隐匿化数据包括所述目标交易标识对应的交易的交易哈希。本说明书实施例所提供的技术方案,如果写入区块链的某个交易是不宜公开的敏感数据,那么,区块链网络中的各节点可以将区块链中的该交易替换成该交易的交易哈希。一方面,该交易的交易哈希是对该交易采用单向散列算法(即哈希算法)计算得到的,由该交易的交易哈希无法逆推出该交易,因此,将该交易替换成该交易的交易哈希,相当于将区块链中公示的该交易的明文内容加密后隐匿起来。另一方面,将该交易替换成该交易的交易哈希,并不会影响该交易所在区块对应的梅克尔树的稳定性,也就不会影响到针对其他交易(与该交易位于同一区块中的交易)的简单支付验证(SimplifiedPaymentVerification,SPV)的准确性,从而保证了数据存证业务的正常运行。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。附图说明为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1是本说明提供的梅克尔树的结构示意图;图2是本说明书实施例提供的一种对写入区块链的交易进行隐匿的方法,的流程示意图;图3是本说明书实施例提供的构造隐匿化数据的过程示意图;图4是本说明书实施例提供的构造隐匿化数据的另一过程示意图;图5是本说明书实施例提供的一种区块链数据读取方法的流程示意图;图6是本说明书实施例提供的一种构建梅克尔树的方法的流程示意图;图7是本说明书实施例提供的一种简单支付验证方法的流程示意图;图8是本说明书实施例提供的一种对写入区块链的交易进行隐匿的装置的结构示意图;图9本说明书实施例提供的一种对写入区块链的交易进行隐匿的装置的结构示意图;图10是本说明书实施例提供的一种区块链数据读取装置的结构示意图;图11是本说明书实施例提供的一种构建梅克尔树的装置的结构示意图;图12是本说明书实施例提供的一种简单支付验证装置的结构示意图;图13是本说明书实施例提供的区块链系统的结构示意图;图14是用于配置本说明书实施例装置的一种计算机设备的结构示意图。具体实施方式需要说明的是,在本说明书中所描述的交易(transaction),是指用户通过区块链的客户端创建,并需要最终发布至区块链的分布式数据库中的一笔数据。交易是区块链协议中所约定的一种数据结构,一笔数据要存入区块链,就需要被封装成交易。区块链中的交易,存在狭义的交易以及广义的交易之分。狭义的交易是指用户向区块链发布的一笔价值转移;例如,在传统的比特币区块链网络中,交易可以是用户在区块链中发起的一笔转账。而广义的交易是指用户向区块链发布的一笔具有业务意图的业务数据;例如,运营方可以基于实际的业务需求搭建一个联盟链,依托于联盟链部署一些与价值转移无关的其它类型的在线业务(比如,租房业务、车辆调度业务、保险理赔业务、信用服务、医疗服务等),而在这类联盟链中,交易可以是用户在联盟链中发布的一笔具有业务意图的业务消息或者业务请求。在基于区块链的数据存证场景下,交易一旦被写入区块链,就会被永久存证下来,不可被删除与篡改。然而,在实际应用中,如果写入区块链的交易后续被认定包含不宜公开的敏感数据,那么,如何使得写入区块链的敏感数据停止公开,就成为一个难以解决的技术问题。假设将写入区块链的敏感交易(包含敏感数据的交易)直接删除,那么很容易导致基于区块链所运行的数据存证业务无法正常运行。原因具体为:众所周知,考虑到有的节点的存储能力较弱,区块链网络中的节点存在全节点与轻节点之分。全节点的区块链中有完整的数据备份,即每个区块既包括区块头,也包括区块体;区块中的各交易存储于区块体中,基于区块中的各交易构建的梅克尔树的根哈希存储于区块头中。然而,轻节点的区块链中并没有完整的数据备份,即每个区块仅有区块头,并没有区块体。当用户向某个轻节点请求验证自己之前上传的数据是否已被写入区块链时,由于轻节点的区块链中的每个区块仅包括区块头,因此,轻节点需要借助于全节点,才能针对某个交易是否已被写入区块链进行验证,这就是所谓的简单支付验证SPV。值得强调的是,在区块链
,所谓简单支付验证,广义上是指针对某个交易,验证该交易是否已写入区块链。简单支付验证的原理是,轻节点向全节点请求验证某个交易(称为目标交易)是否已写入区块链,全节点首先会定位所述目标交易所在的区块(称为目标区块),然后基于目标区块中的各交易构建梅克尔树(Merkletrees),然后确定目标交易对应的梅克尔验证路径,并将目标交易对应的梅克尔路径所关联的哈希值返回给轻节点。轻节点会根据全节点返回的哈希值,验证目标交易对应的梅克尔路径是否正确,即根据目标交易的交易哈希与全节点返回的哈希值,计算梅克尔树的根哈希,并判断计算得到的根哈希与自身存储的目标区块的区块头中的根哈希是否一致,如果一致,就认定验证通过,证明目标交易确实已经被写入区块链中。图1是本说明提供的梅克尔树的结构示意图。如图1所示,在梅克尔树中,各叶子节点与目标区块中存储的各交易一一对应。每个叶子节点上的哈希值是本文档来自技高网
...

【技术保护点】
1.一种对写入区块链的交易进行隐匿的方法,包括:执行节点获取目标交易标识;所述执行节点是区块链网络中具有交易隐匿权限的节点;所述执行节点构建包含所述目标交易标识的隐匿指令,并向所述区块链网络广播所述隐匿指令;针对所述区块链网络中的每个节点,该节点根据所述隐匿指令,将区块链中对应于所述目标交易标识的交易替换成隐匿化数据;所述隐匿化数据包括所述目标交易标识对应的交易的交易哈希。

【技术特征摘要】
1.一种对写入区块链的交易进行隐匿的方法,包括:执行节点获取目标交易标识;所述执行节点是区块链网络中具有交易隐匿权限的节点;所述执行节点构建包含所述目标交易标识的隐匿指令,并向所述区块链网络广播所述隐匿指令;针对所述区块链网络中的每个节点,该节点根据所述隐匿指令,将区块链中对应于所述目标交易标识的交易替换成隐匿化数据;所述隐匿化数据包括所述目标交易标识对应的交易的交易哈希。2.如权利要求1所述的方法,针对写入区块链的任一交易,各节点上预先记录有该交易的交易标识与区块链中该交易所在的交易存储位置之间的对应关系;根据所述隐匿指令,将区块链中对应于所述目标交易标识的交易替换成隐匿化数据,具体包括:根据所述隐匿指令中包含的目标交易标识以及预先记录的交易标识与交易存储位置的对应关系,确定所述目标交易标识对应的交易存储位置,作为目标交易存储位置;将区块链中存储于所述目标交易存储位置的交易替换成隐匿化数据。3.如权利要求1所述的方法,所述隐匿化数据由获得所述隐匿指令的每个节点通过如下方式生成:获取所述目标交易标识对应的交易的交易哈希;将预设的前标记字符拼接到所述交易哈希的首部;根据所述前标记字符与所述交易哈希拼接成的数据,确定所述隐匿化数据。4.如权利要求3所述的方法,根据所述前标记字符与所述交易哈希拼接成的数据,确定所述隐匿化数据,具体包括:将预设的后标记字符拼接到所述交易哈希的尾部,并且,将备注信息拼接到所述后标记字符的尾部;将所述前标记字符、所述交易哈希、所述后标记字符以及所述备注信息拼接成的数据确定为所述隐匿化数据。5.如权利要求1所述的方法,向所述区块链网络广播所述隐匿指令,具体包括:将所述隐匿指令封装成交易并向所述区块链网络广播;所述方法还包括:针对所述区块链网络中的每个节点,该节点将封装成交易的所述隐匿指令写入区块链。6.一种对写入区块链的交易进行隐匿的方法,包括:执行节点获取目标交易标识;所述执行节点是区块链网络中具有交易隐匿权限的节点;所述执行节点构建包含所述目标交易标识的隐匿指令,并向所述区块链网络广播所述...

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

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

1