一种用于联盟链中私有数据集的保护系统及方法与流程

文档序号:33952505发布日期:2023-04-26 12:46阅读:27来源:国知局
一种用于联盟链中私有数据集的保护系统及方法与流程

本发明涉及区块链,尤其涉及一种联盟链中私有数据集的保护系统及方法。


背景技术:

1、在联盟链中,针对隐私数据,采用的是一种私有数据集的方案,私有数据集只在相关授权方之间点对点传输,只有其hash结果记录到分布式账本上,其他节点无权进行验证。数据的整体流程为“生成-共识-同步-验证-记账”,1.私有数据集的生成流程如图1所示,当交易在背书节点之后,会产生正常数据的读写集以及私有数据的读写集。正常数据读写集会全部提交共识记录到区块中,全网同步。而私有数据仅计算出其hash值,提交共识并记录到区块中全网同步,私有数据的读写集本身则通过私有协议在授权节点之间传输,非授权节点无法获取任何私有数据的信息。

2、授权节点验证数据流程如图2所示,对于授权节点,首先会同步到账本数据,其中包含正常数据读写集和私有数据的hash。正常数据可以通过验证后提交到账本,私有数据则需要等待由私有协议传播过来,或者向其他授权节点拉取,直到获得此次相关的私有数据之后验证hash无误后才可以提交。这个过程中由于需要等待私有数据集的传播,交易结果的验证会有所延迟,降低了交易效率。

3、非授权节点验证数据流程如图3所示,非授权节点仅能同步账本数据,其中包含了正常数据读写集以及私有数据的hash。对于正常数据可以进行验证后提交,但是由于非授权节点无法获取私有数据集,所以不能对私有数据hash的有效性进行校验,只能被动提交。这对私有数据的可靠性有一定影响。

4、上述方案中存在两个问题:

5、1.私有数据通过另外的网络协议进行传输,传输过程与账本不同步。其他授权节点在收到相关账本信息后想要验证hash数据是否正确,需要等待私有数据收到之后才可以,降低了交易效率;

6、2.同属区块链网络中与此私有数据集没有关系的节点,不会收到私有数据集,但是其收到的账本信息中包含有私有数据集的hash,但是节点无法对hash,进行验证,无法保证信息真伪,只能被动接收此账本数据。


技术实现思路

1、本发明的目的在于提供一种用于联盟链中私有数据集的保护系统及方法,从而解决现有技术中存在的前述问题。

2、为了实现上述目的,本发明采用的技术方案如下:

3、第一方面,本发明提供了一种用于联盟链中私有数据集的保护系统,包括若干联盟链节点、以及设置在所述联盟链节点内的零知识证明合约系统,所述零知识证明合约系统在联盟链的各个节点内部运行,用于定义私有数据使用hash算法生成hash散列值的计算过程作为电路,以及基于电路的零知识证据生成及验证过程。

4、优选的,所述零知识证明合约系统基于电路的零知识证据生成及验证过程包括:

5、1)调用零知识智能合约系统对私有数据进行零知识证明合约电路编译,得到电路约束数据circuit;

6、2)私有数据零知识证明电路初始化,输入通过第1)步编译得到的电路约束数据circuit,采用zk-snark算法对电路进行初始化,得到用于证明和验证的公共参数pk、vk,通过联盟链记录到分布式账本中;

7、3)输入私有数据集原始数据作为电路秘密输入,以及私有数据hash散列值作为电路公开输入,生成零知识证明proof;

8、4)使用零知识证明电路基于私有数据hash构建见证witness;将见证witness和私有数据零知识证明一起作为输入,调用零知识系统合约验证功能verify进行验证。

9、本发明的另一个目的在于提供了一种用于联盟链中私有数据集的保护方法,基于第一方面所提供的用于联盟链中私有数据集的保护系统实现,包括私有数据集生成过程以及验证过程,其中私有数据集生成过程具体包括以下步骤:

10、s1,联盟链中的执行节点对交易进行预执行,生成正常数据读写集和私有数据读写集;

11、s2,执行节点采用零知识证明合约系统对私有数据读写集进行零知识证明处理,得到私有数据的hash值和该私有数据的零知识证明;

12、s3,将私有数据的hash值、该私有数据的零知识证明和正常数据读写集打包发送共识,等待生成新的区块并在整个联盟链网络中广播。

13、优选的,步骤s2中具体包括:

14、s21,私有数据集通过hash算法得到私有数据的hash值;

15、s22,调用零知识证明合约系统的合约零知识证明生成功能prove,将私有数据集和其hash值作为输入,其中私有数据集为秘密输入,hash值为公开输入,生成此私有数据的零知识证明;

16、s23,将私有数据的hash值和该私有数据的零知识证明进行打包,原私有数据在授权节点之间通过私有协议进行传播。

17、优选的,私有数据集验证过程包括以下步骤:

18、s4,授权节点和非授权节点同步联盟链中各个节点数据,获取待验证的区块;

19、s5,授权节点和非授权节点解析获取到的区块数据,得到正常数据读写集、私有数据的hash值和该私有数据的零知识证明,并采用零知识证明合约系统验证私有数据;

20、s6,若验证成功,则授权节点获得正常数据集和私有数据集,非授权节点获得正常数据集,更新分布式账本数据;否则不更新分布式账本数据。

21、优选的,步骤s5中采用零知识证明合约系统验证私有数据具体包括:

22、s51,使用零知识证明电路基于私有数据hash构建见证witness;

23、s52,将见证witness和私有数据零知识证明一起作为输入,调用零知识系统合约验证功能verify进行验证。

24、本发明的有益效果是:

25、本发明提供了一种用于联盟链中私有数据集的保护系统及方法,通过引入零知识证明增强私有数据的处理流程,使得所有节点验证方式统一,能够快速高效的完成验证,同时使得所有节点对私有数据的提交更有保障;同时对原有联盟链私有数据处理流程的增强,在保留私有数据隐私保护能力的前提下,利用零知识证明对私有数据hash进行验证,证明其真实性,使得所有上链数据真实可靠。再者,授权节点和非授权节点统一的验证流程使得账本数据的提交更新流程更加快速高效,从而提高了联盟链整体的交易性能。



技术特征:

1.一种用于联盟链中私有数据集的保护系统,其特征在于,包括若干联盟链节点、以及设置在所述联盟链节点内的零知识证明合约系统,所述零知识证明合约系统在联盟链的各个节点内部运行,用于定义私有数据使用hash算法生成hash散列值的计算过程作为电路,以及基于电路的零知识证据生成及验证过程。

2.根据权利要求1所述的用于联盟链中私有数据集保护系统,其特征在于,

3.一种用于联盟链中私有数据集的保护方法,基于权利要求1-2任一所述的用于联盟链中私有数据集的保护系统实现,其特征在于,包括私有数据集生成过程以及验证过程,其中私有数据集生成过程具体包括以下步骤:

4.根据权利要求3所述的用于联盟链中私有数据集生成方法,其特征在于,步骤s2中具体包括:

5.根据权利要求3所述的用于联盟链中私有数据集的保护方法,其特征在于,私有数据集验证过程包括以下步骤:

6.根据权利要求5所述的用于联盟链中私有数据集的保护方法,其特征在于,步骤s5中采用零知识证明合约系统验证私有数据具体包括:


技术总结
本发明提供了一种用于联盟链中私有数据集的保护系统及方法,通过引入零知识证明增强私有数据的处理流程,使得所有节点验证方式统一,能够快速高效的完成验证,同时使得所有节点对私有数据的提交更有保障;同时对原有联盟链私有数据处理流程的增强,在保留私有数据隐私保护能力的前提下,利用零知识证明对私有数据hash进行验证,证明其真实性,使得所有上链数据真实可靠。再者,授权节点和非授权节点统一的验证流程使得账本数据的提交更新流程更加快速高效,从而提高了联盟链整体的交易性能。

技术研发人员:胡建鑫,付正,曾凡华,陈冬
受保护的技术使用者:新晨科技股份有限公司
技术研发日:
技术公布日:2024/1/11
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1