掌桥专利:专业的专利平台
掌桥专利
首页

一种区块链网络的交易处理方法、区块链网络及存储介质

文献发布时间:2023-06-19 11:49:09


一种区块链网络的交易处理方法、区块链网络及存储介质

技术领域

本发明涉及区块链技术领域,尤其涉及一种区块链网络的交易处理方法、区块链网络及存储介质。

背景技术

目前,基于超级账本(hyperledger fabric)的区块链技术方案,通过背书、排序、确认等流程,可实现数据在区块链中的快速同步,进而确保数据的一致性,且不被篡改,即,所有数据变更操作均由超级账本自带的日志系统记录。

但是,该技术方案中,信息采用明文形式在区块链节点存储及节点间传输,从而,使其并不适用于存储需要保密的信息。

发明内容

有鉴于此,本发明实施例期望提供一种区块链网络的交易处理方法、区块链网络及存储介质。

第一方面,本发明实施例提供了一种区块链网络的交易处理方法,所述方法包括:

接收来自客户端的信息存储提案,所述信息存储提案指示待存储信息为保密信息;

基于所述信息存储提案,执行智能合约得到第一数据;

对所述第一数据进行私密处理,得到第二数据;

验证所述第一数据的有效性;

若所述第一数据通过有效性验证,则将所述第一数据存储至隐私数据库,以及将所述第二数据存储至账本数据库;

其中,所述账本数据库的数据,用于供区块链网络上的所有节点查询,所述隐私数据库的数据,用于供区块链网络上被授予查询权限的授权节点查询。

上述方案中,所述第一数据包括:第一关键字和与所述第一关键字对应存储的目标信息,所述第二数据包括:第二关键字和与所述第二关键字对应的加密信息;其中,所述加密信息为对所述目标信息私密之后的信息,所述第二关键字和所述第一关键字满足预设对应关系。

上述方案中,所述加密信息为对所述目标信息进行哈希处理之后的信息。

上述方案中,所述基于所述信息存储提案,执行智能合约得到第一数据,包括:

通过至少一个满足预设条件的所述授权节点,基于所述信息存储提案,执行智能合约得到第一数据。

上述方案中,所述满足预设条件的所述授权节点,包括以下至少之一:

满足节点权限等级的预设数量个所述授权节点;

随机选取的所述预设数量个所述授权节点。

第二方面,本发明实施例提供了一种区块链网络的交易处理方法,所述方法包括:

接收来自客户端的信息查询提案;

基于所述信息查询提案,执行智能合约得到第三数据;

基于所述第三数据,分别从隐私数据库读取第一数据,以及从账本数据库读取第二数据;

对所述第一数据进行私密处理,得到第四数据;

比较所述第二数据和所述第四数据,若比较结果为第一状态值,则将所述第一数据返回给所述客户端,其中,所述第一状态值指示所述第二数据和所述第四数据满足数据一致性要求。

上述方案中,所述第三数据包括:第三关键字;

所述基于所述第三数据,分别从隐私数据库读取第一数据,以及从账本数据库读取第二数据,包括:

基于所述第三关键字与第一关键字的匹配,从隐私数据库读取与所述第三关键字匹配成功第一关键字对应的目标信息;

基于第四关键字与第二关键字的匹配,从账本数据库读取与所述第四关键字匹配成功的第二关键字对应的加密信息。

第三方面,本发明实施例提供了一种区块链网络,包括:背书节点和验证节点,其中,

所述背书节点,用于接收来自客户端的信息存储提案,所述信息存储提案指示待存储信息为保密信息;

所述背书节点,用于基于所述信息存储提案,执行智能合约得到第一数据;

所述背书节点,还用于对所述第一数据进行私密处理,得到第二数据;

所述验证节点,用于验证所述第一数据的有效性;

所述验证节点,用还用于若所述第一数据通过有效性验证,则将所述第一数据存储至隐私数据库,以及将所述第二数据存储至账本数据库;

其中,所述账本数据库的数据,用于供区块链网络上的所有节点查询,所述隐私数据库的数据,用于供区块链网络上被授予查询权限的授权节点查询。

第四方面,本发明实施例提供了一种区块链网络,包括:背书节点和验证节点,其中,

所述背书节点,用于接收来自客户端的信息查询提案;

所述背书节点,还用于基于所述信息查询提案,执行智能合约得到第三数据;

所述验证节点,用于基于所述第三数据,分别从隐私数据库读取第一数据,以及从账本数据库读取第二数据;

所述背书节点,还用于对所述第一数据进行私密处理,得到第四数据;

所述背书节点,还用于比较所述第二数据和所述第四数据,若比较结果为第一状态值,则将所述第一数据返回给所述客户端,其中,所述第一状态值指示所述第二数据和所述第四数据满足数据一致性要求。

第五方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被执行后,能够实现上述任一项提供的方法。

本发明实施例对于待存储至区块链网络的保密信息,基于信息存储提案,将执行智能合约得到的明文信息(即,第一数据)存储至隐私数据库,将对应的密文信息(即,第二数据)存储至账本数据库,其中,隐私数据库的明文信息仅为区块链网络上被授予查询权限的授权节点查询,从而,实现对区块链网络中可查询保密信息的节点的控制,最大程度地保护存储信息在区块链网络存储的私密性需求。

附图说明

图1为本发明实施例提供的第一种区块链网络的交易处理方法流程示意图;

图2为本发明实施例提供的第二种区块链网络的交易处理方法流程示意图;

图3为本发明实施例提供的一种区块链网络的交易处理装置结构示意图;

图4为本发明实施例提供的第三种区块链网络的交易处理方法流程示意图。

具体实施方式

以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。

如图1所示,本发明实施例的一种区块链网络的交易处理方法,所述方法包括:

步骤S101:接收来自客户端的信息存储提案,所述信息存储提案指示待存储信息为保密信息;

步骤S102:基于所述信息存储提案,执行智能合约得到第一数据;

步骤S103:对所述第一数据进行私密处理,得到第二数据;

步骤S104:验证所述第一数据的有效性;

步骤S105:若所述第一数据通过有效性验证,则将所述第一数据存储至隐私数据库,以及将所述第二数据存储至账本数据库;

其中,所述账本数据库的数据,用于供区块链网络上的所有节点查询,所述隐私数据库的数据,用于供区块链网络上被授予查询权限的授权节点查询。

在上述步骤S101中,接收来自客户端的信息存储提案,所述信息存储提案指示待存储信息为保密信息。

在本实施例中,客户端根据用户的信息存储请求构造信息存储提案,并将信息存储提案发送至背书节点,背书节点接收信息存储提案。

具体地,客户端根据用户的信息存储请求构造信息存储提案时,首先,客户端接收用户的信息存储请求,这里,信息存储请求包括:待存储信息和第一保密指示,其中,第一保密指示用于指示待存储信息是否为保密信息。例如,待存储信息可为图书馆藏书信息,对应的第一保密指示指示待存储信息为公开信息;待存储信息可为个人纳税信息,对应的第一保密指示指示待存储信息为保密信息;待存储信息可为版权信息,对应的第一保密指示指示待存储信息为保密信息,等等。

然后,客户端根据信息存储请求,构造信息存储提案。信息存储提案包括:待存储信息、存储信息涉及的智能合约的相关信息以及客户端签名等,其中,智能合约的相关信息包括:智能合约的标识和合约方法等。

最后,客户端将信息存储提案发送至预设的至少一个背书节点。

在本实施例中,背书节点为区块链网络中承担背书任务的节点,背书节点为区块链交易进行交易信息验证,并对验证通过的交易声明此交易合法。

在一个实施例中,客户端根据第一保密指示,将信息存储提案发送至预设的至少一个背书节点。例如,若第一保密指示指示待存储信息为保密信息,则客户端将信息存储提案发送至预设的至少一个背书节点,这里,背书节点必须为被授予查询权限的授权节点,从而,只有被授予查询权限的授权节点才能接收到信息存储提案;若第一保密指示指示待存储信息为公开信息,则客户端将信息存储提案发送至预设的至少一个背书节点,且对背书节点是否为授权节点不作要求。

在一个实施例中,可由区块链网络的系统管理者授予节点查询权限,被授予查询权限的节点即为授权节点。

在另一个实施例中,第一保密指示还用于指示保密等级,区块链网络的系统管理者还为授权节点设置查询等级权限,从而使授权节点具有不同查询等级权限,不同查询等级权限的授权节点可查询预设对应保密等级的保密信息。当第一保密指示指示待存储信息为保密信息时,客户端根据第一保密指示指示的保密等级,将信息存储提案发送至预设的至少一个具有相应查询等级权限的授权节点。

例如,保密等级包括:I级(绝密)、II级(机密)、III级(内部公开),查询等级权限包括:高级、中级、普通,其中,查询等级权限为高级的授权节点可查询所有保密等级(I级、II级和III级)的保密信息,查询等级权限为中级的授权节点可查询保密等级为II级和III级的保密信息,查询等级权限为普通的授权节点可查询保密等级为III级的保密信息。

在上述步骤S102中,基于所述信息存储提案,执行智能合约得到第一数据。

在本实施例中,收到信息存储提案后,背书节点验证客户端签名,即,验证客户端签名是否为合法的签名,如果是合法的签名,则验证通过。

验证通过后,则调用智能合约,并将待存储信息作为智能合约的参数输入,执行智能合约得到第一数据。

其中,智能合约,也称为链码或应用代码,是部署在区块链网络的节点中的程序,承载了执行交易的业务逻辑。例如,用于完成信息存储的智能合约,承载了执行信息存储的业务逻辑;用于完成信息查询的智能合约,承载了执行信息查询的业务逻辑。

例如,以待存储信息为版权信息为例,对智能合约的执行过程进行说明:

首先,假设待存储的版权信息包括:作品名称、作品类别、作品权属,在本示例中,作品名称为“春”,作品类别为“美术”,作品权属为“张**”;

然后,调用用于存储版权信息的智能合约,以“作品名称:“春”,作品类别:“美术”,作品权属:“张**””作为智能合约的参数输入,执行智能合约,得到第一数据为:key:DP000001;value:{作品名称:“春”,作品类别:“美术”,作品权属:“张**”}。

最后,背书节点将第一数据打上背书签名,发送至第一排序节点,第一排序节点对接收到的第一数据进行排序,并打包成区块,发送给验证节点。

又例如,以待存储信息为交易信息为例,对智能合约的执行过程进行说明:

首先,待存储信息包括:支付方、支付金额,在本示例中,支付方为“王**”,支付金额为“50”,默认单位为:元;

然后,调用用于存储交易信息的智能合约,以支付方为“王**”,支付金额为“50”,作为智能合约的参数输入,执行智能合约,假设智能合约读取当前余额为“5050”,默认单位为:元,并计算更新当前余额为“5000”,从而,得到第一数据为:key:AB000058;value:{支付方:“王**”,余额:“5000”}。

最后,背书节点将第一数据打上背书签名,发送至第一排序节点,第一排序节点对接收到的第一数据进行排序,并打包成区块,发送给验证节点。

在上述步骤S103中,对所述第一数据进行私密处理,得到第二数据。

在本实施例中,背书节点对所述第一数据进行私密处理,得到第二数据。

对数据私密处理,可包括各种对第一数据进行数据处理之后,得到不能直接获取第一数据原始含义的第二数据。

此处的数据私密处理包括但不限于:利用数据加密算法进行的数据加密处理;和/或,利用数据签名算法进行的数据签名处理。

这里,对第一数据进行私密处理可为:采用对称加密算法(如:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES等)、非对称加密算法(如:RSA、Diffie-Hellman和ElGamal等)或哈希算法(如MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5和HMAC-SHA1等)等,对第一数据进行处理。

背书节点对第一数据进行私密处理,得到第二数据之后,将第二数据发送至第二排序节点。

在上述步骤S104中,验证所述第一数据的有效性。

本实施例中,验证节点对接收到的第一数据或包括第一数据的区块进行有效性验证,若该区块通过有效性验证,则验证节点向第二排序节点发送有效性验证通过信息,以指示第二排序节点发送与第一数据对应的第二数据,例如,第一数据的关键字和第二数据的关键字满足预设对应关系。

这里,有效性验证包括:VSCC(Validation System Chaincode,处理交易的验证)验证与MVCC(Mutil-Version Concurrency Control,多版本并发控制)验证。其中,VSCC验证根据信息存储提案中的智能合约找到对应的背书策略,验证信息存储提案的背书签名是否与背书策略相符合;MVCC验证主要验证读写集(即,第一数据)的版本号是否与本地状态数据库存储的版本号不一致,若不一致,则说明该信息存储提案之前的提案已经更改了数据,本次信息存储提案无效。

在一个实施例中,若第二数据在第二排序节点中存储的时长超过预设时长阈值,则第二排序节点删除第二数据,以防止第二数据对应的第一数据为无效数据时,导致第二数据长时间滞留在第二排序节点,造成资源浪费甚至拥塞。

上述步骤S105中,若所述第一数据通过有效性验证,则将所述第一数据存储至隐私数据库,以及将所述第二数据存储至账本数据库;

这里,所述账本数据库的数据,用于供区块链网络上的所有节点查询,所述隐私数据库的数据,用于供区块链网络上被授予查询权限的授权节点查询。

在本实施例中,若第一数据通过有效性验证,则验证节点将第一数据存储至隐私数据库;同时,验证节点接收到第二排序节点发送的第二数据或包括第二数据的区块后,验证节点将第二数据存储至账本数据库。

本实施例通过验证节点在第一数据通过有效性验证后,指示第二排序节点发送第二数据,并将第二数据存储至账本数据库,确保了隐私数据库和账本数据库存储的信息的一致性,即,隐私数据库存储第一数据的同时,账本数据库存储与第一数据相对应的第二数据。

在一个实施例中,第一排序节点包括多个节点。

在一个实施例中,第二排序节点包括多个节点。

本发明实施例对于指示待存储信息为保密信息的信息存储提案,将执行智能合约得到明文信息(即,第一数据)存储至隐私数据库,将对第一数据进行私密处理后得到的密文信息(即,第二数据)存储至账本数据库,而存储在隐私数据库的信息仅可被区块链网络上被授予查询权限的授权节点查询,可实现对区块链网络上的存储信息的可查询对象的主动控制,最大程度地保护存储信息的私密性。

在一个实施例中,第一数据包括:第一关键字和与所述第一关键字对应存储的目标信息,所述第二数据包括:第二关键字和与所述第二关键字对应的加密信息;其中,所述加密信息为对所述目标信息私密之后的信息,所述第二关键字和所述第一关键字满足预设对应关系。

这里,加密信息可为对目标信息采用对称加密算法(如:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES等)、非对称加密算法(如:RSA、Diffie-Hellman和ElGamal等)或哈希算法(如MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5和HMAC-SHA1等)等处理后确定的信息。

以下,对第一数据和第二数据列举几个具体的举例,以说明两者之间的关联:

例如,若第一数据包括:第一关键字A1、目标信息K1,即,第一数据可表示为(A1,K1),采用MD2算法对目标信息K1进行处理,得到L1,则第二数据为(A1,L1),这里,第一关键字和第二关键字是相同的,加密信息为对目标信息进行MD2加密后得到的信息。

再例如,若第一数据包括:第一关键字A2、目标信息K2,即,第一数据可表示为(A2,K2),将第一关键字A2向左移位1位,得到B2,以及采用MD5算法对目标信息K2进行处理,得到L2,则第二数据为(B2,L2),这里,第二关键字和第一关键字满足预设对应关系,该预设对应关系为向左移位1位,加密信息为对目标信息进行MD5加密后得到的信息。

可以理解地,预设对应关系还可以为基于其他可逆运算的对应关系,即,第二关键字可以通过第一关键字进行该可逆运算确定,例如,加法、减法、移位等。这里,采用可逆运算可实现第一关键字和第二关键字之间的双向变换。

在另一个实施例中,第一数据包括:第一关键字和与所述第一关键字对应存储的目标信息,所述目标信息包括:多个目标子信息;所述第二数据包括:第二关键字和与所述第二关键字对应的加密信息,所述加密信息包括:多个加密子信息;其中,每个所述加密子信息为对一所述目标信息私密之后的信息,所述第二关键字和所述第一关键字满足预设对应关系。

例如,若第一数据包括:关键字A3、第一目标子信息K3,第二目标子信息M3,即,第一数据表示为(A3,K3,M3),采用IDEA算法对目标信息K3进行处理,得到L3,以及采用MD5算法对目标信息M3进行处理,得到N3,则第二数据为(B2,L3,N2)。

在一个实施例中,所述加密信息为对所述目标信息进行哈希处理之后的信息。

具体地,通过哈希算法对目标信息进行处理,得到加密信息。

在一个实施例中,所述基于所述信息存储提案,执行智能合约得到第一数据,包括:

通过至少一个满足预设条件的所述授权节点,基于所述信息存储提案,执行智能合约得到第一数据。

这里,所述满足预设条件的所述授权节点,包括以下至少之一:

满足节点权限等级的预设数量个所述授权节点;例如,选取N个查询等级为高级的授权节点,该查询等级为高级的授权节点可查询所有保密等级(I级、II级和III级)的保密信息,N为正整数。

随机选取的所述预设数量个所述授权节点;例如,随机选取N个授权节点,N为正整数。

如图2所示,本发明实施例的另一种区块链网络的交易处理方法,所述方法包括:

步骤S201:接收来自客户端的信息查询提案;

步骤S202:基于所述信息查询提案,执行智能合约得到第三数据;

步骤S203:基于所述第三数据,分别从隐私数据库读取第一数据,以及从账本数据库读取第二数据;

步骤S204:对所述第一数据进行私密处理,得到第四数据;

步骤S205:比较所述第二数据和所述第四数据,若比较结果为第一状态值,则将所述第一数据返回给所述客户端,其中,所述第一状态值指示所述第二数据和所述第四数据满足数据一致性要求。

在上述步骤S201中,接收来自客户端的信息存储提案。

在本实施例中,客户端根据用户的信息查询请求构造信息查询提案,并将信息查询提案发送至背书节点,背书节点接收信息查询提案。

具体地,客户端根据用户的信息查询请求构造信息查询提案时,首先,客户端接收用户的信息查询请求,这里,信息查询请求包括:待查询信息和第二保密指示,其中,第二保密指示用于指示待查询信息是否为保密信息。例如,待查询信息可为图书馆藏书信息,对应的第二保密指示指示待查询信息为公开信息;待查询信息可为个人纳税信息,对应的第二保密指示指示待查询信息为保密信息;待查询信息可为版权信息,对应的第二保密指示指示待查询信息为保密信息,等等。

然后,客户端根据信息查询请求,构造信息查询提案。信息查询提案包括:待查询信息、查询信息涉及的智能合约的相关信息以及客户端签名等,其中,智能合约的相关信息包括:智能合约的标识和合约方法等。

最后,客户端将信息查询提案发送至预设的至少一个背书节点。

在一个实施例中,客户端根据第二保密指示,将信息查询提案发送至预设的至少一个背书节点。例如,若第二保密指示指示待查询信息为保密信息,则客户端将信息查询提案发送至预设的至少一个背书节点,这里,背书节点必须为被授予查询权限的授权节点,从而,只有被授予查询权限的授权节点才能接收到信息查询提案;若第二保密指示指示待查询信息为公开信息,则客户端将信息查询提案发送至预设的至少一个背书节点,且对背书节点是否为授权节点不作要求。

在另一个实施例中,第二保密指示还用于指示保密等级,授权节点具有不同查询等级权限,不同查询等级权限的授权节点可查询预设对应保密等级的保密信息。当第二保密指示指示待查询信息为保密信息时,客户端根据第二保密指示指示的保密等级,将信息查询提案发送至预设的至少一个具有相应查询等级权限的授权节点。

例如,保密等级包括:I级(绝密)、II级(机密)、III级(内部公开),查询等级权限包括:高级、中级、普通,其中,查询等级权限为高级的授权节点可查询所有保密等级(I级、II级和III级)的保密信息,查询等级权限为中级的授权节点可查询保密等级为II级和III级的保密信息,查询等级权限为普通的授权节点可查询保密等级为III级的保密信息。

在上述步骤S202中,基于所述信息查询提案,执行智能合约得到第三数据。

在本实施例中,收到信息查询提案后,背书节点验证客户端签名,即,验证客户端签名是否为合法的签名,如果是合法的签名,则验证通过。

验证通过后,则调用智能合约,并将待查询信息作为智能合约的参数输入,执行智能合约得到第三数据。

其中,智能合约,也称为链码或应用代码,是部署在区块链网络的节点中的程序,承载了执行交易的业务逻辑。例如,用于完成信息存储的智能合约,承载了执行信息存储的业务逻辑;用于完成信息查询的智能合约,承载了执行信息查询的业务逻辑。

这里,以查询一个版权信息为例,对智能合约的执行过程进行说明:

首先,待查询信息可为关键字(key)和/或信息值中的至少一个。例如,待查询信息仅为关键字“key:DP000001”;待查询信息为一个信息值“value:作品名称:“春””;待查询信息为多个信息值“value:作品名称:“春””;待查询信息为关键字和信息值的组合“key:DP000001”和信息值“value:作品名称:“春”,作品类别:“美术”,作品权属:“张**””。

然后,调用用于查询版权信息的智能合约,如,以待查询信息为关键字“key:DP000001”作为智能合约的参数输入,执行智能合约,得到第三数据为:key:“key:DP000001”;value:预设值。

最后,背书节点将第三数据打上背书签名,发送至验证节点。

本实施例中,验证节点对接收到的第三数据进行有效性验证。

这里,有效性验证包括:VSCC(Validation System Chaincode,处理交易的验证)验证与MVCC(Mutil-Version Concurrency Control,多版本并发控制)验证。其中,VSCC验证根据信息存储提案中的智能合约找到对应的背书策略,验证信息存储提案的背书签名是否与背书策略相符合;MVCC验证主要验证读写集(即,第一数据)的版本号是否与本地状态数据库存储的版本号不一致,若不一致,则说明该信息存储提案之前的提案已经更改了数据,本次信息存储提案无效。

在上述步骤S203中,基于所述第三数据,分别从隐私数据库读取第一数据,以及从账本数据库读取第二数据。

在本实施例中,若第三数据通过有效性验证,则验证节点基于所述第三数据,分别从隐私数据库读取第一数据,以及从账本数据库读取第二数据。

具体地,验证节点以第三数据的全部或部分信息作为关键字,在隐私数据库中进行匹配,将满足第一预设匹配要求的信息/记录作为第一数据。这里,满足第一预设匹配要求可为:采用基于字符串相似度的计算方法得到匹配概率,匹配概率大于第一预设概率阈值;其中,字符串相似度的计算方法包括:Levenshtein distance,Affine gap distance,Jaro distance,Q-gram distance等。

验证节点以第三数据的全部或部分信息作为关键字,在账本数据库中进行匹配,将满足第二预设匹配要求的记录即作为第二数据。这里,满足第二预设匹配要求可为:采用基于字符串相似度的计算方法得到匹配概率,匹配概率大于第二预设概率阈值;其中,字符串相似度的计算方法包括:Levenshtein distance,Affine gap distance,Jarodistance,Q-gram distance等。

在本实施例中,第一预设匹配要求和第二预设匹配要求可以相同,也可以不相同。

在一个实施例中,验证节点以第五数据的全部或部分信息作为关键字,在隐私数据库中进行匹配,将满足第一预设匹配要求的记录即作为第一数据,其中,第五数据与第三数据满足预设对应关系。这里,为对应于在加密信息存储过程中,与加密信息对应的第二关键字和与目标信息对应的第一关键字满足预设对应关系,相应地,在加密信息查询过程中,将第三数据按照预设对应关系处理得到第五数据,进而以第五数据进行信息查询。

在上述步骤S204中,对所述第一数据进行私密处理,得到第四数据;

在本实施例中,验证节点按照预设加密算法对第一数据进行私密处理,这里,预设加密算法与信息存储至账本数据库时采用的加密算法相同。

在一个实施例中,第一数据包括:第一关键字和与所述第一关键字对应存储的目标信息,则对目标信息采用对称加密算法(如:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES等)、非对称加密算法(如:RSA、Diffie-Hellman和El Gamal等)或哈希算法(如MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5和HMAC-SHA1等)等处理,得到加密信息,以及按照预设对应关系,根据第一关键字确定第四关键字,从而,第四数据为包括:第四关键字和加密信息。

在上述步骤S205中,比较所述第二数据和所述第四数据,若比较结果为第一状态值,则将所述第一数据返回给所述客户端,其中,所述第一状态值指示所述第二数据和所述第四数据满足数据一致性要求。

在本实施例中,比较第二数据和第四数据,包括:比较第二数据和第四数据的预设字段,若预设字段均满足一致性要求,则将比较结果置为第一状态值,以指示所述第二数据和所述第四数据满足数据一致性要求。

具体地,假设第二数据包括:关键字1和目标信息1,第四数据包括:关键字2和目标信息2,预设字段包括:关键字和目标信息。那么,比较第二数据和第四数据,包括:比较关键字1和关键字2,以及比较目标信息1和目标信息2,若两者的匹配相似度均高于对应的预设一致性阈值,则将比较结果置为第一状态值。

如图3所示,本发明实施例还提供一种区块链网络,包括:背书节点10和验证节点20,其中,

所述背书节点10,用于接收来自客户端的信息存储提案,所述信息存储提案指示待存储信息为保密信息;

所述背书节点10,用于基于所述信息存储提案,执行智能合约得到第一数据;

所述背书节点10,还用于对所述第一数据进行私密处理,得到第二数据;

所述验证节点20,用于验证所述第一数据的有效性;

所述验证节点20,用还用于若所述第一数据通过有效性验证,则将所述第一数据存储至隐私数据库,以及将所述第二数据存储至账本数据库;

其中,所述账本数据库的数据,用于供区块链网络上的所有节点查询,所述隐私数据库的数据,用于供区块链网络上被授予查询权限的授权节点查询。

所述背书节点10,具体用于:通过至少一个满足预设条件的所述授权节点,基于所述信息存储提案,执行智能合约得到第一数据。

继续参考图3,本发明实施例还提供一种区块链网络,包括:背书节点10和验证节点20,其中,

所述背书节点10,用于接收来自客户端的信息查询提案;

所述背书节点10,还用于基于所述信息查询提案,执行智能合约得到第三数据;

所述验证节点20,用于基于所述第三数据,分别从隐私数据库读取第一数据,以及从账本数据库读取第二数据;

所述背书节点10,还用于对所述第一数据进行私密处理,得到第四数据;

所述背书节点10,还用于比较所述第二数据和所述第四数据,若比较结果为第一状态值,则将所述第一数据返回给所述客户端,其中,所述第一状态值指示所述第二数据和所述第四数据满足数据一致性要求。

在一个实施例中,所述第三数据包括:第三关键字;

所述验证节点20,具体还用于:

基于所述第三关键字与第一关键字的匹配,从隐私数据库读取与所述第三关键字匹配成功第一关键字对应的目标信息;

基于第四关键字与第二关键字的匹配,从账本数据库读取与所述第四关键字匹配成功的第二关键字对应的加密信息。

本发明实施例还提供一种计算机存储介质,该计算机存储介质存储有计算机可执行指令;所述计算机可执行指令被处理器执行后,能够实现前述一个或多个技术方案提供的区块链网络的交易处理方法。

所述计算机存储介质可为:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质等存储介质,可选为非瞬间存储介质。

以下,如图4所示,以一个具体示例对本发明实施例区块链网络的交易处理方法进行说明:

本方案基于超级账本区块链系统提供的底层认证技术和数据存储技术构建了版权保护系统,该系统具有用户注册,版权信息上传登记、查询等功能,能对版权信息进行高效安全的存储与管理。

超级账本区块链系统存储数据时,所有数据相关的增加、修改、删除操作都会转化为系统中“交易”,所有的交易需要经过客户端提案、背书节点背书、排序节点排序、验证节点确认这几个过程,随后所有节点会同步变动后的数据。

本方案基于现有超级账本区块链系统进行改进构建,超级账本区块链系统进行版权信息登记或变更的流程如下:

S1:接收并处理信息处理请求;

以超级账本区块链系统用于存储数字版型信息为例,当数字版权系统的使用者有版权信息登记、版权信息变更或者版权信息查询的请求时,通过客户端(通过超级账本的sdk构建)发送请求给超级账本区块链系统。客户端会将请求转化为交易提案,交易提案把带有本次交易要调用的合约标识、合约方法和参数信息以及客户端签名等信息发送给背书(Endorser)节点。例如:客户想在系统中进行版权登记,则交易会包含调用版权登记合约(所有智能合约均事先部署在超级账本系统中),参数为需要登记的版权的id与内容信息,同时可选择是否在系统中公开该版权信息。

S2:背书;

如果客户进行的是版权登记或变更操作,当客户选择公开版权时,则按照超级账本的现有技术进行数据的背书、确认与数据提交操作进行数据的存储,该方式下每个节点的账本数据库都能查看到版权内容的明文数据。

当客户选择不公开版权时(即,信息存储提案指示待存储信息为保密信息),则采取本方案的改进存储方法,该改进存储方法依赖于:第一,在超级账本已有的状态数据库(存储读写集与世界状态版本号的对应关系)与账本数据库(存储当前状态的读写集)基础上,增加隐私数据库,其中,隐私数据库和账本数据库的数据结构类似,也是基于levelDB构建;第二,在超级账本区块链系统的所有节点中,选取有权限查看明文数据的节点(即,授权节点),作为该交易的背书节点,同时从背书节点中随机选取若干节点作为验证节点(至少一个),这里,授权节点通常为权限最高的管理节点,例如,创建数字版权系统的用户可以设定为管理者。

具体地,本方案的改进存储方法的背书过程如下:

首先,在背书节点收到交易提案后,进行模拟交易,得到交易读写集(即,第一数据)。

然后,对读写集的kv值均进行哈希运算,得到加密后的读写集(即,第二数据)。

最后,背书节点缓存读写集明文,将读写集明文发送至第一排序节点,以及将加密后的读写集发送给第二排序节点。

S3:确认交易;

第一排序节点将背书节点生成的读写集明文排序,按照交易时间先后顺序排序后打包成区块,发送至选出的验证节点。

验证节点需要进行VSCC验证与MVCC验证,VSCC验证根据提案中的合约ID找到对应的背书策略,验证提案的背书签名是否与背书策略相符合;MVCC验证主要验证读写集的版本号是否与本地状态数据库存储的版本号不一致,若不一致,则说明该交易之前的交易已经更改了数据,交易无效。

这里,以一个具体示例对MVCC验证进行说明:所有数据都用kv键值对存取,k1对应的版本号为v1,表示为,此时同时提交两个交易,模拟交易后,值分别为v2与v3,则背书节点生成两个读写集=>=>,如果第一个交易先被确认,那么,此时k1对应的世界状态版本号变为v2;第二个交易时以k1,v1为基础操作的,第二个交易的读集版本号v1与现有的世界状态版本号v2不等,因此第二个交易无效。此操作是防止数据冲突,比如一个账户的数字为1,两个交易分别为该账户增加1和增加2,同时提交,模拟交易都是以当前的版本数据操作,背书节点得到的模拟后是2和3,第一个先执行,账户数字变成了2,如果直接确认第二个交易,账户数字为3,显然不符合逻辑,因为第二个操作进行的版本号不是当前数据状态的,因此只能将第二个操作视为无效操作,退回第二个交易。

验证过程需要使用到缓存中的读写集明文进行判断,通过验证后则将读写集明文发送至验证节点,以及向第二排序节点发送有效性验证通过信息,以指示第二排序节点发送与第一数据对应的第二数据至验证节点;若验证不通过,则该交易无效,直接返回给客户端交易无效信息。

S4:数据存储;

验证节点将加密后的读写集存在账本数据库,确认排序节点打包好的区块信息,此时账本数据库的信息会在所有节点同步;同时,将读写集明文存储在隐私数据库中。

显然,本申请方案只在模拟交易与验证交易的时候,才能查看缓存的明文数据。相应地,在读写集明文存储完成后,调用智能合约删除所有背书节点和验证节点缓存的明文读写集。

S5:数据查询;

上述S1-S4完成了数据的登记与变更,此时,账本数据库中存储的是加密后的交易读写集数据。当需要查询明文时,背书节点执行版权查询合约,生成读写集(模拟交易前后的kv不变),此时,无需经过排序节点的排序,验证节点在验证交易(确认查询者身份)签名与版本号后,从隐私数据库中查询存储的明文信息,同时,采用数据存储时同样的加密算法获得该明文信息对应的密文信息,并与账本数据库中读取的加密读写集进行比对,若确认数据一致,则将明文信息返回给客户端。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些端口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 一种区块链网络的交易处理方法、区块链网络及存储介质
  • 区块链网络的交易处理方法及区块链网络
技术分类

06120113065551