区块链数据处理方法及装置与流程

文档序号:18744301发布日期:2019-09-21 02:09阅读:282来源:国知局
区块链数据处理方法及装置与流程

本发明涉及通信技术领域,尤其涉及区块链数据处理方法及装置。



背景技术:

近年来,在比特币的推动下区块链技术出现快速发展。区块链系统是将数据和数据的操作记录,通过密码学算法进行加密和散列形成区块数据结构,并通过共识算法,在节点间可靠共享,保证数据可验证,不可篡改的系统。

状态数据是在区块链系统中共享的,具有业务意义的数据,通常存放在每个区块链节点对应的数据库中,在普通的区块链系统中,状态数据是完全公开和共享的,并以明文存储。但是,由于上述的数据存储方式,任意智能合约能够访问任意的状态数据,两个智能合约可能访问同一个数据条目。任意节点可调用任意智能合约,对状态数据进行操作。此外,拥有权限直接访问数据库的用户,甚至可以绕过智能合约任意访问状态数据。从而使存储的区块链的数据存在安全隐患。

因此,如何提出一种区块链数据处理方法,在区块链数据的处理过程中,能够提高区块链系统中状态数据的安全性,成为本领域技术人员亟待解决的问题。



技术实现要素:

为解决上述技术问题,本发明提供区块链数据处理方法及装置,以提高区块链系统中状态数据的安全性。

第一方面,本发明实施例提出一种区块链数据处理方法,包括:

接收业务节点发送的交易请求和对应的交易证书,所述交易请求是经过对应的交易证书签名的;其中,所述交易证书是所述业务节点预先获得的;

若判断获知所述交易请求的签名通过验证,则从所述交易证书中获取通道标识;

根据所述通道标识对应的共享密钥对基于所述交易请求的执行交易过程中从与所述通道标识对应的通道数据库获取的状态数据进行解密和/或存入与所述通道标识对应的通道数据库的状态数据进行加密;其中,所述通道数据库与所述通道标识一一对应。

第二方面,本发明实施例还提供一种区块链数据处理方法,包括:

接收业务节点发送的登录请求;

若判断获知所述登录请求通过验证,则获取所述业务节点对应的通道标识;

随机生成与所述通道标识对应的公钥和私钥对;

根据与所述通道标识对应的公钥和私钥对以及所述通道标识生成登录证书,并根据根证书私钥为所述登录证书签名;其中,所述根证书私钥是预设的;

将经过签名的所述登录证书发送给所述业务节点。

第三方面,本发明实施例提供一种区块链数据处理装置,包括:

第一接收单元,用于接收业务节点发送的交易请求和对应的交易证书,所述交易请求是经过对应的交易证书签名的;

第一判断单元,用于在判断获知所述交易请求的签名通过验证之后,从所述交易证书中获取通道标识;

处理单元,用于根据所述通道标识获取对应的共享密钥,并根据所述共享密钥对基于所述交易请求的执行交易过程中从与所述通道标识对应的通道数据库获取的状态数据进行解密和/或存入与所述通道标识对应的通道数据库的状态数据进行加密;其中,所述通道数据库与所述通道标识一一对应。

第四方面,本发明实施例提供还一种区块链数据处理装置,包括:

第二接收单元,用于接收业务节点发送的登录请求;

第二判断单元,用于在判断获知所述登录请求通过验证之后,获取所述业务节点对应的通道标识;

第一生成单元,用于随机生成与所述通道标识对应的公钥和私钥对;

第二生成单元,用于根据与所述通道标识对应的公钥和私钥对以及所述通道标识生成登录证书,并根据根证书私钥为所述登录证书签名;其中,所述根证书私钥是预设的;

发送单元,用于将经过签名的所述登录证书发送给所述业务节点。

第五方面,本发明实施例提供一种电子设备,包括:第一处理器、第一存储器和第一通信总线,其中:

所述第一处理器和所述第一存储器通过所述第一通信总线完成相互间的通信;

所述第一存储器存储有可被所述第一处理器执行的程序指令,所述第一处理器调用所述程序指令能够执行如下区块链数据处理方法:

接收业务节点发送的交易请求和对应的交易证书,所述交易请求是经过对应的交易证书签名的;其中,所述交易证书是所述业务节点预先获得的;

若判断获知所述交易请求的签名通过验证,则从所述交易证书中获取通道标识;

根据所述通道标识获取对应的共享密钥,并根据所述共享密钥对基于所述交易请求的执行交易过程中从与所述通道标识对应的通道数据库获取的状态数据进行解密和/或存入与所述通道标识对应的通道数据库的状态数据进行加密;其中,所述通道数据库与所述通道标识一一对应。

第六方面,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储第一计算机指令,所述第一计算机指令使所述计算机执行能够执行如下区块链数据处理方法:

接收业务节点发送的交易请求和对应的交易证书,所述交易请求是经过对应的交易证书签名的;其中,所述交易证书是所述业务节点预先获得的;

若判断获知所述交易请求的签名通过验证,则从所述交易证书中获取通道标识;

根据所述通道标识获取对应的共享密钥,并根据所述共享密钥对基于所述交易请求的执行交易过程中从与所述通道标识对应的通道数据库获取的状态数据进行解密和/或存入与所述通道标识对应的通道数据库的状态数据进行加密;其中,所述通道数据库与所述通道标识一一对应。

第七方面,本发明实施例提供一种电子设备,包括:第二处理器、第二存储器和第二通信总线,其中:

所述第二处理器和所述第二存储器通过所述第二通信总线完成相互间的通信;

所述第二存储器存储有可被所述第二处理器执行的程序指令,所述第二处理器调用所述程序指令能够执行如下区块链数据处理方法:

接收业务节点发送的登录请求;

若判断获知所述登录请求通过验证,则获取所述业务节点对应的通道标识;

随机生成与所述通道标识对应的公钥和私钥对;

根据与所述通道标识对应的公钥和私钥对以及所述通道标识生成登录证书,并根据根证书私钥为所述登录证书签名;其中,所述根证书私钥是预设的;

将经过签名的所述登录证书发送给所述业务节点。

第八方面,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储第二计算机指令,所述第二计算机指令使所述计算机能够执行如下区块链数据处理方法:

接收业务节点发送的登录请求;

若判断获知所述登录请求通过验证,则获取所述业务节点对应的通道标识;

随机生成与所述通道标识对应的公钥和私钥对;

根据与所述通道标识对应的公钥和私钥对以及所述通道标识生成登录证书,并根据根证书私钥为所述登录证书签名;其中,所述根证书私钥是预设的;

将经过签名的所述登录证书发送给所述业务节点。

本发明实施例提供的区块链数据处理方法及装置,能够接收业务节点发送的交易请求和对应的交易证书,在判断获知交易请求的签名通过验证之后,从交易证书中获取通道标识,然后根据通道标识对应的共享密钥对基于交易请求执行交易过程中从与通道标识对应的通道数据库获取的状态数据进行解密和/或存入与通道标识对应的通道数据库的状态数据进行加密,由于需要通过共享密钥解密从通道数据库获取的状态数据,并使用共享密钥对存入通道数据库的状态数据进行加密,提高了区块链系统中状态数据的安全性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1是本发明第一实施例的区块链系统的结构示意图。

图2是本发明第二实施例的区块链数据处理方法的流程示意图。

图3是本发明第三实施例的区块链数据处理方法的流程示意图。

图4是本发明第四实施例的区块链数据处理方法的流程示意图。

图5是本发明第五实施例的区块链数据处理方法的流程示意图。

图6是本发明第六实施例的区块链数据处理方法的信令交互图。

图7是本发明第七实施例的区块链数据处理方法的流程示意图。

图8是本发明第八实施例的区块链数据处理方法的流程示意图。

图9是本发明第九实施例的区块链数据处理方法的流程示意图。

图10是本发明第十实施例的区块链数据处理方法的信令交互图。

图11是本发明第十一实施例的区块链数据处理装置的结构示意图。

图12是本发明第十二实施例的区块链数据处理装置的结构示意图。

图13是本发明第十三实施例的电子设备的结构示意图。

图14是本发明第十四实施例的电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

图1是本发明第一实施例的区块链系统的结构示意图,如图1所示,本发明实施例提供的区块链系统包括一个权限管理节点1和多个验证节点2,权限管理节点1与每个验证节点2点对点连接,多个验证节点2之间相互点对点连接。权限管理节点1可以是一台服务器或者多台服务器组成的集群,用于对所述区块链系统中用户身份进行验证、用户权限进行管理,并进行登录证书和交易证书的签发。验证节点2可以是一台或者多台服务器,可以是各联盟链成员的可信服务器、工作站等,用于根据系统共识算法对交易在区块链系统中进行共识,生成区块,调用智能合约,并在执行智能合约过程中进行状态数据读写。验证节点2可以为一台或多台服务器。

其中,权限管理节点1保存一个根证书及其私钥,当验证节点2启动加入网络时,权限管理节点1可以根据验证节点2发送的用户标识和密码验证其身份,验证通过后为验证节点2生成登录证书,并使用根证书私钥对上述登录证书进行签名,然后将经过签名的上述登录证书发送给验证节点2。后续验证节点2重新加入网络时,需要使用上述登录证书加入网络,验证节点2使用过的用户名和密码不再有效。

其中,在每个验证节点2上可以设置至少一个通道数据库,所述通道数据库与通道标识一一对应,不同的通道数据库的数据是相互隔离的。通道是指区块链系统中按照机构、用户、密码等划分的一个个逻辑处理单位,不同的通道间的区块存储及状态数据是互相隔离的,使用不同的密钥进行加密。其中,在每个验证节点2上可以设置主数据库,所述主数据库用于存储所述通道和对应的通道数据库的连接方式信息。

基于上述区块链系统,本发明实施例提供一种区块链数据处理方法,可以避免区块链系统中状态数据过度共享和明文储带来的数据隐私性和安全隐患,能够提高区块链系统中状态数据读取和存储的安全性。

图2是本发明第二实施例的区块链数据处理方法的流程示意图,如图2所示,本发明实施例提供的区块链数据处理方法包括:

S201、接收业务节点发送的交易请求和对应的交易证书,所述交易请求是经过对应的交易证书签名的;其中,所述交易证书是所述业务节点预先获得的;

具体地,业务节点在需要进行交易的时候,可以生成交易请求,并以一个交易证书对所述交易请求进行签名,签名后所述交易请求与所述交易证书对应。所述业务节点将所述交易请求及其对应的交易证书发送给验证节点,所述验证节点会接收所述交易请求及其对应交易证书。其中,所述业务节点是指能够发起交易的节点,所述业务节点包括但不限于台式机、平板电脑和智能手机。所述交易证书是所述业务节点预先从权限管理节点获得的,所述交易证书的具体获得过程参见下文,此处不进行赘述。可理解的是,所述交易请求可以包括智能合约标识、调用参数以及用户名。

S202、若判断获知所述交易请求的签名通过验证,则从所述交易证书中获取通道标识;

具体地,所述验证节点在接收到所述交易请求及其对应的交易证书之后,可以根据所述交易证书对所述交易请求的签名进行验证,如果所述交易请求的签名与所述交易证书匹配并且所述交易证书合法,那么所述交易请求的签名通过验证,所述验证节点可以从所述交易证书中获取通道标识。其中,所述通道标识可以存储在所述交易证书的扩展域中。

S203、根据所述通道标识对应的共享密钥对基于所述交易请求执行交易过程中从所述通道标识对应的通道数据库获取的状态数据进行解密和/或存入所述通道标识对应的通道数据库的状态数据进行加密;其中,所述通道数据库与所述通道标识一一对应。

具体地,所述验证节点在所述交易请求的签名通过验证之后,根据所述交易请求执行交易,在执行交易过程中,可以根据所述交易请求包括的智能合约标识调用对应的智能合约,在所述智能合约的执行过程中可以访问所述通道标识对应的通道数据,获取相关的状态数据。由于所述状态数据预先经过所述通道标识对应的共享密钥加密,所述验证节点可以根据所述通道标识获取与所述通道标识对应的共享密钥,根据所述共享密钥对获取的所述状态数据进行解密,解密后的状态数据供上述交易过程中使用。当上述交易过程完成之后,可以将相关的状态数据存储到所述通道标识对应的通道数据库中,在存入与所述通道标识对应的通道数据库中之前,可以利用与所述通道标识对应的共享密钥和配置的加密算法对状态数据进行加密。也就是说,在从所述通道数据库读取数据时,需要使用对应的共享密钥进行解密并还原数据,在向所述通道数据库写入数据时,需要使用对应的共享密钥进行加密并保存。其中,所述通道数据库与所述通道标识一一对应;与所述通道标识对应的共享密钥可以预先获得,储存在缓存中,在需要使用的时候,可以根据所述通道标识从缓存中获取。所述加密算法根据实际需要进行设置,本发明实施例不做限定。

本发明实施例提供的区块链数据处理方法,能够接收业务节点发送的交易请求和对应的交易证书,在判断获知交易请求的签名通过验证之后,从交易证书中获取通道标识,然后根据通道标识对应的共享密钥对基于交易请求执行交易过程中从与通道标识对应的通道数据库获取的状态数据进行解密和/或存入与通道标识对应的通道数据库的状态数据进行加密,由于需要通过共享密钥解密从通道数据库获取的状态数据,并使用共享密钥对存入通道数据库的状态数据进行加密,提高了区块链系统中状态数据的安全性。

图3是本发明第三实施例的区块链数据处理方法的流程示意图,如图3所示,在上述各实施例的基础上,进一步地,本发明实施例提供的区块链数据处理方法还包括:

S2031、向权限管理节点发送公钥获取请求,并接收所述权限管理节点返回的与所述通道标识对应的公钥;其中,所述公钥获取请求包括所述通道标识,与所述通道标识对应的公钥是所述权限管理节点预存的;

具体地,所述共享密钥可以预先获得在内存中缓存,不在本地磁盘进行持久化保存,以防止所述验证节点被外界攻击。为了减少密钥泄露的风险,还可以在每次需要使用所述共享密钥时,实时获取所述共享密钥。为了获得所述共享密钥,所述验证节点可以向权限管理节点发送公钥获取请求,所述公钥获取请求包括所述通道标识。所述权限管理节点会接收所述公钥获取请求,然后根据所述通道标识在本地查找获得与所述通道标识对应的公钥,然后将与所述通道标识对应的公钥发送给所述验证节点,所述验证节点可以接收所述公钥。其中,所述与所述通道标识对应的公钥是所述权限管理节点预存的。

S2032、根据与所述通道标识对应的公钥和私钥,生成与所述通道标识对应的共享密钥;其中,与所述通道标识对应的私钥是本地预存的。

具体地,所述验证节点在接收到与所述通道标识对应的公钥之后,可以从本地获取与所述通道标识对应的私钥,然后根据所述公钥和所述私钥生成与所述通道标识对应的共享密钥。其中,与所述通道标识对应的私钥是在本地预存的。在所述验证节点和所述权限管理节点分别存储于所述通道标识对应的私钥和公钥,可以进一步提高通道数据库中加密的通道数据的安全性。

通道密钥采用分离存储,分为公私钥对,与所述通道标识对应的公钥存储在所述权限管理节点上,与所述通道标识对应的私钥存储在所述验证节点上。使用时所述验证节点从所述权限管理节点获得与所述通道标识对应的公钥,然后根据与所述通道标识对应的公钥和私钥得到共享密钥,再使用共享密钥和对称加密算法进行加解密操作。由于将公私钥分离保存,并将公私钥运算之后得到共享密钥,使共享密钥不易泄露,提高了共享密钥的安全性,从而进一步提高了区块链系统中经过共享密钥加密的状态数据的安全性。

例如,在权限管理节点1和验证节点2上通过加密文件的方式存储公钥和私钥,文件名的命名方式如下所示:

channel@***.pem

其中“***”表示1个或多个字符组成的通道标识,例如:channel@org1.pem,代表由与通道标识org1对应的组织建立的通道密钥文件。所述验证节点为了获得org1对应的共享密钥ShareKey,首先从本地获取org1对应的加密私钥PrivateKey,然后从所述权限管理节点获取org1对应的公钥PublicKey,可以计算出与org1对应的共享密钥ShareKey:

ShareKey=PrivateKey×PublicKey

为了避免所述验证节点出现故障时,导致与所述通道标识对应私钥丢失后,无法访问与所述通道标识对应的通道数据库,可以在所述验证节点保存与所述通道标识对应的私钥XA和公钥PA,在所述权限管理节点保存与所述通道标识对应的公钥PB和私钥XB。可以首先定义公共的椭圆曲线E的阶N和基点G两个公开参数。私钥XA和私钥XB为两个随机大整数。对应的公钥可按以下公式计算:

PA=XA×G

PB=XB×G

其中,×表示椭圆曲线算法中的“点乘”运算,PB=XB×G表示在曲线上从基点G开始移动XB次,得到点PB。所述验证节点和所述权限管理节点通过通信交换公钥PA和PB,按以下公式计算共享密钥:

QA=XA×PB

QB=XB×PA

根据椭圆曲线点乘运算的结合律和交换律得到如下表达式:

QA=XA×PB=XA×(XB×G)=XB×(XA×G)=XB×PA=QB

QA即为所述验证节点对状态数据加解密所用的与所述通道标识对应的共享密钥,如果所述验证节点的私钥XA由于丢失或者损坏等原因不能获取,之前所述验证节点上的与所述通道标识对应公钥已将公开,所述权限管理节点可以得到共享密钥QB,由于QA和QB相等,所述权限管理节点可以使用QB对所述通道标识对应的通道数据库中的数据进行解密。

图4是本发明第四实施例的区块链数据处理方法的流程示意图,如图4所示,在上述各实施例的基础上,进一步地,所述根据所述共享密钥对基于所述交易请求的执行交易过程中从与所述通道标识对应的通道数据库获取的状态数据进行解密包括:

S401、根据智能合约标识、所述状态数据对应的原始键值和所述通道标识,获得所述状态数据在与所述通道标识对应的通道数据库中的第一访问键值;其中,所述所述交易请求包括所述智能合约标识,所述原始键值从所述智能合约标识对应的智能合约中获得;

具体地,所述通道数据为键值数据库,以键值对作为存储的基本单元。所述验证节点可以从所述交易请求中获得智能合约标识,从所述智能合约标识对应的智能合约中可以获得所述状态数据对应的原始键值,然后根据所述智能合约标识、所述状态数据对应的原始键值以及所述通道标识,获得所述状态数据在与所述通道标识对应的通道数据库中的第一访问键值。其中,所述交易请求包括所述智能合约标识。

例如,所述第一访问键值的命名方式为智能合约标识+原始键值+@+通道标识。所述验证节点根据所述智能合约标识、所述状态数据的原始键值和所述通道标识,采用上述第一访问键值的命名方式,可以获得所述状态数据在对应的通道数据库中的第一访问键值。

S402、根据所述第一访问键值从与所述通道标识对应的通道数据库获得对应的状态数据,并根据所述共享密钥对所述状态数据进行解密。

具体地,所述验证节点在获得所述状态数据的第一访问键值之后,可以根据所述第一访问键值从与所述通道标识对应的通道数据库中获得与所述第一访问键值对应的状态数据,然后使用与所述通道标识对应的共享密钥以及配置的解密算法对与所述第一访问键值对应的状态数据进行解密。其中,对所述状态数据进行解密的解密算法根据实际需要进行设置,本发明实施例不做限定。

图5是本发明第五实施例的区块链数据处理方法的流程示意图,如图5所示,在上述各实施例的基础上,进一步地,所述根据所述共享密钥对基于所述交易请求的执行交易过程中存入与所述通道标识对应的通道数据库的状态数据进行加密包括:

S501、获取待加密的状态数据,并根据与所述通道标识对应的共享密钥对所述待加密的状态数据进行加密获得加密后的状态数据;

具体地,在所述执行交易过程中以及完成所述交易过程之后,可以对之前获取的状态数据进行更新或者产生新的状态数据,对于上述状态数据需要进行加密之后,才能存储到相应的通道数据库中。所述验证节点可以获取上述状态数据作为待加密的状态数据,然后使用与所述通道标识对应的共享密钥对所述待加密的状态数据进行加密,从而获得加密后的状态数据。

S502、根据智能合约标识、所述加密后的状态数据对应的原始键值和所述通道标识,获得第二访问键值;其中,所述所述交易请求包括所述智能合约标识,所述智能合约标识与所述待加密的状态数据对应;

具体地,所述通道数据为键值数据库,以键值对作为存储的基本单元。状态数据在存入对应的状态数据库时,需要对应的第二访问键值,以方便后续读取。所述验证节点获取与所述待加密的状态数据对应的智能合约标识,所述待加密的状态数据是由于执行哪个智能合约而产生的,所述待加密的状态数据就与哪个智能合约的智能合约标识对应。所述待加密的状态数据,如果是对原有的状态数据的更新,可以采用原有的状态数据的原始键值作为所述待加密的状态数据对应的原始键值,如果所述待加密的状态数据是新产生的状态数据,可以为所述待加密的状态数据配置新的键值作为所述待加密的状态数据对应的原始键值。所述验证节点根据与所述待加密的状态数据对应的智能合约标识、所述加密后的状态数据对应的原始键值以及所述通道标识,获得所述第二访问键值。可理解的是,所述第二访问键值与所述第一访问键值具有相同的命名方式。

S503、将所述第二访问键值和所述加密后的状态数据相对应并存入与所述通道标识对应的通道数据库。

具体地,所述验证节点获得所述加密后的状态数据和所述第二访问键值之后,将所述第二访问键值与所述加密后的状态数据相对应,并存入与所述通道标识对应的通道数据库中,后续所述验证节点可以根据所述第二访问键值从对应的通道数据库中,查找获得所述加密后的状态数据。

图6是本发明第六实施例的区块链数据处理方法的信令交互图,如图6所示,本发明实施例提供的区块链数据处理方法的一个实施例的流程如下:

第一步,业务节点向验证节点发送交易请求和对应的交易证书。所述业务节点可以预先从权限管理节点获取交易证书,在需要进行交易时,生成所述交易请求,并用一个所述交易证书对所述交易请求进行签名,然后将经过签名的所述交易请求连同签名所用的交易证书一起发送给所述验证节点。其中,所述交易请求可以包括智能合约标识、调用参数和用户名。

第二步,所述验证节点验证所述交易请求。所述验证节点在接收到所述交易请求和对应的交易证书之后,可以根据所述交易证书对所述交易请求的签名进行验证,并在所述交易请求的签名通过验证之后,从所述交易证书中获取通道标识,所述通道标识可以存储在所述交易证书的扩展域中。所述验证节点获得所述通道标识之后,可以为所述交易请求对应的交易创建交易的上下文对象,将所述交易与所述通道名称对应,还可以为交易生成唯一序列号,所述序列号可以用于在所述交易完成后之后对交易的过程进行追溯,可以发现交易过程中的错误或者其他问题。然后,所述验证节点可以在所述区块链系统中的各个所述验证节点之间执行共识算法,确定当前区块中包括的交易及其顺序。

第三步,所述验证节点向所述权限管理节点发送公钥获取请求。所述验证节点在交易过程中,会根据所述交易请求中包括的智能合约标识调用智能合约,并在所述智能合约的执行过程中,根据所述通道标识和所述智能合约包括的状态数据的原始键值,访问与所述通道标识对应的通道数据库,获取对应的状态数据,从所述通道数据库获取的状态数据是被与所述通道标识对应的共享密钥加密过的,所述验证节点需要获取所述共享密钥,以解密获取的状态数据。所述验证节点为了获得所述共享密钥,可以向所述权限管理节点发送公钥获取请求,所述公钥获取请求包括所述通道标识。

第四步,所述权限管理节点获取公钥。所述权限管理节点接收到所述公钥获取请求之后,可以根据所述通道标识查找到与所述通道标识对应的公钥,与所述通道标识对应的公钥是在所述权限管理节点预先存储的。

第五步,所述权限管理节点发送公钥给所述验证节点。所述权限管理节点在获得与所述通道标识对应的公钥之后,会将所述公钥发送给所述验证节点,所述验证节点接收所述公钥。

第六步,所述验证节点生成共享密钥。所述验证节点获得与所述通道标识对应的公钥之后,可以从本地获取与所述通道标识对应的私钥,然后根据与所述通道标识对应的公钥和私钥,生成与所述通道标识对应的共享密钥。所述验证节点可以将所述共享密钥缓存在内存中,以供解密或者加密对应的状态数据时使用。

第七步,所述验证节点解密状态数据。所述验证节点使用生成的共享密钥,对第三步步获取到的状态数据进行解密,供所述智能合约的执行过程中使用。

第八步,所述验证节点加密状态数据。所述验证节点在执行所述智能合约的过程中,可以对所述状态数据进行更新,对于更新后的状态数据可以使用与所述通道标识对应的共享密钥进行加密,然后存储到与所述通道标识对应的通道数据库中。其中,所述加密后的状态数据可以先在所述通道数据库中暂存,等到同一区块中的所有交易都完成之后,将暂存的加密后的状态数据提交,永久存储到对应的通道数据库中。

第九步,所述验证节点返回交易结果给所述业务节点。所述验证节点在所述交易请求包括的智能合约标识对应的智能合约全部都执行完毕之后,可以得到交易结果,然后将所述交易结果返回给所述业务节点。

图7是本发明第七实施例的区块链数据处理方法的流程示意图,如图7所示,本发明实施例提供的区块链数据处理方法,包括:

S701、接收业务节点发送的登录请求;

具体地,业务节点在需要访问图1所示的区块链系统时,需要先向权限管理节点发送登录请求,所述权限管理节点可以接收所述登录请求。其中,所述登录请求可以包括所述业务节点的用户标识和密码。

S702、若判断获知所述登录请求通过验证,则获取所述业务节点对应的通道标识;

具体地,所述权限管理节点在接收到所述登录请求之后,会对所述登录请求进行验证,如果所述登录请求通过验证,那么所述权限管理节点可以从配置文件或者数据库中获得所述业务节点对应的通道标识。其中,在配置文件或者数据库中预先设置了所述业务节点对应的通道标识。

例如,所述验证节点将所述登录请求包括的用户标识和密码分别与本地预存的所述业务节点的用户标识和密码进行比较,所述登录请求包括的用户标识与所述本地预存的用户标识匹配,所述登录请求包括的密码与所述本地预存的密码相同,那么所述登录请求通过验证。

S703、随机生成与所述通道标识对应的公钥和私钥对;

具体地,所述权限管理节点在获得与所述业务节点对应的通道标识之后,可以根据配置的密码算法随机生成与所述通道标识对应的公钥和私钥对。其中,所述密码算法根据实际需要进行配置,本发明实施例不做限定。

S704、根据与所述通道标识对应的公钥和私钥对以及所述通道标识生成登录证书,并根据根证书私钥为所述登录证书签名;其中,所述根证书私钥是预设的;

具体地,所述验证节点在获得与所述通道标识对应的公钥和私钥对之后,根据与所述通道标识对应的公钥和私钥对以及所述通道标识生成登录证书,并获取预设的根证书私钥,使用所述根证书私钥对所述登录证书进行签名。其中,所述根证书私钥根据实际需要进行设置,本发明实施例不做限定。

例如,所述权限管理节点将与所述通道标识对应的公私钥对封装为x509格式的登录证书,然后在所述登录证书的扩展域中写入所述通道标识,从而生成所述登录证书。

S705、将经过签名的所述登录证书发送给所述业务节点。

具体地,所述权限管理节点在获得签名后的所述登录证书之后,将经过签名的所述登录证书发送给所述业务节点,所述业务节点可接收经过签名的所述登录证书。

本发明实施例提供的区块链数据处理方法,在签发登录证书时,将登录证书与通道标识对应,使业务节点在发起交易使用通道数据库中的状态数据时,需要根据通道标识获取对应的通道数据库中的状态数据,通过通道标识将各个通道数据库中的状态数据进行了隔离,提高了区块链系统中状态数据的安全性。

图8是本发明第八实施例的区块链数据处理方法的流程示意图,如图8所示,在上述各实施例的基础上,进一步地,本发明实施例提供的区块链数据处理方法还包括:

S801、接收所述业务节点发送的交易证书请求和所述登录证书,所述交易证书请求是经过所述登录证书签名的;

具体地,所述业务节点接收到所述登录证书之后,可以生成交易证书请求,并使用所述登录证书对所述交易证书请求进行签名,然后将经过签名的所述交易证书请求以及所述登录证书发送所述权限管理节点,所述权限管理节点会接收所述交易证书请求以及所述登录证书。

S802、若判断获知所述交易证书请求的签名通过验证,则从所述登录证书获取所述通道标识;

具体地,所述权限管理节点接收到所述交易证书请求和所述登录证书之后,可以根据所述登录证书对所述交易证书请求的签名进行验证,如果所述交易证书请求的签名与所述登录证书匹配且所述登录证书合法,那么所述交易证书请求的签名通过验证,所述权限管理节点可以从所述登录证书中获取所述通道标识。

S803、根据所述交易证书请求包括的证书数量以及所述通道标识,生成与所述通道标识对应的交易证书,并根据所述根证书私钥为每个所述交易证书签名;其中,所述交易证书的数量与所述证书数量相等;

具体地,所述权限管理节点可以从所述交易证书请求中获得证书数量,然后根据所述证书数量和所述通道标识生成与所述通道标识对应的交易证书,由于交易证书为一次性使用证书,每个所述交易证书只为一笔交易签名,生成的所述交易证书的数量与所述证书数量相等。所述权限管理节点使用所述根证书私钥为每个所述交易证书签名。

S804、将经过签名的每个所述交易证书发送给所述业务节点。

具体地,所述权限管理节点在所有的交易证书签名完成之后,将经过签名的每个所述交易证书发送给所述业务节点,所述业务节点会接收经过签名的所述交易证书,后续所述业务节点在需要进行交易的时候,会生成交易请求,并使用所述交易证书为所述交易请求签名。

图9是本发明第九实施例的区块链数据处理方法的流程示意图,如图9所示,在上述各实施例的基础上,进一步地,本发明实施例提供的区块链数据处理方法还包括:

S901、接收所述验证节点发送的公钥获取请求,所述公钥获取请求包括所述通道标识;

具体地,为了获得所述共享密钥,所述验证节点可以向所述权限管理节点发送公钥获取请求,所述公钥获取请求包括所述通道标识。所述权限管理节点会接收所述公钥获取请求。

S902、根据所述通道标识获取与所述通道标识对应的公钥;其中,所述公钥是预先存储的;

具体地,所述权限管理节点接收到所述公钥获取请求之后,可以根据所述通道标识在本地查找获得与所述通道标识对应的公钥,然后将与所述通道标识对应的公钥发送给所述验证节点,所述验证节点可以接收所述公钥。其中,所述与所述通道标识对应的公钥是所述权限管理节点预存的。

S903、发送与所述通道标识对应的公钥给所述验证节点,以使得所述验证节点根据与所述通道标识对应的公钥和私钥,生成与所述通道标识对应的共享密钥;其中,与所述通道标识对应的私钥是所述验证节点预存的。

具体地,所述权限管理节点在获得所述公钥之后,将与所述通道标识对应的公钥发送给所述验证节点。所述验证节点可以根据与所述通道标识对应的公钥和私钥,生成与所述通道标识对应的共享密钥。所述验证节点在获得所述共享密钥之后,可以将所述共享密钥在内存中缓存,断电重启之后该共享密钥将消失;所述验证节点也可以在所述共享密钥使用完了之后直接删除,在每次需要使用共享密钥时重新生成。

图10是本发明第十实施例的区块链数据处理方法的信令交互图,如图10所示,本发明实施例提供的区块链数据处理方法的一个实施例的流程如下:

第一步,业务节点向权限管理节点发送登录请求。所述业务节点在向所述区块链系统中的验证节点发起交易之前,需要先获得访问权限,为了获得所述访问权限,所述业务节点可以向所述权限管理节点发送登录请求,所述等请求可以包括用户名和密码。

第二步,所述权限管理节点验证所述交易请求。所述权限管理节点在接收到所述登录请求之后,可以根据所述用户名和密码对所述登录请求验证,并在所述登录请求通过验证之后,从数据库或者配置文件中获得与所述业务节点对应的通道标识。其中,在所述数据库或者配置文件中预先配置了所述业务节点与通道标识的对应关系。

第三步,所述权限管理节点生成公私钥对。所述权限管理节点获得所述通道标识之后,可以根据预先配置的密码算法,随机生成公私钥对,所述公私钥对应用于登录证书的生成。

第四步,所述权限管理节点生成登录证书。所述权限管理节点可以将所述公私钥对封装为x509格式的登录证书,并在所述登录证书的扩展域中写入所述通道标识,然后加载根证书私钥,为所述登录证书进行签名。其中,所述根证书及其私钥是预先设置的。

第五步,所述权限管理节点发送登录证书给所述业务节点。所述权限管理节点在生成所述登录证书之后,会将所述登录证书发送给所述业务节点。

第六步,所述业务节点生成交易证书请求。所述业务节点接收到所述登录证书之后,可以生成交易证书请求,然后使用所述登录证书对所述交易证书请求进行签名。

第七步,所述业务节点向所述权限管理节点发送交易证书请求。所述业务节点将经过签名的所述交易证书请求及所述登录证书发送给所述权限管理节点。

第八步,所述权限管理节点验证所述交易证书请求。所述权限管理节点接收到所述交易证书请求以及所述登录证书之后,可以根据所述登录证书对所述交易证书请求的签名进行验证,并在所述交易证书请求通过所述验证之后,从所述登录证书中获得所述通道标识。

第九步,所述权限管理节点生成交易证书。所述权限管理节点可以根据所述交易证书请求中的证书数量,批量生成对应数量的交易证书,并在每个所述交易证书的扩展域中写入所述通道标识。所述权限管理节点还会使用所述根证书私钥对每个所述交易证书进行签名。

第十步,所述权限管理节点发送交易证书给所述业务节点。所述权限管理节点可以将经过签名的所述交易证书发送给所述业务节点。所述业务节点接收到所述交易证书之后,在需要进行交易时,生成交易请求,并使用一个所述交易证书对所述交易请求进行签名。

图11是本发明第十一实施例的区块链数据处理装置的结构示意图,如图11所示,本发明实施例提供的区块链数据处理装置包括第一接收单元1101、第一判断单元1102和处理单元1103,其中:

第一接收单元1101用于接收业务节点发送的交易请求和对应的交易证书,所述交易请求是经过对应的交易证书签名的;其中,所述交易证书是所述业务节点预先获得的;第一判断单元1102用于在判断获知所述交易请求的签名通过验证之后,从所述交易证书中获取通道标识;处理单元1103用于根据所述通道标识对应的共享密钥对基于所述交易请求的执行交易过程中从与所述通道标识对应的通道数据库获取的状态数据进行解密和/或存入与所述通道标识对应的通道数据库的状态数据进行加密;其中,所述通道数据库与所述通道标识一一对应。

具体地,业务节点在需要进行交易的时候,可以生成交易请求,并以一个交易证书对所述交易请求进行签名,签名后所述交易请求与所述交易证书对应。所述业务节点将所述交易请求及其对应的交易证书发送给第一接收单元1101,第一接收单元1101会接收所述交易请求及其对应交易证书。其中,所述业务节点是指能够发起交易的节点,所述业务节点包括但不限于台式机、平板电脑和智能手机。所述交易证书是所述业务节点预先从权限管理节点获得的。可理解的是,所述交易请求可以包括智能合约标识、调用参数以及用户名。

在接收到所述交易请求及其对应的交易证书之后,第一判断单元1102可以根据所述交易证书对所述交易请求的签名进行验证,如果所述交易请求的签名与所述交易证书匹配并且所述交易证书合法,那么所述交易请求的签名通过验证,所述验证节点可以从所述交易证书中获取通道标识。其中,所述通道标识可以存储在所述交易证书的扩展域中。

在所述交易请求的签名通过验证之后,处理单元1103根据所述交易请求执行交易,在执行交易过程中,可以根据所述交易请求包括的智能合约标识调用对应的智能合约,在所述智能合约的执行过程中可以访问所述通道标识对应的通道数据,获取相关的状态数据。由于所述状态数据预先经过所述通道标识对应的共享密钥加密,所述验证节点可以根据所述通道标识获取与所述通道标识对应的共享密钥,根据所述共享密钥对获取的所述状态数据进行解密,解密后的状态数据供上述交易过程中使用。当上述交易过程完成之后,可以将相关的状态数据存储到所述通道标识对应的通道数据库中,在存入与所述通道标识对应的通道数据库中之前,可以利用与所述通道标识对应的共享密钥和配置的加密算法对状态数据进行加密。也就是说,在从所述通道数据库读取数据时,需要使用对应的共享密钥进行解密并还原数据,在向所述通道数据库写入数据时,需要使用对应的共享密钥进行加密并保存。其中,所述通道数据库与所述通道标识一一对应;与所述通道标识对应的共享密钥可以预先获得,储存在缓存中,在需要使用的时候,可以根据所述通道标识从缓存中获取。所述加密算法根据实际需要进行设置,本发明实施例不做限定。

本发明实施例提供的区块链数据处理装置,能够接收业务节点发送的交易请求和对应的交易证书,在判断获知交易请求的签名通过验证之后,从交易证书中获取通道标识,然后根据通道标识对应的共享密钥对基于交易请求执行交易过程中从与通道标识对应的通道数据库获取的状态数据进行解密和/或存入与通道标识对应的通道数据库的状态数据进行加密,由于需要通过共享密钥解密从通道数据库获取的状态数据,并使用共享密钥对存入通道数据库的状态数据进行加密,提高了区块链系统中状态数据的安全性。

图12是本发明第十二实施例的区块链数据处理装置的结构示意图,如图12所示,本发明实施例提供的区块链数据处理装置包括第二接收单元1201、第二判断单元1202、第一生成单元1203、第二生成单元1204和发送单元1205,其中:

第二接收单元1201用于接收业务节点发送的登录请求;第二判断单元1202用于在判断获知所述登录请求通过验证之后,获取所述业务节点对应的通道标识;第一生成单元1203用于随机生成与所述通道标识对应的公钥和私钥对;第二生成单元1204用于根据与所述通道标识对应的公钥和私钥对以及所述通道标识生成登录证书,并根据根证书私钥为所述登录证书签名;其中,所述根证书私钥是预设的;发送单元1205用于将经过签名的所述登录证书发送给所述业务节点。

具体地,业务节点在需要访问图1所示的区块链系统时,需要先向权限管理节点发送登录请求,第二接收单元1201可以接收所述登录请求。其中,所述登录请求可以包括所述业务节点的用户标识和密码。

在接收到所述登录请求之后,第二判断单元1202会对所述登录请求进行验证,如果所述登录请求通过验证,那么第二判断单元1202可以从配置文件或者数据库中获得所述业务节点对应的通道标识。其中,在配置文件或者数据库中预先设置了所述业务节点对应的通道标识。

在获得与所述业务节点对应的通道标识之后,第一生成单元1203可以根据配置的密码算法随机生成与所述通道标识对应的公钥和私钥对。其中,所述密码算法根据实际需要进行配置,本发明实施例不做限定。

在获得与所述通道标识对应的公钥和私钥对之后,第二生成单元1204根据与所述通道标识对应的公钥和私钥对以及所述通道标识生成登录证书,并获取预设的根证书私钥,使用所述根证书私钥对所述登录证书进行签名。其中,所述根证书私钥根据实际需要进行设置,本发明实施例不做限定。

在获得签名后的所述登录证书之后,发送单元1205将经过签名的所述登录证书发送给所述业务节点,所述业务节点可接收经过签名的所述登录证书。

本发明实施例提供的区块链数据处理装置,在签发登录证书时,将登录证书与通道标识对应,使业务节点在发起交易使用通道数据库中的状态数据时,需要根据通道标识获取对应的通道数据库中的状态数据,通过通道标识将各个通道数据库中的状态数据进行了隔离,提高了区块链系统中状态数据的安全性。

图13是本发明第十三实施例的电子设备的结构示意图,如图13所示,本发明实施例提供的电子设备可以包括:第一处理器1301、第一通信接口1302、第一存储器1303和第一通信总线1304,其中,第一处理器1301,第一通信接口1302,第一存储器1303通过第一通信总线1304完成相互间的通信。第一处理器1301可以调用第一存储器1303中的逻辑指令,以执行如下方法,例如包括:接收业务节点发送的交易请求和对应的交易证书,所述交易请求是经过对应的交易证书签名的;其中,所述交易证书是所述业务节点预先获得的;若判断获知所述交易请求的签名通过验证,则从所述交易证书中获取通道标识;根据所述通道标识对应的共享密钥对基于所述交易请求的执行交易过程中从与所述通道标识对应的通道数据库获取的状态数据进行解密和/或存入与所述通道标识对应的通道数据库的状态数据进行加密;其中,所述通道数据库与所述通道标识一一对应。

本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行如下方法,例如包括:接收业务节点发送的交易请求和对应的交易证书,所述交易请求是经过对应的交易证书签名的;其中,所述交易证书是所述业务节点预先获得的;若判断获知所述交易请求的签名通过验证,则从所述交易证书中获取通道标识;根据所述通道标识对应的共享密钥对基于所述交易请求的执行交易过程中从与所述通道标识对应的通道数据库获取的状态数据进行解密和/或存入与所述通道标识对应的通道数据库的状态数据进行加密;其中,所述通道数据库与所述通道标识一一对应。

本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储第一计算机指令,所述第一计算机指令使所述计算机执行如下方法,例如包括:接收业务节点发送的交易请求和对应的交易证书,所述交易请求是经过对应的交易证书签名的;其中,所述交易证书是所述业务节点预先获得的;若判断获知所述交易请求的签名通过验证,则从所述交易证书中获取通道标识;根据所述通道标识对应的共享密钥对基于所述交易请求的执行交易过程中从与所述通道标识对应的通道数据库获取的状态数据进行解密和/或存入与所述通道标识对应的通道数据库的状态数据进行加密;其中,所述通道数据库与所述通道标识一一对应。

图14是本发明第十四实施例的电子设备的结构示意图,如图14所示,本发明实施例提供的电子设备可以包括:第二处理器1401、第二通信接口1402、第二存储器1403和第二通信总线1404,其中,第二处理器1401,第二通信接口1402,第二存储器1403通过第二通信总线1404完成相互间的通信。第二处理器1401可以调用第二存储器1403中的逻辑指令,以执行如下方法,例如包括:接收业务节点发送的登录请求;若判断获知所述登录请求通过验证,则获取所述业务节点对应的通道标识;随机生成与所述通道标识对应的公钥和私钥对;根据与所述通道标识对应的公钥和私钥对以及所述通道标识生成登录证书,并根据根证书私钥为所述登录证书签名;其中,所述根证书私钥是预设的;将经过签名的所述登录证书发送给所述业务节点。

本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行如下方法,例如包括:接收业务节点发送的登录请求;若判断获知所述登录请求通过验证,则获取所述业务节点对应的通道标识;随机生成与所述通道标识对应的公钥和私钥对;根据与所述通道标识对应的公钥和私钥对以及所述通道标识生成登录证书,并根据根证书私钥为所述登录证书签名;其中,所述根证书私钥是预设的;将经过签名的所述登录证书发送给所述业务节点。

本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储第二计算机指令,所述第二计算机指令使所述计算机执行如下方法,例如包括:接收业务节点发送的登录请求;若判断获知所述登录请求通过验证,则获取所述业务节点对应的通道标识;随机生成与所述通道标识对应的公钥和私钥对;根据与所述通道标识对应的公钥和私钥对以及所述通道标识生成登录证书,并根据根证书私钥为所述登录证书签名;其中,所述根证书私钥是预设的;将经过签名的所述登录证书发送给所述业务节点。

以上参照附图描述了本发明的优选实施方式。这些实施方式的许多特征和优点根据该详细的说明书是清楚的,因此所附权利要求旨在覆盖这些实施方式的落入其真实精神和范围内的所有这些特征和优点。此外,由于本领域的技术人员容易想到很多修改和改变,因此不是要将本发明的实施方式限于所例示和描述的精确结构和操作,而是可以涵盖落入其范围内的所有合适修改和等同物。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1