首页 / 专利库 / 银行与财务事项 / 分布式账本技术 / 区块链 / 区块链账本 / 基于区块链网络的数据处理方法、装置、电子设备及存储介质

基于链网络的数据处理方法、装置、电子设备及存储介质

阅读:1023发布:2020-05-21

专利汇可以提供基于链网络的数据处理方法、装置、电子设备及存储介质专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种基于 区 块 链 网络的 数据处理 方法、装置、 电子 设备及存储介质;方法包括:接收客户端提交的用于进行数据的查询操作的交易提案;对交易提案执行背书验证,在区块链网络中针对 节点 的账本中的状态 数据库 执行查询操作,得到对应的键值对数据;通过交易提案携带的原始密钥,调用节点中的白盒密钥库,以对原始密钥进行变换得到白盒密钥,并通过白盒密钥和白盒密钥 算法 对查询到的键值对数据进行解密;调用节点中的传输密钥库,以通过传输密钥和加密套接字密钥算法对解密后的键值对数据进行对称加密;将对称加密后的键值对数据构造为提案响应,并返回客户端。通过本发明能够保证敏感数据上链的安全性,同时提升了数据查询中的数据安全性。,下面是基于链网络的数据处理方法、装置、电子设备及存储介质专利的具体信息内容。

1.一种基于链网络的数据处理方法,其特征在于,所述方法包括:
接收客户端提交的用于进行数据的查询操作的交易提案;
对所述交易提案执行背书验证,
当所述背书验证通过时,在区块链网络中针对所述节点的账本中的状态数据库执行所述查询操作,得到对应的键值对数据;
通过所述交易提案携带的所述原始密钥,调用所述节点中的白盒密钥库,以对所述原始密钥进行变换得到所述白盒密钥,并通过所述白盒密钥和白盒密钥算法对所述查询到的键值对数据进行解密;
调用所述节点中的传输密钥库,以通过传输密钥和加密套接字密钥算法对所述解密后的键值对数据进行对称加密;
将所述对称加密后的键值对数据构造为提案响应,并返回所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述区块链网络的节点中的智能合约,接收所述客户端发送的原始密钥,并调用所述节点中部署的白盒密钥库,以在所述白盒密钥库中生成对应所述原始密钥的白盒密钥;
接收所述客户端提交的用于进行数据的更新操作的交易,将所述接收的交易打包为新区块;
对所述新区块进行共识验证;
当共识验证通过时,调用所述节点中部署的所述白盒密钥库,以基于所述白盒密钥对所述新区块进行对称加密;并
通过被所述白盒密钥对称加密的新区块更新所述节点的账本。
3.根据权利要求2所述的方法,其特征在于,所述调用所述节点中部署的白盒密钥库,以在所述白盒密钥库中生成对应所述原始密钥的白盒密钥,包括:
调用所述节点中的白盒密钥库,以进行以下操作:
根据所述原始密钥中各个字段的取值,确定与所述原始密钥对应的变换方式;
根据所述确定的变换方式对所述原始密钥进行变换得到对应的白盒密钥。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
调用所述节点中的白盒密钥库,以进行以下操作:
根据所述原始密钥中各个字段的取值,确定对白盒密钥算法进行变换时所使用的计算方式,以使
针对不同的原始密钥对所述白盒密钥算法进行变换时,所使用的计算方式存在差异。
5.根据权利要求2所述的方法,其特征在于,所述接收所述客户端提交的用于进行数据的更新操作的交易,包括:
通过所述节点中的智能合约调用所述节点中的传输密钥库,以进行以下操作:
与所述客户端进行基于数字证书的身份验证,并在身份验证通过后进行协商操作,以确定所使用的传输密钥算法和传输密钥;
接收所述客户端的用于进行数据的更新操作的交易,所述交易被所述客户端通过所述传输密钥算法和所述传输密钥进行了对称加密;
所述将所述接收的交易打包为新区块,包括:
将对应所述区块链网络中每个通道接收的多个交易,按照所述多个交易的时间戳进行排序,并打包为相应通道的新区块;
所述对所述新区块进行共识验证,包括:
对所述新区块中的交易进行以下的验证操作:
交易格式正确;数字签名合法;符合背书策略;接收到所述新区块的节点加入了所述交易中所指示的通道。
6.根据权利要求5所述的方法,其特征在于,所述进行协商操作,以确定所使用的传输密钥算法和传输密钥,包括:
与所述客户端之间传输通过超文本传输安全协议的握手消息,以通过所述握手操作消息使所述节点和所述客户端均获得相同的随机数和加密套接字密钥算法,并通过所述加密套接字密钥算法对所述随机数进行对称加密得到所述传输密钥。
7.根据权利要求2所述的方法,其特征在于,所述基于所述白盒密钥对所述新区块进行对称加密,包括:
调用所述节点中的白盒密钥库,以执行以下操作:
通过所述白盒密钥和白盒密钥算法,对所述新区块中的交易进行对称加密,以替换所述新区块中原有的交易;
从所述新区块的交易中读取所述更新操作的键值对数据,通过所述白盒密钥和所述白盒密钥算法对所述键值对数据进行对称加密。
8.根据权利要求7所述的方法,其特征在于,所述对所述新区块中的交易进行对称加密之前,所述方法还包括:
调用所述节点中的传输密钥库,以通过加密套接字密钥算法和传输密钥对所述新区块中的交易进行解密;
其中,所述新区块中的交易被所述客户端通过所述加密套接字密钥算法和所述传输密钥进行了对称加密。
9.根据权利要求7所述的方法,其特征在于,
所述通过所述白盒密钥和白盒密钥算法,对所述新区块中的交易进行对称加密,包括:
通过所述白盒密钥以及所述白盒密钥算法,对所述交易的明文形式的二进制数据进行映射,并
根据对所述白盒密钥算法进行变换使用的计算方式,对所述映射进行变换,以得到对应所述交易的密文形式的二进制数据;
所述通过所述白盒密钥和白盒密钥算法对所述键值对数据进行对称加密,包括:
通过所述白盒密钥以及所述白盒密钥算法对所述键值对数据的明文形式的二进制数据进行映射,并
根据对所述白盒密钥算法进行变换使用的计算方式,对所述映射进行变换,以得到对应所述键值对数据的密文形式的二进制数据。
10.根据权利要求2所述的方法,其特征在于,所述通过被所述白盒密钥对称加密的新区块更新所述节点的账本,包括:
将通过所述白盒密钥和白盒密钥算法对称加密的新区块,添加到所述节点的账本中的区块链的尾部;
将所述新区块的交易中对应所述更新操作的键值对数据,更新到所述节点的账本中的状态数据库,其中,所述键值对数据被所述白盒密钥和白盒密钥算法进行了对称加密。
11.根据权利要求2所述的方法,其特征在于,所述通过区块链网络的节点中的智能合约接收客户端发送的原始密钥之前,所述方法还包括:
当所述节点中的智能合约的实例部署完成时,通过所述智能合约接收所述客户端提交的包括白盒密钥库和传输密钥库的交易,并调用所述节点中的链码服务,以将所述白盒密钥库和所述传输密钥库部署到所述节点的虚拟化运行环境中;
或者,响应于所述客户端提交的用于部署智能合约镜像文件的交易,调用所述节点中的链码服务,以将所述智能合约镜像文件中包括的智能合约、白盒密钥库和传输密钥库部署到所述节点的虚拟化运行环境中。
12.根据权利要求1至11任一项所述的方法,其特征在于,接收所述客户端提交的用于进行数据的更新操作的交易之前,所述方法还包括:
接收所述客户端提交的用于进行数据的更新操作的交易提案,对所述交易提案进行验证通过后,针对所述节点中账本的状态数据库模拟执行所述更新操作,得到对应的键值对数据;
调用所述节点中的传输密钥库,以通过传输密钥和加密套接字密钥算法对所述键值对数据进行对称加密,将加密的键值对数据构造为提案响应并返回所述客户端,以使所述客户端根据所述交易提案和所述提案响应构造所述交易。
13.一种基于区块链网络的数据处理装置,其特征在于,所述装置包括:
部署在区块链网络的节点中的智能合约、白盒密钥库和共识服务;其中,所述智能合约用于所述调用共识服务接收所述客户端提交的用于进行数据的查询操作的交易提案;
所述智能合约用于调用所述共识服务,对交易提案执行背书验证,
所述智能合约用于调用所述共识服务,当所述背书验证通过时,在区块链网络中针对所述节点的账本中的状态数据库执行所述查询操作,得到对应的键值对数据;
所述智能合约用于通过所述交易提案携带的所述原始密钥,调用所节点中的白盒密钥库,以对所述原始密钥进行变换得到所述白盒密钥,并通过所述白盒密钥对所述查询到的键值对数据进行解密;调用所述节点中的传输密钥库,以通过传输密钥和加密套接字密钥算法对所述解密后的键值对数据进行对称加密;
所述智能合约用于调用所述共识服务,将所述加密后的键值对数据构造为提案响应,并返回所述客户端。
14.一种运行区块链网络中节点的电子设备,其特征在于,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至12任一项所述的基于区块链网络的数据处理方法。
15.一种存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至12任一项所述的基于区块链网络的数据处理方法。

说明书全文

基于链网络的数据处理方法、装置、电子设备及存储介质

[0001] 分案说明
[0002] 本申请基于申请号为:201910919440.X、申请日为2019年09月26日、发明名称为:区块链网络的数据处理方法、装置、电子设备及存储介质的中国专利申请提出,在该中国专利申请记载的范围内提出分案,该中国专利申请的全部内容在此引入本申请作为参考。

技术领域

[0003] 本发明涉及区块链技术,尤其涉及一种基于区块链网络的数据处理方法、装置、电子设备及存储介质。

背景技术

[0004] 区块链网络从最初被设计用来进行加密数字货币的交易,到目前已经发展为支持各种应用场景的通用性的服务,例如依托于端服务的链即服务平台(BaaS,Blockchain as a Service),通过在区块链网络中部署的智能合约,可以对支持客户端以提交交易的形式上链数据、针对数据进行业务逻辑相关的处理和查询链上的数据,并在这个过程中实现数据的不可篡改和可追溯的特性,因而在不同行业中得到日益普遍地使用。
[0005] 敏感数据是出于各种安全原因而只能向接入区块链网络的部分客户端(而非全部客户端)公开的数据,例如涉及个人信息、商业机密等情况的数据。
[0006] 实际应用中会遇到上链敏感数据的场景,由于敏感数据在区块链网络中是分布式存储的,为了保证敏感数据的安全,相关技术采用了将敏感数据的摘要上链的方案以代替直接将敏感数据上链的方案,这就导致区块链网络只能向客户端提供敏感数据校验的功能,但是不能直接提供可靠的敏感数据,对客户端的基于敏感数据的应用造成较大的限制,因为客户端不得不转向其他数据库或文件系统去获取敏感数据并进行校验,而如果采用将敏感数据采用对称加密或不对称加密并上链的方案,则当密钥泄露时敏感数据的安全性无法得到保证。

发明内容

[0007] 本发明实施例提供一种基于区块链网络的数据处理方法、装置、电子设备及存储介质,能够有效保证敏感数据上链的安全性。
[0008] 本发明实施例的技术方案是这样实现的:
[0009] 本发明实施例提供一种基于区块链网络的数据处理方法,包括:
[0010] 接收客户端提交的用于进行数据的查询操作的交易提案;
[0011] 对所述交易提案执行背书验证,
[0012] 当所述背书验证通过时,在区块链网络中针对所述节点的账本中的状态数据库执行所述查询操作,得到对应的键值对数据;
[0013] 通过所述交易提案携带的所述原始密钥,调用所述节点中的白盒密钥库,以对所述原始密钥进行变换得到所述白盒密钥,并通过所述白盒密钥和白盒密钥算法对所述查询到的键值对数据进行解密;
[0014] 调用所述节点中的传输密钥库,以通过传输密钥和加密套接字密钥算法对所述解密后的键值对数据进行对称加密;
[0015] 将所述对称加密后的键值对数据构造为提案响应,并返回所述客户端。
[0016] 上述方案中,所述方法还包括:
[0017] 通过区块链网络的节点中的智能合约,接收客户端发送的原始密钥,并调用所述节点中部署的白盒密钥库,以在所述白盒密钥库中生成对应所述原始密钥的白盒密钥;
[0018] 接收所述客户端提交的用于进行数据的更新操作的交易,将所述接收的交易打包为新区块;
[0019] 对所述新区块进行共识验证;
[0020] 当共识验证通过时,调用所述节点中部署的所述白盒密钥库,以基于所述白盒密钥对所述新区块进行对称加密,并
[0021] 通过被所述白盒密钥对称加密的新区块更新所述节点的账本。
[0022] 本发明实施例提供一种区块链网络的数据处理装置,包括:
[0023] 部署在区块链网络的节点中的智能合约、白盒密钥库和共识服务;其中,[0024] 所述智能合约用于所述调用共识服务接收所述客户端提交的用于进行数据的查询操作的交易提案;
[0025] 所述智能合约用于调用所述共识服务,对交易提案执行背书验证,[0026] 所述智能合约用于调用所述共识服务,当所述背书验证通过时,在区块链网络中针对所述节点的账本中的状态数据库执行所述查询操作,得到对应的键值对数据;
[0027] 所述智能合约用于通过所述交易提案携带的所述原始密钥,调用所节点中的白盒密钥库,以对所述原始密钥进行变换得到所述白盒密钥,并通过所述白盒密钥对所述查询到的键值对数据进行解密;调用所述节点中的传输密钥库,以通过传输密钥和加密套接字密钥算法对所述解密后的键值对数据进行对称加密;
[0028] 所述智能合约用于调用所述共识服务,将所述加密后的键值对数据构造为提案响应,并返回所述客户端。
[0029] 上述方案中,
[0030] 所述智能合约,用于接收客户端发送的原始密钥,并调用所述节点中部署的所述白盒密钥库,以在所述白盒密钥库中生成对应所述原始密钥的白盒密钥;
[0031] 所述智能合约,用于接收所述客户端提交的用于进行数据的更新操作的交易,调用所述共识服务执行以下操作:将所述接收的交易打包为新区块,并对所述新区块进行共识验证;
[0032] 所述智能合约,用于当共识验证通过时,调用所述白盒密钥库以基于所述白盒密钥对所述新区块进行对称加密,并调用所述共识服务,以通过被所述白盒密钥对称加密的新区块更新所述节点的账本。
[0033] 上述方案中,所述智能合约还用于调用所述节点中部署的白盒密钥库,以生成对应所述原始密钥的白盒密钥时,采用以下实现方式:调用所述节点中的白盒密钥库,以进行以下操作:根据所述原始密钥中各个字段的取值,确定与所述原始密钥对应的变换方式;根据所述确定的变换方式对所述原始密钥进行变换得到对应的白盒密钥。
[0034] 上述方案中,所述智能合约还用于调用所述节点中的白盒密钥库时,进行以下操作:根据所述原始密钥中各个字段的取值,确定对白盒密钥算法进行变换时所使用的计算方式,以使针对不同的原始密钥对所述白盒密钥算法进行变换时,所使用的计算方式存在差异。
[0035] 上述方案中,所述智能合约还用于接收所述客户端提交的用于进行数据的更新操作的交易时,采用以下实现方式:通过所述节点中的智能合约调用所述节点中的传输密钥库,以进行以下操作:与所述客户端进行基于数字证书的身份验证,并在身份验证通过后进行协商操作,以确定所使用的加密套接字密钥算法和传输密钥;接收所述客户端的用于进行数据的更新操作的交易,所述交易被所述客户端通过所述加密套接字密钥算法和所述传输密钥进行了对称加密。
[0036] 上述方案中,所述智能合约还用于调用共识服务将所述接收的交易打包为新区块时,采用以下实现方式:将对应所述区块链网络中每个通道接收的多个交易,按照所述多个交易的时间戳进行排序,并打包为相应通道的新区块。
[0037] 上述方案中,所述智能合约还用于调用共识服务对所述新区块进行共识验证,采用以下实现方式:对所述新区块中的交易进行以下的验证操作:交易格式正确;数字签名合法;符合背书策略;接收到所述新区块的节点加入了所述交易中所指示的通道。
[0038] 上述方案中,所述智能合约还用于调用传输密钥库进行协商操作,以确定所使用的加密套接字密钥算法和传输密钥时,采用以下实现方式:与所述客户端之间传输通过超文本传输安全协议的握手消息,以通过所述握手操作消息使所述节点和所述客户端均获得相同的随机数和加密套接字密钥算法,并通过所述加密套接字密钥算法对所述随机数进行对称加密得到所述传输密钥。
[0039] 上述方案中,所述智能合约还用于调用白盒密钥库以基于所述白盒密钥对所述新区块进行对称加密时,采用以下实现方式:调用所述节点中的白盒密钥库,以执行以下操作:通过所述白盒密钥和白盒密钥算法,对所述新区块中的交易进行对称加密,以替换所述新区块中原有的交易;从所述新区块后的交易中,读取所述更新操作的键值对数据,通过所述白盒密钥和白盒密钥库对所述键值对数据进行对称加密。
[0040] 上述方案中,所述智能合约还用于调用白盒密钥库以对所述新区块中的交易进行对称加密之前,调用所述节点中的传输密钥库,以通过加密套接字密钥算法和传输密钥对所述新区块中的交易进行解密;其中,所述新区块中交易被所述客户端通过所述加密套接字密钥算法和所述传输密钥进行了对称加密。
[0041] 上述方案中,所述智能合约还用于调用白盒密钥库,以通过所述白盒密钥和白盒密钥算法,对所述新区块中的交易进行对称加密时,采用以下实现方式:通过所述白盒密钥以及所述白盒密钥算法,对所述交易的明文形式的二进制数据进行映射,并根据对所述白盒密钥算法进行变换使用的计算方式,对所述映射进行变换,以得到对应所述交易的密文形式的二进制数据。
[0042] 上述方案中,所述智能合约还用于调用白盒密钥库,以通过所述白盒密钥和白盒密钥库对所述键值对数据进行对称加密时,采用以下实现方式:通过所述白盒密钥以及所述白盒密钥算法对所述键值对数据的明文形式的二进制数据进行映射,并根据对所述白盒密钥算法进行变换使用的计算方式,对所述映射进行变换,以得到对应所述键值对数据的密文形式的二进制数据。
[0043] 上述方案中,所述智能合约还用于调用共识服务,以通过被所述白盒密钥对称加密的新区块更新所述节点的账本时,采用以下实现方式:将通过所述白盒密钥和白盒密钥算法对称加密的新区块,添加到所述节点的账本中的区块链的尾部;将所述新区块的交易中对应所述更新操作的键值对数据,更新到所述节点的账本中的状态数据库,其中,所述键值对数据被所述白盒密钥和白盒密钥算法进行了对称加密。
[0044] 上述方案中,所述智能合约还用于接收客户端发送的原始密钥之前,当所述节点中的智能合约的实例部署完成时,接收所述客户端提交的包括白盒密钥库和传输密钥库的交易,并调用所述节点中的链码服务,以将所述白盒密钥库和所述传输密钥库部署到所述节点的虚拟化运行环境中;或者,响应于所述客户端提交的用于部署智能合约镜像文件的交易,调用所述节点中的链码服务,以将所述智能合约镜像文件中包括的智能合约、白盒密钥库和传输密钥库部署到所述节点的虚拟化运行环境中。
[0045] 上述方案中,所述智能合约还用于调用所述共识服务,以针对所述节点的账本中的状态数据库执行所述查询操作之前,对所述交易提案执行背书验证,所述背书验证包括以下至少之一:所述交易提案携带的数字证书由受信任的认证中心签发;所述交易提案的数字签名有效;所述交易提案的格式正确;所述交易提案没有被重复提交。
[0046] 上述方案中,所述智能合约还用于接收所述客户端提交的用于进行数据的更新操作的交易之前,接收所述客户端提交的用于进行数据的更新操作的交易提案,调用所述共识服务执行以下操作:对所述交易提案进行验证通过,验证通过后针对所述节点中账本的状态数据库模拟执行所述更新操作,得到对应的键值对数据;
[0047] 调用所述节点中的传输密钥库,以通过传输密钥和加密套接字密钥算法对所述键值对数据进行对称加密,构造为提案响应并返回所述客户端,以使所述客户端根据所述交易提案和所述提案响应构造所述交易。
[0048] 本发明实施例提供一种运行区块链网络中节点的电子设备,包括:
[0049] 存储器,用于存储可执行指令;
[0050] 处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的基于区块链网络的数据处理方法。
[0051] 本发明实施例提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现本发明实施例提供的基于区块链网络的数据处理方法。
[0052] 本发明实施例具有以下有益效果:
[0053] 通过在区块链网络中部署白盒密钥库以维护对应客户端的白盒密钥,使得客户端需要上链更新的数据能够在不需要原始密钥的情况下进行加密,由于不会泄露原始密钥,即使客户端处于白盒环境中时也能够有效保证原始密钥的安全,保证了敏感数据上链后的安全性,便于客户端直接基于链上的敏感数据进行各种业务逻辑,同时,在数据查询过程中,仅有背书验证通过的交易提案才能够通过相应的白盒密钥对键值对数据进行解密,提升了数据查询中的数据安全性。附图说明
[0054] 图1A是相关技术提供的静态白盒密钥库的原理示意图;
[0055] 图1B是本发明实施例中应用的动态白盒密钥库的原理示意图;
[0056] 图2是本发明实施例提供的区块链网络200的示例性的应用系统100的架构示意图;
[0057] 图3是本发明实施例提供的基于区块链网络200的交易处理的原理示意图;
[0058] 图4是本发明实施例提供的区块链网络针对非敏感数据的交易处理流程示意图;
[0059] 图5是本发明实施例提供的区块链网络200中节点的逻辑功能架构示意图;
[0060] 图6是本发明实施例提供的运行区块链网络200中的共识节点的电子设备的结构示意图;
[0061] 图7是本发明实施例提供的区块链网络的数据处理方法的流程示意图;
[0062] 图8是本发明实施例提供的密钥体系的示意图;
[0063] 图9是本发明实施例提供的敏感数据上链的原理示意图。

具体实施方式

[0064] 为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0065] 在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解“, 一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
[0066] 除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
[0067] 对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
[0068] 1)白盒(White Box)攻击,是指攻击者在白盒环境(即对攻击者而言是可见的运行环境,例如智能手机的运行环境有各种客户端,对于攻击者而言是可见的)中能够拥有对设备完全的控制能,能够观测和更改程序运行时的内部数据。
[0069] 2)白盒密钥库,用于在抵御白盒攻击的技术,通过把密钥和用于对称加密的密钥算法(即白盒密钥算法)进行混淆,使得攻击者无法得知具体的加解密流程,防止攻击者在白盒环境中获得原始密钥,从而保证数据的安全。白盒密钥库包括静态白盒密钥库和动态白盒密钥库。白盒密钥库可以在设备中以各种形式运行,例如操作系统的动态链接库、静态链接库或内置于客户端的软件开发套件(SDK,Software Development Kit)。
[0070] 3)静态白盒密钥库,将原始密钥和白盒密钥库密钥算法(例如高级加密标准(AES,Advanced Encryption Standard)算法,数据加密(DES,Data Encryption Standard)算法,三重数据加密(TDES,Triple Data Encryption Standard)算法和分组密码(SM4)算法等标准密钥算法)绑定在一起进行混淆的库文件。例如,包括对基于原始密钥和密钥算法从明文到密文的映射进行变换,得到查找表形式的库文件。
[0071] 参见图1A,图1A是相关技术提供的静态白盒密钥库的原理示意图,静态白盒密钥库被运行时,具备密钥功能,包括:通过原始密钥和白盒密钥算法对明文的加密,以及从密文中解密出明文,从而使得攻击者无法从查找表中分析得到原始密钥,在白盒攻击环境下有效保护原始密钥的安全。静态白盒密钥库是通过原始密钥生成的,因此原始密钥更新时需要重新生成静态白盒密钥库。
[0072] 4)动态白盒密钥库,用于供节点中的智能合约调用,以将原始密钥经过白盒密钥库技术处理(例如混淆编码等变换技术)变换为不同于原始密钥的白盒密钥,在对原始密钥进行变换的基础上,还可以对基于白盒密钥和密钥算法从明文到密文的映射进行变换,动态白盒密钥库可以为用于实现上述变换的查找表形式的库文件,支持通过查表的方式来实现上述变换。
[0073] 参见图1B,图1B是本发明实施例中应用的动态白盒密钥库的原理示意图,在动态白盒密钥库运行的任何阶段,原始密钥完全融入到加解密的过程中,即只能向动态白盒密钥库来输入明文和白盒密钥来得到密文,或者向动态白盒密钥库来输入密文和白盒密钥来得到明文。由于同时由于加/解密的过程是与原始密钥解耦的,因此可以在保持动态白盒密钥库不变的情况下动态地更换原始密钥;同时,即使动态白盒密钥库被攻击造成白盒密钥泄露,也能够保证原始密钥的安全性。
[0074] 5)传输密钥库,用于供节点中的智能合约调用,以与客户端协商传输的消息(例如交易和交易提案的消息)使用的对称密钥算法(也称为传输对称密钥算法)和密钥(也称为传输密钥)。
[0075] 6)交易提案(Proposal),是执行交易中所包括的智能合约调用(下文简称为执行交易)的请求,包括接收交易的通道的标识、在通道中需要调用的智能合约的标识、以及需要向调用的智能合约传递的参数信息。
[0076] 7)交易,也称为交易请求,等同于计算机术语事务(Transaction),交易包括了需要提交到区块链网络执行的操作,以及对应的交易结果。并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本发明实施例遵循了这一习惯。
[0077] 例如,交易可以包括部署(Deploy)交易和调用(Invoke)交易,部署交易用于将智能合约到区块链网络的节点中并准备好被调用;调用(Invoke)交易用于对账本中的状态数据库进行查询操作(即读操作)、更新操作(包括写操作(增加和修改)和删除操作)。
[0078] 8)区块链(Blockchain),是由区块(Block)形成的加密的、链式的交易的存储结构。每个区块的头部既可以包括区块中所有交易的哈希值,同时也包含前一个区块中所有交易的哈希值,从而基于哈希值实现区块中交易的防篡改和防伪造;新产生的交易被填充到区块并经过区块链网络中节点的共识后,会被追加到区块链的尾部从而形成链式的增长。
[0079] 9)区块链网络(Blockchain Network),通过共识的方式将新区块纳入区块链的一系列的节点的集合。
[0080] 10)账本(Ledger),是区块链(也称为账本数据)、以及与区块链同步的状态数据库的统称。其中,区块链是以文件系统中的文件的形式来记录交易;状态数据库是以不同类型的键(Key)值(Value)对的形式来记录区块链中的交易,用于支持对区块链中交易的快速查询。
[0081] 11)智能合约(Smart Contracts),也称为链码(Chaincode)或应用代码,部署在区块链网络的节点中的程序,承载了交易相关的业务逻辑,不同节点的智能合约运行在相互隔离的虚拟化运行环境中(例如容器或虚拟机)。
[0082] 12)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对区块中的交易达成一致,达成一致的区块将被追加到区块链的尾部。实现共识的机制包括工作量证明(PoW,Proof of Work)、权益证明(PoS,Proof of Stake)、股份授权证明(DPoS,Delegated Proof-of-Stake)、消逝时间量证明(PoET,Proof of Elapsed Time)等。
[0083] 13)成员(Member),也称为业务主体,代表某个具体的实体身份(例如公司、企业和社会团体等),在区块链网络中有自己的根证书,区块链中的节点属于某个成员,同一个成员可以在同一个通道中拥有多个节点。
[0084] 14)组织(Organization),部分成员(接入区块链网络中的所有成员的子集)为实现特定业务(不需要所有成员参与)而形成的域,组织内的成员拥有相同的根证书。
[0085] 15)通道(Channel),区块链网络中向组织中成员的节点提供的私有隔离环境,通道是一个逻辑结构,由物理存在的各种节点组成;通道中的智能合约和账本只对加入(也称为订阅)通道的成员的节点可见,同一个节点可以加入多个通道,并对应每个通道维护一个账本。
[0086] 下面说明本发明实施例提供的区块链网络的示例性应用,参见图2,图2是本发明实施例提供的区块链网络200的示例性的应用系统100的架构示意图,包括区块链网络200(包括多个节点)、客户端510/410和认证中心(CA,Cert ificate Authority)300。
[0087] 区块链网络200中的节点具有一个或多个功能,其中账本是节点的默认功能;在一些实施例中,节点还可以部署有共识服务、智能合约、白盒密钥库和传输密钥库中的一个或多个。
[0088] 区块链网络200的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务主体的终端或服务器中运行的客户端,都可以在无需授权的情况下接入区块链网络200而成为一类特殊的节点,称为客户端节点;以联盟链为例,业务主体在被授权成为区块链网络200的成员后,对应的客户端可以接入区块链网络200而成为客户端节点,为方便描述,下文中客户端节点也简称为客户端。
[0089] 作为示例,客户端可以与业务主体的业务相关的各种用途的应用程序,例如社交网络客户端、物流客户端;客户端可以是各种平台的应用程序,例如移动APP(安卓APP和iOS APP)、桌面软件(Widow系统软件和MAC系统软件)等。
[0090] 需要指出,归属于同一业务主体的客户端节点的数量不存在限制,图2中示出了业务主体500使用的一个客户端510,且可以接入区块链网络200而成为客户端节点,同理,业务主体400使用的一个客户端410可以接入区块链网络200而成为客户端节点。
[0091] 客户端节点是一类区别于区块链网络200中原生的记账节点的特殊节点,默认可以缺省区块链网络200中的原生的记账节点具有的账本,从而降低客户端的开发难度并实现客户端的轻量化。客户端与区块链网络200之间支持事件的传递,例如客户端通过可以监听/订阅区块链网络200运行中与智能合约调用相关的事件,例如生成新区块的事件,从而当区块链网络200中产生特定事件时,触发本地或外部系统的相关的业务逻辑。
[0092] 在一些实施例中,客户端针对区块链网络200中账本的操作主要包括账本查询与账本更新两种类型。对于账本查询来说,客户端向区块链网络200发起交易提案,交易提案中的交易数据(即与查询操作相关的智能合约调用),由区块链网络200的节点执行交易提案中包括的智能合约调用以查询账本,并将查询到的数据作为交易结果携带在提案响应中以返回客户端。
[0093] 对于账本更新来说,客户端节点向区块链网络200发起交易提案,其中的交易数据包括与状态数据库的更新操作(包括增加、删除和修改键值对数据的操作)相关的智能合约调用,由区块链网络200的节点对账本模拟执行(即账本不会被改变)交易提案中包括的交易数据,将模拟执行得到的键值对作为交易结果携带在提案响应中以返回客户端,客户端节点进而将交易提案、提案响应构造为交易,并提交到区块链网络200,由区块链网络200的节点将交易记录到账本中。
[0094] 区块链网络200外部的认证中心300用于响应客户端410/510(下面简称为客户端)的注册申请,返回注册密钥用于登录,以便获取用于声明客户端所属成员的身份信息的数字证书。作为认证中心(CA,Certificate Authority)300的替换方案,区块链网络200中可以设置有CA节点以实现认证中心(CA,Certificate Authority)300的功能。
[0095] 在一些实施例中,区块链网络200中的记账节点根据在账本和共识服务之外实现的功能可以划分为不同的类型,作为图2中示出的区块链网络200的划分为不同类型的示例,参见图3,图3是本发明实施例提供的基于区块链网络200的交易处理的原理示意图,除了客户端节点(客户端410/510),区块链网络200中的节点默认都具有共识服务和账本功能,其中仅具有验证交易并记账功能的节点称为记账节点(Committer)或共识节点,还包括一些特殊类型的记账节点:具有背书服务的背书节点(Endorser)、具有排序服务的排序节点(Orde rer)和代表通道中的记账节点与排序节点通道的主节点(Leader Peer)。
[0096] 区块链网络200中的上述节点可以加入不同组织的通道,每个组织(组织1和组织2)的通道内包括归属于组织成员的多个记账节点,如图3示出了开展不同业务的组织1和组织2,区块链网络200中归属于组织1/2的成员的节点可以对应加入组织1/2的通道,每个通道内的节点接收与所属组织的客户端提交的业务相关的交易,并将交易到账本中,账本对于通道外的节点是隔离的。
[0097] 在一些实施例中,客户端中内置软件开发套件(SDK,Software Developm ent Kit)来实现由区块链网络200的交互,从而客户端的原生代码可以只关注实现业务相关的逻辑,忽略区块链网络200的内部运行细节,降低客户端的开发难度。
[0098] 作为示例,SDK向客户端提供了与区块链网络200的节点之间的基于远程过程调用(RPC,Remote Procedure Call)连接的一系列应用编程接口(API,Application Programming Interface),用于供客户端管理和使用区块链网络200的功能,这些功能包括:身份管理、账本管理、交易管理、智能合约、交易管理、成员管理、共识服务、智能合约服务、安全和密钥服务和事件处理等,将在下文具体说明上述功能。
[0099] 本发明实施例提供客户端向区块链网络提交非敏感数据和敏感数据的方案,其中非敏感数据是可以接入区块链网络的任意客户端公开的数据,可以理解地,非敏感数据和敏感数据的区分方式是灵活多样的,取决于接入区块链网络的成员的业务需求,例如,成员的业务属性要求保护用户的个人信息、商业机密等情况的数据,这些数据需要上链且只能对归属于成员自身的客户端开放查询权限,则这些数据属于敏感数据;成员的业务属性不要求保护的数据,例如业务范围、业务介绍信息,这些数据也需要上链存储,则这些数据为非敏感数据。
[0100] 下面,结合图4,以向区块链网络发起用于提交基于非敏感数据以更新区块链网络的状态数据库的交易和提交查询区块链网络的状态数据库中非敏感数据的交易为例,说明区块链网络的交易管理的示例。
[0101] 在一些实施例中,客户端提交基于非敏感数据以更新区块链网络的状态数据库的操作包括提交交易提案和提交交易两个阶段,客户端提交的用于查询区块链网络状态数据库中非敏感数据的操作包括提交交易提案一个阶段。
[0102] 参见图4,图4是本发明实施例提供的区块链网络针对非敏感数据的交易处理流程示意图,结合图4示出的交易提案和提交交易两个阶段的处理过程,就上述不同类型的节点的功能进行说明。
[0103] 客户端向区块链网络200中一个或多个通道中的背书节点发起交易提案,交易提案包括交易号、时间戳(发起交易提案的时间)和交易数据。其中交易数据包括:执行交易的通道(即交易中的调用的智能合约的所在的通道)的标识(例如序号或名称)、以及需要在通道中需要执行的与基于非敏感数据更新状态数据库/查询状态数据库中敏感数据的智能合约调用(包括基于非敏感数据更新状态数据库/查询状态数据库中敏感数据时,需要调用的智能合约的标识例如名称或序列号、智能合约的版本和需要向智能合约传递的参数信息等)。智能合约和参数与客户端需要执行的操作相关,例如智能合约可以用于增加、删除、查询或修改操作,参数信息可以是增加、删除、查询或修改操作的数据。
[0104] 交易提案还携带认证中心向客户端签发的客户端数字证书、以及客户端针对交易提案中交易数据签署的数字签名,客户端数字证书包括:客户端所属的成员的身份信息、客户端的公钥,认证中心使用认证中心的私钥(与客户端和节点预先向认证中心请求的根证书中的公钥对应)对客户端的身份信息和客户端的公钥签署的数字签名。客户端数字证书用于声明客户端所属的成员的身份信息,客户端数字签名用于证明交易提案中的交易数据没有被篡改。
[0105] 背书节点在收到交易提案后会根据背书策略进行一些背书验证,包括:交易提案携带的数字证书是否是由受信任的认证中心签发;交易提案的数字签名是否有效;交易提案的格式是否正确;交易提案是否重复提交过;客户端在请求执行智能合约调用的通道中是否已被授权有写权限。当判断均为是时背书验证成功。
[0106] 在一些实施例中,背书节点验证交易提案成功时,背书节点会基于本地所维护的账本的状态数据库来模拟执行交易数据,即执行交易提案中包括的智能合约调用以得到交易结果。背书节点使用自己的私钥对交易结果进行签名(即背书),将背书节点的数字签名结合背书节点的数字证书(包括背书节点的公钥、以及认证中心使用认证中心的私钥对背书节点的公钥和身份信息签署的数字签名)、以及其他的相关信息构造成为提案响应(Proposal Response),然后返回给客户端。
[0107] 作为示例,当交易提案中包括用于非敏感数据的查询操作的智能合约调用时,交易结果是读集(Read Set),包含模拟执行过程中从账本数据库读取的键值对;当交易提案中包括用于非敏感数据的更新操作的智能合约调用时,交易结果是写集(Write Set)也包含了一个唯一键的列表,还有在模拟执行过程中对账本数据库写入的键值对。
[0108] 作为示例,上文所述的其他的相关信息可以包括:成功码(指示验证交易提案成功)、时间戳(生成提案响应的时间)、接收交易的通道的标识(例如序列号或名称)和交易提案的哈希值(用于与交易提案一对一地绑定,避免在提交交易阶段交易被客户端篡改)。
[0109] 在一些实施例中,背书节点验证交易提案失败时,会向客户端返回携带失败码(指示验证交易提案失败的错误类型)的提案响应。
[0110] 当客户端收到提案响应时,首先会通过验证交易提案携带的数字证书和数字签名以确认提案响应的有效性。当客户端收集到足够数量(预定数量)的背书节点的提案响应,且提案响应中的交易结果一致时,会根据交易提案以及提案响应来构造交易。
[0111] 作为示例,交易包括:时间戳(构造交易的时间)、接收交易的通道的标识、需要在通道中调用的智能合约的标识(例如名称或序列号)、智能合约的版本和向智能合约传递的参数等和交易结果(例如读/写集)、以及背书节点针对交易结果的数字签名。
[0112] 需要指出,如果客户端提交的交易提案中的智能合约调用仅用于查询账本(而不用于更新账本),则客户端不会构造交易,仅将提案响应中的交易结果作为账本查询结果来完成相关的业务逻辑。
[0113] 客户端构造交易后,将交易广播给区块链网络200中的排序节点,对于所接收的交易,排序节点从交易中读取交易所属的通道的标识,按照交易中时间戳(例如发起交易提案的时间戳、生成提案响应的时间戳)的先后顺序,将对应各个通道接收的交易构造相应通道的区块,并将区块发送到相应通道中的主节点。
[0114] 以图3为例,排序节点接收到交易时,根据交易中的通道的标识确定需要接收交易的通道是组织1的通道还是组织2的通道,根据对应各个通道的接收交易的先后顺序,构造对应组织1的通道的区块以及对应组织2的通道的区块,对应发送到组织1/组织2的通道中的主节点。
[0115] 主节点是代表通道内的其他记账节点和排序节点通信的节点,用于从排序节点获取最新的区块并在通道内部同步;主节点可以是被强制设置的,也可以是动态选举产生的。
[0116] 通道内的记账节点各自对接收的区块中的各个交易进行共识验证,并在验证通过后追加到各自维护的区块链的尾部,并利用区块中交易的交易结果更新账本数据库。
[0117] 在一些实施例中,记账节点对区块中交易的共识验证包括:交易格式是否正确,是否有合法的签名(包括客户端的数字签名和背书节点的数字签名),即验证交易内容是否被篡改;记账节点是否加入交易中所指示的接收交易的通道;交易是否符合背书策略。背书策略是背书节点对交易进行背书的规则,指定一个交易在提交前需要的背书所来自的组织、相应组织内节点的类型和有效背书的数量。当判断结果均为是时表示共识验证通过。
[0118] 下面说明本发明实施例提供的区块链网络中节点的示例性的逻辑功能架构,参见图5,图5是本发明实施例提供的区块链网络200中节点的逻辑功能架构示意图,下面分别进行说明。
[0119] 区块链网络200中节点的上层对接客户端,客户端410/510中提供了标准的RPC接口,并在API的基础之上封装了SDK,从而使得开发人员可以在SD K中开发基于区块链的各种业务逻辑;客户端的事件机制能够使得客户端接收区块链网络200的各种事件时,例如当接收到创建新区块的事件时、执行智能合约的事件时,执行预先定义的回调函数,从而使得各个节点之间达成共识的执行时间尽量缩短。
[0120] 在一些实施例中,从区块链网络200对接客户端的顶层的度,区块链网络200中节点的功能包括身份管理、账本管理、交易管理和智能合约,下面分别进行说明。
[0121] (1)身份管理
[0122] 客户端的用户注册和登录认证中心后,客户端获取到成员的数字证书(EC ert),其他所有的操作都需要与数字证书关联的私钥进行签名,消息接收方与成员持有来自认证中心的相同的根证书,消息接收方首先会进行签名和数字证书的验证,才进行后续的消息处理。节点同样会用到认证中心颁发的数字证书,比如接入区块链网络的成员启动下辖的节点的系统和对下辖的节点进行管理时,身份管理功能都会对成员的身份信息进行认证和授权。
[0123] (2)账本管理
[0124] 维护账本,并授权接入区块链网络200的成员查询账本,可以通过多种方式查询,包括根据区块号查询区块、根据区块哈希查询区块、根据交易号查询区块和根据交易号查询交易,还可以根据通道名称获取查询到的区块链。
[0125] (3)交易管理
[0126] 账本只能通过提交交易的方式更新,客户端通过区块链网络200的交易管理功能提交交易提案,并获取到交易的背书后,再向排序节点提交交易,然后由排序节点构造为区块。
[0127] (4)智能合约
[0128] 实现“可编程的账本”(Programmable Ledger),通过智能合约调用执行交易,实现基于区块链的智能合约业务逻辑,例如,执行交易中的更新或查询状态数据库中的键值对数据相关的智能合约调用;又例如,执行交易中的与白盒密钥库或传输密钥库相关的智能合约调用。
[0129] 在一些实施例中,从区块链网络200对接底层的角度,区块链网络200的功能包括成员管理、共识服务、链码服务、安全和密钥服务,下面分别进行说明。
[0130] (1)成员管理
[0131] 通过根信任证书(Root of Trust Certificate)体系,利用(PKI,Public Key Infrastructure)对成员的身份信息进行认证,验证成员的数字签名。结合区块链网络内部的认证中心或者第三方认证中心,提供成员的注册功能,并对成员的数字证书进行管理,例如证书新增和撤销。示例性地,数字的证书分为注册证书(ECert)、交易证书(TCert)和TLS证书(TLS Cert),它们分别用于用户身份、交易签名和安全传输层协议(TLS,Transport Layer Security Pro tocol)传输。
[0132] (2)共识服务
[0133] 共识服务由3个阶段构成:客户端向背书节点(提供背书验证)提交提案以获得背书,客户端获得背书后提交交易给排序节点(提供排序服务)进行排序生成区块,之后广播给记账节点进行验证区块中交易后,写入记账节点本地的账本。
[0134] (3)链码服务
[0135] 提供智能合约的安全的虚拟化运行环境,例如容器(Docker)或虚拟机,以确保安全的执行过程和用户数据的隔离;能够响应部署交易中指定的智能合约镜像文件,从镜像文件仓库中读取智能合约镜像文件,部署到节点上并实例化智能合约。
[0136] (4)安全和密钥服务
[0137] 实现密钥生成、哈希运算、签名验签、加密解密等基础功能。
[0138] 下面说明本发明实施例提供的运行区块链网络的节点的电子设备的示例性结构,参见图6,图6是本发明实施例提供的运行区块链网络200中的节点的电子设备的结构示意图,电子设备可以是终端(例如PC)、服务器或服务器的集群,提供虚拟化的节点运行环境,图6所示的电子设备600包括:至少一个处理器610、存储器650和至少一个网络接口620。电子设备中的各个组件通过总线系统640耦合在一起。可理解,总线系统640用于实现这些组件之间的连接通信。
[0139] 处理器610可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
[0140] 存储器650可以是可移除的,不可移除的或其组合。存储器650包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。
[0141] 在一些实施例中,存储器650能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,例如操作系统651,经由一个或多个(有线或无线)网络接口620到达其他计算设备的网络通信模块652。
[0142] 在一些实施例中,本发明实施例提供的区块链网络的数据处理装置655可以采用软件方式实现,图6示出了存储在存储器650中的区块链网络的数据处理装置655,其可以是程序和插件等形式的软件,包括以下软件模块:部署在区块链网络的节点中的智能合约、白盒密钥库和共识服务;这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
[0143] 下面,再以向区块链网络发起用于提交基于敏感数据更新状态数据库的交易和提交查询状态数据库中的敏感数据的交易为例,说明本发明实施例提供的区块链网络的数据处理方法用于敏感数据的交易管理的示例。需要指出,与非敏感数据相关的交易管理方案相比,与敏感数据相关的交易管理方案中除了涉及节点中的智能合约、白盒密钥库和传输密钥库,而对于交易管理的过程中所涉及的共识服务(例如背书服务和排序服务)的实现是类似的,因此下文中省略了与共识服务相关的细节。
[0144] 参见图7,图7是本发明实施例提供的区块链网络的数据处理方法的流程示意图,以区块链网络中的节点(例如排序节点、客户端所加入通道中的主节点、记账节点和背书节点)均部署有智能合约、白盒密钥库和传输密钥库为例进行说明。
[0145] 在步骤101中,客户端发送的原始密钥到区块链网络的节点中的智能合约。
[0146] 在一些实施例中,当客户端需要将与自身的业务相关的敏感数据上链时,初始化针对敏感数据进行加密的原始密钥,并发送给区块链网络中的节点(例如包括排序节点、客户端所加入通道中的主节点、记账节点和背书节点),以通过步骤101接收原始密钥。
[0147] 例如,客户端中提供原始密钥的设置界面,以接收用户针对敏感数据设置的原始密钥;或者,通过运行自动生成密钥的库来生成原始密钥,支持用户设置用于保护敏感数据的原始密钥的长度和字符类型。
[0148] 在一些实施例中,为了保证原始密钥传输的安全性(不被攻击者截获),在步骤101之前,客户端可以与节点进行协商以确定用于对原始密钥进行对称加密的加密套接字密钥算法和对应的传输密钥,并利用加密套接字密钥算法和传输密钥对原始密钥进行对称加密,并传输加密原始密钥到节点的智能合约,当节点的智能合约在步骤101中接收到加密原始密钥时,通过调用传输密钥库可以利用加密套接字密钥算法和加密原始密钥进行解密。
[0149] 例如,当节点中的智能合约通过调用节点中部署的传输密钥库与客户端进行协商确定对称密钥算法和对应的传输密钥时,可以采用这样的方式实现:节点中的智能合约与客户端之间传输通过超文本传输安全协议(HTTPS,HyperT ext Transfer Protocol Secure)的握手消息,通过握手消息交易在节点和客户端之间交换随机数和加密套接字密钥算法(其中,加密套接字密钥算法是基于加密套接字协议层(SSL,Secure Sockets Layer)交换的任意一种对称加密算法),使节点和客户端均获得的相同的随机数和加密套接字密钥算法,从而通过加密套接字密钥算法对随机数进行计算得到传输密钥。
[0150] 作为示例,节点通过智能合约与客户端协商的用于加密原始密钥的加密套接字密钥算法和传输密钥可以是永久有效的,也可以定期重新协商以进行更新,又或者,当传输密钥的实际使用次数的达到次数阈值时重新协商以进行更新,从而保证原始密钥的安全性。
[0151] 在步骤101之前,还涉及到区块链网络中白盒密钥库的实例化和传输密钥库的实例化,下面进行说明。
[0152] 在一些实施例中,白盒密钥库和传输密钥库可以是区块链网络内置的,白盒密钥库和传输密钥库的实例化可以与节点中智能合约的实例化同步完成。
[0153] 例如,客户端可以向区块链网络节点提交用于部署智能合约镜像文件的交易(即部署交易,携带需要部署的智能合约镜像文件的ID),由节点中的链码服务从镜像文件仓库中读取对应的智能合约镜像文件(智能合约镜像文件中包括智能合约和白盒密码库),并部署在节点的虚拟化运行环境中,至此完成智能合约和白盒密钥库的实例化。
[0154] 可以理解地,传输密钥库也可以集成在智能合约镜像文件中,采用上述类似的实例化方式,从而一旦节点中部署了智能合约,则白盒密钥库和传输密钥库也同步在节点中被实例化从而提升部署效率。
[0155] 当然,白盒密钥库和传输密钥库的实例化可以是独立于智能合约的实例化过程的,镜像文件仓库中可以包括传输密钥库镜像文件以及白盒密钥库镜像文件,从而客户端可以通过提交部署交易,使链码服务将传输密钥库镜像文件和白盒密钥库镜像文件部署到节点的虚拟化运行环境中,以完成传输密钥库和白盒密钥库的实例化。
[0156] 在另一些实施例中,白盒密钥库可以由客户端建立(或从链下的镜像文件仓库获取)并上传到节点中的链码服务,并由链码服务将白盒密钥库部署在节点的虚拟化进行环境中以完成实例化。
[0157] 例如,智能合约镜像文件中可以只包括智能合约,节点中的链码服务响应于客户端提交的用于部署智能合约镜像文件的交易,根据交易中携带的智能合约镜像文件的ID从镜像文件仓库中读取对应的智能合约镜像文件,并部署在节点的虚拟化运行环境中以完成智能合约的实例化;客户端继续向节点提交用于部署传输密钥镜像文件的部署交易(携带了传输密钥库镜像文件的ID),由智能合约来调用链码服务,以将镜像文件仓库中相应的传输密钥库镜像文件部署到节点的虚拟运行环境中,完成传输密钥库的实例化;可以理解地,传输密钥库可以与智能合约集成在智能合约镜像文件中,从而与智能合约被同步部署到节点的虚拟化运行环境中以完成实例化。
[0158] 继续上述示例,节点中的智能合约调用传输密钥库与客户端协商加密套接字密钥算法和传输密钥,之后,客户端将利用协商得到的传输密钥和加密套接字密钥算法加密部署交易,其中包括客户端待上传的白盒密钥库,并将加密的部署交易发送到节点,由节点中的智能合约调用传输密钥库,以利用加密套接字密钥算法和传输密钥解密部署交易得到白盒密钥库,继续调用链码服务以将客户端上传的白盒密钥库部署到节点的虚拟化运行环境中,至此完成白盒密钥库的实例化。
[0159] 在步骤102中,区块链网络节点中的智能合约调用节点中部署的白盒密钥库,以在白盒密钥库中生成对应原始密钥的白盒密钥。
[0160] 在一些实施例中,智能合约调用区块链网络的节点中部署的白盒密钥库,以进行以下操作:根据原始密钥中各个字段的取值,确定通过原始密钥生成白盒密钥的方式,即变换方式(也称为生成方式);根据确定的变换方式对原始密钥进行变换得到对应的白盒密钥。
[0161] 其中,白盒密钥是在原始密钥的基础上进行变换得到的,在长度、字符类型中的至少一个维度与原始密钥存在差异,本发明实施例不限定具体的变换方式,例如,可以采用逻辑计算(包括异或、置换、代换和移位)、置乱编码和插入扰乱信息等变换方式。
[0162] 例如,原始密钥的待变换字段的二进制数据为1时对应的变换方式为:待变换字段与(前一位或后一位)的异或;字段为0时对应的变换方式为相邻位的与或;则遍历原始密钥的各个字段进行变换得到白盒密钥。
[0163] 由于针对原始密钥的变换是通过原始密钥的各个字段的取值来实现的,从而对原始密钥实现了理想地混淆,即使白盒环境被攻击者侵入并获取到了白盒密钥,也难以从白盒密钥还原出原始密钥,从而保障了原始密钥的安全性。
[0164] 在一些实施例中,在步骤102中通过智能合约调用白盒密钥库除了生成对应原始密钥的白盒密钥,还确定对密钥算法进行变换所使用的计算方式,即,对于结合密钥算法和白盒密钥对明文(即交易的明文的二进制数据)到密文的映射,确定对映射进行变换所使用的计算方式。
[0165] 例如,智能合约调用白盒密钥库以进行以下操作:针对不同客户端提交的不同的原始密钥,确定对密钥算法进行变换时使用相同的计算方式,采用统一的计算方式能够根据提升加密效率。
[0166] 又例如,智能合约调用白盒密钥库以进行以下操作:根据原始密钥中各个字段的取值,对于结合白盒密钥和密钥算法进行的从明文到密文的映射,确定针对映射进行变换时所使用的计算方式。
[0167] 作为确定计算方式的示例,相关技术提供的各种密钥算法,从明文到密文的映射中都包括多种计算方式(例如异或、置换、代换和移位),根据原始密钥中各个字段的取值,对密钥算法中依次出现的计算方式进行变换,当原始密钥的第1个字段的二进制数据为1时,将密钥算法中第1次出现的计算方式变换为异或,当原始密钥的第1个字段的二进制数据为0时,将密钥算法中第1次出现的计算方式变换为与或,以此类推直至密钥算法中所有的计算方式都变换完毕,从而得到对密钥算法进行变换所使用的计算方式。
[0168] 从而,使原始密钥中不同的字段所对应的计算方式存在差异,攻击者难以依赖于已经破解的白盒密钥去破解其他客户端的白盒密钥,提升了安全性。
[0169] 下面说明通过传输密钥库和白盒密钥库上链敏感数据以及查询敏感数据的方案。
[0170] 在步骤103中,区块链网络的节点通过智能合约接收客户端提交的用于进行数据的更新操作的交易。
[0171] 在一些实施例中,区块链网络中的节点(例如客户端所加入通道的主节点)在接收客户端提交的用于进行数据的更新操作的交易之前,区块链网络中的节点(例如,客户端所加入通道中的背书节点)接收客户端提交的用于进行数据的更新操作的交易提案,对交易提案进行验证通过后,针对节点中账本的状态数据库模拟执行交易提案中的更新操作,得到对应的键值对数据,例如更新的键值对数据、新增的键值对数据和删除的键值对数据中的至少一个;调用节点中部署的传输密钥库,通过传输密钥加密提案响应后返回客户端,以使客户端根据交易提案和提案响应构造交易。
[0172] 在一些实施例中,区块链网络中的节点(例如客户端所加入通道中的主节点)接收客户端提交的用于进行数据的更新操作的交易,可以通过以下方式实现:节点中的智能合约调用节点中的传输密钥库以进行以下操作:与客户端进行通过数字证书的身份验证,在身份验证通过后进行协商操作,以确定所使用的加密套接字密钥算法和传输密钥;以在步骤103中接收客户端通过加密套接字密钥算法和传输密钥加密的、且用于进行数据的更新操作的交易。
[0173] 作为进行协商操作以确定所使用的加密套接字密钥算法和传输密钥的示例,节点中的智能合约调用传输密钥库,以与客户端之间传输通过超文本传输安全协议的握手消息,通过握手操作消息在节点和客户端之间交换随机数和加密套接字密钥算法,使节点和客户端均获得的相同的随机数和加密套接字密钥算法,并加密套接字密钥算法对随机数进行计算得到传输密钥。
[0174] 作为示例,节点通过智能合约与客户端协商的用于加密交易提案/交易的加密套接字密钥算法和传输密钥可以是永久有效的,也可以定期重新协议以进行更新,又或者,当传输密钥的实际使用次数的达到次数阈值时重新协商以进行更新,从而保证原始密钥的安全性。
[0175] 需要指出地,节点通过智能合约与客户端协商的用于加密交易提案/交易的加密套接字密钥算法和传输密钥,与上文记载的节点通过智能合约与客户端协商的用于加密原始密钥的加密套接字密钥算法和传输密钥可以相同,也可以不同。
[0176] 在步骤104中,区块链网络的节点将接收的交易打包为新区块。
[0177] 在一些实施例中,区块链网络的节点(例如排序节点)将对应所述区块链网络中每个通道接收的多个交易,按照多个交易的时间戳进行排序(例如升序或降序),并打包为相应通道的新区块。
[0178] 特别地,当交易被客户端基于加密套接字密钥算法和传输密钥进行了对称加密时,节点可以调用传输密钥库,基于相同的加密套接字密钥算法和传输密钥对交易进行解密后进行打包;当然,也可以直接将加密套接字密钥算法和传输密钥加密的交易进行打包为新区块。
[0179] 在步骤105中,区块链网络的节点对新区块进行共识验证。
[0180] 在一些实施例中,区块链网络中的排序节点将接收的交易打包为对各个通道的新区块后,对应发送到新区块中交易所归属的通道中的主节点,由主节点将新区块广播到通道中的各个记账节点,通道中的各个节点(包括主节点和记账节点)对新区块中的交易进行以下的验证操作:交易格式正确;数字签名合法;符合背书策略;接收到所述新区块的节点加入了所述交易中所指示的通道。
[0181] 可以理解地,对于在步骤104中新区块中的交易被加密套接字密钥算法和传输密钥加密的情况,在步骤105中,节点可以调用本地的传输密钥库,以基于预先协商的加密套接字密钥算法和传输密钥进行解密,然后进行共识验证。
[0182] 在步骤106中,当新区块的共识验证通过时,区块链网络的节点通过智能合约调用节点中部署的白盒密钥库,以基于白盒密钥对新区块进行对称加密。
[0183] 在一些实施例中,区块链网络节点中的智能合约调用节点中部署的白盒密钥库,以进行以下操作:通过白盒密钥和白盒密钥算法,对新区块中的交易进行对称加密,以替换新区块中原有的交易;从所述新区块的交易中读取所述更新操作的键值对数据,通过所述白盒密钥和所述白盒密钥算法对所述键值对数据进行对称加密。
[0184] 作为对新区块中交易进行加密的示例,通过所述白盒密钥以及所述白盒密钥算法,对所述交易的明文形式的二进制数据(可以是交易数据、交易提案或全部数据)进行映射,并根据对所述白盒密钥算法进行变换使用的计算方式,对所述映射进行变换,以得到对应所述交易的密文形式的二进制数据;其中,交易中被加密的二进制数据可以是交易的提案响应中的交易结果,即键值对数据,也可以提案响应,又或者是交易的全部二进制数据。
[0185] 作为对键值对数据进行加密的示例,通过所述白盒密钥以及所述白盒密钥算法对所述键值对数据的明文形式的二进制数据进行映射,并根据对所述白盒密钥算法进行变换使用的计算方式,对所述映射进行变换,以得到对应所述键值对数据的密文形式的二进制数据。
[0186] 作为对解密后的交易进行通过白盒密钥的加密的示例,通过所述白盒密钥以及密钥算法对所述交易的明文形式的二进制数据进行映射,并根据对所述密钥算法进行变换使用的计算方式对所述映射进行变换,以得到对应所述交易的密文形式的二进制数据。
[0187] 在步骤107中,区块链网络中的节点通过被所述白盒密钥对称加密的新区块更新节点的账本。
[0188] 在一些实施例中,将通过所述白盒密钥和白盒密钥算法对称加密的新区块,添加到所述节点的账本中的区块链的尾部;将所述新区块的交易中对应所述更新操作的键值对数据,更新到所述节点的账本中的状态数据库,其中,所述键值对数据在白盒密钥库中所述白盒密钥和白盒密钥算法进行了对称加密。
[0189] 在一些实施例中,区块链网络还支持客户端对存储在账本中的敏感数据进行查询,例如,在步骤108中,客户端向区块链网络的节点提交用于进行数据的查询操作的交易提案,交易提案还可以使用传输密钥和加密套接字密钥算法进行了加密;在步骤109中,区块链网络中的节点(例如背书节点)接收到加密的交易提案时,调用传输密钥库,以通过加密套接字密钥算法和传输密钥对交易提案进行解密操作,从而可以针对解密得到的交易提案进行背书验证。
[0190] 作为交易提案的背书的示例,执行以下验证操作至少之一:交易提案携带的数字证书由受信任的认证中心签发;交易提案的数字签名有效;交易提案的格式正确;交易提案没有被重复提交。
[0191] 在步骤110中,当针对交易提案进行背书验证通过时,区块链网络的节点针对本地的账本中的状态数据库模拟执行查询操作,得到对应的键值对数据(即读集)。
[0192] 在步骤111中,区块链网络的节点调用节点中部署的白盒密钥库,以通过白盒密钥和白盒密钥算法对查询到的键值对数据执行解密操作;在步骤112中,区块链网络的节点将解密后得到的键值对数据、节点针对键值对数据的数字签名、节点的数字证书构造为提案响应,并调用节点中部署的传输密钥库,以使用传输密钥和加密套接字密钥算法对提案响应加密,然后在步骤113中发送加密的提案响应到客户端。
[0193] 例如,区块链网络中的节点将键值对数据、节点针对键值对数据的数字签名、节点的数字证书构造为提案响应返回客户端;在步骤114中,客户端解密提案响应,验证提案响应携带的数字证书和数字签名,比对多个提案响应中携带的键值对数据是否一致,如果一致,则确定键值对数据为查询操作的目标数据。例如,客户端收集到来自多个节点的提案响应后,首先根据协商得到的加密套接字密钥算法和传输密钥解密提案响应,然后验证提案响应携带的数字证书和数字签名,验证通过后,继续比对多个提案响应中携带的键值对数据是否一致,如果一致,则确定键值对数据为查询操作的目标数据;进而可以在步骤115中,通过键值对数据直接执行与客户端中相关的业务逻辑。
[0194] 可以看出,基于敏感数据更新账本的过程中,智能合约本身不持有白盒密钥,基于白盒密钥的加解密操作都由智能合约调用白盒密钥库的方式实现,从而利用白盒密钥库有效避免了白盒攻击,即使白盒密钥泄露,也不会对客户端生成的原始密钥造成安全隐患。
[0195] 下面结合一个具体的区块链网络说明本发明实施例提供的区块链网络的数据处理方案。相关技术需要对上链的数据进行摘要,只能比对敏感数据是否发生改变,对业务本身有较大的限制;常规的数据安全方式不能满足这种需求,由于链上的数据有被长期公开的可能,非对称加密存在效率低下的问题,对称加密则存在被破解的险。本发明实施例技术方案提出了一种通过白盒密钥的区块链安全解决方案,可以有效解决区块链和状态数据库中的数据存储安全问题。
[0196] 参见图8,图8是本发明实施例提供的密钥体系的示意图,非对称密钥(包括公钥和私钥)用于实现客户端和节点之间的消息传输中形成数字签名,结合数字证书来保证消息的可靠性,例如,客户端向节点的传输的消息中携带客户端基于私钥签署的数字签名和数字证书,供节点验证以确定消息是来自客户端的并且没有被篡改。
[0197] 继续参见图9,图9是本发明实施例提供的敏感数据上链的原理示意图,本发明实施例在区块链网络的节点的虚拟化运行环境(即智能合约VM)部署了白盒密钥库、传输密钥库和智能合约,保证客户端上链的数据的安全性,即使区块链或者状态数据库中的数据对外可见,由于敏感数据是基于白盒密钥加密的,从而保证只有持有原始密钥的客户端可以解密和使用敏感数据,从而保证数据的安全性。下面进行说明。
[0198] 在区块链智能合约的基础镜像文件内置白盒密钥库,或者由客户端上传自己的白盒密钥库以实例化到区块链网络的节点中。客户端在上链数据的时候,向区块链网络节点中部署的智能合约传入数据的原始密钥。客户端传输原始密钥前可以使用基于传输密钥库协商的加密套接字密钥算法和传输密钥进行对称加密,智能合约收到加密的原始密钥后可以基于加密套接字密钥算法和传输密钥解密得到原始密钥。
[0199] 智能合约调用节点的虚拟运行环境中的白盒密钥库,对原始密钥处理后得到白盒密钥,使用白盒密钥算法和白盒密钥对客户端上链的数据进行对称加密,并存储到账本中区块链和状态数据库,其他客户端没有办法通过原始密钥破解白盒密钥加密后的数据,从而保证上链数据的安全。
[0200] 白盒密钥库可以是动态白盒密钥库,可以根据不同的原始密钥,采用不同的白盒密钥的生成方式和加密计算方式(即对白盒密钥算法从明文到密文的映射进行变换的计算方式)。
[0201] 当节点的智能合约被实例化后,客户端初始化一个原始密钥,上传原始密钥到节点的智能合约,通过智能合约调用白盒密钥库来对原始密钥变换以生成白盒密钥;白盒密钥库有很多种实现方式,一般是会根据原始密钥的字段,对标准的白盒密钥算法如AES/DES等进行变换,如原始密钥的第一个字段是0,对密钥算法对明文到密文的映射进行变换采用的计算方式可以是异或,第一个字段是1,对密钥算法对明文到密文的映射进行变换采用的计算方式可以是与操作。需要指出地,本发明实施例并不针对具体的白盒密钥库的白盒密钥的生成方式、以及对白盒密钥算法进行变换的具体实现进行限定。
[0202] 客户端使用数字证书与安装智能合约的节点协商传输密钥tk(使用对称加密)和加密套接字密钥算法,用于保护敏感数据传输到智能合约的安全,传输密钥和加密套接字密钥算法可以定期更新。
[0203] 智能合约对使用tk加密的敏感数据进行转加密:使用tk解密敏感数据后,使用白盒密钥wk和白盒密钥算法进行对称加密。
[0204] 将使用白盒密钥加密的敏感数据保存到账本的区块链和状态数据库中,具体是,将用于存储敏感数据的交易打包为新区块,共识并追加到区块链的尾部,将新区块中交易的交易结果(即写集)中的键值对数据来更新状态数据库,至此,敏感数据上链的过程结束。
[0205] 在敏感数据上链的过程中,敏感数据只在智能合约的内存中出现过,而上链后的敏感数据是基于白盒密钥加密的,由于没有办法被其他客户端破解,保证了敏感数据的安全性。
[0206] 当客户端需要使用数据时,将原始密钥提交到智能合约,智能合约调用白盒密钥库将原始密钥转换为白盒密钥,将从状态数据库中查询到的敏感数据基于白盒密钥wk和白盒密钥算法进行解密,然后使用传输密钥tk和加密套接字密钥算法进行对称加密,传输到客户端,客户端基于传输密钥tk和加密套接字密钥算法进行解密,进而可以基于敏感数据执行相关的业务逻辑。
[0207] 下面继续说明本发明实施例提供的区块链网络的数据处理装置655实施为软件模块的示例性结构,在一些实施例中,如图6所示,存储在存储器650中的区块链网络的数据处理装置655中的软件模块可以包括:部署在区块链网络的节点中的智能合约、白盒密钥库和共识服务,分别进行说明;还可以包括传输密钥库和链码服务,下面分别进行说明。
[0208] 部署在区块链网络的节点中的智能合约、白盒密钥库和共识服务;其中,[0209] 智能合约,用于通过接收客户端发送的原始密钥,并调用节点中部署的白盒密钥库,以在白盒密钥库中生成对应原始密钥的白盒密钥;
[0210] 智能合约,用于接收客户端提交的用于进行数据的更新操作的交易,调用共识服务执行以下操作:将接收的交易打包为新区块,并对新区块进行共识验证;
[0211] 智能合约,用于当共识验证通过时,调用白盒密钥库以基于白盒密钥对新区块进行对称加密,并调用共识服务,以通过被白盒密钥对称加密的新区块更新节点的账本。
[0212] 上述方案中,智能合约还用于调用节点中部署的白盒密钥库,以生成对应原始密钥的白盒密钥时,采用以下实现方式:调用节点中的白盒密钥库,以进行以下操作:根据原始密钥中各个字段的取值,确定与原始密钥对应的变换方式;根据确定的变换方式对原始密钥进行变换得到对应的白盒密钥。
[0213] 上述方案中,智能合约还用于调用节点中的白盒密钥库时,进行以下操作:根据原始密钥中各个字段的取值,确定对白盒密钥算法进行变换时所使用的计算方式,以使针对不同的原始密钥对白盒密钥算法进行变换时,所使用的计算方式存在差异。
[0214] 上述方案中,智能合约还用于接收客户端提交的用于进行数据的更新操作的交易时,采用以下实现方式:通过节点中的智能合约调用节点中的传输密钥库,以进行以下操作:与客户端进行基于数字证书的身份验证,并在身份验证通过后进行协商操作,以确定所使用的加密套接字密钥算法和传输密钥;接收客户端的用于进行数据的更新操作的交易,交易被客户端通过加密套接字密钥算法和传输密钥进行了对称加密。
[0215] 上述方案中,智能合约还用于调用共识服务将接收的交易打包为新区块时,采用以下实现方式:将对应区块链网络中每个通道接收的多个交易,按照多个交易的时间戳进行排序,并打包为相应通道的新区块。
[0216] 上述方案中,智能合约还用于调用共识服务对新区块进行共识验证,采用以下实现方式:对新区块中的交易进行以下的验证操作:交易格式正确;数字签名合法;符合背书策略;接收到新区块的节点加入了交易中所指示的通道。
[0217] 上述方案中,智能合约还用于调用传输密钥库进行协商操作,以确定所使用的加密套接字密钥算法和传输密钥时,采用以下实现方式:与客户端之间传输通过超文本传输安全协议的握手消息,以通过握手操作消息使节点和客户端均获得相同的随机数和加密套接字密钥算法,并通过加密套接字密钥算法对随机数进行对称加密得到传输密钥。
[0218] 上述方案中,智能合约还用于调用白盒密钥库以基于白盒密钥对新区块进行对称加密时,采用以下实现方式:调用节点中的白盒密钥库,以执行以下操作:通过白盒密钥和白盒密钥算法,对新区块中的交易进行对称加密,以替换新区块中原有的交易;从新区块后的交易中,读取更新操作的键值对数据,通过白盒密钥和白盒密钥库对键值对数据进行对称加密。
[0219] 上述方案中,智能合约还用于调用白盒密钥库以对新区块中的交易进行对称加密之前,调用节点中的传输密钥库,以通过加密套接字密钥算法和传输密钥对新区块中的交易进行解密;其中,新区块中交易被客户端通过加密套接字密钥算法和传输密钥进行了对称加密。
[0220] 上述方案中,智能合约还用于调用白盒密钥库,以通过白盒密钥和白盒密钥算法,对新区块中的交易进行对称加密时,采用以下实现方式:通过白盒密钥以及白盒密钥算法,对交易的明文形式的二进制数据进行映射,并根据对白盒密钥算法进行变换使用的计算方式,对映射进行变换,以得到对应交易的密文形式的二进制数据。
[0221] 上述方案中,智能合约还用于调用白盒密钥库,以通过白盒密钥和白盒密钥库对键值对数据进行对称加密时,采用以下实现方式:通过白盒密钥以及白盒密钥算法对键值对数据的明文形式的二进制数据进行映射,并根据对白盒密钥算法进行变换使用的计算方式,对映射进行变换,以得到对应键值对数据的密文形式的二进制数据。
[0222] 上述方案中,智能合约还用于调用共识服务,以通过被白盒密钥对称加密的新区块更新节点的账本时,采用以下实现方式:将通过白盒密钥和白盒密钥算法对称加密的新区块,添加到节点的账本中的区块链的尾部;将新区块的交易中对应更新操作的键值对数据,更新到节点的账本中的状态数据库,其中,键值对数据被白盒密钥和白盒密钥算法进行了对称加密。
[0223] 上述方案中,智能合约还用于接收客户端发送的原始密钥之前,当节点中的智能合约的实例部署完成时,接收客户端提交的用于部署白盒密钥库和传输密钥库的交易,并调用节点中的链码服务,以将白盒密钥库和传输密钥库部署到节点的虚拟化运行环境中;或者,响应于客户端提交的用于部署智能合约镜像文件的交易,调用节点中的链码服务,以将智能合约镜像文件中包括的智能合约、白盒密钥库和传输密钥库部署到节点的虚拟化运行环境中。
[0224] 上述方案中,智能合约还用于调用共识服务接收客户端提交的用于进行数据的查询操作的交易提案;调用共识服务,以针对节点的账本中的状态数据库执行查询操作,得到对应的键值对数据;通过交易提案携带的原始密钥,调用所节点中的白盒密钥库,以对原始密钥进行变换得到白盒密钥,并通过白盒密钥对查询到的键值对数据进行解密;调用节点中的传输密钥库,以通过传输密钥和加密套接字密钥算法对解密后的键值对数据进行对称加密;调用共识服务,将加密后的键值对数据构造为提案响应,并返回客户端。
[0225] 上述方案中,智能合约还用于调用共识服务,以针对节点的账本中的状态数据库执行查询操作之前,对交易提案执行背书验证,背书验证包括以下至少之一:交易提案携带的数字证书由受信任的认证中心签发;交易提案的数字签名有效;交易提案的格式正确;交易提案没有被重复提交。
[0226] 上述方案中,智能合约还用于接收客户端提交的用于进行数据的更新操作的交易之前,接收客户端提交的用于进行数据的更新操作的交易提案,调用共识服务执行以下操作:对交易提案进行验证通过,验证通过后针对节点中账本的状态数据库模拟执行更新操作,得到对应的键值对数据;
[0227] 调用节点中的传输密钥库,以通过传输密钥和加密套接字密钥算法对键值对数据进行对称加密,并构造为提案响应后返回客户端,以使客户端根据交易提案和提案响应构造交易。
[0228] 本发明实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本发明实施例提供的区块链网络的数据处理方法。
[0229] 在一些实施例中,存储介质可以是FRAM、ROM、PROM、EPROM、EE PROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
[0230] 作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
[0231] 综上所述,本发明实施例针对非敏感数据和敏感数据采用了差异化的解决方案,尤其是对于敏感数据的处理,通过传输密钥库和白盒密钥库保证了数据传输、数据在区块链网络的不同处理阶段的安全性,解决了客户端链上存放敏感数据的限制,更方便客户端的各种业务扩展,并提升了提升链上敏感数据的安全性,防止敏感被盗用。
[0232] 以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈