一种状态数据库交易验签实现方法转让专利

申请号 : CN201910816566.4

文献号 : CN110515978B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李虎曾毅峰刘佳利吕刚

申请人 : 上海浦东发展银行股份有限公司信用卡中心

摘要 :

本发明涉及一种状态数据库交易验签实现方法,用于业务系统中的数据查询,包括步骤:1)建立用于存储数据的两个通道channel1,channel2,将附带签名的数据存储在通道channel2中;2)将channel1中智能合约按逻辑存储数据,当channel2存储数据时,在数据后附带对该数据进行操作的节点进行背书,并将其存储到Hyperledger Fabirc状态数据库中;3)通过channel1、channel2双通道进行签名校验,对校验不通过的数据返回错误信息;对校验通过的数据执行下一步;4)对校验通过的数据进行正确率比对,对合格的数据执行交易。与现有技术相比,本发明可防止大部分本地状态数据库遭篡改导致交易数据不准确,解决了直接修改couchDB来实现业务数据修改的问题。

权利要求 :

1.一种状态数据库交易验签实现方法,用于业务系统中的数据查询,其特征在于,该方法包括下列步骤:

1)建立用于存储数据的两个通道channel1,channel2,将附带签名的数据存储在通道channel2中;

2)将channel1中智能合约按逻辑存储数据,当channel2存储数据时,在数据后附带对该数据进行操作的节点进行背书,并将其存储到Hyperledger Fabirc状态数据库中;

3)通过channel1、channel2双通道进行签名校验,对校验不通过的数据返回错误信息;

对校验通过的数据执行下一步;

4)对校验通过的数据进行正确率比对,对合格的数据执行交易。

2.根据权利要求1所述的一种状态数据库交易验签实现方法,其特征在于,步骤3)的具体内容为:业务系统通过channel1查询数据,利用fabric跨智能合约调用的特性,令channel1调用channel2的智能合约,查询带有签名的数据;随后对查询出的带有签名的数据进行签名的校验;若签名验证不通过,则返回错误信息,若校验通过,则执行步骤4)。

3.根据权利要求2所述的一种状态数据库交易验签实现方法,其特征在于,步骤4)的具体内容为:签名验证通过后,获取channel1中查询的数据,将获取的channel1中查询的数据与签名验证通过的带有签名的数据进行比对,若二者一致,则返回数据至查询者,若不一致,则表示数据已被修改,返回错误信息。

4.根据权利要求3所述的一种状态数据库交易验签实现方法,其特征在于,数据采用x509证书格式进行签名。

5.根据权利要求1所述的一种状态数据库交易验签实现方法,其特征在于,通道channel1、通道channel2与业务系统之间为共识服务。

6.根据权利要求5所述的一种状态数据库交易验签实现方法,其特征在于,所述的共识服务提供Peer节点供订阅的主题,每个主题为一个通道,Peer节点订阅多个通道,且只能访问订阅通道上的交易,多个通道之间的数据为完全独立保存。

7.根据权利要求6所述的一种状态数据库交易验签实现方法,其特征在于,所述的主题包括发布‑订阅消息队列。

8.根据权利要求1所述的一种状态数据库交易验签实现方法,其特征在于,步骤2)中,channel1中智能合约按每次存储数据不经过加工直接存储在通道中的逻辑进行。

说明书 :

一种状态数据库交易验签实现方法

技术领域

[0001] 本发明涉及Hyperledger Fabric技术领域,尤其是涉及一种状态数据库交易验签实现方法。

背景技术

[0002] Hyperledger Fabric是一个面向企业级客户的开源项目,Hyperledger Fabric网络中的节点必须经过授权认证后才能加入整个网络,授权认证机制将区块链网络中的各节点透明可控化,有助于企业进行有效控制,目前fabric已广泛在企业联盟链中使用。
[0003] 虽然区fabric是一个只能插入和查询的区块链,但对于企业业务数据,如银行的业务数据是存放在状态数据库中的(一般为couchDB或levelDB数据库,以couchDB为例),若直接修改了couchDBB数据库的数据,则接下来的查询和事务是直接基于修改后的couchDBB数据库的,并不会去检查区块链中的记录,因此可通过直接修改CouchDB来实现业务数据的修改。因为区块链是一个不可篡改的数据库,直接修改CouchDB来实现业务数据的修改将会产生数据出错等诸多问题,这样的缺陷会对企业的业务的开展造成极大影响。

发明内容

[0004] 本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种状态数据库交易验签实现方法。
[0005] 本发明的目的可以通过以下技术方案来实现:
[0006] 一种状态数据库交易验签实现方法,用于业务系统中的数据查询,具体包括如下步骤:
[0007] S1、建立用于存储数据的两个通道channel1,channel2,将附带签名的数据存储在通道channel2中。
[0008] S2、将channel1中智能合约按逻辑存储数据,当channel2存储数据时,在数据后附带对该数据进行操作的节点进行背书,并将其存储到Hyperledger Fabirc状态数据库中。其中,channel1中智能合约按每次存储数据不经过加工直接存储在通道中的逻辑进行。
[0009] S3、通过channel1、channel2双通道进行签名校验,对校验不通过的数据返回错误信息;对校验通过的数据执行下一步。具体内容为:
[0010] 业务系统通过channel1查询数据,利用fabric跨智能合约调用的特性,令channel1调用channel2的智能合约,查询带有签名的数据;随后对查询出的带有签名的数据进行签名的校验;若签名验证不通过,则返回错误信息,若校验通过,则执行步骤S4。
[0011] S4、签名验证通过后,获取channel1中查询的数据,将获取的channel1中查询的数据与签名验证通过的带有签名的数据进行比对,若二者一致,则返回数据至查询者,若不一致,则表示数据已被修改,返回错误信息。
[0012] 进一步地,本发明数据采用x509证书格式进行签名。
[0013] 进一步地,通道channel1、通道channel2与业务系统之间为共识服务。
[0014] 进一步地,所述的共识服务提供Peer节点供订阅的主题,每个主题为一个通道,Peer节点订阅多个通道,且只能访问订阅通道上的交易,多个通道之间的数据为完全独立保存。所述的主题包括发布‑订阅消息队列等。
[0015] 与现有技术相比,本发明具有以下优点:
[0016] 1、本发明针对现有技术的缺陷,在每次交易前添加了先解签比对数据正确性的步骤,即利用两个通道对查询的数据先进行签名校验,签名验证通过后再获channel1查询的数据进行比对,若不一致则代表数据被修改,返回错误,若一致,则返回数据给查询者,再进行交易,可防止大部分本地状态数据库遭篡改导致交易数据不准确,解决了直接修改couchDB来实现业务数据修改的问题;
[0017] 2、本发明采用双通道存储数据,能够对数据实时备份,保证了数据的安全性;
[0018] 3、本发明通过交易数据签名验证,提高了数据的可信度。

附图说明

[0019] 图1为本发明方法中查询数据的流程示意图;
[0020] 图2为本发明方法中双通道存储数据的原理图。

具体实施方式

[0021] 下面结合附图和具体实施例对本发明进行详细说明。显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
[0022] 本发明涉及一种状态数据库交易验签实现方法,该方法应用于业务系统中的数据查询中,解决fabric中直接修改节点的couchDB达到修改业务数据的问题。
[0023] 因联盟链成员不同于公链,联盟链成员不多,数据篡改难度比公链小。该方法基于Hyperledger Fabirc联盟链技术去实现交易验证,该方法具体包括如下步骤:
[0024] 步骤一、因联盟链里每个成员均需要签名,本发明首先新建用于存储数据的两个通道channel1,channel2,并将附带签名的数据存储在通道channel2中。
[0025] 步骤二、存储数据:
[0026] channel1中智能合约按之前每次存储数据不经过加工就存储在通道中的逻辑存储数据。channel2存储数据时,在数据后附带对该数据进行操作的节点进行背书,并将其存储到Hyperledger Fabirc状态数据库中。channel1,channel2与业务系统之间为共识服务。如图2所示,共识服务提供Peer节点供订阅的主题(如发布‑订阅消息队列),每个主题是一个通道。Peer节点可以订阅多个通道,并且只能访问订阅通道上的交易,多个通道之间的数据是完全独立保存的。channel1中的数据是明文保存的,修改起来相对比较简单,channel2中的数据是经过签名背书之后存放在通道channel2中,修改数据难度较大。所以交易的时候先比较两个通道的数据是否一致来判断通道中的数据是否被修改,能够增加交易数据的可信度。
[0027] 步骤三、查询数据:
[0028] 业务系统通过channel1查询数据,利用fabric跨智能合约调用的特性,channel1先调用channel2的智能合约查询带有签名的数据,查询出的带有签名的数据先进行签名的校验;若签名验证不通过,则返回错误信息;若签名验证通过,则再获channel1中查询的数据,将二者做比对,如果一致,则返回数据给查询者,如不一致则代表数据被修改,返回错误信息。其中,签名使用现有技术中的x509技术。
[0029] 本发明针对现有技术的缺陷,在每次交易前添加了先解签比对数据正确性的步骤,即利用两个通道对查询的数据先进行签名校验,签名验证通过后再获channel1查询的数据进行比对,若不一致则代表数据被修改,返回错误,若一致,则返回数据给查询者,再进行交易,可防止大部分本地状态数据库遭篡改导致交易数据不准确,解决了直接修改couchDB来实现业务数据修改的问题。
[0030] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的工作人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。