CN118172058A - 区块链数据处理方法、装置、计算机设备、介质及产品 - Google Patents
区块链数据处理方法、装置、计算机设备、介质及产品 Download PDFInfo
- Publication number
- CN118172058A CN118172058A CN202211629144.4A CN202211629144A CN118172058A CN 118172058 A CN118172058 A CN 118172058A CN 202211629144 A CN202211629144 A CN 202211629144A CN 118172058 A CN118172058 A CN 118172058A
- Authority
- CN
- China
- Prior art keywords
- data
- service
- key
- target
- encrypted
- 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 23
- 238000012545 processing Methods 0.000 claims abstract description 331
- 238000004891 communication Methods 0.000 claims abstract description 267
- 238000000034 method Methods 0.000 claims abstract description 90
- 238000012795 verification Methods 0.000 claims description 58
- 238000004590 computer program Methods 0.000 claims description 21
- 230000000977 initiatory effect Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 7
- 238000004422 calculation algorithm Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 28
- 238000005516 engineering process Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 238000013475 authorization Methods 0.000 description 9
- 230000003993 interaction Effects 0.000 description 9
- 238000013473 artificial intelligence Methods 0.000 description 8
- 238000007789 sealing Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000009118 appropriate response Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- KAICRBBQCRKMPO-UHFFFAOYSA-N phosphoric acid;pyridine-3,4-diamine Chemical compound OP(O)(O)=O.NC1=CC=NC=C1N KAICRBBQCRKMPO-UHFFFAOYSA-N 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请提出一种区块链数据处理方法、装置、计算机设备、介质及产品。应用于业务处理节点;该方法包括:获取针对目标业务数据的加密交易数据,加密交易数据包括:基于数据密钥对目标业务数据进行加密后得到的第一加密数据、基于目标通信密钥对数据密钥进行加密后得到的第二加密数据;在业务处理节点运行的可信执行环境中,根据通信密钥公钥对应的通信密钥私钥对加密交易数据的第二加密数据进行解密处理,得到数据密钥;通过得到的数据密钥对加密交易数据的第一加密数据进行解密处理,得到待执行的目标业务数据;根据业务合约对目标业务数据进行业务处理,得到业务执行结果。本申请支持对待交易的业务数据进行双重加密处理,可提高数据安全性。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块链数据处理方法、一种区块链数据处理装置、一种计算机设备、一种计算机可读存储介质及一种计算机程序产品。
背景技术
在区块链领域中,交易数据往往是直接发送至区块链节点中,然后各个区块链节点在接收到交易数据后,直接对该交易数据进行业务执行操作后,得到对应的业务执行结果。这种区块链交易的方式可能会导致在交易数据被传输至区块链的过程中被恶意窃取或篡改,导致区块链节点接收到的交易数据安全性无法得到保证。
发明内容
本申请实施例提出了一种区块链数据处理方法、装置、计算机设备、介质及产品,可提高数据安全性。
一方面,本申请实施例提供了一种区块链数据处理方法,应用于业务处理节点,该方法包括:
获取针对目标业务数据的加密交易数据,加密交易数据包括:基于数据密钥对目标业务数据进行加密后得到的第一加密数据、基于目标通信密钥对数据密钥进行加密后得到的第二加密数据,目标通信密钥是目标区块链节点发布到区块链中的通信密钥公钥;
在业务处理节点运行的可信执行环境中,根据通信密钥公钥对应的通信密钥私钥对加密交易数据的第二加密数据进行解密处理,得到数据密钥,通信密钥私钥是目标区块链节点发送给业务处理节点的;
通过得到的数据密钥对加密交易数据的第一加密数据进行解密处理,得到待执行的目标业务数据;
根据业务合约对目标业务数据进行业务处理,得到业务执行结果。
一方面,本申请实施例提供了一种区块链数据处理装置,应用于业务处理节点,该装置包括:
获取单元,用于获取针对目标业务数据的加密交易数据,加密交易数据包括:基于数据密钥对目标业务数据进行加密后得到的第一加密数据、基于目标通信密钥对数据密钥进行加密后得到的第二加密数据,目标通信密钥是目标区块链节点发布到区块链中的通信密钥公钥;
处理单元,用于在业务处理节点运行的可信执行环境中,根据通信密钥公钥对应的通信密钥私钥对加密交易数据的第二加密数据进行解密处理,得到数据密钥,通信密钥私钥是目标区块链节点发送给业务处理节点的;
处理单元,还用于通过得到的数据密钥对加密交易数据的第一加密数据进行解密处理,得到待执行的目标业务数据;
处理单元,还用于根据业务合约对目标业务数据进行业务处理,得到业务执行结果。
在一种可能的实现方式中,处理单元根据业务合约对目标业务数据进行业务处理,得到业务执行结果,用于执行以下操作:
调用权限合约对发送加密交易数据的目标对象进行身份校验;
若针对目标对象的身份校验通过,则基于加密交易数据对应的业务合约所指示的业务处理逻辑,对目标业务数据进行业务处理,得到目标业务数据的业务执行结果;
其中,身份校验包括:权限校验、安全性校验、合法性校验中的任一种或多种。
在一种可能的实现方式中,处理单元根据业务合约对目标业务数据进行业务处理,得到业务执行结果之后,还用于执行以下操作:
基于数据密钥对目标业务数据的业务执行结果进行加密处理,得到加密后的业务执行结果;
基于可信执行环境的环境密钥对加密后的业务执行结果进行再次加密处理,得到目标业务数据对应的目标加密数据文件;
其中,目标加密数据文件存储至由业务处理节点运行的可信执行环境的环境密钥加密确定的加密数据库中。
在一种可能的实现方式中,当业务处理节点作为所述目标区块链节点时,获取针对目标业务数据的加密交易数据之前,处理单元还用于执行以下操作:
生成目标通信密钥,并基于临时通信密钥对目标通信密钥的通信密钥私钥进行加密处理,得到加密通信密钥,临时通信密钥是指业务处理节点与区块链中的任一业务接收节点之间进行通信的密钥;
将加密通信密钥发送至区块链中的各个业务接收节点,以使各个业务接收节点基于相应的临时通信密钥,对加密通信密钥进行解密处理后,得到通信密钥私钥;
将通信密钥私钥对应的通信密钥公钥进行上链处理。
在一种可能的实现方式中,处理单元还用于执行以下操作:
获取业务接收节点发送的第二远程认证文件,第二远程认证文件中携带有业务接收节点的第二节点公钥、以及目标随机数,第二远程认证文件是业务处理节点向业务接收节点发送远程认证请求后生成的;
根据第二远程认证文件,对业务接收节点进行远程认证处理;
在确定对业务接收节点远程认证通过后,基于业务处理节点的第一节点私钥、和第二节点公钥,利用密钥交换算法生成与业务接收节点之间进行通信的临时通信密钥。
在一种可能的实现方式中,处理单元还用于执行以下操作:
根据目标随机数和业务处理节点的第一节点公钥,生成第一远程认证文件;
将第一远程认证文件发送至业务接收节点,第一远程认证文件用于触发业务接收节点对业务处理节点进行远程认证处理,并在远程认证处理结果为认证通过后,生成与业务处理节点之间进行通信的临时通信密钥。
在一种可能的实现方式中,目标业务数据的目标加密数据文件存储于业务处理节点的加密数据库中;处理单元还用于执行以下操作:
获取针对目标业务数据的业务执行结果的数据查询请求,数据查询请求携带有查询对象的身份信息;
根据身份信息对查询对象进行权限验证,若权限验证通过,则响应于数据查询请求,并从业务处理节点的加密数据库中获取目标业务数据的目标加密数据文件;
根据目标加密数据文件生成查询加密数据,并向查询对象对应的客户端返回查询加密数据。
在一种可能的实现方式中,处理单元根据目标加密数据文件生成查询加密数据,用于执行以下操作:
基于可信执行环境的环境密钥对目标加密数据文件进行解密处理,得到待解密执行结果;
基于数据密钥对待解密执行结果进行解密处理,得到目标业务数据的业务执行结果;
基于对象合约获取查询对象的公钥,并基于查询对象的公钥加密目标业务数据的业务执行结果,得到查询加密数据。
在一种可能的实现方式中,处理单元还用于执行以下操作:
获取针对第一业务数据的数据读取请求、以及针对第二业务数据的数据写入请求;
响应于数据读取请求和数据写入请求,向业务处理节点的加密数据库中写入执行数据写入请求所指示的数据处理规则后得到的加密数据文件;以及,
从业务处理节点的加密数据库中读取数据读取请求所请求的加密数据文件。
在一种可能的实现方式中,区块链的创始块中被部署有***合约,部署好的***合约运行在各个区块链节点的可信执行环境中,***合约包括:密钥合约、对象合约、权限合约、存储合约中的任一个或多个;
其中,密钥合约:用于存储目标通信密钥的通信密钥私钥,目标通信密钥是指区块链中各个区块链节点所使用的统一的密钥;
对象合约:用于存储各个对象的公钥,任一个对象的公钥用于对请求查询的目标业务数据的业务执行结果进行加密处理;
权限合约:用于管理各个区块链节点的加密数据库的访问权限;
存储合约:用于负责向加密数据库中写入业务数据、以及从加密数据库中读取业务数据。
在一种可能的实现方式中,获取针对目标业务数据的加密交易数据之后,处理单元还用于执行以下操作:
将加密交易数据发送至区块链中的各个业务接收节点,以使各个业务接收节点对加密交易数据进行区块链共识,并得到共识结果;
接收各个业务接收节点返回的共识结果,并根据共识结果对加密交易数据进行上链处理;
其中,各个业务接收节点在确定对加密交易数据区块链共识通过后,在各自节点运行的可信执行环境中生成目标业务数据的目标加密数据文件;并且,各个业务接收节点的加密数据库中存储的目标加密数据文件是基于各自业务接收节点对应的可信执行环境的环境密钥确定的。
一方面,本申请实施例提供一种计算机设备,该计算机设备包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述的区块链数据处理方法。
一方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被计算机设备的处理器读取并执行时,使得计算机设备执行上述的区块链数据处理方法。
一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的区块链数据处理方法。
本申请实施例中,可以获取针对目标业务数据的加密交易数据,该加密交易数据包括:基于数据密钥对目标业务数据进行加密后得到的第一加密数据、基于目标通信密钥对数据密钥进行加密后得到的第二加密数据,且目标通信密钥是目标区块链节点发布到区块链中的通信密钥公钥;然后,在业务处理节点运行的可信执行环境中,根据通信密钥公钥对应的通信密钥私钥对加密交易数据的第二加密数据进行解密处理,得到数据密钥,上述通信密钥私钥是目标区块链节点发送给业务处理节点的。接下来,通过得到的数据密钥对加密交易数据的第一加密数据进行解密处理,得到待执行的目标业务数据;最后,根据业务合约对所述目标业务数据进行业务处理,得到业务执行结果。由此可见,在区块链交易过程中涉及到的交易数据是经过数据密钥加密后得到的,且该数据密钥也是经过加密的,使得区块链中的交易数据更加安全;并且,在可信执行环境中对加密交易数据进行解密处理时,首先可以基于通信密钥私钥解密得到数据密钥,然后基于数据密钥解密得到目标业务数据,这种双重加密的方式使得区块链交易更加安全、可靠。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术对象来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种区块链数据处理方案的原理示意图;
图2a是本申请实施例提供的一种区块链***的结构示意图;
图2b是本申请实施例提供的一种区块链的结构示意图;
图3a是本申请实施例提供的一种区块链数据处理***的架构示意图;
图3b是本申请实施例提供的一种区块链节点的架构示意图;
图4是本申请实施例提供的一种区块链数据处理方法的流程示意图;
图5a是本申请实施例提供的一种身份验证的场景示意图;
图5b是本申请实施例提供的一种业务合约的执行过程的流程示意图;
图6是本申请实施例提供的一种区块链数据处理方法的交互流程示意图;
图7是本申请实施例提供的一种生成目标通信密钥的流程示意图;
图8是本申请实施例提供的一种节点间远程认证的流程示意图;
图9是本申请实施例提供的一种远程认证原理的流程示意图;
图10是本申请实施例提供的一种数据查询方法的流程示意图;
图11是本申请实施例提供的一种区块链数据处理装置的结构示意图;
图12是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
本申请提供了一种区块链数据处理方案,该区块链数据处理方案实现了多主模式下的加密数据库***,支持对待交易的业务数据进行双重加密处理,使得各个区块链节点基于对应运行的可信执行环境的环境密钥,在各自的加密数据库中加密存储相应的业务数据,从而可以提高交易数据的安全性。
请参见图1,图1是本申请实施例提供的一种区块链数据处理方案的原理示意图。如图1所示,本申请提供的区块链数据处理方案的原理如下:用户可以在客户端所运行的可视化界面中输入待执行的目标业务数据。然后,基于数据密钥生成器为该目标业务数据生成对应的数据密钥,并基于该数据密钥加密目标业务数据,得到第一加密数据;另外,客户端可以从区块链中获取已发布的通信密钥公钥,然后基于该通信密钥公钥加密数据密钥,得到第二加密数据。然后在交易数据组装模块中将第一加密数据和第二加密数据组装成加密交易数据,该加密交易数据作为一笔交易被发送至区块链中。
那么,业务处理节点可以获取针对目标业务数据的加密交易数据;然后,在业务处理节点运行的可信执行环境中,调用密钥合约执行如下操作:根据通信密钥公钥对应的通信密钥私钥对加密交易数据的第二加密数据进行解密处理,得到数据密钥,上述通信密钥私钥是目标区块链节点发送给业务处理节点的。接下来,通过得到的数据密钥对加密交易数据的第一加密数据进行解密处理,得到待执行的目标业务数据;最后,根据业务合约对所述目标业务数据进行业务处理,得到业务执行结果。后续,可以将业务执行结果进行加密保存,所谓加密保存是指将业务执行结果基于可信执行环境的环境密钥进行加密处理后保存至业务处理节点的加密数据库中;可见,后续若需从业务处理节点的加密数据库中读取相应的业务执行结果时,则需要基于该业务处理节点的可信执行环境的环境密钥进行解密后,方可读取数据。可见,基于可信执行环境来执行和保存数据,可以避免数据被泄露,极大程度上保证了数据的安全性。
上述可知,本申请在区块链交易过程中涉及到的交易数据是经过数据密钥加密后得到的,且该数据密钥也是经过加密的,使得区块链中的交易数据更加安全;并且,在可信执行环境中对加密交易数据进行解密处理时,首先可以基于通信密钥私钥解密得到数据密钥,然后基于数据密钥解密得到目标业务数据,这种双重加密的方式使得区块链交易更加安全、可靠。
本申请主要涉及可信执行环境、区块链技术、以及云存储技术,接下来,结合相关附图对本申请所提供的区块链数据处理方案所涉及到的相关技术术语进行详细介绍:
一、可信执行环境:
可信执行环境(Trusted Execution Environment,TEE)是一种基于硬件的保护数据的可靠性计算方案。其主要通过软硬件方法在CPU(Central Processing Unit,中央处理器)中构建了一个安全区域,保证其内部加载的程序和数据在机密性与完整性上得到保护,TEE将***的硬件资源与软件资源划分成两个执行环境——可信部分与不可信部分(普通部分),这两个执行环境是相互隔离的,不可信部分无法访问可信部分的存储、内存。
举例来说,可信执行环境的常用实现技术可以包括:SGX(Software GuardExtensions,软件保护集扩展)技术。目前,典型的数据安全措施可能有助于保护静态数据和传输中的数据,但通常对内存中正在使用的数据无法提供充分保护,而SGX技术通过应用程序隔离技术可帮助保护内存中正在使用中的数据。具体地,SGX技术可通过保护特定代码和数据免遭修改,开发人员可以将其应用程序分成可信应用部分(Enclave,或称飞地)、以及不可信应用部分(普通程序),并通过应用程序隔离机制和基于硬件的鉴证来提高可信部分的数据隐私性和机密性。
本申请中,可以在可信执行环境中对加密交易数据进行解密处理、以及执行解密后的目标业务数据、并基于可信执行环境的环境密钥加密目标业务数据的执行结果,从而得到相应的加密数据文件。那么,每个区块链节点的加密数据库中所存储的加密数据文件均需在该区块链节点所运行的可信执行环境中进行解密处理后,方可获取相应的业务数据的执行结果,即各自区块链节点可安全维护基于各自环境密钥所加密的加密数据库,避免了数据库复制、重建所导致的数据泄漏等问题,从而保证了数据的安全性。
二、区块链技术:
区块链(Block chain)本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。具体地,本申请将分别对区块链***、以及区块链的结构等相关术语进行详细介绍。
(1)区块链***:
请参见图2a,图2a是本申请实施例提供的一种区块链***的结构示意图。如图2a所示,区块链***可以为数据共享***,所谓数据共享***是指用于进行节点与节点之间数据共享的***,该数据共享***100中可以包括多个节点201,多个节点201可以是指数据共享***中各个计算机设备,计算机设备例如可以为终端设备或服务器。其中,数据共享***100中的各个节点之间可以组成点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议,基于该TCP协议来维护上述数据共享***。
①节点之间的数据交互:
具体地,为了保证区块链***内的信息互通,区块链***中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。其中,上述的信息连接不限定具体的连接方式,例如可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其他连接方式,本申请在此不做限制。
另外,每个节点201在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该数据共享***内的共享数据。例如,当区块链***中的任一节点201接收到输入信息(例如接收到针对目标业务数据的加密交易数据),该节点201可以在业务处理节点运行的可信执行环境中对加密交易数据进行解密处理,得到数据密钥、以及待执行的目标业务数据;并根据数据密钥、以及可信执行环境的环境密钥对目标业务数据的执行结果进行加密处理,得到目标加密数据文件,并将该目标加密数据文件存储至该节点201所在的加密数据库中。后续,该节点201可以将加密交易数据广播至区块链***中的各个节点201,使得区块链***中全部节点201基于该加密交易数据,得到目标加密数据文件并存储至各个节点对应的加密数据库中,即使得区块链***中各个节点的加密数据库中存储的数据均一致。
可选地,任一节点201与另一节点201之间进行数据交互时,可基于任意两个节点家的临时通信密钥来交互数据,从而可以保证数据交互过程中的安全性和隐私性。另外,本申请中由各个区块链节点的加密数据库共同构成的数据库***可以为多主模式的数据库***。其中,所谓多主模式下的数据库***是指:数据库集群中的所有节点,都可以同时进行数据的读取操作、以及数据的写入操作,并且该区块线***中的各个节点都是平等的,任一个节点均可认为是主节点,通过这种方式可以使得当某一节点发生宕机等故障时,可以由其他节点正常提供对应的数据库功能,从而使得本申请提供的多主模式下的数据库***针对数据的管理更加灵活、便捷。
②节点的功能:
a、路由功能,区块链***中任一节点所具备的基本功能,用于支持节点之间的通信。例如,在某一节点201与另一节点201之间需进行数据交互之前,节点间可以基于路由功能实现远程认证,所谓远程认证是指用于验证对方的执行环境的安全性。具体地,在远程认证过程中,某一节点201可以与另一节点201之间基于节点的路由功能交互各自的公钥,并协商得到相互之间的临时通信密钥。
b、应用功能,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链***中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
基于此,本申请也可以基于节点的路由功能进行通信密钥的统一,使得区块链中各个节点均使用相同的通信密钥(即目标通信密钥);另外,可基于节点的应用功能将每笔待交易的加密交易数据按照相应的业务逻辑进行相应的业务处理,并将对应的执行结果写入至各个节点的加密数据库中。
③节点标识:
对于区块链***中的每个节点,均具有与其对应的节点标识,而且区块链***中的每个节点均可以存储有区块链***中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至区块链***中的其他节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。
其中,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息,表1中仅以IP地址为例进行说明。
表1.节点标识列表
可选的,每个节点具备唯一的节点标识,每个节点具备对应的加密数据库,那么每个节点的节点标识也可以作为相应节点的加密数据库的唯一标识。从而共同对外提供一个加密数据库***。
(2)区块的结构:
参见图2b,图2b是本申请实施例提供的一种区块链的结构示意图。如图2b所示,区块链由多个区块组成,且每个区块链均包含一个创始块,顾名思义,所谓创始块即第一个区块、初始区块。创始块中包括区块头和区块体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块体中存储有输入信息(例如加密交易数据);创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
在一种可能的实现方式中,本申请在区块链节点初次启动时,可以在创始块中部署***合约,该***合约例如可以包括:密钥合约、用户合约、权限合约、以及存储合约中的任一个或多个。基于这种方式,即可使得在后续区块链交易中,每次新生成的区块均可以获取到上述***合约,并支持本申请提供的区块链数据处理方案,并基于部署的***合约以支持各个区块链节点的加密数据库的功能。从而使得各个区块链节点中所存储的相应业务数据具备不可篡改、可追溯、共同维护等特征,保证了业务数据的完整性和可靠性。
三、人工智能技术:
人工智能(Artificial Intelligence,AI)技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互***、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本申请的区块链数据处理方案中,区块链中涉及较多的合约云计算服务、以及数据存储服务,大量的数据计算以及数据存储服务需要花费大量的计算机运营成本。因此,本申请可以涉及人工智能技术中的云计算技术、以及分布式存储技术;具体地,本申请所涉及到的目标业务数据可以由人工智能技术中的云计算技术进行合约执行,并得到目标业务数据的执行结果;另外,还可以基于人工智能技术中的分布式存储技术将目标业务数据的执行结果加密处理后得到的加密数据文件分别存储至各个区块链节点所在的加密数据库中,从而实现各个区块链节点的分布式存储,从而构成一个分布式存储的加密数据库***。通过这种方式,可以将各个区块链节点单独作为一个加密数据库;并基于各个区块链节点的一致性,可以保证各个加密数据库***的一致性,从而共同维护一个分布式存储的加密数据库***。
特别需要说明的是,在本申请的后续具体实施方式中,涉及到对象信息等相关数据,当本申请以上实施例运用到具体产品或技术中时,需要获得对象许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
结合上述对本申请提供的区块链数据处理方案和所涉及到的相关技术术语的描述,接下来,结合图3a-图3b对本申请实施例提供的区块链数据处理***的架构进行具体介绍。
请参见图3a,图3a是本申请实施例提供的一种区块链数据处理***的架构示意图。该区块链数据处理***的架构图中至少可以包括:终端设备301、业务处理节点302、目标区块链节点303、业务接收节点304。其中,业务处理节点302、目标区块链节点303、业务接收节点304均为区块链中的节点,共同构成区块链***。并且,终端设备301可以与区块链***中的任一节点(业务处理节点302、目标区块链节点303、或者业务接收节点304)之间通过有线或者无线的方式建立通信连接。
接下来,对上述区块链数据处理***中的各个设备的主要功能进行相应介绍:
①终端设备301用于负责生成用于交易的加密交易数据,并向区块链中的相应节点(例如业务处理节点302)发送该加密交易数据,该终端设备301例如可以为去中心化应用(Decentralized Application,DAPP)客户端。②业务处理节点302用于负责加密交易数据的解密处理、以及业务执行等操作。③目标区块链节点303可以为区块链中的创世节点,可用于负责生成各个区块链节点之间相互通信的目标通信密钥,并将该目标通信密钥的公钥(通信密钥公钥)发布至区块链中;以及,将该目标通信密钥的私钥(通信密钥私钥)发送给区块链中的各个节点。可选的,业务处理节点302和目标区块链节点303可以为相同的节点、也可以为不同的节点。④业务接收节点304用于接收业务处理节点发送的加密交易数据,并可对该加密交易数据进行共识处理。
上述所提及的终端设备301、业务处理节点302、目标区块链节点303、业务接收节点304可以是包括但不限于:手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(MID,mobile internet device)、智能语音交互设备、车载终端、路边设备、飞行器、可穿戴设备、智能家电、或者例如智能手表、智能手环、计步器等具有区块链数据处理功能的可穿戴设备,等等。
上述所提及的终端设备301、业务处理节点302、目标区块链节点303、业务接收节点304也可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,等等。
在一种可能的实现方式中,以终端设备301、业务处理节点302和目标区块链节点303为例,对本申请的区块链数据处理方案再次进行阐述。具体地,终端设备301可以基于数据密钥对目标业务数据进行加密后得到的第一加密数据、以及基于目标通信密钥对数据密钥进行加密后得到的第二加密数据,目标通信密钥是目标区块链节点发布到区块链中的通信密钥公钥,终端设备301可以从区块链中获得该通信密钥公钥。然后,终端设备301根据第一加密交易数据和第二加密交易数据,生成针对目标业务数据的加密交易数据,并将该加密交易数据发送至业务处理节点302。业务处理节点302可以在运行的可信执行环境中,根据通信密钥公钥对应的通信密钥私钥对加密交易数据的第二加密数据进行解密处理,得到数据密钥,通信密钥私钥是目标区块链节点303发送给业务处理节点的。业务处理节点302通过得到的数据密钥对加密交易数据的第一加密数据进行解密处理,得到待执行的目标业务数据。最后,业务处理节点302根据业务合约对目标业务数据进行业务处理,得到业务执行结果。
进一步地,该业务执行结果可以基于可信执行环境的环境密钥进行加密处理后,存储至业务处理节点302的加密数据库中。后续,终端设备301还可以向业务处理节点302请求该目标业务数据的业务执行结果。
请参见图3b,图3b是本申请实施例提供的一种区块链节点的架构示意图。如图3b所述,在区块链节点中,可以对合约虚拟机进行代码重构,使它成为一个可信执行环境,并使用可信执行环境的数据密封功能对数据进行加密存储,并仅限于此CPU中使用数据时进行解密。也就是说,本申请实施例的区块链数据处理***可以对外提供一个多主模式的加密数据库***。具体地,各个区块链节点均可对应一个加密数据库,该加密数据库是由对应区块链节点运行的可信执行环境的唯一环境密钥进行加密后维护的,各个区块链节点是平等的,不区分主节点和被节点,那么基于本申请可以提供一个多主模式下的加密数据库***。所谓多主模式下的加密数据库***至少可以具备如下优点:
1、无论是数据读取还是数据写入操作,都具有可扩展性;即查询对象可以向区块链中的任一区块链节点查询相应的业务数据;
2、具备高可用性,主要体现在***执行升级和修补等维护任务时,不会产生任何停机等故障;
3、由于所有区块链节点一直都处于活跃且被使用的状态,因此它们在资源利用率方面具有较高的成本效益。
可以理解的是,本申请实施例描述的区块链数据处理***是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术对象可知,随着***架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
基于前述对本申请区块链数据处理方案和区块链数据处理***的相关描述,接下来将结合附图对区块链数据处理方案所涉及的具体实施例进行详细描述。
请参见图4,图4是本申请实施例所提供的一种区块链数据处理方法的流程示意图。该方法应用于图3a所示的区块链数据处理***中的业务处理节点(可以为终端设备或服务器)。其中,该区块链数据处理方法主要包括但不限于如下步骤S401~S404:
S401:获取针对目标业务数据的加密交易数据,加密交易数据包括:基于数据密钥对目标业务数据进行加密后得到的第一加密数据、基于目标通信密钥对数据密钥进行加密后得到的第二加密数据。
本申请实施例中,目标通信密钥是目标区块链节点发布到区块链中的通信密钥公钥。其中,目标区块链节点可以为创世节点或出块节点,用于负责生成目标通信密钥,并将该目标通信密钥的公钥(通信密钥公钥)发送至区块链中,以供各个区块链节点均可基于该目标通信密钥进行相互通信;并且,目标区块链节点可以和业务处理节点为同一节点,目标区块链节点也可以和业务处理节点为不同的节点。
其中,数据密钥可以是利用密钥生成器生成的密钥,且不同的业务数据可以对应不同的数据密钥,例如该数据密钥可以是由密钥生成器根据目标业务数据的业务参数生成的;又如该数据密钥可以是由密钥生成器随机生成的,本申请对数据密钥的生成方式不做具体限定。
另外,本申请中所提及的各个密钥均可以包括公钥和私钥,其中,公钥用于数据加密处理,私钥用于数据解密处理。具体地,第一加密数据可以是基于数据密钥的公钥(可简称为数据公钥)对目标业务数据进行加密后得到的;第二加密数据可以是基于目标通信密钥的公钥(可简称为通信密钥公钥)对数据密钥进行加密后得到的。
在一种可能的实现方式中,加密交易数据中还携带有目标对象(即发送加密交易数据的对象)的身份信息。业务处理节点可以根据目标对象的身份信息对目标对象进行身份验证,若确定对目标对象的身份验证通过,则触发执行下述步骤S402。其中,所谓身份验证可以包括:安全性验证、合法性验证中的任一种或多种。通过这种方式,可以提高区块链交易过程的可靠性、安全性。
举例来说,请参见图5a,图5a是本申请实施例提供的一种身份验证的场景示意图。如图5a所示,业务处理节点在获取目标对象的身份信息之前,需要向该目标对象发送授权请求,该授权请求用于请求目标对象的授权,当目标对象同意授权后,方可获取到目标对象的身份信息。举例来说,目标对象所使用的终端设备在获取到业务处理节点发送的授权请求后,可以在终端设备中显示界面S500,该界面S500中显示有提示目标对象是否确定授权的提示信息,并且设有确认控件501和拒绝控件502,若目标对象点击确认控件501,则代表目标对象同意授权,若目标对象点击拒绝控件502,则代表目标对象拒绝授权。通过这种方式,可以保证目标对象的身份信息的安全性,避免身份信息被泄露。
S402:在业务处理节点运行的可信执行环境中,根据通信密钥公钥对应的通信密钥私钥对加密交易数据的第二加密数据进行解密处理,得到数据密钥。
具体地,通信密钥私钥是目标区块链节点发送给业务处理节点的,目标通信密钥可以包括通信密钥公钥和通信密钥私钥。其中,通信密钥公钥是目标区块链节点发布到区块链中的;通信密钥私钥是目标区块链节点发送给业务处理节点的。可选的,若业务处理节点为目标区块链节点,则通信密钥私钥是业务处理节点自身生成的。由前述可知,公钥用于数据加密,私钥用于数据解密,那么本申请实施例中,业务处理节点可以根据通信密钥公钥对应的通信密钥私钥对加密交易数据的第二加密数据进行解密处理,得到数据密钥。
S403:通过得到的数据密钥对加密交易数据的第一加密数据进行解密处理,得到待执行的目标业务数据。
具体地,数据密钥可以包括数据公钥和数据私钥。其中,第一加密数据是基于数据公钥加密后得到的,那么可以基于数据公钥对应的数据私钥对第一加密数据进行解密处理,得到待执行的目标业务数据。
S404:根据业务合约对目标业务数据进行业务处理,得到业务执行结果。
在一种可能的实现方式中,业务处理节点根据业务合约对目标业务数据进行业务处理,得到业务执行结果,可以包括:调用权限合约对发送加密交易数据的目标对象进行身份校验;若针对目标对象的身份校验通过,则基于加密交易数据对应的业务合约所指示的业务处理逻辑,对目标业务数据进行业务处理,得到目标业务数据的业务执行结果。其中,身份校验包括:权限校验、安全性校验、合法性校验中的任一种或多种。
具体来说,所谓权限校验可以包括校验该目标对象是否具备访问数据的权限、或者校验该目标对象是否具备区块链数据的交易权限。若具备,则确定对该目标对象的权限校验通过。后续,即可调用相应的业务合约执行该目标业务数据,得到业务执行结果。接下来,结合附图对如何基于业务合约执行该目标业务数据,得到业务执行结果的具体过程进行详细介绍:
请参见图5b,图5b是本申请实施例提供的一种业务合约的执行过程的流程示意图。如图5b所示,该业务合约的执行过程可以包括如下步骤S1-S6:
S1、触发合约。
具体实现时,业务处理节点可以从目前待处理的交易池中获取排序靠前的交易(加密交易数据),然后在可信执行环境中对该加密交易数据中的第一加密数据和第二加密数据依次进行解密,得到目标业务数据,然后基于该目标业务数据触发调用其相应的业务合约。
S2、分析交易。
具体实现时,业务处理节点的合约虚拟机分析该目标业务数据的业务内容,获取目标业务数据所调用的合约名、合约方法、以及合约输入等信息。
S3、载入合约的存储信息和合约的字节码。
具体实现时,合约虚拟机从交易和状态数据库中获取相应的合约字节码和合约输入。
S4、执行合约。
具体实现时,业务合约的合约代码在合约虚拟机中执行,完成对应目标业务数据的业务逻辑,得到该目标业务数据的业务执行结果。
S5、返回结果更新状态数据库。
具体实现时,合约虚拟机将目标业务数据的业务执行结果写回到状态数据库中,完成业务状态的更新。
S6、制作默克尔树树根,存储在区块中。
具体实现时,当区块中的所有交易都已执行时,***会将状态数据库的当前状态的哈希摘要作为认证记录存储在区块链中。
基于图4所示的业务数据的合约执行过程方式,本申请中是在各个区块链节点(业务处理节点)运行的可信执行环境中执行的目标业务数据,可以保证业务数据的执行过程更加可靠、安全,从而得到的业务执行结果也更加安全。
在一种可能的实现方式中,业务处理节点根据业务合约对目标业务数据进行业务处理,得到业务执行结果之后,还可以执行以下步骤:首先,基于数据密钥对目标业务数据的业务执行结果进行加密处理,得到加密后的业务执行结果;然后,基于可信执行环境的环境密钥对加密后的业务执行结果进行再次加密处理,得到目标业务数据对应的目标加密数据文件。
其中,该目标加密数据文件存储至由业务处理节点运行的可信执行环境的环境密钥加密确定的加密数据库中。另外,所谓可信执行环境的环境密钥是指由可信执行环境的唯一的硬件密钥衍生得到的密钥,例如可以由该硬件密钥进行哈希运算后,得到环境密钥。通过这种方式,利用可信执行环境的数据密封能力使数据离开本CPU无法解密,可以确保数据安全性,杜绝加密数据库的拷贝、复制、以及域外重建等不良操作。
本申请实施例中,可以获取针对目标业务数据的加密交易数据,该加密交易数据包括:基于数据密钥对目标业务数据进行加密后得到的第一加密数据、基于目标通信密钥对数据密钥进行加密后得到的第二加密数据,且目标通信密钥是目标区块链节点发布到区块链中的通信密钥公钥;然后,在业务处理节点运行的可信执行环境中,根据通信密钥公钥对应的通信密钥私钥对加密交易数据的第二加密数据进行解密处理,得到数据密钥,上述通信密钥私钥是目标区块链节点发送给业务处理节点的。接下来,通过得到的数据密钥对加密交易数据的第一加密数据进行解密处理,得到待执行的目标业务数据;最后,根据业务合约对所述目标业务数据进行业务处理,得到业务执行结果。由此可见,在区块链交易过程中涉及到的交易数据是经过数据密钥加密后得到的,且该数据密钥也是经过加密的,使得区块链中的交易数据更加安全;并且,在可信执行环境中对加密交易数据进行解密处理时,首先可以基于通信密钥私钥解密得到数据密钥,然后基于数据密钥解密得到目标业务数据,这种双重加密的方式使得区块链交易更加安全、可靠。
请参加图6,图6是本申请实施例提供的一种区块链数据处理方法的交互流程示意图。如图6所示,该区块链数据处理方法的交互流程图可以由客户端(即发起加密交易数据的目标对象所在的客户端)、业务处理节点、以及业务接收节点共同执行。其中,该区块链数据处理方法主要包括但不限于如下步骤S601~S611:
S601:客户端基于数据密钥加密目标业务数据,得到第一加密数据。
具体实现时,客户端可以基于密钥生成器来生成数据密钥。例如,可以利用密钥生成器基于目标业务数据的业务参数来生成数据密钥;又如,可以利用密钥生成器为目标业务数据随机生成数据密钥。然后,客户端可以基于生成的数据密钥加密目标业务数据,得到第一加密数据。其中,数据密钥可以包括数据公钥和数据私钥,数据公钥用于加密目标业务数据;数据私钥用于解密第一加密数据。
S602:客户端基于通信密钥公钥加密数据密钥,得到第二加密数据。
在一种可能的实现方式中,客户端可以从区块链中获取通信密钥公钥,该通信密钥公钥是由目标区块链节点发布至区块链中的。然后,客户端基于获取得到的通信密钥公钥加密数据密钥,得到第二加密数据。其中,通信密钥公钥是指由目标区块链节点生成的目标通信密钥中的公钥,例如,目标区块链节点可以为创世节点或出块节点。接下来,针对目标区块链节点如何生成目标通信密钥的具体流程进行详细说明。
在一种可能的实现方式中,为了保证区块链中的各个区块链节点可以解密相同的加密交易数据,本申请实施例需要为各个区块链节点统一相同的通信密钥。请参见图7,图7是本申请实施例提供的一种生成目标通信密钥的流程示意图,该目标通信密钥的生成流程可以由业务处理节点和业务接收节点共同执行,此处的业务处理节点可以作为目标区块链节点(创世节点或出块节点)。如图7所示,生成目标通信密钥的具体流程可以包括如下步骤S001-S005:
S001:业务处理节点生成目标通信密钥。
其中,目标通信密钥uck(K,k)可以包括:通信密钥私钥(k)和通信密钥公钥(K)。
S002:业务处理节点对目标通信密钥进行加密处理,得到加密通信密钥。
具体地,业务处理节点基于临时通信密钥ck对目标通信密钥的通信密钥私钥uck进行加密处理,得到加密通信密钥suck。其中,临时通信密钥是指业务处理节点与区块链中的任一业务接收节点之间进行通信的密钥。
S003:业务处理节点将加密通信密钥发送至业务接收节点。
S004:业务接收节点解密加密通信密钥,得到通信密钥公钥。
具体地,业务接收节点可以基于与业务处理节点间的临时通信密钥解密加密通信密钥,得到通信密钥公钥。
S005:业务处理节点将通信密钥私钥对应的通信密钥公钥进行上链处理。
后续,目标对象所在的客户端可以向区块链中的任一节点(例如业务处理节点)发送密钥获取请求,然后业务处理节点可以响应于该密钥获取请求,将通信密钥公钥发送至客户端。以使客户端可以基于该通信密钥公钥加密数据密钥,得到第二加密数据。
需要说明的是,上述所提及的临时通信密钥是在节点间进行远程认证的过程中生成的。其中,区块链中任意两个节点(例如业务处理节点和业务接收节点)在交互信息之前,需要进行节点间的远程认证,所谓节点间的远程认证具体包括:业务处理节点对业务接收节点的执行环境的安全性验证、以及业务接收节点对业务处理节点的执行环境的安全性验证;也就是说,节点间远程认证是指相互之间的执行环境的验证。
接下来,本申请具体可以针对业务处理节点和业务接收节点之间进行远程认证的详细过程进行说明。请参见图8,图8是本申请实施例提供的一种节点间远程认证的流程示意图。如图8所示,如图8所示,上述提及远程认证过程可以包括如下步骤S101-S110:
S101:业务处理节点在创始块中部署***合约。
具体实现时,为了支持本申请实施例中各个区块链节点的加密数据库的基本功能,业务处理节点可以在区块链的创始块中部署***合约。该部署好的***合约可以运行在各个区块链节点(例如业务处理节点、业务接收节点、目标区块链节点等多个节点)的可信执行环境中。该***合约可以包括:密钥合约、对象合约、权限合约、存储合约中的任一个或多个。例如,部署的***合约的具体内容(合约名称、以及合约功能)可以如下表2所示:
表2.***合约的合约名称和合约功能
①密钥合约:用于存储目标通信密钥的私钥(即通信密钥私钥),目标通信密钥是指区块链中各个区块链节点所使用的统一的密钥,基于该目标通信密钥即可保证区块链中的各个区块链节点可以解密相同的加密交易数据。
②对象合约:用于存储各个对象(例如目标对象、查询对象等)的公钥,任一个对象的公钥用于对请求查询的业务数据进行加密处理,以避免所请求的数据被其他对象窃取。
③权限合约:用于管理加密数据库的访问权限,默认没有数据库管理对象,即没有可以访问所有数据的管理对象。另外,数据库管理对象可以撤销或更改,此功能可以用于区块链节点的监管需求。
④存储合约:负责数据(例如目标业务数据的目标加密文件)的存储和读取,默认只有数据所有者可以访问自身的数据,同时可授权其他查询对象访问自身的数据。当查询对象请求查询数据时,在获取到相应的待查询的业务数据后,可以调用上述对象合约获取该查询对象的公钥,并基于该查询对象的公钥加密获取到的业务数据后返回给查询对象的客户端。
S102:业务处理节点生成第一初始通信密钥。
其中,业务处理节点生成的第一初始通信密钥(A,a)可以包括第一初始通信公钥A和第一初始通信私钥a。
S103:业务处理节点向业务接收节点发送远程认证请求。
S104:业务接收节点获取第二初始通信密钥,生成第二远程认证文件。
具体地,远程认证请求可以包括业务处理节点的节点标识,业务接收节点在接收到远程认证请求后,可以根据节点标识对业务处理节点进行安全性校验、以及合法性校验,当上述校验均通过,则业务接收节点响应于该远程认证请求,并生成第二初始通信密钥(B,b),该第二初始通信密钥(B,b)可以包括第二初始通信公钥B和第二初始通信私钥b。后续,业务接收节点可以根据第二初始通信公钥B和目标随机数H,生成第二远程认证文件。
S105:业务接收节点将第二远程认证文件发送至业务处理节点。
S106:业务处理节点根据第二远程认证文件,对业务接收节点进行远程认证处理。
可以理解的是,所谓远程认证的目标是让硬件实体、或者硬件和软件的组合获得远程服务提供商的信任,以便服务提供商可以放心地向客户端提供所请求的加密数据。其中,远程认证所涉及到的软件可以包括:节点应用程序的enclave,以及Quoting Enclave(QE)和Provisioning Enclave(PvE)。具体地,远程认证主要是为了验证以下几个方面:节点应用程序的身份、节点应用程序的完整性(未被篡改)、以及节点应用程序是否在启用SGX的平台上的飞地(Enclave)内安全运行。接下来,针对如何进行远程认证的具体过程进行详细说明:
请参见图9,图9是本申请实施例提供的一种远程认证原理的流程示意图。如图9所示,远程认证所涉及到的平台可以包括:(1)服务端(server,挑战者/服务提供者);(2)客户端,包括:不可信应用程序(application)、可信应用程序(enclave)及QE(quotingenclave);(3)认证服务(Intel Attestation Service,IAS)用于验证远程认证报告(可以包括第一远程认证文件和第二远程认证文件)。基于此,本申请实施例中,上述服务端可以为业务处理节点,客户端可以为业务接收节点;那么远程认证的具体流程如下:
1、可信应用程序enclave向远程服务提供者(server)发送一个初始请求,该初始请求包括客户端声称当前是其成员的EPID(Enhanced Privacy Identification,增强的隐私标识)组。
1.1如果服务提供者希望为所声明的EPID组内成员提供远程服务,则可以向IAS请求更新的SigRL。
1.2然后,服务提供者构造一个challenge message(挑战消息),该挑战消息由:SPID(service providers profile identifiers,服务提供者标识)、动态随机nonce(随机数)、更新的SigRL、以及一个可选的basename参数(伪匿名签名参数)组成。
2、应用程序将challenge message(挑战消息)传递给可信应用程序enclave。
3、如果可信应用程序enclave支持初始请求的签名模式,则可以调用EREPORT指令来创建一个针对平台QE的本地可验证REPORT消息。为了在可信应用程序enclave和服务提供者之间建立经过身份验证的安全通道,可以将新生成的临时公钥添加到REPORT的用户数据字段中。
4、应用程序将REPORT消息和challenge message(挑战消息)均传递给QE。
5、QE调用EGETKEY指令(Enclave使用此指令访问平台提供的不同密钥,每个密钥可以实现不同的操作(例如密封、安全认证))来获取REPORT KEY并验证REPORT消息,判断该enclave是否运行于同一平台。如果成功,QE将再次调用EGETKEY指令来接收平台的Provisioning Seal Key,这个key用来解密平台的远程认证密钥(EPID私钥)
5.1上述所提及的远程认证密钥先是用来根据签名模式对challenge message的basename参数、或者一个随机值来签名生成一个签名的标识符。如果使用的是非随机的basename,则签名是伪匿名,否则是全匿名的。
5.2然后使用认证密钥计算平台身份签名(MRENCLAVE)上的两个知识签名:第一个证明身份签名是由可信执行环境认证的密钥签署的;第二种是一个不可撤销的证明,它证明用于身份签名的密钥没有在challenged message的SigRL中列出。
5.3然后使用IAS的公钥(在QE中是硬编码的)生成并加密最终的QUOTE,并将结果发送回应用程序。QUOTE包含认证enclave的身份、执行模式细节(例如SVN级别)和其他数据。
6、应用程序将QUOTE转发给SP服务提供者来进行验证。
7、由于QUOTE是加密的,它只能由可信执行环境来验证。因此,服务提供者只是将QUOTE转发给IAS进行验证。
8、IAS在接收到加密的QUOTE后,首先可以根据QUOTE的身份签名验证其EPID证明,从而检查QUOTE。
8.1然后,验证这个平台没有在Priv-RL这个撤销列表中列出,通过计算撤销列表中每个私钥对Quote的basename签名,并验证这些签名均不等于Quote的身份签名,从而验证平台未在Priv-RL组中列出。这完成了平台的有效性检查。
8.2接下来,IAS创建一个新的远程认证报告作为对服务提供者(服务端)的响应。其中,该远程认证报告包括平台为认证enclave生成的QUOTE结构。
应当理解的是,远程认证报告可以用于:确认飞地(enclave)作为一个真正的SGX处理器上运行一个特定的代码片段。然后,服务提供者负责验证ISV enclave标识,并向平台提供适当的响应。即当服务端(业务处理节点)对客户端(业务接收节点)进行远程认证通过后,可以向业务接收节点发送远程认证成功的通知消息。
S107:业务处理节点进行密钥交换处理,生成临时通信密钥。
具体地,业务处理节点可以基于密钥交换算法进行密钥交换处理,生成针对业务处理节点和业务接收节点之间的临时通信密钥。例如,基于密钥交换算法的原理,根据第一初始通信私钥a、以第二初始通信公钥B,生成临时通信密钥ck。
S108:业务处理节点向业务接收节点发送第一远程认证文件。
具体地,业务处理节点在接收到业务接收节点发送的第二远程认证文件后,可以根据第二远程认证文件中的目标随机数H、以及第一初始通信公钥A,生成第一远程认证文件,并将该第一远程认证文件发送至业务接收节点。
S109:业务接收节点根据第一远程认证文件,对业务处理节点进行远程认证处理。
需要说明的是,“业务接收节点根据第一远程认证文件,对业务处理节点进行远程认证处理”的详细步骤,具体可以参考上述步骤S106中“业务处理节点根据第二远程认证文件,对业务接收节点进行远程认证处理”的相关步骤,本申请实施例在此不再赘述。
S110:业务接收节点进行密钥交换处理,生成临时通信密钥。
具体地,业务接收节点可以基于密钥交换算法进行密钥交换处理,生成针对业务处理节点和业务接收节点之间的临时通信密钥。例如,基于密钥交换算法的原理,根据第二初始通信私钥b、以第一初始通信公钥A,生成临时通信密钥ck。后续,该临时通信密钥ck可用于获取目标通信密钥。
基于此,在节点间进行信息交互前,可以基于远程认证方式相互验证对方节点的执行环境的安全性,可以使得节点间的信息交互更加安全、可靠;另外,在远程认证过程中,还可以生成节点间的临时通信密钥,该临时通信密钥可用于后续统一各个区块链节点的目标通信密钥,以使各个区块链节点可以解密相同的目标加密交易数据。
S603:客户端基于第一加密数据和第二加密数据,生成加密交易数据。
具体实现时,客户端基于第一加密数据和第二加密数据,生成加密交易数据,具体可以包括:在客户端运行的交易请求组装模块中将第一加密数据和第二加密数据组装为加密交易数据。
S604:客户端将加密交易数据发送给业务处理节点。
S605:业务处理节点将加密交易数据发送给业务接收节点。
具体实现时,首先,业务处理节点将加密交易数据发送至区块链中的各个业务接收节点,以使各个业务接收节点对加密交易数据进行区块链共识,并得到共识结果。然后,业务处理节点接收各个业务接收节点返回的共识结果,并根据共识结果对加密交易数据进行上链处理。其中,各个业务接收节点在确定对加密交易数据区块链共识通过后,在各自节点运行的可信执行环境中生成目标业务数据的目标加密数据文件;并且,各个业务接收节点的加密数据库中存储的目标加密数据文件是基于各自业务接收节点对应的可信执行环境的环境密钥确定的。
需要说明的是,任一业务接收节点根据加密交易数据生成目标业务数据的目标加密数据文件的具体过程如下:①在任一业务接收节点运行的可信执行环境中,根据通信密钥公钥对应的通信密钥私钥对加密交易数据的第二加密数据进行解密处理,得到数据密钥;②通过得到的数据密钥对加密交易数据的第一加密数据进行解密处理,得到待执行的目标业务数据;③根据业务合约对目标业务数据进行业务处理,得到业务执行结果;④基于数据密钥对目标业务数据的业务执行结果进行加密处理,得到加密后的业务执行结果;⑤基于可信执行环境的环境密钥对加密后的业务执行结果进行再次加密处理,得到目标业务数据对应的目标加密数据文件。其中,上述每个步骤的详细过程具体可以参考本申请图4实施例中相关步骤所涉及的具体过程,本申请实施例在此不再赘述。
基于此,本申请实施例的区块链数据处理***可以对外提供一个多主模式的加密数据库***。具体地,各个区块链节点均可对应一个加密数据库,该加密数据库是由对应区块链节点运行的可信执行环境的唯一环境密钥进行加密后维护的,各个区块链节点是平等的,不区分主节点和被节点,那么基于本申请可以提供一个多主模式下的加密数据库***。
S606:业务处理节点接收业务接收节点发送的共识结果。
S607:业务处理节点根据共识结果对加密交易数据进行上链处理。
具体实现时,共识结果可以包括共识通过和共识不通过,所谓区块链共识可以验证加密交易数据的合法性、有效性、安全性,通过这种方式,每次区块链交易的加密交易数据均是由各个区块链节点之间通过共识的,可以保证加密交易数据的可靠性。其中,业务处理节点接收各个业务接收节点发送的共识结果后,若确定共识结果为共识通过的节点数量大于预设数量阈值,则业务处理节点对加密交易数据进行上链处理。
S608:在业务处理节点运行的可信执行环境中,根据通信密钥公钥对应的通信密钥私钥对加密交易数据的第二加密数据进行解密处理,得到数据密钥。
具体地,通信密钥私钥是目标区块链节点发送给业务处理节点的,目标通信密钥可以包括通信密钥公钥和通信密钥私钥。其中,通信密钥公钥是目标区块链节点发布到区块链中的;通信密钥私钥是目标区块链节点发送给业务处理节点的。可选的,若业务处理节点为目标区块链节点,则通信密钥私钥是业务处理节点自身生成的。由前述可知,公钥用于数据加密,私钥用于数据解密,那么本申请实施例中,业务处理节点可以根据通信密钥公钥对应的通信密钥私钥对加密交易数据的第二加密数据进行解密处理,得到数据密钥。
S609:通过得到的数据密钥对加密交易数据的第一加密数据进行解密处理,得到待执行的目标业务数据。
具体地,数据密钥可以包括数据公钥和数据私钥。其中,第一加密数据是基于数据公钥加密后得到的,那么可以基于数据公钥对应的数据私钥对第一加密数据进行解密处理,得到待执行的目标业务数据。
S610:根据业务合约对目标业务数据进行业务处理,得到业务执行结果。
在一种可能的实现方式中,业务处理节点根据业务合约对目标业务数据进行业务处理,得到业务执行结果,可以包括:调用权限合约对发送加密交易数据的目标对象进行身份校验;若针对目标对象的身份校验通过,则基于加密交易数据对应的业务合约所指示的业务处理逻辑,对目标业务数据进行业务处理,得到目标业务数据的业务执行结果。其中,身份校验包括:权限校验、安全性校验、合法性校验中的任一种或多种。
需要说明的是,本申请步骤S610中如何执行目标业务数据,得到业务执行结果的具体过程详细可参见上述实施例中图6所示的业务合约的执行过程,本申请实施例在此不再赘述。
S611:业务处理节点加密保存业务执行结果对应的目标加密文件。
在一种可能的实现方式中,业务处理节点加密保存业务执行结果对应的目标加密文件的具体过程可以包括:首先,基于数据密钥对目标业务数据的业务执行结果进行加密处理,得到加密后的业务执行结果;然后,基于可信执行环境的环境密钥对加密后的业务执行结果进行再次加密处理,得到目标业务数据对应的目标加密数据文件。
同理,上述各个业务接收节点得到的目标加密文件也可以存储至由相应业务接收节点运行的可信执行环境的环境密钥确定的加密数据库中。通过这种方式,利用可信执行环境的数据密封能力使数据离开本CPU无法解密,可以确保数据安全性,杜绝加密数据库的拷贝、复制、以及域外重建等不良操作。
可以理解的是,基于本申请实施例上述步骤提供的多主模式下的加密数据库***,本申请后续还可以支持向该加密数据库***发起数据查询操作。具体地,可以向任一区块链节点的加密数据库发起数据查询操作,从而查询目标业务数据在进行区块链交易的业务执行结果。接下来,以查询对象向业务处理节点发起数据查询操作为例,针对如何进行数据查询的具体步骤进行详细说明:
请参见图10,图10是本申请实施例提供的一种数据查询方法的流程示意图。如图10所示,该数据查询方法可以由业务处理节点执行,且该数据查询方法的详细流程可以包括如下步骤S1001-S1003:
S1001:获取针对目标业务数据的业务执行结果的数据查询请求,数据查询请求携带有查询对象的身份信息。
具体实现时,数据查询请求用于请求查询目标业务数据的业务执行结果,该数据查询请求中可以携带有目标业务数据的目标业务标识、以及查询对象的身份信息。需要说明的是,获取该查询对象的身份信息之前,需要请求查询对象的许可与授权,如图5a所示,从而可以保证查询对象的身份信息不被泄露。
S1002:根据身份信息对查询对象进行权限验证,若权限验证通过,则响应于数据查询请求,并从业务处理节点的加密数据库中获取目标业务数据的目标加密数据文件。
具体地,若查询对象为向区块链发送加密交易数据的目标对象,则可以确定权限验证通过;若查询对象为目标对象所设置的具备查询权限的对象,则也可以确定权限验证通过。可选的,加密数据库中存储的各个加密数据文件可以按照相应业务数据的业务标识关联存储,例如业务处理节点的加密数据库的存储格式如下表3所示:
表3.业务处理节点的加密数据库的存储格式
业务数据的业务标识 | 加密数据文件 |
X1 | Y1 |
X2 | Y2 |
X3 | Y3 |
由上述表3可见,业务处理节点响应于数据查询请求后,可以根据目标业务标识(例如X1)从业务处理节点的加密数据库获取与该目标业务标识X1相匹配的目标加密数据文件Y1。
S1003:根据目标加密数据文件生成查询加密数据,并向查询对象对应的客户端返回查询加密数据。
具体实现时,业务处理节点根据目标加密数据文件生成查询加密数据,具体可以包括:首先,基于可信执行环境的环境密钥对目标加密数据文件进行解密处理,得到待解密执行结果;然后,基于数据密钥对待解密执行结果进行解密处理,得到目标业务数据的业务执行结果;最后,基于对象合约获取查询对象的公钥,并基于查询对象的公钥加密目标业务数据的业务执行结果,得到查询加密数据。
由此可见,在数据查询时,若需从业务处理节点的加密数据库中获取目标加密数据文件,则只能由该业务处理节点的可信执行环境的环境密钥方可解密获取,也就是说,本申请中无论是从哪个区块链节点的加密数据库中获取查询数据,均需由对应节点当前运行的可信执行环境的环境密钥来解密,而各个区块链节点的环境密钥是唯一的,所以极大程度上保证了查询数据的安全性。另外,在从数据库中解密得到目标业务数据的业务执行结果后,需由查询对象的公钥来加密业务执行结果,以使查询对象可以基于私钥解密查询加密数据后获得对应的数据明文,这个过程中可以避免数据离开区块链节点的可信执行环境后在传输过程中被泄露的风险,进一步提高了数据查询过程的可靠性和安全性。
在一种可能的实现方式中,本申请提供的多主模式下的加密数据库***允许同时进行数据读取操作和数据写入操作。具体地,业务处理节点可以获取针对第一业务数据的数据读取请求、以及针对第二业务数据的数据写入请求;然后,响应于数据读取请求和数据写入请求,向业务处理节点的加密数据库中写入执行数据写入请求所指示的数据处理规则后得到的加密数据文件;以及,从业务处理节点的加密数据库中读取数据读取请求所请求的加密数据文件。通过这种方式,针对同一区块链节点的加密数据库,允许同时进行数据读取和数据写入,可以提高数据处理的效率;另外,也可以提高加密数据库***的可用性和性能。
基于本申请实施例,首先,可以基于区块链的强一致性保证各加密数据库中所存储的数据的一致性,后续查询对象可向任一区块链节点请求数据,避免了因某个区块链节点宕机带来无法查询的问题;其次,基于区块链节点的冗余性可确保加密数据库的高可用性,即针对每笔区块链交易均需由各个区块链节点进行共识,从而增加节点删除数据库跑路的难度;另外,利用可信执行环境的数据密封能力使数据离开本CPU无法解密,可以确保数据安全性,杜绝加密数据库的拷贝、复制、以及域外重建等不良操作;以及,基于业务合约提供针对每笔区块链交易的目标业务数据的数据加密能力,且双重加密(可信执行环境的环境密钥加密、以及数据密钥加密)可较大程度上提高数据的安全性。
上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方案,相应地,下面提供了本申请实施例的装置,接下来,结合上述本申请实施例提供的区块链服务方案,对本申请实施例的相关装置进行相应介绍。
请参见图11,图11是本申请实施例提供的一种区块链数据处理装置的结构示意图。如图11所示,该区块链数据处理装置1100可应用于前述实施例中所提及的业务处理节点。具体来说,区块链数据处理装置1100可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该区块链数据处理装置1100为一个应用软件;该区块链数据处理装置1100可以用于执行本申请实施例提供的区块链数据处理方法中的相应步骤。该区块链数据处理装置1100具体可以包括:
获取单元1101,用于获取针对目标业务数据的加密交易数据,加密交易数据包括:基于数据密钥对目标业务数据进行加密后得到的第一加密数据、基于目标通信密钥对数据密钥进行加密后得到的第二加密数据,目标通信密钥是目标区块链节点发布到区块链中的通信密钥公钥;
处理单元1102,用于在业务处理节点运行的可信执行环境中,根据通信密钥公钥对应的通信密钥私钥对加密交易数据的第二加密数据进行解密处理,得到数据密钥,通信密钥私钥是目标区块链节点发送给业务处理节点的;
处理单元1102,还用于通过得到的数据密钥对加密交易数据的第一加密数据进行解密处理,得到待执行的目标业务数据;
处理单元1102,还用于根据业务合约对目标业务数据进行业务处理,得到业务执行结果。
在一种可能的实现方式中,处理单元1102根据业务合约对目标业务数据进行业务处理,得到业务执行结果,用于执行以下操作:
调用权限合约对发送加密交易数据的目标对象进行身份校验;
若针对目标对象的身份校验通过,则基于加密交易数据对应的业务合约所指示的业务处理逻辑,对目标业务数据进行业务处理,得到目标业务数据的业务执行结果;
其中,身份校验包括:权限校验、安全性校验、合法性校验中的任一种或多种。
在一种可能的实现方式中,处理单元1102根据业务合约对目标业务数据进行业务处理,得到业务执行结果之后,还用于执行以下操作:
基于数据密钥对目标业务数据的业务执行结果进行加密处理,得到加密后的业务执行结果;
基于可信执行环境的环境密钥对加密后的业务执行结果进行再次加密处理,得到目标业务数据对应的目标加密数据文件;
其中,目标加密数据文件存储至由业务处理节点运行的可信执行环境的环境密钥加密确定的加密数据库中。
在一种可能的实现方式中,当业务处理节点作为所述目标区块链节点时,获取针对目标业务数据的加密交易数据之前,处理单元1102还用于执行以下操作:
生成目标通信密钥,并基于临时通信密钥对目标通信密钥的通信密钥私钥进行加密处理,得到加密通信密钥,临时通信密钥是指业务处理节点与区块链中的任一业务接收节点之间进行通信的密钥;
将加密通信密钥发送至区块链中的各个业务接收节点,以使各个业务接收节点基于相应的临时通信密钥,对加密通信密钥进行解密处理后,得到通信密钥私钥;
将通信密钥私钥对应的通信密钥公钥进行上链处理。
在一种可能的实现方式中,处理单元1102还用于执行以下操作:
获取业务接收节点发送的第二远程认证文件,第二远程认证文件中携带有业务接收节点的第二节点公钥、以及目标随机数,第二远程认证文件是业务处理节点向业务接收节点发送远程认证请求后生成的;
根据第二远程认证文件,对业务接收节点进行远程认证处理;
在确定对业务接收节点远程认证通过后,基于业务处理节点的第一节点私钥、和第二节点公钥,利用密钥交换算法生成与业务接收节点之间进行通信的临时通信密钥。
在一种可能的实现方式中,处理单元1102还用于执行以下操作:
根据目标随机数和业务处理节点的第一节点公钥,生成第一远程认证文件;
将第一远程认证文件发送至业务接收节点,第一远程认证文件用于触发业务接收节点对业务处理节点进行远程认证处理,并在远程认证处理结果为认证通过后,生成与业务处理节点之间进行通信的临时通信密钥。
在一种可能的实现方式中,目标业务数据的目标加密数据文件存储于业务处理节点的加密数据库中;处理单元1102还用于执行以下操作:
获取针对目标业务数据的业务执行结果的数据查询请求,数据查询请求携带有查询对象的身份信息;
根据身份信息对查询对象进行权限验证,若权限验证通过,则响应于数据查询请求,并从业务处理节点的加密数据库中获取目标业务数据的目标加密数据文件;
根据目标加密数据文件生成查询加密数据,并向查询对象对应的客户端返回查询加密数据。
在一种可能的实现方式中,处理单元1102根据目标加密数据文件生成查询加密数据,用于执行以下操作:
基于可信执行环境的环境密钥对目标加密数据文件进行解密处理,得到待解密执行结果;
基于数据密钥对待解密执行结果进行解密处理,得到目标业务数据的业务执行结果;
基于对象合约获取查询对象的公钥,并基于查询对象的公钥加密目标业务数据的业务执行结果,得到查询加密数据。
在一种可能的实现方式中,处理单元1102还用于执行以下操作:
获取针对第一业务数据的数据读取请求、以及针对第二业务数据的数据写入请求;
响应于数据读取请求和数据写入请求,向业务处理节点的加密数据库中写入执行数据写入请求所指示的数据处理规则后得到的加密数据文件;以及,
从业务处理节点的加密数据库中读取数据读取请求所请求的加密数据文件。
在一种可能的实现方式中,区块链的创始块中被部署有***合约,部署好的***合约运行在各个区块链节点的可信执行环境中,***合约包括:密钥合约、对象合约、权限合约、存储合约中的任一个或多个;
其中,密钥合约:用于存储目标通信密钥的通信密钥私钥,目标通信密钥是指区块链中各个区块链节点所使用的统一的密钥;
对象合约:用于存储各个对象的公钥,任一个对象的公钥用于对请求查询的目标业务数据的业务执行结果进行加密处理;
权限合约:用于管理各个区块链节点的加密数据库的访问权限;
存储合约:用于负责向加密数据库中写入业务数据、以及从加密数据库中读取业务数据。
在一种可能的实现方式中,获取针对目标业务数据的加密交易数据之后,处理单元1102还用于执行以下操作:
将加密交易数据发送至区块链中的各个业务接收节点,以使各个业务接收节点对加密交易数据进行区块链共识,并得到共识结果;
接收各个业务接收节点返回的共识结果,并根据共识结果对加密交易数据进行上链处理;
其中,各个业务接收节点在确定对加密交易数据区块链共识通过后,在各自节点运行的可信执行环境中生成目标业务数据的目标加密数据文件;并且,各个业务接收节点的加密数据库中存储的目标加密数据文件是基于各自业务接收节点对应的可信执行环境的环境密钥确定的。
本申请实施例中,可以获取针对目标业务数据的加密交易数据,该加密交易数据包括:基于数据密钥对目标业务数据进行加密后得到的第一加密数据、基于目标通信密钥对数据密钥进行加密后得到的第二加密数据,且目标通信密钥是目标区块链节点发布到区块链中的通信密钥公钥;然后,在业务处理节点运行的可信执行环境中,根据通信密钥公钥对应的通信密钥私钥对加密交易数据的第二加密数据进行解密处理,得到数据密钥,上述通信密钥私钥是目标区块链节点发送给业务处理节点的。接下来,通过得到的数据密钥对加密交易数据的第一加密数据进行解密处理,得到待执行的目标业务数据;最后,根据业务合约对所述目标业务数据进行业务处理,得到业务执行结果。由此可见,在区块链交易过程中涉及到的交易数据是经过数据密钥加密后得到的,且该数据密钥也是经过加密的,使得区块链中的交易数据更加安全;并且,在可信执行环境中对加密交易数据进行解密处理时,首先可以基于通信密钥私钥解密得到数据密钥,然后基于数据密钥解密得到目标业务数据,这种双重加密的方式使得区块链交易更加安全、可靠。
请参见图12,图12是本申请实施例提供的一种计算机设备的结构示意图。该计算机设备1200用于执行前述方法实施例中业务接口节点所执行的步骤,该计算机设备1200包括:一个或多个处理器1201;一个或多个输入设备1202,一个或多个输出设备1203和存储器1204。上述处理器1201、输入设备1202、输出设备1203和存储器1204通过总线1205连接。其中,处理器1201(或称CPU(Central Processing Unit,中央处理器))是计算机设备的处理核心,该处理器1201适于实现一条或多条程序指令,具体适于加载并执行一条或多条程序指令从而实现上述的区块链数据处理方法的流程。另外,存储器1204可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的存储器。存储器1204提供存储空间,该存储空间用于存储内容播放设备的操作***。并且,在该存储空间中还用于存储计算机程序,该计算机程序包括程序指令,且该程序指令适于被处理器调用并执行,以用来执行本申请中区块链数据处理方法的各步骤。
具体地,存储器1204用于存储计算机程序,所述计算机程序包括程序指令,处理器1201用于调用存储器1204存储的程序指令,执行以下操作:
获取针对目标业务数据的加密交易数据,加密交易数据包括:基于数据密钥对目标业务数据进行加密后得到的第一加密数据、基于目标通信密钥对数据密钥进行加密后得到的第二加密数据,目标通信密钥是目标区块链节点发布到区块链中的通信密钥公钥;
在业务处理节点运行的可信执行环境中,根据通信密钥公钥对应的通信密钥私钥对加密交易数据的第二加密数据进行解密处理,得到数据密钥,通信密钥私钥是目标区块链节点发送给业务处理节点的;
通过得到的数据密钥对加密交易数据的第一加密数据进行解密处理,得到待执行的目标业务数据;
根据业务合约对目标业务数据进行业务处理,得到业务执行结果。
在一种可能的实现方式中,处理器1201根据业务合约对目标业务数据进行业务处理,得到业务执行结果,用于执行以下操作:
调用权限合约对发送加密交易数据的目标对象进行身份校验;
若针对目标对象的身份校验通过,则基于加密交易数据对应的业务合约所指示的业务处理逻辑,对目标业务数据进行业务处理,得到目标业务数据的业务执行结果;
其中,身份校验包括:权限校验、安全性校验、合法性校验中的任一种或多种。
在一种可能的实现方式中,处理器1201根据业务合约对目标业务数据进行业务处理,得到业务执行结果之后,还用于执行以下操作:
基于数据密钥对目标业务数据的业务执行结果进行加密处理,得到加密后的业务执行结果;
基于可信执行环境的环境密钥对加密后的业务执行结果进行再次加密处理,得到目标业务数据对应的目标加密数据文件;
其中,目标加密数据文件存储至由业务处理节点运行的可信执行环境的环境密钥加密确定的加密数据库中。
在一种可能的实现方式中,当业务处理节点作为所述目标区块链节点时,获取针对目标业务数据的加密交易数据之前,处理器1201还用于执行以下操作:
生成目标通信密钥,并基于临时通信密钥对目标通信密钥的通信密钥私钥进行加密处理,得到加密通信密钥,临时通信密钥是指业务处理节点与区块链中的任一业务接收节点之间进行通信的密钥;
将加密通信密钥发送至区块链中的各个业务接收节点,以使各个业务接收节点基于相应的临时通信密钥,对加密通信密钥进行解密处理后,得到通信密钥私钥;
将通信密钥私钥对应的通信密钥公钥进行上链处理。
在一种可能的实现方式中,处理器1201还用于执行以下操作:
获取业务接收节点发送的第二远程认证文件,第二远程认证文件中携带有业务接收节点的第二节点公钥、以及目标随机数,第二远程认证文件是业务处理节点向业务接收节点发送远程认证请求后生成的;
根据第二远程认证文件,对业务接收节点进行远程认证处理;
在确定对业务接收节点远程认证通过后,基于业务处理节点的第一节点私钥、和第二节点公钥,利用密钥交换算法生成与业务接收节点之间进行通信的临时通信密钥。
在一种可能的实现方式中,处理器1201还用于执行以下操作:
根据目标随机数和业务处理节点的第一节点公钥,生成第一远程认证文件;
将第一远程认证文件发送至业务接收节点,第一远程认证文件用于触发业务接收节点对业务处理节点进行远程认证处理,并在远程认证处理结果为认证通过后,生成与业务处理节点之间进行通信的临时通信密钥。
在一种可能的实现方式中,目标业务数据的目标加密数据文件存储于业务处理节点的加密数据库中;处理器1201还用于执行以下操作:
获取针对目标业务数据的业务执行结果的数据查询请求,数据查询请求携带有查询对象的身份信息;
根据身份信息对查询对象进行权限验证,若权限验证通过,则响应于数据查询请求,并从业务处理节点的加密数据库中获取目标业务数据的目标加密数据文件;
根据目标加密数据文件生成查询加密数据,并向查询对象对应的客户端返回查询加密数据。
在一种可能的实现方式中,处理器1201根据目标加密数据文件生成查询加密数据,用于执行以下操作:
基于可信执行环境的环境密钥对目标加密数据文件进行解密处理,得到待解密执行结果;
基于数据密钥对待解密执行结果进行解密处理,得到目标业务数据的业务执行结果;
基于对象合约获取查询对象的公钥,并基于查询对象的公钥加密目标业务数据的业务执行结果,得到查询加密数据。
在一种可能的实现方式中,处理器1201还用于执行以下操作:
获取针对第一业务数据的数据读取请求、以及针对第二业务数据的数据写入请求;
响应于数据读取请求和数据写入请求,向业务处理节点的加密数据库中写入执行数据写入请求所指示的数据处理规则后得到的加密数据文件;以及,
从业务处理节点的加密数据库中读取数据读取请求所请求的加密数据文件。
在一种可能的实现方式中,区块链的创始块中被部署有***合约,部署好的***合约运行在各个区块链节点的可信执行环境中,***合约包括:密钥合约、对象合约、权限合约、存储合约中的任一个或多个;
其中,密钥合约:用于存储目标通信密钥的通信密钥私钥,目标通信密钥是指区块链中各个区块链节点所使用的统一的密钥;
对象合约:用于存储各个对象的公钥,任一个对象的公钥用于对请求查询的目标业务数据的业务执行结果进行加密处理;
权限合约:用于管理各个区块链节点的加密数据库的访问权限;
存储合约:用于负责向加密数据库中写入业务数据、以及从加密数据库中读取业务数据。
在一种可能的实现方式中,获取针对目标业务数据的加密交易数据之后,处理器1201还用于执行以下操作:
将加密交易数据发送至区块链中的各个业务接收节点,以使各个业务接收节点对加密交易数据进行区块链共识,并得到共识结果;
接收各个业务接收节点返回的共识结果,并根据共识结果对加密交易数据进行上链处理;
其中,各个业务接收节点在确定对加密交易数据区块链共识通过后,在各自节点运行的可信执行环境中生成目标业务数据的目标加密数据文件;并且,各个业务接收节点的加密数据库中存储的目标加密数据文件是基于各自业务接收节点对应的可信执行环境的环境密钥确定的。
此外,这里需要指出的是:本申请实施例还提供了一种计算机存储介质,且计算机存储介质中存储有计算机程序,且该计算机程序包括程序指令,当处理器执行上述程序指令时,能够执行前文所对应实施例中的方法,因此,这里将不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可以被部署在一个计算机设备上,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备可以执行前文所对应实施例中的方法,因此,这里将不再进行赘述。
本领域普通技术对象可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (15)
1.一种区块链数据处理方法,其特征在于,应用于业务处理节点;所述方法包括:
获取针对目标业务数据的加密交易数据,所述加密交易数据包括:基于数据密钥对所述目标业务数据进行加密后得到的第一加密数据、基于目标通信密钥对所述数据密钥进行加密后得到的第二加密数据,所述目标通信密钥是目标区块链节点发布到区块链中的通信密钥公钥;
在所述业务处理节点运行的可信执行环境中,根据所述通信密钥公钥对应的通信密钥私钥对所述加密交易数据的第二加密数据进行解密处理,得到数据密钥,所述通信密钥私钥是所述目标区块链节点发送给所述业务处理节点的;
通过得到的数据密钥对所述加密交易数据的第一加密数据进行解密处理,得到待执行的目标业务数据;
根据业务合约对所述目标业务数据进行业务处理,得到业务执行结果。
2.如权利要求1所述的方法,其特征在于,所述根据业务合约对所述目标业务数据进行业务处理,得到业务执行结果,包括:
调用权限合约对发送所述加密交易数据的目标对象进行身份校验;
若针对所述目标对象的身份校验通过,则基于所述加密交易数据对应的业务合约所指示的业务处理逻辑,对所述目标业务数据进行业务处理,得到所述目标业务数据的业务执行结果;
其中,所述身份校验包括:权限校验、安全性校验、合法性校验中的任一种或多种。
3.如权利要求1所述的方法,其特征在于,所述根据业务合约对所述目标业务数据进行业务处理,得到业务执行结果之后,还包括:
基于所述数据密钥对所述目标业务数据的业务执行结果进行加密处理,得到加密后的业务执行结果;
基于所述可信执行环境的环境密钥对所述加密后的业务执行结果进行再次加密处理,得到所述目标业务数据对应的目标加密数据文件;
其中,所述目标加密数据文件存储至由所述业务处理节点运行的可信执行环境的环境密钥加密确定的加密数据库中。
4.如权利要求1所述的方法,其特征在于,当所述业务处理节点作为所述目标区块链节点时,所述获取针对目标业务数据的加密交易数据之前,还包括:
生成目标通信密钥,并基于临时通信密钥对所述目标通信密钥的通信密钥私钥进行加密处理,得到加密通信密钥,所述临时通信密钥是指所述业务处理节点与区块链中的任一业务接收节点之间进行通信的密钥;
将所述加密通信密钥发送至区块链中的各个业务接收节点,以使各个所述业务接收节点基于相应的临时通信密钥,对所述加密通信密钥进行解密处理后,得到通信密钥私钥;
将所述通信密钥私钥对应的通信密钥公钥进行上链处理。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
获取业务接收节点发送的第二远程认证文件,所述第二远程认证文件中携带有所述业务接收节点的第二节点公钥、以及目标随机数,所述第二远程认证文件是所述业务处理节点向所述业务接收节点发送远程认证请求后生成的;
根据所述第二远程认证文件,对所述业务接收节点进行远程认证处理;
在确定对所述业务接收节点远程认证通过后,基于所述业务处理节点的第一节点私钥、和所述第二节点公钥,利用密钥交换算法生成与所述业务接收节点之间进行通信的临时通信密钥。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:
根据所述目标随机数和业务处理节点的第一节点公钥,生成第一远程认证文件;
将所述第一远程认证文件发送至所述业务接收节点,所述第一远程认证文件用于触发所述业务接收节点对所述业务处理节点进行远程认证处理,并在远程认证处理结果为认证通过后,生成与所述业务处理节点之间进行通信的临时通信密钥。
7.如权利要求1所述的方法,其特征在于,所述目标业务数据的目标加密数据文件存储于所述业务处理节点的加密数据库中;所述方法还包括:
获取针对目标业务数据的业务执行结果的数据查询请求,所述数据查询请求携带有查询对象的身份信息;
根据所述身份信息对所述查询对象进行权限验证,若权限验证通过,则响应于所述数据查询请求,并从所述业务处理节点的加密数据库中获取所述目标业务数据的目标加密数据文件;
根据所述目标加密数据文件生成查询加密数据,并向所述查询对象对应的客户端返回所述查询加密数据。
8.如权利要求7所述的方法,其特征在于,所述根据所述目标加密数据文件生成查询加密数据,包括:
基于所述可信执行环境的环境密钥对所述目标加密数据文件进行解密处理,得到待解密执行结果;
基于数据密钥对所述待解密执行结果进行解密处理,得到目标业务数据的业务执行结果;
基于对象合约获取所述查询对象的公钥,并基于所述查询对象的公钥加密所述目标业务数据的业务执行结果,得到查询加密数据。
9.如权利要求7或8任一项所述的方法,其特征在于,所述方法还包括:
获取针对第一业务数据的数据读取请求、以及针对第二业务数据的数据写入请求;
响应于所述数据读取请求和所述数据写入请求,向所述业务处理节点的加密数据库中写入执行所述数据写入请求所指示的数据处理规则后得到的加密数据文件;以及,
从所述业务处理节点的加密数据库中读取所述数据读取请求所请求的加密数据文件。
10.如权利要求1所述的方法,其特征在于,所述区块链的创始块中被部署有***合约,部署好的所述***合约运行在各个区块链节点的可信执行环境中,所述***合约包括:密钥合约、对象合约、权限合约、存储合约中的任一个或多个;
其中,所述密钥合约:用于存储目标通信密钥的通信密钥私钥,所述目标通信密钥是指区块链中各个区块链节点所使用的统一的密钥;
所述对象合约:用于存储各个对象的公钥,任一个对象的公钥用于对请求查询的目标业务数据的业务执行结果进行加密处理;
所述权限合约:用于管理各个区块链节点的加密数据库的访问权限;
所述存储合约:用于负责向加密数据库中写入业务数据、以及从加密数据库中读取业务数据。
11.如权利要求1所述的方法,其特征在于,所述获取针对目标业务数据的加密交易数据之后,还包括:
将所述加密交易数据发送至区块链中的各个业务接收节点,以使各个业务接收节点对所述加密交易数据进行区块链共识,并得到共识结果;
接收各个业务接收节点返回的共识结果,并根据共识结果对所述加密交易数据进行上链处理;
其中,各个业务接收节点在确定对所述加密交易数据区块链共识通过后,在各自节点运行的可信执行环境中生成所述目标业务数据的目标加密数据文件;并且,各个业务接收节点的加密数据库中存储的所述目标加密数据文件是基于各自业务接收节点对应的可信执行环境的环境密钥确定的。
12.一种区块链数据处理装置,其特征在于,应用于业务处理节点;所述装置包括:
获取单元,用于获取针对目标业务数据的加密交易数据,所述加密交易数据包括:基于数据密钥对所述目标业务数据进行加密后得到的第一加密数据、基于目标通信密钥对所述数据密钥进行加密后得到的第二加密数据,所述目标通信密钥是目标区块链节点发布到区块链中的通信密钥公钥;
处理单元,用于在所述业务处理节点运行的可信执行环境中,根据所述通信密钥公钥对应的通信密钥私钥对所述加密交易数据的第二加密数据进行解密处理,得到数据密钥,所述通信密钥私钥是所述目标区块链节点发送给所述业务处理节点的;
所述处理单元,还用于通过得到的数据密钥对所述加密交易数据的第一加密数据进行解密处理,得到待执行的目标业务数据;
所述处理单元,还用于根据业务合约对所述目标业务数据进行业务处理,得到业务执行结果。
13.一种计算机设备,其特征在于,包括:存储装置和处理器;
存储器,所述存储器中存储一条或多条计算机程序;
处理器,用于加载所述一条或多条计算机程序实现如权利要求1-11中任一项所述的区块链数据处理方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于被处理器加载并执行如权利要求1-11中任一项所述的区块链数据处理方法。
15.一种计算机程序产品,其特征在于,所述计算程序产品包括计算机程序,所述计算机程序适于被处理器加载并执行如权利要求1-11中任一项所述的区块链数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211629144.4A CN118172058A (zh) | 2022-12-08 | 2022-12-08 | 区块链数据处理方法、装置、计算机设备、介质及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211629144.4A CN118172058A (zh) | 2022-12-08 | 2022-12-08 | 区块链数据处理方法、装置、计算机设备、介质及产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118172058A true CN118172058A (zh) | 2024-06-11 |
Family
ID=91347500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211629144.4A Pending CN118172058A (zh) | 2022-12-08 | 2022-12-08 | 区块链数据处理方法、装置、计算机设备、介质及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118172058A (zh) |
-
2022
- 2022-12-08 CN CN202211629144.4A patent/CN118172058A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111541785B (zh) | 基于云计算的区块链数据处理方法及装置 | |
CN110602138B (zh) | 区块链网络的数据处理方法、装置、电子设备及存储介质 | |
US11356285B2 (en) | Distributed key management for trusted execution environments | |
TWI725655B (zh) | 用於在可信執行環境中執行子邏輯代碼的程式執行和資料證明的方法、設備和系統 | |
WO2021184882A1 (zh) | 验证合约的方法及装置 | |
WO2021184973A1 (zh) | 访问外部数据的方法及装置 | |
WO2021184962A1 (zh) | 生成共享合约密钥的方法及装置 | |
CN110580413B (zh) | 基于链下授权的隐私数据查询方法及装置 | |
CN112422532B (zh) | 业务通信方法、***、装置及电子设备 | |
JP2020528224A (ja) | 信頼できる実行環境におけるスマート契約動作のセキュアな実行 | |
CN111523110B (zh) | 基于链代码的权限查询配置方法及装置 | |
TWI701929B (zh) | 密碼運算、創建工作密鑰的方法、密碼服務平台及設備 | |
CN111047450A (zh) | 链上数据的链下隐私计算方法及装置 | |
CN111090875A (zh) | 部署合约的方法及装置 | |
CN111066286A (zh) | 使用高可用性的可信执行环境检索区块链网络的公共数据 | |
US20220114249A1 (en) | Systems and methods for secure and fast machine learning inference in a trusted execution environment | |
US11831753B2 (en) | Secure distributed key management system | |
Papageorgiou et al. | DPKI: a blockchain-based decentralized public key infrastructure system | |
CN111127021B (zh) | 基于区块链的服务请求方法及装置 | |
CN116601912A (zh) | 提供加密安全的后秘密供应服务 | |
WO2022193984A1 (zh) | 跨链进行数据传输的方法、装置、计算机设备、存储介质和计算机程序产品 | |
CN115580413B (zh) | 一种零信任的多方数据融合计算方法和装置 | |
CN115270159A (zh) | 一种区块链的智能合约调用方法、装置设备及存储介质 | |
CN118172058A (zh) | 区块链数据处理方法、装置、计算机设备、介质及产品 | |
US20200382555A1 (en) | Security incident blockchain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |