CN116980155A - 区块链网络的数据处理方法、装置、产品、设备和介质 - Google Patents
区块链网络的数据处理方法、装置、产品、设备和介质 Download PDFInfo
- Publication number
- CN116980155A CN116980155A CN202211382869.8A CN202211382869A CN116980155A CN 116980155 A CN116980155 A CN 116980155A CN 202211382869 A CN202211382869 A CN 202211382869A CN 116980155 A CN116980155 A CN 116980155A
- Authority
- CN
- China
- Prior art keywords
- target
- data key
- key
- target data
- blockchain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 13
- 238000000034 method Methods 0.000 claims abstract description 76
- 230000003993 interaction Effects 0.000 claims abstract description 15
- 238000012790 confirmation Methods 0.000 claims abstract description 11
- 238000004891 communication Methods 0.000 claims description 55
- 238000012545 processing Methods 0.000 claims description 32
- 238000003860 storage Methods 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 20
- 238000004806 packaging method and process Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000007726 management method Methods 0.000 description 83
- 230000008569 process Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 12
- 230000001360 synchronised effect Effects 0.000 description 7
- 238000012795 verification Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000002955 isolation Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请公开了一种区块链网络的数据处理方法、装置、产品、设备和介质,该方法包括:区块链网络中每个区块链节点均包含隔离的安全环境,任一区块链节点中的安全环境表示为目标安全环境,任一区块链节点基于目标安全环境获取待启用的目标数据密钥,并在目标安全环境中存储目标数据密钥;向区块链网络广播针对目标数据密钥的确认消息,统计区块链网络中针对目标数据密钥的确认消息的目标数量;该确认消息用于指示已基于安全环境获取到目标数据密钥;若目标数量大于或等于数量阈值,则启用目标安全环境存储的目标数据密钥;启用的目标数据密钥用于对多个区块链节点间的业务数据进行加密交互。采用本申请,可提升管理目标数据密钥的安全性和可靠性。
Description
技术领域
本申请涉及区块链的技术领域,尤其涉及一种区块链网络的数据处理方法、装置、产品、设备和介质。
背景技术
若多个对象之间有业务往来,则该多个对象可以一起持有一个密钥,后续该多个对象可以通过该个密钥对需要交互的业务数据进行加密后再交互,以保证业务数据的安全性。
现有应用中,通常可以对密钥进行线下存储和管理,后续当需要使用密钥对业务数据进行加密时,直接采用线下存储的密钥对业务数据进行加密即可,但是此种对密钥进行线下存储的方式并不安全,密钥容易丢失且容易被暴露。
发明内容
本申请提供了一种区块链网络的数据处理方法、装置、产品、设备和介质,可提升管理目标数据密钥的安全性和可靠性。
本申请一方面提供了一种区块链网络的数据处理方法,区块链网络包含多个区块链节点,每个区块链节点均包含隔离的安全环境,该方法应用于多个区块链节点中的任一区块链节点,任一区块链节点中的安全环境表示为目标安全环境,该方法包括:
基于目标安全环境获取待启用的目标数据密钥,并在目标安全环境中存储目标数据密钥;
向区块链网络广播针对目标数据密钥的确认消息,并统计区块链网络中针对目标数据密钥的确认消息的目标数量;针对目标数据密钥的确认消息用于指示发送针对目标数据密钥的确认消息的区块链节点已基于安全环境获取到目标数据密钥;
若目标数量大于或等于数量阈值,则启用目标安全环境中存储的目标数据密钥;启用的目标数据密钥用于对多个区块链节点之间的业务数据进行加密交互。
本申请一方面提供了一种区块链网络的数据处理装置,区块链网络包含多个区块链节点,每个区块链节点均包含隔离的安全环境,该装置应用于多个区块链节点中的任一区块链节点,任一区块链节点中的安全环境表示为目标安全环境,该装置包括:
获取模块,用于基于目标安全环境获取待启用的目标数据密钥,并在目标安全环境中存储目标数据密钥;
统计模块,用于向区块链网络广播针对目标数据密钥的确认消息,并统计区块链网络中针对目标数据密钥的确认消息的目标数量;针对目标数据密钥的确认消息用于指示发送针对目标数据密钥的确认消息的区块链节点已基于安全环境获取到目标数据密钥;
启用模块,用于若目标数量大于或等于数量阈值,则启用目标安全环境中存储的目标数据密钥;启用的目标数据密钥用于对多个区块链节点之间的业务数据进行加密交互。
可选的,获取模块基于目标安全环境获取待启用的目标数据密钥的方式,包括:
若获取到请求更新数据密钥的第一交易,且任一区块链节点是区块链网络中的出块节点,则打包第一交易所属的第一区块;
基于第一区块调用目标安全环境生成目标数据密钥。
可选的,获取模块基于第一区块调用目标安全环境生成目标数据密钥的方式,包括:
获取第一区块的区块高度;
基于区块高度生成密钥更新请求,并将密钥更新请求提交给目标安全环境;
在目标安全环境中生成目标数据密钥,并基于密钥更新请求中的区块高度确定生成的目标数据密钥的标识信息。
可选的,获取模块基于密钥更新请求中的区块高度确定生成的目标数据密钥的标识信息的方式,包括:
在目标安全环境中对目标数据密钥进行哈希计算,得到目标数据密钥的哈希值;
将目标数据密钥的哈希值和区块高度作为目标数据密钥的标识信息。
可选的,多个区块链节点中除任一区块链节点外的区块链节点表示为冗余节点;上述装置还用于:
在目标安全环境中获取第一区块的哈希值;
调用目标安全环境基于第一区块的哈希值对冗余节点进行远程认证;
若在远程认证后确认冗余节点运行在安全环境中,则将生成的目标数据密钥发送给冗余节点,使冗余节点基于安全环境接收目标数据密钥。
可选的,上述装置调用目标安全环境基于第一区块的哈希值对冗余节点进行远程认证的方式,包括:
调用目标安全环境基于第一区块的哈希值生成远程认证请求;
将远程认证请求发送给冗余节点,使冗余节点基于远程认证请求中第一区块的哈希值生成远程认证报告;
基于目标安全环境接收冗余节点发送的远程认证报告;
若对远程认证报告验证成功,则确认冗余节点运行在安全环境中。
可选的,冗余节点生成有与任一区块链节点之间的通信密钥,通信密钥包含通信公钥和通信私钥;
若在远程认证后确认冗余节点运行在安全环境中,则上述装置将生成的目标数据密钥发送给冗余节点的方式,包括:
若在远程认证后确认冗余节点运行在安全环境中,且接收到冗余节点基于安全环境返回的通信公钥,则调用目标安全环境采用通信密钥对目标数据密钥进行加密处理,得到目标数据密钥的加密数据;
调用目标安全环境将加密数据发送给冗余节点,使冗余节点在安全环境中采用通信密钥对加密数据进行解密,得到目标数据密钥,并在安全环境中存储目标数据密钥后,向区块链网络广播针对目标数据密钥的确认消息。
可选的,获取模块基于目标安全环境获取待启用的目标数据密钥的方式,包括:
若任一区块链节点不是区块链网络中的出块节点,则基于目标安全环境接收出块节点发送的目标数据密钥;
其中,目标数据密钥是由出块节点生成,多个区块链节点包含出块节点。
可选的,多个区块链节点中均部署有密钥管理合约;统计模块统计多个区块链节点针对目标数据密钥的确认消息的目标数量的方式,包括:
调用密钥管理合约统计目标数量;
若目标数量大于或等于数量阈值,则启用模块启用目标安全环境中存储的目标数据密钥的方式,包括:
若目标数量大于或等于数量阈值,则调用密钥管理合约指示目标安全环境启用存储的目标数据密钥。
可选的,若目标数量大于或等于数量阈值,则启用模块调用密钥管理合约指示目标安全环境启用存储的目标数据密钥的方式,包括:
若目标数量大于或等于数量阈值,则调用密钥管理合约向目标安全环境提交用于启用目标数据密钥的指示信息;指示信息包含目标数据密钥的标识信息;
在目标安全环境中基于指示信息启用标识信息所标识的目标数据密钥。
可选的,统计模块调用密钥管理合约统计目标数量的方式,包括:
若任一区块链节点是区块链网络中的出块节点,则在目标安全环境中存储目标数据密钥后,调用密钥管理合约生成第二交易;第二交易用于每个区块链节点确认是否已基于安全环境获取到目标数据密钥;
打包第二交易所属的第二区块,并将第二区块广播到区块链网络,使多个区块链节点在对第二区块共识通过后执行第二交易;
接收多个区块链节点中除任一区块链节点外的其他区块链节点广播的针对第二交易的执行结果,该执行结果用于指示发送该执行结果的区块链节点已基于安全环境获取到目标数据密钥、或用于指示发送该执行结果的区块链节点未基于安全环境获取到目标数据密钥;
调用密钥管理合约基于每个区块链节点针对第二交易的执行结果统计目标数量;用于指示对应区块链节点已基于安全环境获取到目标数据密钥的一个执行结果属于针对目标数据密钥的一个确认消息。
可选的,上述装置还用于:
获取待发送的业务数据,并在目标安全环境中采用启用的目标数据密钥对业务数据进行加密,得到加密后的业务数据;
将加密后的业务数据发送给区块链网络中除任一区块链节点外的其他区块链节点,使其他区块链节点在安全环境中,基于启用的目标数据密钥对加密后的业务数据进行解密,得到业务数据。
本申请一方面提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请中一方面中的方法。
本申请一方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时使该处理器执行上述一方面中的方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面等各种可选方式中提供的方法。
本申请中的区块链网络包含多个区块链节点,每个区块链节点均包含隔离的安全环境,任一区块链节点中安全环境可以表示为目标安全环境,该任一区块链节点可以基于目标安全环境获取待启用的目标数据密钥,并在目标安全环境中存储目标数据密钥;进而,向区块链网络广播针对目标数据密钥的确认消息,并统计区块链网络中针对目标数据密钥的确认消息的目标数量;针对目标数据密钥的确认消息用于指示发送针对目标数据密钥的确认消息的区块链节点已基于安全环境获取到目标数据密钥;若目标数量大于或等于数量阈值,则该任一区块链节点可以启用目标安全环境中存储的目标数据密钥;启用的目标数据密钥用于对多个区块链节点之间的业务数据进行加密交互。由此可见,本申请提出的方法可以通过多个区块链节点对目标数据密钥进行分布式存储,提升了对区块链节点进行存储的可靠性,且各个区块链节点都包含隔离的安全环境,各个区块链节点都可以将目标数据密钥存储在所包含的安全环境中,以保障目标数据密钥的私密性,从而提升对目标数据密钥进行保管的安全性。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的一种网络架构的结构示意图;
图2是本申请提供的一种密钥管理的场景示意图;
图3是本申请提供的一种区块链网络的数据处理方法的流程示意图;
图4是本申请提供的一种数据处理的场景示意图;
图5是本申请提供的一种数据传输的流程示意图;
图6是本申请提供的一种密钥生成方法的流程示意图;
图7是本申请提供的一种数据密钥更新的场景示意图;
图8是本申请提供的一种启用密钥的流程示意图;
图9是本申请提供的一种交易执行方法的流程示意图;
图10是本申请提供的一种密钥同步的流程示意图;
图11是本申请提供的一种区块链网络的数据处理装置的结构示意图;
图12是本申请提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请涉及到区块链的相关技术。其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。区块链中包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。本申请中,可以通过区块链网络实现对目标数据密钥的可靠管理。
本申请还涉及到云技术。其中,云技术(Cloud Technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。本申请中各个区块链节点之间可以通过“云”进行数据交互。
需要进行说明的是,本申请所采集的所有数据(如业务数据或者数据密钥等)都是在该数据所属对象(如用户或者机构)同意并授权的情况下进行采集的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
首先,对本申请涉及到的相关概念进行:
TEE:Trusted Execution Environment(可信执行环境),是计算平台上由软硬件方法构建的一个安全区域,可保证在安全区域内加载的代码和数据在机密性和完整性方面得到保护,确保一个任务按照预期执行,并保证任务初始状态以及运行状态的机密性和完整性。
SGX:Software Guard Extensions(软件保护扩展),通过应用程序隔离技术帮助保护使用中的数据。通过保护特定代码和数据免遭修改,开发人员可以将其应用程序分成可信应用部份(Enclave,飞地)及不可信应用部分(普通程序),并通过应用程序隔离机制和基于硬件的鉴证来提高可信部份的数据隐私性和机密性。
请参见图1,图1是本申请提供的一种网络架构的结构示意图。如图1所示,本申请的网络架构可以包含区块链网络中的若干个区块链节点,该若干个区块链节点的具体数量可以根据实际应用场景确定,通过该若干个区块链节点可以实现对数据密钥的分布式保管,如下述内容描述。
若各个区块链节点是由服务器构成,则该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。若各个区块链节点是由终端设备构成,则该终端设备可以是:智能手机、平板电脑、笔记本电脑、桌上型电脑、智能电视等智能终端。
请一并参见图2,图2是本申请提供的一种密钥管理的场景示意图。每个区块链节点中均可以包含物理机或者虚拟机,该物理机或者虚拟机可以是区块链节点中的cpu(中心处理器)提供,其包含普通执行环境和可信执行环境(又称安全环境)。
其中,普通执行环境可以指可信执行环境之外的环境,可信执行环境是区块链节点中隔离的执行环境。对于需要保密的数据(如数据密钥)就可以存储在可信执行环境中,对需要保密的数据的相关处理也可以在可信执行环境中执行。
普通执行环境中可以部署有区块链实例,该区块链实例可以包含部署的密钥管理合约,该密钥管理合约可以用于对数据密钥(如下述目标数据密钥,用于对区块链节点间交互的数据进行加密交互)是否被启用进行管控。操作系统可以是密钥管理合约可运行的系统。
可信执行环境中则可以部署有可信应用(可以是部署在可信执行环境中的一个应用程序,也可以称为安全应用),即该可信应用运行在可信执行环境中,该可信应用处理的数据以及对数据进行处理的流程都是保密的,该可信应用可以用于对目标数据密钥相关任务进行处理。
各个区块链节点的可信执行环境中都运行有可信应用,各个区块链节点中的可信应用都可以相互进行数据交互,以共同维护通过密钥管理合约启用的目标数据密钥,实现了目标数据密钥在各个区块链节点的可信应用之间被安全地分布式管理。各个区块链节点分布式管理目标数据密钥的过程还可以参见下述图3对应实施例中的描述。
可选的,上述各个区块链节点的区块链实例之间(如各个区块链节点的密钥管理合约之间)可以是通过p2p(点对点)形式进行连接,以传递心跳(即传递相互保持连接的心跳信息)、交易等相关数据的,而各个区块链节点的可信应用之间可以是通过grpc(一种远程调用技术)进行通信的。
请参见图3,图3是本申请提供的一种区块链网络的数据处理方法的流程示意图。如图3所示,该方法可以包括:
步骤S101,基于目标安全环境获取待启用的目标数据密钥,并在目标安全环境中存储目标数据密钥。
可选的,区块链网络可以包含多个区块链节点,该多个区块链节点构成的区块链网络可以理解为是对数据密钥进行统一管理的分布式网络。区块链网络中的每个区块链节点都可以是由一个或者多个计算机设备构成,该计算机设备可以是终端设备、服务器或者其他设备等。
本申请实施例中的执行主体可以是区块链网络中的任意一个区块链节点(下述统称目标区块链节点),即每个区块链节点都可以执行本申请实施例中的一系列操作,本申请实施例中作为执行主体的目标区块链节点中的安全环境可以称之为是目标安全环境。
该多个区块链节点中的每个区块链节点都可以各自包含隔离的安全环境,该安全环境可以是与区块链节点中其他环境相隔离的执行环境,该安全环境内处理的数据以及处理数据的流程对外都是保密且不可见的,因此,安全环境内处理的数据具有保密性和安全性。
其中,各个区块链节点中的安全环境可以是芯片提供的硬件环境或者也可以是软件提供的虚拟环境。例如,各个区块链节点中的安全环境可以是TEE(Trusted ExecutionEnvironment,可信执行环境)。
可选的,本申请中各个区块链节点的安全环境内可以部署有安全应用(可以是应用程序),本申请安全环境内做的所有操作都可以是由该安全应用执行的,该安全应用内可以配置有对相关数据(如数据密钥)进行处理的相关业务逻辑。
目标区块链节点可以通过目标安全环境获取当前待启用的数据密钥(可以称为目标数据密钥),该待启用的目标数据密钥在后续被确认启用后,可以用于对多个区块链节点之间的业务数据进行加密交互,具体可以参见下述内容描述。
目标区块链节点可以在目标安全环境中存储获取到的目标数据密钥。
若目标区块链节点是区块链网络中的出块节点(即打包和生成区块并请求对区块进行上链的区块链节点),则目标区块链节点获取到的目标数据密钥可以是由目标区块链节点生成的,该过程可以参见下述图6对应实施例中的具体描述。
而若目标区块链节点不是区块链网络中的出块节点,则目标区块链节点获取到的目标数据密钥可以是由出块节点发送过来的,出块节点包含于区块链网络的多个区块链节点中,即出块节点是该多个区块链节点中的某个区块链节点,目标数据密钥可以是由出块节点生成的。
可选的,区块链网络中的各个区块链节点可以定期(如每隔一段周期时间)依次轮换作为出块节点。
请参见图4,图4是本申请提供的一种数据处理的场景示意图。如图4所示,本申请的区块链网络中的区块链节点可以有区块链节点0、区块链节点1、区块链节点2、区块链节点3、区块链节点4、区块链节点5和区块链节点6。
区块链节点0可以是出块节点,区块链节点0可以生成上述目标数据密钥,区块链节点0可以将目标数据密钥提供给其他各个区块链节点(包括区块链节点1、区块链节点2、区块链节点3、区块链节点4、区块链节点5和区块链节点6),若大部分区块链节点都获取到目标数据密钥则可以启用在安全环境内存储的目标数据密钥,实现对目标数据密钥的分布式管理,该过程可以参见下述内容描述。
步骤S102,向区块链网络广播针对目标数据密钥的确认消息,并统计区块链网络中针对目标数据密钥的确认消息的目标数量;针对目标数据密钥的确认消息用于指示发送针对目标数据密钥的确认消息的区块链节点已基于安全环境获取到目标数据密钥。
可选的,目标区块链节点在目标安全环境中存储目标数据密钥后(表明目标区块链节点已经基于目标安全环境获取到了目标数据密钥),可以向区块链网络广播针对目标数据密钥的确认消息,由于各个区块链节点在各自的安全环境中存储目标数据密钥后都可以向区块链网络广播针对目标数据密钥的确认消息,因此,目标区块链节点还可以统计区块链网络中针对目标数据密钥的确认消息的数量,可以将该数量称之为是目标数量。
某个区块链节点发送的针对目标数据密钥的确认消息就用于指示该区块链节点已经基于自己的安全环境获取到了目标数据密钥。
更多的,区块链网络的各个区块链节点中均可以部署有密钥管理合约,该密钥管理合约可以用于管理数据密钥启用的相关规则(即业务逻辑),该密钥管理合约属于区块链网络中的智能合约。
因此,目标安全环境中存储目标数据密钥后,目标安全环境可以告知目标区块链节点中的密钥管理合约已获取到目标数据密钥,目标安全环境不会直接将目标数据密钥的明文给到密钥管理合约,而是可以将目标数据密钥的标识信息给到密钥管理合约,以告知密钥管理合约已获取到该标识信息所标识的目标数据密钥,使得密钥管理合约可以对该目标数据密钥的标识信息进行登记,以确认目标安全环境已经获取到该标识信息所标识的目标数据密钥。密钥管理合约在得知目标安全环境获取到目标数据密钥后,可以触发目标区块链节点向区块链网络广播针对目标数据密钥的确认消息(该确认消息可以携带目标数据密钥的标识信息)。
其中,对于目标数据密钥的标识信息的描述可以参见下述图6对应实施例中的相关描述。以及,各个区块链节点对针对目标数据密钥的确认消息的广播方式还可以参见下述图9对应实施例中的相关描述。
更多的,目标区块链节点还可以调用该密钥管理合约来统计区块链网络中针对目标数据密钥的确认消息的目标数量,某个区块链节点发送(如广播)的针对目标数据密钥的确认消息(携带目标数据密钥的标识信息)就用于指示该区块链节点已基于自己的安全环境获取到了目标数据密钥,即密钥管理合约可以统计在区块链网络中获取到的携带目标数据密钥的标识信息的确认消息的目标数量。
步骤S103,若目标数量大于或等于数量阈值,则启用目标安全环境中存储的目标数据密钥;启用的目标数据密钥用于对多个区块链节点之间的业务数据进行加密交互。
可选的,若上述统计的目标数量大于或等于数量阈值,则表明区块链网络中大部分的区块链节点都已经获取到目标数据密钥,此时目标区块链节点可以启用(可以理解为激活)目标安全环境中存储的目标数据密钥。
其中,上述数量阈值可以等于2f+1,f为区块链网络中能容纳的作恶节点(作恶的区块链节点)的最大数量。可选的,数量阈值也可以根据实际应用场景进行设定,对此不做限制。
更多的,若上述基于密钥管理合约统计的目标数量大于或等于数量阈值,则目标区块链节点可以调用密钥管理合约指示目标安全环境启用存储的目标数据密钥,该过程可以包括:
若目标数量大于或等于数量阈值,则目标区块链节点可以调用密钥管理合约向目标安全环境提交用于启用目标数据密钥的指示信息,该指示信息可以是基于目标数据密钥的标识信息生成的,即该指示信息可以包含目标数据密钥的标识信息。
目标安全环境在获取到该指示信息后,可以提取出指示信息中的该标识信息,并可以启用已经存储的该标识信息所标识的目标数据密钥(即启用存储的目标数据密钥)。
进而,启用的目标数据密钥就可以在后续被使用,该使用是指可以采用启动的目标数据密钥对多个区块链节点之间的业务数据进行加密交互。该目标数据密钥可以是对称密钥,若目标数据密钥是对称密钥,则目标数据密钥只包括一个密钥,采用目标数据密钥进行加密的数据,后续也可以通过目标数据密钥进行解密。
例如,目标区块链节点可以获取待发送的业务数据,该业务数据可以是需要发送给区块链网络中其他各个区块链节点的数据。目标区块链节点可以在目标安全环境中采用启用的目标数据密钥对该业务数据进行加密,得到加密后的业务数据。
进而,目标区块链节点可以将加密后的业务数据发送给区块链网络中除目标区块链节点之外的其他各个区块链节点,其他各个区块链节点可以各自调用自己的安全环境接收该加密后的业务数据,并可以基于自己安全环境中启用的目标数据密钥对该加密后的业务数据进行解密,即可得到目标区块链节点发送的业务数据。
再举个例子,若上述多个区块链节点包括区块链节点A和区块链节点B,区块链节点A需要将数据S发送给区块链节点B,则区块链节点A可以在安全环境中采用启用的目标数据密钥对该数据S进行加密,得到加密后的数据S。
进而,区块链节点A可以将加密后的数据S发送给区块链节点B,区块链节点可以基于安全环境接收该加密后的数据S,并可以在安全环境中采用目标数据密钥对该加密后的数据S进行解密,即可得到区块链节点A发送过来的数据S。
可选的,在某些特定的场景下,目标数据密钥也可以是非对称密钥,此时目标数据密钥就包括公钥和私钥,采用公钥加密的数据可以采用私钥进行解密,采用私钥进行加密的数据也可以采用公钥进行解密。目标数据密钥具体是什么类型的密钥可以根据实际应用场景确定,对此不做限制。
请参见图5,图5是本申请提供的一种数据传输的流程示意图。此处数据提供方可以是需要发送业务数据的区块链节点(如上述区块链节点A),数据使用方可以是需要使用数据提供方发送的业务数据的区块链节点(如上述区块链节点B),数据提供方可以具有普通执行环境(如隔离在安全环境外的环境)和可信应用1(即数据提供方的安全环境内运行的安全应用),数据使用方也可以具有普通执行环境(如隔离在安全环境外的环境)和可信应用2(即数据使用方的安全环境内运行的安全应用)。如图5所示,该流程可以包括:
1.数据提供方中的普通执行环境(此处普通执行环境执行的操作可以是由普通执行环境内部署的密钥管理合约执行的)可以获取到需要发送的业务数据,该业务数据可以是预先设置的,或者该业务数据可以是管理员上传的,对此不做限制。进而,数据提供方的普通执行环境可以将该需要发送的业务数据提交给可信应用1,如数据提供方的普通执行环境可以调用可信应用1提供的加密接口(用于请求对数据进行加密的接口)将该业务数据提交给可信应用1,该业务数据可以携带对应的业务类型。
2.由于数据密钥可以有多个版本(多个版本的数据密钥的相关描述可以参见下述图6对应实施例中的相关描述),可以启用其中任意一个版本的数据密钥,因此,可信应用1可以获取当前启用的数据密钥(如上述目标数据密钥)。
其中,可信应用1中可以通过映射表来存储启用的数据密钥的标识信息,该标识信息的key(关键值)可以是该数据密钥对应的业务名称(如业务类型的名称),因此,当区块链节点需要获取当前启用的数据密钥时,可以通过需要发送的业务数据所属业务类型的业务名称在该映射表中获取到该业务类型启用的数据密钥的标识信息,进而获取该标识信息所标识的数据密钥(即启用的数据密钥)。
其中,区块链节点之间可以有多种业务类型的往来,不同业务类型可以有不同的数据密钥,一种业务类型的数据密钥可以用于对区块链节点间针对该种业务类型的业务数据进行加密交互。
3.可信应用1可以采用当前启用的数据密钥对需要发送的业务数据进行加密,得到加密后的业务数据。
4.可信应用1可以向普通执行环境返回加密后的业务数据以及对该业务数据进行加密的数据密钥的标识信息(包括块高和该数据密钥的哈希值,具体可以参见下述图7对应实施例中的相关描述)。
5.数据提供方可以通过普通执行环境向数据使用方的普通执行环境发送加密后的业务数据以及对该业务数据进行加密的数据密钥的标识信息。
6.数据使用方的普通执行环境在获取到加密后的业务数据以及对该业务数据进行加密的数据密钥的标识信息后,可以将该加密后的业务数据以及对该业务数据进行加密的数据密钥的标识信息提交给可信应用2,以请求可信应用2对该加密后的业务数据进行解密。
7.可信应用2可以根据对该业务数据进行加密的数据密钥的标识信息获取到对应的数据密钥。
8.可信应用2可以采用获取到的数据密钥对加密后的业务数据进行解密,即可得到业务数据(明文)。
9.可信应用2可以将解密得到的业务数据返回给数据使用方的普通执行环境,以此数据使用方就获取到了业务数据,并可以对获取到的业务数据进行后续的使用和处理。
采用本申请提供的方法,目标数据密钥的生成、采用目标数据密钥对数据进行加密、以及采用目标数据密钥对数据进行解密等与目标数据密钥相关的处理过程,都是在区块链节点的安全环境中进行的,目标数据密钥的明文不会脱离区块链节点的安全环境,保障了目标数据密钥的保密性和安全性。并且,多个区块链节点基于各自的安全环境实现了对目标数据密钥的分布式保管,当某个区块链节点出现故障,其他区块链节点还可以继续对目标数据密钥进行使用和保管,这也提升了对目标数据密钥进行保管的可靠性。
本申请中的区块链网络包含多个区块链节点,每个区块链节点均包含隔离的安全环境,任一区块链节点中安全环境可以表示为目标安全环境,该任一区块链节点可以基于目标安全环境获取待启用的目标数据密钥,并在目标安全环境中存储目标数据密钥;进而,向区块链网络广播针对目标数据密钥的确认消息,并统计区块链网络中针对目标数据密钥的确认消息的目标数量;针对目标数据密钥的确认消息用于指示发送针对目标数据密钥的确认消息的区块链节点已基于安全环境获取到目标数据密钥;若目标数量大于或等于数量阈值,则该任一区块链节点可以启用目标安全环境中存储的目标数据密钥;启用的目标数据密钥用于对多个区块链节点之间的业务数据进行加密交互。由此可见,本申请提出的方法可以通过多个区块链节点对目标数据密钥进行分布式存储,提升了对区块链节点进行存储的可靠性,且各个区块链节点都包含隔离的安全环境,各个区块链节点都可以将目标数据密钥存储在所包含的安全环境中,以保障目标数据密钥的私密性,从而提升对目标数据密钥进行保管的安全性。
请参见图6,图6是本申请提供的一种密钥生成方法的流程示意图。如图6所示,该方法可以包括:
步骤S201,若获取到请求更新数据密钥的第一交易,且目标区块链节点是区块链网络中的出块节点,则打包第一交易所属的第一区块。
具体的,若目标区块链节点中密钥管理合约获取到请求更新数据密钥的交易(可以称为第一交易),且检测到目标区块链节点是区块链网络中的出块节点,则密钥管理合约可以指示目标区块链节点打包该第一交易所属的区块(可以称为第一区块)。本申请可以通过发送区块链交易(如第一交易)的方式调用密钥管理合约。其中,第一交易可以是想要更新数据密钥的管理员通过终端设备向密钥管理合约发起的交易。
目标区块链节点可以将包含第一交易的第一区块广播到区块链网络,使得区块链网络对该第一区块共识通过,可以在区块链网络存储该第一区块,即将该第一区块进行上链,上链的第一区块具有在区块链网络上对应的区块高度,上链的第一区块可以用于记录第一交易。
步骤S202,基于第一区块调用目标安全环境生成目标数据密钥。
具体的,目标区块链节点中的密钥管理合约可以获取到上述第一区块的区块高度,即区块链网络中第一区块需要上链到的区块高度。
进而,目标区块链节点中的密钥管理合约可以基于第一区块的区块高度生成密钥更新请求,该密钥更新请求可以携带该区块高度,密钥管理合约可以将该密钥更新请求提交给目标安全环境,以调用目标安全环境生成相应的数据密钥(如目标数据密钥),如下述内容描述。
目标安全环境在获取到该密钥更新请求后,可以生成目标数据密钥,并可以通过密钥更新请求中的该区块高度得到目标数据密钥的标识信息。其中,目标区块链节点在目标安全环境中生成的目标数据密钥可以是对称密钥,该目标数据密钥可以是在目标安全环境中采用对称密钥算法所生成的。
可选的,目标区块链节点还可以在目标安全环境中对目标数据密钥进行哈希计算,得到目标数据密钥的哈希值,进而,目标区块链节点可以将目标数据密钥的哈希值和第一区块的区块高度作为目标数据密钥的标识信息。目标安全环境中目标数据密钥与目标数据密钥的标识信息可以是关联存储的。
本申请中,由于可以通过请求更新数据密钥的交易(如第一交易)所属区块(如第一区块)的区块高度来确定后续更新后的数据密钥(如目标数据密钥)的标识信息,因此,不同时间发起的请求更新数据密钥的交易对应的更新后的数据密钥可以有不同的标识信息(因为不同时间发起的请求更新数据密钥的交易区块的区块高度不同)。因此,通过采用不同区块高度来确定更新后的数据密钥的标识信息还可以实现通过不同区块高度对不同版本的数据密钥的准确区分和标识,一个版本的数据密钥可以对应一个区块高度,此处不同时间对应的更新后的数据密钥可以理解为是不同版本的数据密钥。
各个区块链节点的安全环境中都会存储各个版本的数据密钥。后续,还可以通过用于标识各个版本的数据密钥的区块高度,对各个数据密钥进行切换启用,即通过各个版本的数据密钥的标识信息中的区块高度实现对启用的数据密钥的切换。如可以指定一个区块高度,并将该区块高度所标识的数据密钥作为当前需要启用的数据密钥。切换启用的数据密钥的过程也可以通过交易的形式进行,该交易可以包含用于标识当前需要启用的数据密钥的区块高度,出块节点可以将该交易打包到区块链网络进行共识和执行,使得区块链网络中各个区块链节点都可以启用该交易中区块高度所标识的数据密钥。针对同一种业务类型,同一个时间可以启用一个数据密钥。
请参见图7,图7是本申请提供的一种数据密钥更新的场景示意图。如图7所示,在多个时间(从早到晚包括时间1、时间2、…时间k,k可以为正整数)都对数据密钥进行了更新,在时间1的更新后的数据密钥可以是数据密钥1,可以采用在时间1发起的请求更新密钥的交易1所属区块的区块高度1来标识该数据密钥1;在时间2的更新后的数据密钥可以是数据密钥2,可以采用在时间2发起的请求更新密钥的交易2所属区块的区块高度2来标识该数据密钥2;以此类推,在时间k的更新后的数据密钥可以是数据密钥k,可以采用在时间k发起的请求更新密钥的交易k所属区块的区块高度k来标识该数据密钥k。
上述数据密钥1~数据密钥k就属于前后不同版本的数据密钥,即k个版本的数据密钥,通常最新版本的数据密钥(如数据密钥k)是当前被启用的数据密钥。上述交易1~交易k可以属于上述第一交易,目标数据密钥可以是指该数据密钥1~数据密钥k中的任一个数据密钥。
更多的,可以将区块链网络中除上述目标区块链节点之外的各个区块链节点称之为是冗余节点(即用于多份保管数据密钥的区块链节点)。目标区块链节点在生成目标数据密钥后,还可以将生成的目标数据密钥发送给冗余节点,该过程如下述内容描述。
目标区块链节点可以在目标安全环境中获取上述第一区块的哈希值。进而,目标区块链节点可以将该第一区块的哈希值作为对冗余节点进行远程认证的附加信息,对冗余节点进行远程认证,如下述内容描述。
其中,目标安全环境在启动时会将自己的远程认证连接到需要的主机IP(如冗余节点的主机地址),并可以将自己的相关端口、接口名等相关信息(用于调用远程认证的相关信息)注册到区块链远程认证合约(可以简称远程认证合约,该合约可以是部署在安全环境中的)中进行登记,当需要进行远程认证时,目标安全环境可以通过远程认证合约感知到其他需要进行远程认证的节点(如冗余节点)的存在,并向该节点发起远程认证请求。
因此,目标区块链节点可以先调用目标安全环境基于第一区块的哈希值生成远程认证请求,该远程认证请求可以包含第一区块的哈希值。目标区块链节点可以调用目标安全环境将该远程认证请求发送给冗余节点。
冗余节点在获取到该远程认证请求后,可以从该远程认证请求中提取出第一区块的哈希值。冗余节点可以将该第一区块的哈希值给到远程认证设备(实现远程认证的设备,可以是远程认证服务器),以请求该远程认证设备根据该第一区块的哈希值生成相应的远程认证报告,该远程认证报告可以包含远程认证设备的证书(可以是远程认证设备的签名)。远程认证设备可以将生成的该远程认证报告返回给冗余节点,进而,冗余节点就可以将该远程认证报告返回给目标区块链节点。
目标区块链节点可以调用目标安全环境接收冗余节点发送的该远程认证报告,并可以对该远程认证报告进行验证(如验证是否合法)。如目标区块链节点可以调用相应的远程认证服务(提供远程认证的服务方)对该远程认证报告进行验证,如验证该远程认证报告是否是远程认证设备给出的报告,目标区块链节点可以对该远程认证报告中的证书(如远程认证设备的签名)进行验证,若验证成功,则表明该远程认证报告是远程认证设备提供的,也就可以表明对远程认证报告验证成功(即验证合法)。若对远程认证报告验证成功(即验证合法),则可以确认冗余节点是运行在其安全环境中的。
其中,本申请可以采用SGX(一种软件保护扩展)来实现目标区块链节点对冗余节点的远程认证,上述远程认证服务可以是通过SGX.SDK(SGX的远程认证程序)调用。
其中,由于第一区块是实时生成的,第一区块的哈希值是难以在短时间内猜测出的,因此,通过将第一区块的哈希值作为对冗余节点进行远程认证的附加信息可以侧面体现对冗余节点进行远程认证的实时性,并提升对冗余节点进行远程认证的可靠性。
更多的,冗余节点在接受目标区块链节点的远程认证的过程中还可以协商出与目标区块链节点之间的通信密钥,该通信密钥可以用于对目标区块链节点与冗余节点之间通信的数据进行加密通信,该通信密钥可以是非对称密钥,该通信密钥可以包含一个公钥(可以称为通信公钥)和一个私钥(可以称为通信私钥),采用通信公钥加密的数据可以采用通信私钥进行解密,反之,采用通信私钥加密的数据也可以采用通信公钥进行解密。冗余节点向目标区块链节点返回的远程认证报告中还可以置入有该通信公钥。目标区块链节点可以在目标安全环境中从冗余节点返回的远程认证报告中提取得到该通信公钥。
因此,若确认冗余节点是运行在其包含的安全环境中的,则表明此时冗余节点可以直接通过安全环境保密地接收数据,此时,目标区块链节点可以在目标安全环境中采用上述通信公钥对目标数据密钥进行加密处理,得到目标数据密钥的加密数据。目标区块链节点可以调用目标安全环境将该加密数据发送给冗余节点,使得冗余节点在运行的安全环境中接收该加密数据。其中,目标区块链节点在将加密数据发送给冗余节点时,还可以将目标数据密钥的标识信息一并发送给冗余节点。
冗余节点基于安全环境接收到该加密数据和该标识信息后,可以在安全环境中采用上述客户端私钥对该加密数据进行解密,即可得到目标数据密钥,冗余节点可以在安全环境中存储该目标数据密钥(可以是对目标数据密钥和目标数据密钥的标识信息进行关联存储),冗余节点在安全环境中存储目标数据密钥后,可以将目标数据密钥的该标识信息给到密钥管理合约进行登记,即告知密钥管理合约已经获取到目标数据密钥,使得密钥管理合约可以指示冗余节点向区块链网络广播针对目标数据密钥的确认消息。
可选的,不同的冗余节点与目标区块链节点之间的通信密钥可以不同。
更多的,若目标区块链节点不是区块链网络中的出块节点,则目标区块链节点中的密钥管理合约在获取到请求更新数据密钥的上述第一交易后可以忽略该交易。
请参见图8,图8是本申请提供的一种启用密钥的流程示意图。此处其他节点可以是指区块链网络中除了出块节点的其他各个区块链节点。如图8所示,该流程可以包括:
1.管理员可以向出块节点的密钥管理合约发送更新密钥的交易(如上述第一交易),以调用密钥管理合约。
2.出块节点的密钥管理合约在获取到该更新密钥的交易后,可以向出块节点的可信应用提交密钥更新请求,该密钥更新请求可以包含该交易所属区块的块高(即区块高度)、该区块的区块哈希(即哈希值)以及业务类型(即当前需要更新的数据密钥对应的业务类型)。
3.出块节点的可信应用可以生成该业务类型对应的数据密钥。
4.出块节点的可信应用可以保存该块高和数据密钥(可以是关联保存)。
5.出块节点的可信应用可以将生成的数据密钥的哈希值以及该块高返回给密钥管理合约(可以理解为是将针对该数据密钥的确认消息给到密钥管理合约),以告知密钥管理合约新版的数据密钥已经生成,密钥管理合约也可以登记该块高和数据密钥的哈希值(即登记生成的数据密钥的标识信息)。
6.出块节点的可信应用可以向其他节点的可信应用发起远程认证,并可以将上述块高、上述区块哈希以及以及业务名称(即上述业务类型的名称)给到其他节点的可信应用。
7.其他节点的可信应用可以生成(可以是调用远程认证设备生成)与出块节点之间的通信密钥(包括通信公钥和通信私钥),并将该通信公钥置入远程认证报告,该远程认证报告可以是基于该区块哈希生成的。
8.其他节点的可信应用可以向出块节点返回置入有通信公钥的远程认证报告。
9.出块节点的可信应用可以调用SGX.SDK(SGX的远程认证程序)来对该远程认证报告的有效性进行验证(即验证是否合法),若验证成功(即合法),则可以执行下述步骤10。
10.出块节点的可信应用可以使用通信公钥对生成的数据密钥进行加密,得到加密后的数据密钥。
11.出块节点的可信应用可以将加密后的数据密钥发送给其他节点的可信应用。
12.其他节点的可信应用在接收到出块节点的可信应用发送的加密后的数据密钥后,可以采用通信私钥对该加密后的数据密钥进行解密,得到数据密钥(明文)。
13.其他节点的可信应用可以保存上述块高和解密得到的数据密钥(可以是关联存储)。
14.其他节点的可信应用可以将保存的数据密钥的哈希值以及该块高给到出块节点的密钥管理合约(可以理解为是将针对该数据密钥的确认消息给到密钥管理合约),以告知密钥管理合约新版的数据密钥已经生成。
15.出块节点的密钥管理合约也可以对登记的该块高和数据密钥的哈希值(即登记生成的数据密钥的标识信息)进行计数,即统计接收到区块链网络中各个区块链节点的可信应用给到的该数据密钥的标识信息的数量(可以理解为统计针对该数据密钥的确认消息的目标数量)。
16.若出块节点的密钥管理合约统计的登记的该数据密钥的标识信息的数量大于或等于数量阈值,则可以指示出块节点的可信应用启用该标识信息所标识的数据密钥。
17.出块节点的可信应用根据密钥管理合约的指示启用该标识信息所标识的数据密钥。
通过上述过程就实现了对数据密钥的更新和启用,并通过区块链网络实现了对启用的数据密钥的分布式管理,提升了对启用的数据密钥进行管理的性能。
请参见图9,图9是本申请提供的一种交易执行方法的流程示意图。本申请实施例中各个区块链节点之间广播针对目标数据密钥的确认消息可以是通过区块链交易(如下述第二交易)实现的。如图9所示,该方法可以包括:
步骤S301,若任一区块链节点是区块链网络中的出块节点,则在目标安全环境中存储目标数据密钥后,调用密钥管理合约生成第二交易;第二交易用于每个区块链节点确认是否已基于安全环境获取到目标数据密钥。
具体的,若目标区块链节点是区块链网络中的出块节点,则目标区块链节点在目标安全环境中存储目标数据密钥后,可以调用密钥管理合约发起第二交易,该第二交易可以是用于区块链网络中各个区块链节点确认是否基于安全环境获取到目标数据密钥的交易。
其中,该第二交易可以携带有目标数据密钥的标识信息。
步骤S302,打包第二交易所属的第二区块,并将第二区块广播到区块链网络,使多个区块链节点在对第二区块共识通过后执行第二交易。
具体的,目标区块链节点可以打包第二交易所属的第二区块,即生成第二交易所属的第二区块。目标区块链节点可以将该第二区块广播到区块链网络中,使得区块链网络中各个区块链节点在对该第二区块共识通过后执行该第二区块中的第二交易。
区块链网络中各个区块链节点分别都具有针对该第二交易的执行结果,某个区块链节点针对第二交易的执行结果可以是用于指示该区块链节点已经基于安全环境获取到目标数据密钥的结果,或者是用于指示该区块链节点未基于安全环境获取到目标数据密钥的结果。
各个区块链节点可以是调用密钥管理合约来执行第二交易的,例如各个区块链节点中密钥管理合约可以从第二交易提取出目标数据密钥的标识信息,并可以查询该标识信息是否已在密钥管理合约被登记。
若某个区块链节点中密钥管理合约查询到该标识信息已经被登记,表明该区块链节点的安全环境中已经存储有目标数据密钥,此时该区块链节点针对第二交易的执行结果就可以是用于指示已基于安全环境获取到目标数据密钥的结果。
反之,若某个区块链节点中密钥管理合约查询到该标识信息未被登记,表明该区块链节点的安全环境中未存储有目标数据密钥,此时该区块链节点针对第二交易的执行结果就可以是用于指示未基于安全环境获取到目标数据密钥的结果。
步骤S303,接收多个区块链节点中除目标区块链节点外的其他区块链节点广播的针对第二交易的执行结果,该执行结果用于指示发送该执行结果的区块链节点已基于安全环境获取到目标数据密钥、或用于指示发送该执行结果的区块链节点未基于安全环境获取到目标数据密钥。
具体的,各个区块链节点都可以向区块链网络广播各自针对第二交易的执行结果,因此,目标区块链节点也可以获取到区块链网络中除目标区块链节点之外的其他区块链节点广播的针对第二交易的执行结果。各个区块链节点针对第二交易的执行结果就分别用于指示各个区块链节点基于安全环境获取到目标数据密钥,或者未基于安全环境获取到目标数据密钥。
步骤S304,调用密钥管理合约基于每个区块链节点针对第二交易的执行结果统计目标数量;用于指示对应区块链节点已基于安全环境获取到目标数据密钥的一个执行结果属于针对目标数据密钥的一个确认消息。
具体的,目标区块链节点可以调用密钥管理合约通过各个区块链节点(包括目标区块链节点自己)针对第二交易的执行结果,统计各个区块链节点针对目标数据密钥的确认消息的目标数量。
可选的,用于指示对应区块链节点已基于安全环境获取到目标数据密钥的一个执行结果就可以属于是针对目标数据密钥的一个确认消息。因此,目标区块链节点可以调用密钥管理合约统计各个区块链节点针对第二交易的执行结果中,用于指示对应区块链节点已基于安全环境获取到目标数据密钥的执行结果的数量,并将该数量作为区块链网络中针对目标数据密钥的确认消息的目标数量。
通过上述过程,就基于区块链交易实现了各个区块链节点对于是否基于安全环境获取到目标数据密钥的确认。当统计的目标数量大于数量阈值时,就表明大多数区块链节点已经基于安全环境获取到目标数据密钥,进而就可以启用该目标数据密钥,启用的目标数据密钥就分布在各个区块链节点处,启用的目标数据密钥就实现了在各个区块链节点处的统一保管。
请参见图10,图10是本申请提供的一种密钥同步的流程示意图。落后节点可以是指区块链网络中未获取到历史更新的全部数据密钥的区块链节点,即落后节点只保存了历史更新的部分数据密钥,落后节点还未启用最新得到数据密钥。落后节点可以是新加入区块链网络的区块链节点,或者也可以是区块链网络中网络比较滞后的区块链节点,此处的其他节点可以是指正常节点,即该其他节点可以是保存了历史更新的全部数据密钥的区块链节点,该其他节点启用了最新的数据密钥,落后节点可以向其他节点同步未获取到的数据密钥。如图10所示,该流程可以包括:
1.落后节点的密钥管理合约可以请求落后节点中的可信应用11进行数据密钥的同步,并可以将业务名称(即需要同步的数据密钥对应业务类型的名称)以及块高(即落后节点当前需要同步的块高,该块高可以是指用于标识数据密钥的块高,如上述第一区块的区块高度)提交给可信应用11。密钥管理合约可以是在接收到待同步的用于请求更新密钥的某个交易(如第一交易)时(如获取到待同步的包含该交易的区块(如第一区块)时),请求可信应用11进行数据密钥的同步的,密钥管理合约也可以对获取的该区块进行上链。
2.可信应用11可以生成与其他节点之间的通信密钥(包括通信公钥和通信私钥),并生成(可以是调用远程认证设备生成)远程认证报告,该远程认证报告可以包含此时节点块高(即当前需要同步的块高)、业务名称、通信公钥以及密钥同步的标记(用于指示当前需要同步密钥),可信应用11可以将该远程认证报告发送给其他节点的可信应用22。
3.其他节点的可信应用22可以对可信应用11发送的远程认证报告进行验证,若验证合法,则表明确认落后节点运行在安全环境中,可以执行下述步骤4。
4.可信应用22可以获取远程认证报告中当前需要同步的块高对应的有效数据密钥(即该块高标识的数据密钥)。
5.可信应用22可以使用通信公钥对获取到的数据密钥进行加密,得到加密后的数据密钥。
6.可信应用22可以将加密后的数据密钥返回给可信应用11,并可以将该数据密钥的标识信息(包括块高和该数据密钥的哈希值)。
7.可信应用11可以采用通信私钥对加密后的数据密钥进行解密,即可得到待同步的数据密钥。
8.可信应用11可以将解密得到的该数据密钥的标识信息给到落后节点的密钥管理合约,以告知密钥管理合约已获取到该数据密钥,密钥管理合约可以对该数据密钥的标识信息进行登记。
9.可信应用11在每次获取到其他节点提供的数据密钥时,都可以将该数据密钥的标识信息给到密钥管理合约进行计数(与上述对确认消息进行计数原理相同),即统计其他节点都提供了该数据密钥的数量。
10.若计数大于或等于数量阈值,表明大部分区块链节点都提供了该历史的数据密钥,表明该数据密钥是真实可信的,因此,落后节点的密钥管理合约可以指示可信应用11存储该历史的数据密钥。
11.可信应用11可以按照密钥管理合约的指示正式存储获取到的该数据密钥,就实现了对该数据密钥的同步。
可信应用11可以通过上述的流程向其他节点同步自己未保存的各个数据密钥,直到同步到最新的数据密钥,就可以启用最新的数据密钥。可选的,可信应用11可以通过发送交易(类似于上述第二交易)的方式,让各个区块链节点在对该交易进行共识后执行,以相互提供可信应用11当前需要同步的块高对应的数据密钥,若大部分区块链节点(如超过数量阈值的区块链节点)都提供了该块高对应的某个数据密钥时,则落后节点就可以存储该数据密钥,实现对该块高对应数据密钥的同步。
通过上述过程,可以保证落后节点向其他节点同步数据密钥时,同步的数据密钥在同步过程中也是安全保密且可靠的。
请参见图11,图11是本申请提供的一种区块链网络的数据处理装置的结构示意图。该区块链网络的数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该区块链网络的数据处理装置为一个应用软件,该区块链网络的数据处理装置可以用于执行本申请实施例提供的方法中的相应步骤。区块链网络可以包含多个区块链节点,每个区块链节点均包含隔离的安全环境,该装置可以应用于该多个区块链节点中的任一区块链节点,任一区块链节点中的安全环境可以表示为目标安全环境。如图11所示,该区块链网络的数据处理装置1可以包括:获取模块11、统计模块12和启用模块13。
获取模块11,用于基于目标安全环境获取待启用的目标数据密钥,并在目标安全环境中存储目标数据密钥;
统计模块12,用于向区块链网络广播针对目标数据密钥的确认消息,并统计区块链网络中针对目标数据密钥的确认消息的目标数量;针对目标数据密钥的确认消息用于指示发送针对目标数据密钥的确认消息的区块链节点已基于安全环境获取到目标数据密钥;
启用模块13,用于若目标数量大于或等于数量阈值,则启用目标安全环境中存储的目标数据密钥;启用的目标数据密钥用于对多个区块链节点之间的业务数据进行加密交互。
可选的,获取模块11基于目标安全环境获取待启用的目标数据密钥的方式,包括:
若获取到请求更新数据密钥的第一交易,且任一区块链节点是区块链网络中的出块节点,则打包第一交易所属的第一区块;
基于第一区块调用目标安全环境生成目标数据密钥。
可选的,获取模块11基于第一区块调用目标安全环境生成目标数据密钥的方式,包括:
获取第一区块的区块高度;
基于区块高度生成密钥更新请求,并将密钥更新请求提交给目标安全环境;
在目标安全环境中生成目标数据密钥,并基于密钥更新请求中的区块高度确定生成的目标数据密钥的标识信息。
可选的,获取模块11基于密钥更新请求中的区块高度确定生成的目标数据密钥的标识信息的方式,包括:
在目标安全环境中对目标数据密钥进行哈希计算,得到目标数据密钥的哈希值;
将目标数据密钥的哈希值和区块高度作为目标数据密钥的标识信息。
可选的,多个区块链节点中除任一区块链节点外的区块链节点表示为冗余节点;上述装置1还用于:
在目标安全环境中获取第一区块的哈希值;
调用目标安全环境基于第一区块的哈希值对冗余节点进行远程认证;
若在远程认证后确认冗余节点运行在安全环境中,则将生成的目标数据密钥发送给冗余节点,使冗余节点基于安全环境接收目标数据密钥。
可选的,上述装置1调用目标安全环境基于第一区块的哈希值对冗余节点进行远程认证的方式,包括:
调用目标安全环境基于第一区块的哈希值生成远程认证请求;
将远程认证请求发送给冗余节点,使冗余节点基于远程认证请求中第一区块的哈希值生成远程认证报告;
基于目标安全环境接收冗余节点发送的远程认证报告;
若对远程认证报告验证成功,则确认冗余节点运行在安全环境中。
可选的,冗余节点生成有与任一区块链节点之间的通信密钥,通信密钥包含通信公钥和通信私钥;
若在远程认证后确认冗余节点运行在安全环境中,则上述装置1将生成的目标数据密钥发送给冗余节点的方式,包括:
若在远程认证后确认冗余节点运行在安全环境中,且接收到冗余节点基于安全环境返回的通信公钥,则调用目标安全环境采用通信密钥对目标数据密钥进行加密处理,得到目标数据密钥的加密数据;
调用目标安全环境将加密数据发送给冗余节点,使冗余节点在安全环境中采用通信密钥对加密数据进行解密,得到目标数据密钥,并在安全环境中存储目标数据密钥后,向区块链网络广播针对目标数据密钥的确认消息。
可选的,获取模块11基于目标安全环境获取待启用的目标数据密钥的方式,包括:
若任一区块链节点不是区块链网络中的出块节点,则基于目标安全环境接收出块节点发送的目标数据密钥;
其中,目标数据密钥是由出块节点生成,多个区块链节点包含出块节点。
可选的,多个区块链节点中均部署有密钥管理合约;统计模块12统计多个区块链节点针对目标数据密钥的确认消息的目标数量的方式,包括:
调用密钥管理合约统计目标数量;
若目标数量大于或等于数量阈值,则启用模块启用目标安全环境中存储的目标数据密钥的方式,包括:
若目标数量大于或等于数量阈值,则调用密钥管理合约指示目标安全环境启用存储的目标数据密钥。
可选的,若目标数量大于或等于数量阈值,则启用模块13调用密钥管理合约指示目标安全环境启用存储的目标数据密钥的方式,包括:
若目标数量大于或等于数量阈值,则调用密钥管理合约向目标安全环境提交用于启用目标数据密钥的指示信息;指示信息包含目标数据密钥的标识信息;
在目标安全环境中基于指示信息启用标识信息所标识的目标数据密钥。
可选的,统计模块12调用密钥管理合约统计目标数量的方式,包括:
若任一区块链节点是区块链网络中的出块节点,则在目标安全环境中存储目标数据密钥后,调用密钥管理合约生成第二交易;第二交易用于每个区块链节点确认是否已基于安全环境获取到目标数据密钥;
打包第二交易所属的第二区块,并将第二区块广播到区块链网络,使多个区块链节点在对第二区块共识通过后执行第二交易;
接收多个区块链节点中除任一区块链节点外的其他区块链节点广播的针对第二交易的执行结果,该执行结果用于指示发送该执行结果的区块链节点已基于安全环境获取到目标数据密钥、或用于指示发送该执行结果的区块链节点未基于安全环境获取到目标数据密钥;
调用密钥管理合约基于每个区块链节点针对第二交易的执行结果统计目标数量;用于指示对应区块链节点已基于安全环境获取到目标数据密钥的一个执行结果属于针对目标数据密钥的一个确认消息。
可选的,上述装置1还用于:
获取待发送的业务数据,并在目标安全环境中采用启用的目标数据密钥对业务数据进行加密,得到加密后的业务数据;
将加密后的业务数据发送给区块链网络中除任一区块链节点外的其他区块链节点,使其他区块链节点在安全环境中,基于启用的目标数据密钥对加密后的业务数据进行解密,得到业务数据。
根据本申请的一个实施例,图3所示的区块链网络的数据处理方法所涉及的步骤可由图11所示的区块链网络的数据处理装置1中的各个模块来执行。例如,图3中所示的步骤S101可由图11中的获取模块11来执行,图3中所示的步骤S102可由图11中的统计模块12来执行;图3中所示的步骤S103可由图11中的启用模块13来执行。
本申请中的区块链网络包含多个区块链节点,每个区块链节点均包含隔离的安全环境,任一区块链节点中安全环境可以表示为目标安全环境,该任一区块链节点可以基于目标安全环境获取待启用的目标数据密钥,并在目标安全环境中存储目标数据密钥;进而,向区块链网络广播针对目标数据密钥的确认消息,并统计区块链网络中针对目标数据密钥的确认消息的目标数量;针对目标数据密钥的确认消息用于指示发送针对目标数据密钥的确认消息的区块链节点已基于安全环境获取到目标数据密钥;若目标数量大于或等于数量阈值,则该任一区块链节点可以启用目标安全环境中存储的目标数据密钥;启用的目标数据密钥用于对多个区块链节点之间的业务数据进行加密交互。由此可见,本申请提出的装置可以通过多个区块链节点对目标数据密钥进行分布式存储,提升了对区块链节点进行存储的可靠性,且各个区块链节点都包含隔离的安全环境,各个区块链节点都可以将目标数据密钥存储在所包含的安全环境中,以保障目标数据密钥的私密性,从而提升对目标数据密钥进行保管的安全性。
根据本申请的一个实施例,图11所示的区块链网络的数据处理装置1中的各个模块可以分别或全部合并为一个或若干个单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个子单元,可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述模块是基于逻辑功能划分的,在实际应用中,一个模块的功能也可以由多个单元来实现,或者多个模块的功能由一个单元实现。在本申请的其它实施例中,区块链网络的数据处理装置1也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算机设备上运行能够执行如图3中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图11中所示的区块链网络的数据处理装置1,以及来实现本申请实施例的区块链网络的数据处理方法。上述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
请参见图12,图12是本申请提供的一种计算机设备的结构示意图。如图12所示,计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图12所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图12所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
基于目标安全环境获取待启用的目标数据密钥,并在目标安全环境中存储目标数据密钥;区块链网络包含多个区块链节点,每个区块链节点均包含隔离的安全环境,目标安全环境是任一区块链节点中的安全环境;
向区块链网络广播针对目标数据密钥的确认消息,并统计区块链网络中针对目标数据密钥的确认消息的目标数量;针对目标数据密钥的确认消息用于指示发送针对目标数据密钥的确认消息的区块链节点已基于安全环境获取到目标数据密钥;
若目标数量大于或等于数量阈值,则启用目标安全环境中存储的目标数据密钥;启用的目标数据密钥用于对多个区块链节点之间的业务数据进行加密交互。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3对应实施例中对上述区块链网络的数据处理方法的描述,也可执行前文图11所对应实施例中对上述区块链网络的数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的区块链网络的数据处理装置1所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3所对应实施例中对区块链网络的数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
作为示例,上述程序指令可被部署在一个计算机设备上执行,或者被部署位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链网络。
上述计算机可读存储介质可以是前述任一实施例提供的区块链网络的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前文图3对应实施例中对上述区块链网络的数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (16)
1.一种区块链网络的数据处理方法,其特征在于,所述区块链网络包含多个区块链节点,每个区块链节点均包含隔离的安全环境,所述方法应用于所述多个区块链节点中的任一区块链节点,所述任一区块链节点中的安全环境表示为目标安全环境,所述方法包括:
基于所述目标安全环境获取待启用的目标数据密钥,并在所述目标安全环境中存储所述目标数据密钥;
向所述区块链网络广播针对所述目标数据密钥的确认消息,并统计所述区块链网络中针对所述目标数据密钥的确认消息的目标数量;所述针对所述目标数据密钥的确认消息用于指示发送所述针对目标数据密钥的确认消息的区块链节点已基于安全环境获取到所述目标数据密钥;
若所述目标数量大于或等于数量阈值,则启用所述目标安全环境中存储的所述目标数据密钥;启用的所述目标数据密钥用于对所述多个区块链节点之间的业务数据进行加密交互。
2.根据权利要求1所述的方法,其特征在于,所述基于所述目标安全环境获取待启用的目标数据密钥,包括:
若获取到请求更新数据密钥的第一交易,且所述任一区块链节点是所述区块链网络中的出块节点,则打包所述第一交易所属的第一区块;
基于所述第一区块调用所述目标安全环境生成所述目标数据密钥。
3.根据权利要求2所述的方法,其特征在于,所述基于所述第一区块调用所述目标安全环境生成所述目标数据密钥,包括:
获取所述第一区块的区块高度;
基于所述区块高度生成密钥更新请求,并将所述密钥更新请求提交给所述目标安全环境;
在所述目标安全环境中生成所述目标数据密钥,并基于所述密钥更新请求中的所述区块高度确定生成的所述目标数据密钥的标识信息。
4.根据权利要求3所述的方法,其特征在于,所述基于所述密钥更新请求中的所述区块高度确定生成的所述目标数据密钥的标识信息,包括:
在所述目标安全环境中对所述目标数据密钥进行哈希计算,得到所述目标数据密钥的哈希值;
将所述目标数据密钥的哈希值和所述区块高度作为所述目标数据密钥的标识信息。
5.根据权利要求2所述的方法,其特征在于,所述多个区块链节点中除所述任一区块链节点外的区块链节点表示为冗余节点;所述方法还包括:
在所述目标安全环境中获取所述第一区块的哈希值;
调用所述目标安全环境基于所述第一区块的哈希值对所述冗余节点进行远程认证;
若在远程认证后确认所述冗余节点运行在安全环境中,则将生成的所述目标数据密钥发送给所述冗余节点,使所述冗余节点基于安全环境接收所述目标数据密钥。
6.根据权利要求5所述的方法,其特征在于,所述调用所述目标安全环境基于所述第一区块的哈希值对所述冗余节点进行远程认证,包括:
调用所述目标安全环境基于所述第一区块的哈希值生成远程认证请求;
将所述远程认证请求发送给所述冗余节点,使所述冗余节点基于所述远程认证请求中所述第一区块的哈希值生成远程认证报告;
基于所述目标安全环境接收所述冗余节点发送的所述远程认证报告;
若对所述远程认证报告验证成功,则确认所述冗余节点运行在安全环境中。
7.根据权利要求5所述的方法,其特征在于,所述冗余节点生成有与所述任一区块链节点之间的通信密钥,所述通信密钥包含通信公钥和通信私钥;
所述若在远程认证后确认所述冗余节点运行在安全环境中,则将生成的所述目标数据密钥发送给所述冗余节点,包括:
若在远程认证后确认所述冗余节点运行在安全环境中,且接收到所述冗余节点基于安全环境返回的所述通信公钥,则调用所述目标安全环境采用所述通信密钥对所述目标数据密钥进行加密处理,得到所述目标数据密钥的加密数据;
调用所述目标安全环境将所述加密数据发送给所述冗余节点,使所述冗余节点在安全环境中采用所述通信密钥对所述加密数据进行解密,得到所述目标数据密钥,并在安全环境中存储所述目标数据密钥后,向所述区块链网络广播针对所述目标数据密钥的确认消息。
8.根据权利要求1所述的方法,其特征在于,所述基于所述目标安全环境获取待启用的目标数据密钥,包括:
若所述任一区块链节点不是所述区块链网络中的出块节点,则基于所述目标安全环境接收所述出块节点发送的所述目标数据密钥;
其中,所述目标数据密钥是由所述出块节点生成,所述多个区块链节点包含所述出块节点。
9.根据权利要求1所述的方法,其特征在于,所述多个区块链节点中均部署有密钥管理合约;所述统计所述多个区块链节点针对所述目标数据密钥的确认消息的目标数量,包括:
调用所述密钥管理合约统计所述目标数量;
若所述目标数量大于或等于数量阈值,则启用所述目标安全环境中存储的所述目标数据密钥,包括:
若所述目标数量大于或等于所述数量阈值,则调用所述密钥管理合约指示所述目标安全环境启用存储的所述目标数据密钥。
10.根据权利要求9所述的方法,其特征在于,所述若所述目标数量大于或等于所述数量阈值,则调用所述密钥管理合约指示所述目标安全环境启用存储的所述目标数据密钥,包括:
若所述目标数量大于或等于所述数量阈值,则调用所述密钥管理合约向所述目标安全环境提交用于启用所述目标数据密钥的指示信息;所述指示信息包含所述目标数据密钥的标识信息;
在所述目标安全环境中基于所述指示信息启用所述标识信息所标识的所述目标数据密钥。
11.根据权利要求9所述的方法,其特征在于,所述调用所述密钥管理合约统计所述目标数量,包括:
若所述任一区块链节点是所述区块链网络中的出块节点,则在所述目标安全环境中存储所述目标数据密钥后,调用所述密钥管理合约生成第二交易;所述第二交易用于所述每个区块链节点确认是否已基于安全环境获取到所述目标数据密钥;
打包所述第二交易所属的第二区块,并将所述第二区块广播到所述区块链网络,使所述多个区块链节点在对所述第二区块共识通过后执行所述第二交易;
接收所述多个区块链节点中除所述任一区块链节点外的其他区块链节点广播的针对所述第二交易的执行结果,该执行结果用于指示发送该执行结果的区块链节点已基于安全环境获取到所述目标数据密钥、或用于指示发送该执行结果的区块链节点未基于安全环境获取到所述目标数据密钥;
调用所述密钥管理合约基于所述每个区块链节点针对所述第二交易的执行结果统计所述目标数量;用于指示对应区块链节点已基于安全环境获取到所述目标数据密钥的一个执行结果属于针对所述目标数据密钥的一个确认消息。
12.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取待发送的业务数据,并在所述目标安全环境中采用启用的所述目标数据密钥对所述业务数据进行加密,得到加密后的业务数据;
将所述加密后的业务数据发送给所述区块链网络中除所述任一区块链节点外的其他区块链节点,使所述其他区块链节点在安全环境中,基于启用的所述目标数据密钥对所述加密后的业务数据进行解密,得到所述业务数据。
13.一种区块链网络的数据处理装置,其特征在于,所述区块链网络包含多个区块链节点,每个区块链节点均包含隔离的安全环境,所述装置应用于所述多个区块链节点中的任一区块链节点,所述任一区块链节点中的安全环境表示为目标安全环境,所述装置包括:
获取模块,用于基于所述目标安全环境获取待启用的目标数据密钥,并在所述目标安全环境中存储所述目标数据密钥;
统计模块,用于向所述区块链网络广播针对所述目标数据密钥的确认消息,并统计所述区块链网络中针对所述目标数据密钥的确认消息的目标数量;所述针对所述目标数据密钥的确认消息用于指示发送所述针对目标数据密钥的确认消息的区块链节点已基于安全环境获取到所述目标数据密钥;
启用模块,用于若所述目标数量大于或等于数量阈值,则启用所述目标安全环境中存储的所述目标数据密钥;启用的所述目标数据密钥用于对所述多个区块链节点之间的业务数据进行加密交互。
14.一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现权利要求1-12任一项所述方法的步骤。
15.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1-12中任一项所述方法的步骤。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适用于由处理器加载并执行权利要求1-12任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211382869.8A CN116980155A (zh) | 2022-11-07 | 2022-11-07 | 区块链网络的数据处理方法、装置、产品、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211382869.8A CN116980155A (zh) | 2022-11-07 | 2022-11-07 | 区块链网络的数据处理方法、装置、产品、设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116980155A true CN116980155A (zh) | 2023-10-31 |
Family
ID=88483752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211382869.8A Pending CN116980155A (zh) | 2022-11-07 | 2022-11-07 | 区块链网络的数据处理方法、装置、产品、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116980155A (zh) |
-
2022
- 2022-11-07 CN CN202211382869.8A patent/CN116980155A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3937424B1 (en) | Blockchain data processing methods and apparatuses based on cloud computing | |
CN112837160B (zh) | 基于区块链的跨链交易方法、装置和计算机可读存储介质 | |
CN110933108B (zh) | 基于区块链网络的数据处理方法、装置、电子设备及存储介质 | |
WO2022042301A1 (zh) | 一种数据处理方法、装置、智能设备及存储介质 | |
CN112422532B (zh) | 业务通信方法、系统、装置及电子设备 | |
CN110009494B (zh) | 一种监控区块链中的交易内容的方法及装置 | |
CN101573936B (zh) | 使用可信处理技术的数字版权管理 | |
CN105873031B (zh) | 基于可信平台的分布式无人机密钥协商方法 | |
TW201215070A (en) | Key Management Systems and methods for shared secret ciphers | |
US11947681B2 (en) | Cryptographic secret generation and provisioning | |
US11570213B2 (en) | Collaborative security for application layer encryption | |
US11606193B2 (en) | Distributed session resumption | |
CN111160905B (zh) | 一种区块链节点用户请求处理保护方法及装置 | |
CN112035863A (zh) | 一种基于智能合约方式的电子合同取证方法及系统 | |
CN114598724B (zh) | 电力物联网的安全防护方法、装置、设备及存储介质 | |
CN116980155A (zh) | 区块链网络的数据处理方法、装置、产品、设备和介质 | |
Xiaohong et al. | Intelligent computing scheme of blockchain based on trusted execution environment | |
CN113472546B (zh) | 数据可信处理方法、区块链平台和终端设备 | |
US20240015028A1 (en) | Blockchain-based data detection method and apparatus, device, storage medium, and program product | |
US20240064023A1 (en) | Cryptographic proof of identity with independent verification and provable recovery | |
CN117014176A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN116996226A (zh) | 区块链中的虚拟资产处理方法、装置、设备以及介质 | |
CN116781268A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
CN116961973A (zh) | 数据传输方法、装置、电子设备及计算机可读存储介质 | |
CN117134907A (zh) | 安全控制方法、装置、存储介质及电子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |