欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 区块链隐私数据共享方法、装置、计算机设备和存储介质独创技术50157字

区块链隐私数据共享方法、装置、计算机设备和存储介质

2021-03-04 12:50:46

区块链隐私数据共享方法、装置、计算机设备和存储介质

  技术领域

  本申请涉及区块链技术领域,特别是涉及一种区块链隐私数据共享方法、装置、计算机设备和存储介质。

  背景技术

  区块链作为一个去中心化的信任平台,通过公开可查询的记录可以为用户的行为进行见证,同时,不可避免的会产生数据共享的需求,在共享的数据集中不乏包含有个人隐私数据,例如,医疗诊断记录、个人消费习惯和使用偏好等,这些信息会由于数据共享而泄露。

  虽然,目前的数据共享过程中,提供了在将隐私数据发布到区块链网络之前,区块链平台可以删除隐私数据对应的身份标识的方法,可以在一定程度上保护个人隐私,但是对于删除了身份标识后的明文数据内容,攻击者仍然可以根据其明文数据内容进行背景知识攻击操作,则依旧不能保证隐私信息的安全性。

  发明内容

  基于此,有必要针对上述技术问题,提供一种区块链隐私数据共享方法、装置、计算机设备和存储介质。

  一种区块链隐私数据共享方法,所述方法包括:

  创建第一交易合约,将带有目标隐私数据集数据内容哈希值和数据类型的所述第一交易合约发送到区块链平台,所述区块链平台用于对所述第一交易合约进行共识处理和上链;

  接收所述区块链平台发送的隐私数据获取请求,在所述目标隐私数据集中进行差分化查询,得到差分化的目标隐私数据,并将所述差分化的目标隐私数据反馈给所述区块链平台。

  在其中一个实施例中,所述方法还包括:

  对写入的每一条数据记录提取数据特征,并将所述数据特征与对应的数据记录的数据标识建立索引关系,所述数据特征中包含有数据类型;

  根据所述索引关系,确定所述每一条数据记录的具体数据内容与所述数据标识的对应关系;

  将所述索引关系和所述对应关系,按照写入顺序存储至本地缓存队列,并根据所述数据特征中的数据类型,将包含有相同数据类型的所述索引关系和所述对应关系,由所述本地缓存队列依次存储至本地存储器的同一个数据库中,并根据所述数据类型确定所述数据库对应的数据集类型标识。

  在其中一个实施例中,所述接收所述区块链平台发送的隐私数据获取请求,在所述目标隐私数据集中进行差分化查询,得到差分化的目标隐私数据,并将所述差分化的目标隐私数据反馈给所述区块链平台,包括:

  接收所述区块链平台发送的隐私数据获取请求,根据所述隐私数据获取请求中携带的目标数据特征,在所述目标隐私数据集对应的本地缓存队列中对全部的索引关系和对应关系进行差分化查询;

  若所述本地缓存队列中存在所述索引关系中包含的数据特征与所述目标数据特征一致,则将所述索引关系和所述对应关系确定为目标索引关系和目标对应关系;

  根据所述目标索引关系和所述目标对应关系,确定对应的目标隐私数据,并根据预设的隐私预算因子对所述目标隐私数据进行差分化处理,得到差分化的目标隐私数据;

  读取所述差分化的目标隐私数据,并将读取到的所述差分化的目标隐私数据反馈给所述区块链平台。

  在其中一个实施例中,所述方法还包括:

  若所述本地缓存队列中不存在包含的数据特征与所述目标数据特征一致的所述索引关系,则在所述本地存储器中,查询并确定出包含的数据特征与所述目标数据特征一致的目标索引关系和目标对应关系,并根据所述目标索引关系和目标对应关系,确定对应的目标隐私数据,根据预设的隐私预算因子对所述目标隐私数据进行差分化处理,得到所述差分化的目标隐私数据;

  读取所述差分化的目标隐私数据,并将读取到的所述差分化的目标隐私数据反馈给所述区块链平台。

  在其中一个实施例中,所述方法还包括:

  根据所述差分化的目标隐私数据及预设的哈希算法,得到所述差分化的目标隐私数据的哈希值;

  根据所述数据所有方的公钥对所述差分化的目标隐私数据和所述差分化的目标隐私数据的哈希值进行加密,得到第一密文;

  根据所述数据所有方的私钥和所述数据接收方的公钥,生成重加密密钥;

  利用所述重加密密钥,对所述第一密文进行加密,得到第二密文,并将所述第二密文反馈给所述区块链平台。

  一种区块链隐私数据共享方法,所述方法应用于数据接收方设备,所述方法包括:

  创建第二交易合约,将带有目标隐私数据获取请求和目标数据特征的所述第二交易合约发送到区块链平台,所述区块链平台用于对所述第二交易合约进行共识处理和上链;

  接收所述区块链平台根据所述第二交易合约中的所述目标数据特征反馈的差分化的目标隐私数据,对所述差分化的目标隐私数据进行分析处理,得到目标隐私数据统计结果。

  在其中一个实施例中,所述接收所述区块链平台根据所述第二交易合约中的所述目标数据特征反馈的差分化的目标隐私数据,对所述差分化的目标隐私数据进行分析处理,得到目标隐私数据统计结果,包括:

  接收所述区块链平台反馈的差分化的目标隐私数据,并对所述差分化的目标隐私数据进行扰动性统计,得到扰动统计结果;

  构建似然函数对所述扰动统计结果进行校正,得到校正后的统计值,作为目标隐私数据统计结果。

  在其中一个实施例中,所述方法还包括:

  接收所述区块链平台反馈的加密的所述差分化的目标隐私数据,根据所述数据接收方的私钥,对所述加密的所述差分化的目标隐私数据进行解密,得到解密后的所述差分化的目标隐私数据。

  一种区块链隐私数据共享装置,所述装置应用于数据所有方设备,所述装置包括:

  创建模块,用于创建第一交易合约,将带有目标隐私数据集数据内容哈希值和数据类型的所述第一交易合约发送到区块链平台,所述区块链平台用于对所述第一交易合约进行共识处理和上链;

  接收模块,用于接收所述区块链平台发送的隐私数据获取请求,在所述目标隐私数据集中进行差分化查询,得到差分化的目标隐私数据,并将所述差分化的目标隐私数据反馈给所述区块链平台。

  一种区块链隐私数据共享装置,所述装置应用于数据接收方设备,所述装置包括:

  创建模块,用于创建第二交易合约,将带有目标隐私数据获取请求和目标数据特征的所述第二交易合约发送到区块链平台,所述区块链平台用于对所述第二交易合约进行共识处理和上链;

  接收模块,用于接收所述区块链平台根据所述第二交易合约中的所述目标数据特征反馈的差分化的目标隐私数据,对所述差分化的目标隐私数据进行分析处理,得到目标隐私数据统计结果。

  一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

  创建第一交易合约,将带有目标隐私数据集数据内容哈希值和数据类型的所述第一交易合约发送到区块链平台,所述区块链平台用于对所述第一交易合约进行共识处理和上链;

  接收所述区块链平台发送的隐私数据获取请求,在所述目标隐私数据集中进行差分化查询,得到差分化的目标隐私数据,并将所述差分化的目标隐私数据反馈给所述区块链平台。

  一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

  创建第一交易合约,将带有目标隐私数据集数据内容哈希值和数据类型的所述第一交易合约发送到区块链平台,所述区块链平台用于对所述第一交易合约进行共识处理和上链;

  接收所述区块链平台发送的隐私数据获取请求,在所述目标隐私数据集中进行差分化查询,得到差分化的目标隐私数据,并将所述差分化的目标隐私数据反馈给所述区块链平台。

  一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

  创建第二交易合约,将带有目标隐私数据获取请求和目标数据特征的所述第二交易合约发送到区块链平台,所述区块链平台用于对所述第二交易合约进行共识处理和上链;

  接收所述区块链平台根据所述第二交易合约中的所述目标数据特征反馈的差分化的目标隐私数据,对所述差分化的目标隐私数据进行分析处理,得到目标隐私数据统计结果。

  一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

  创建第二交易合约,将带有目标隐私数据获取请求和目标数据特征的所述第二交易合约发送到区块链平台,所述区块链平台用于对所述第二交易合约进行共识处理和上链;

  接收所述区块链平台根据所述第二交易合约中的所述目标数据特征反馈的差分化的目标隐私数据,对所述差分化的目标隐私数据进行分析处理,得到目标隐私数据统计结果。

  上述区块链隐私数据共享方法、装置、计算机设备和存储介质,该方法包括:创建第一交易合约,将带有目标隐私数据集数据内容哈希值和数据类型的所述第一交易合约发送到区块链平台,所述区块链平台用于对所述第一交易合约进行共识处理和上链;接收所述区块链平台发送的隐私数据获取请求,在所述目标隐私数据集中进行差分化查询,得到差分化的目标隐私数据,并将所述差分化的目标隐私数据反馈给所述区块链平台。采用本方法对隐私数据的数据内容哈希值和数据类型而非明文数据,进行共识处理和上链,同时在隐私数据共享过程中对隐私数据进行差分化查询处理,提高了隐私数据共享过程中的安全性。

  附图说明

  图1为一个实施例中区块链隐私数据共享方法的应用环境图;

  图2为一个实施例中区块链隐私数据共享方法的流程示意图;

  图3为一个实施例中差分化查询方法的流程示意图;

  图4为一个实施例中存储数据记录的方法的流程示意图;

  图5为一个实施例中不同疾病类型数据库示意图;

  图6为一个实施例中接收隐私数据获取请求具体处理过程的流程示意图;

  图7为一个实施例中查询热点缓存的方法的流程示意图;

  图8为一个实施例中对差分化的目标隐私数据加密的方法的流程示意图;

  图9为另一个实施例中一种区块链隐私数据共享方法的流程示意图;

  图10为一个实施例中接收差分化的目标隐私数据具体处理过程的流程示意图;

  图11为一个实施例中区块链隐私数据共享装置的结构框图;

  图12为另一个实施例中区块链隐私数据共享装置的结构框图;

  图13为一个实施例中计算机设备的内部结构图。

  具体实施方式

  为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

  本申请提供的区块链隐私数据共享方法,可以应用于如图1所示的应用环境中。其中,包括数据所有方设备110、数据接收方设备120和区块链平台130。数据所有方设备110用于创建第一交易合约,将带有目标隐私数据集数据内容哈希值和数据类型的第一交易合约发送到区块链平台130,区块链平台130用于对第一交易合约进行共识处理和上链;数据所有方设备110还用于接收区块链平台130发送的隐私数据获取请求,在目标隐私数据集中进行差分化查询,得到差分化的目标隐私数据,并将差分化的目标隐私数据反馈给区块链平台130。数据接收方设备120用于创建第二交易合约,将带有目标隐私数据获取请求和目标数据特征的第二交易合约发送到区块链平台130,区块链平台130用于对第二交易合约进行共识处理和上链;数据接收方设备120还用于接收区块链平台130根据第二交易合约中的目标数据特征反馈的差分化的目标隐私数据,对差分化的目标隐私数据进行分析处理,得到目标隐私数据统计结果。

  在一个实施例中,如图2所示,提供了一种区块链隐私数据共享方法,以该方法应用于图1中的数据所有方设备110为例进行说明,包括以下步骤:

  步骤201,创建第一交易合约,将带有目标隐私数据集数据内容哈希值和数据类型的第一交易合约发送到区块链平台,区块链平台用于对第一交易合约进行共识处理和上链。

  在实施中,数据所有方设备创建第一交易合约,并将带有目标隐私数据集数据内容哈希值和数据类型的该第一交易合约发送到区块链平台,区块链平台用于对该第一交易合约进行共识处理和上链。

  具体的,隐私数据可以为医疗诊断数据、个人消费数据、个人行为偏好数据等,本申请实施例不做限定,本申请以隐私数据为医疗诊断数据为例进行说明,则数据所有方即为医疗中心,数据所有方设备为医疗中心设备,医疗中心设备将由每条用户的诊断数据记录组成的目标隐私数据集写入本地存储空间中,然后,医疗中心设备在本地创建第一交易合约,该第一交易合约可以表示为tx={source_address,id,info,priv,sigs},其中,source_address为数据所有方账号地址。id为交易序号,该交易序号与缓存队列中的交易序号相同,具体的该交易序号为数据所有方当前交易序号加一,而当前交易序号可以通过查询当前返回的交易结果进行验证。info为操作列表,即本次交易的有效负载,包含本次交易的主要内容{id,hash_d,to},id为交易序号,hash_d=hash(dj),hash(dj)为隐私数据的哈希值,dj为目标隐私数据集,其包含有对应的数据类型,hash_d用于隐私数据锚定。to为数据接收方地址(即本实施例中的区块链平台任一节点地址)。priv为数据所有方账号的权限信息。sigs为数据所有方的签名信息,数据所有方设备使用自身账号的私钥对本次交易合约进行签名。最后,医疗中心设备将包含有目标隐私数据集的数据内容哈希值和数据类型的该第一交易合约发送到区块链网络(区块链平台),对该第一交易合约进行共识处理和上链。

  步骤202,接收区块链平台发送的隐私数据获取请求,在目标隐私数据集中进行差分化查询,得到差分化的目标隐私数据,并将差分化的目标隐私数据反馈给区块链平台。

  在实施中,数据所有方设备接收区块链平台发送的隐私数据获取请求,该隐私数据获取请求中携带有目标隐私数据的数据特征,根据该数据特征在目标隐私数据集中进行差分化查询,得到差分化的目标隐私数据,并将差分化的目标隐私数据反馈给区块链平台。

  例如,数据所有方设备为医疗中心设备,则医疗中心设备可以接收到区块链平台发送的隐私数据获取请求,其中,该隐私数据获取请求中携带有目标数据特征,例如,40-60岁之间是否患有癌症的数据统计。则根据目标数据特征在目标隐私数据集(即癌症诊断数据集)中进行差分化查询,得到差分化的目标隐私数据,即差分化后的包含40-60岁之间是否患有癌症的数据统计的隐私数据,然后,数据所有方设备将该差分化后的包含40-60岁之间是否患有癌症的数据统计的隐私数据反馈给区块链平台。

  其中,差分化查询需要应用到差分化隐私算法,在一个数据集中假设包含n条用户诊断记录,预设的差分化隐私算法M,其定义域为Dom(M),值域为Ran(M),如果对于n条用户诊断记录中任意的两条用户的诊断记录d和d′(这两条用户记录均满足差分化隐私算法的定义域d,d′∈Dom(M)),得到相同的输出结果则该差分化隐私算法满足ε—本地差分化查询要求,即满足如下要求:

  Pr[M(d)=d*]≤eε×Pr[M(d′)=d*]

  同样的,在数据集中应用上述差分化隐私算法,依旧可以满足ε—本地差分化查询要求,如图3所示,D1和D2是两个相邻数据集(也可称为数据库),则具体证明过程为:两个相邻数据集中只有一条记录不一致,则在进行差分化查询时,例如,查询“40-60岁之间是否患有癌症的数据统计”,对于这两个相邻数据集得到的患者人数统计结果是100的概率分别为86%和85%,两个查询概率的比值小于预设差分化阈值,则证明如果对于任意的查询,两个相邻数据集D1和D2的查询结果是可以互换的,证明在数据集中应用上述差分化隐私算法,依旧可以满足ε—本地差分化查询要求。

  上述区块链隐私数据共享方法中,数据所有方设备通过创建第一交易合约,将带有目标隐私数据集数据内容哈希值和数据类型的第一交易合约发送到区块链平台,区块链平台用于对第一交易合约进行共识处理和上链;然后,数据所有方设备接收区块链平台发送的隐私数据获取请求,在目标隐私数据集中进行差分化查询,得到差分化的目标隐私数据,并将差分化的目标隐私数据反馈给区块链平台。采用本方法对目标隐私数据的数据内容哈希值和数据类型而非明文数据进行共识处理和上链,同时在隐私数据共享过程中对隐私数据进行差分化查询处理,提高了隐私数据共享过程中的安全性。

  在一个实施例中,如图4所示,该区块链隐私数据共享方法还包括:

  步骤401,对写入的每一条数据记录提取数据特征,并将数据特征与对应的数据记录的数据标识建立索引关系,数据特征中包含有数据类型。

  在实施中,数据所有方设备对写入的每一条数据记录进行提取数据特征的操作,该数据特征中可以包含有所提取的隐私数据的数据类型,然后,数据所有方设备将该数据特征与对应的数据记录的数据标识建立索引关系。

  具体的,例如,数据记录为医疗中心的用户诊断数据记录(简称为用户记录),则每条用户诊断数据记录可以包括[数据类型标识,用户姓名,用户电话,身份证号,性别,年龄,诊断情况],其中,诊断情况为用户是否患有某种疾病的情况,某种疾病也包含多种情况,例如,[癌症,糖尿病,HIV,HPV]。将用户诊断数据记录表示为dj={id,姓名,...性别,年龄,疾病情况},j表示用户诊断数据记录的序号(j等于交易合约中的交易序号),该序号会对应用户诊断数据记录的写入自动加1与之进行匹配,id为数据类型标识(简称为数据标识),然后,数据所有方设备进行提取各用户诊断数据记录的数据特征操作,如提取的数据特征为key1=k_1_10_20,其中,k表示前缀,1表示患有癌症,10_20表示10到20岁之间,数据所有方设备将提取出的数据特征key1与数据标识id建立索引关系,即:先构建数据特征列表list=get(key1),然后,将id增加到key1列表中,通过list=list.add(id),得到索引关系(key1,list)。

  步骤402,根据索引关系,确定每一条数据记录的具体数据内容与数据标识的对应关系。

  在实施中,数据所有方设备根据建立的索引关系,确定每一条数据记录具体数据内容与数据标识的对应关系。

  具体的,例如,每一条数据记录为用户诊断数据记录,则根据数据特征key1与数据标识id的索引关系(key1,list),确定具体数据内容dj与数据标识id的对应关系(id,dj)。

  步骤403,将索引关系和对应关系,按照写入顺序存储至本地缓存队列,并根据数据特征中的数据类型,将包含有相同数据类型的索引关系和对应关系,由本地缓存队列依次存储至本地存储器的同一个数据库中,并根据数据类型确定数据库对应的数据集类型标识。

  在实施中,数据所有方设备将索引关系(key1,list)和对应关系(id,dj),按照写入顺序(即对应的用户诊断数据记录的序号j的先后顺序)通过put(key1,list)和put(id,dj)手段,存储至本地缓存队列中,然后,数据所有方设备根据数据特征中的数据类型,即数据类型标识id,将包含有相同数据类型的索引关系和对应关系,以先入先出原则(dj比dj+1先出队列),由本地缓存队列依次存储至本地存储器的同一个数据库中,并根据数据类型确定数据库对应的数据集类型标识,例如,如图5所示,根据疾病诊断类型,可以确定癌症数据集D1,HIV数据集D2,HPV数据集D3,糖尿病数据集D4等。

  本实施例中,数据所有方设备创建数据特征与数据标识的索引关系及数据具体内容与数据标识的对应关系,便于在数据库中对目标隐私数据的查询,同时将索引关系和对应关系先存储至本地缓存队列中,再由缓存队列存储至本地存储器中,提高数据读写效率,加快数据存储速度。

  在一个实施例中,如图6所示,步骤202具体处理过程如下所示:

  步骤2021,接收区块链平台发送的隐私数据获取请求,根据隐私数据获取请求中携带的目标数据特征,在目标隐私数据集对应的本地缓存队列中对全部的索引关系和对应关系进行差分化查询。

  在实施中,数据所有方设备接收区块链平台发送的隐私数据获取请求,然后,首先查询缓存队列中的内容,最后查询本地存储器中的数据内容,则根据该隐私数据获取请求中携带的目标数据特征,首先在目标隐私数据集对应的本地缓存队列中对全部的索引关系和对应关系进行差分化查询,例如,隐私数据获取请求中携带的目标数据特征为40-60岁之间是否患有癌症的数据统计,则根据该目标数据特征,先在癌症数据集D1对应的缓存队列中对全部的索引关系和对应关系进行差分化查询。

  步骤2022,若本地缓存队列中存在包含的数据特征与目标数据特征一致的索引关系,则将索引关系和对应关系确定为目标索引关系和目标对应关系。

  在实施中,若本地缓存队列中存在包含的数据特征与目标数据特征一致的索引关系,将该索引关系和对应关系确定为目标索引关系和目标对应关系。

  具体的,数据所有方采用查询热点缓存(缓存队列)的方法,首先判断热点缓存(缓存队列)中是否存在目标索引关系和目标对应关系,查询热点缓存的具体过程如图7所示,例如,当前缓存队列中的原始元素为[(A,45),(B,41),(C,36),(D,28)(E,27),(F,22)],其中,(A,45)中A表示数据内容(索引关系和对应关系),45为访问查询的次数,若上一次目标查询访问的元素为D,则D中的访问查询次数加1,变为(D,29),然后,增加了查询访问次数的D需要与缓存队列中的前一元素进行比较,重新确定在缓存队列中的位置。具体的,D元素的访问次数为29小于C元素的36,不需要进行位置交换且D继续保持在缓存队列中;若上一次目标查询访问的元素为B,则元素B的查询访问次数变为42,即(B,42),然后,B的查询访问次数42与A的查询访问次数45进行比较,42小于45,故不需要进行位置交换且B继续保持在缓存队列中。若上一次目标查询访问的元素为G,由于元素G不在热点缓存(缓存队列)中,故需要访问本地存储器中数据库进行查询,并淘汰热点缓存中末尾元素F,则热点缓存(缓存队列)中末尾元素变为(G,1)。

  数据所有方设备根据上述查询热点缓存的过程,在缓存队列中查询包含的数据特征与目标数据特征一致的索引关系,并将该索引关系和对应关系确定为目标索引关系和目标对应关系。

  步骤2023,根据目标索引关系和目标对应关系,确定对应的目标隐私数据,并根据预设的隐私预算因子对目标隐私数据进行差分化处理,得到差分化的目标隐私数据。

  在实施中,数据所有方设备根据确定出的目标索引关系和目标对应关系,确定对应的目标隐私数据,然后,数据所有方设备根据预设的隐私预算因子对目标隐私数据进行差分化处理,得到差分化的目标隐私数据。

  具体的,数据所有方设备根据目标索引关系中的目标数据特征list1=get(k_1_40_50)和list2=get(k_1_50_60),得到40到60岁之间全部诊断癌症疾病的用户的id。然后,数据所有方设备根据全部的用户id,在目标对应关系中查询具体的癌症诊断情况,其中,诊断情况可以包括:患有癌症和未患癌症。最后,为了保护该目标隐私数据的安全性,数据所有方设备根据预设的隐私预算因子ε,对目标隐私数据进行差分化处理,即通过扰动系数Δf/ε=1,对目标隐私数据集(癌症数据集D1)进行扰动处理F(D1)+Lap(0,1),然后得到差分化后的目标隐私数据(result)。

  步骤2024,读取差分化的目标隐私数据,并将读取到的差分化的目标隐私数据反馈给区块链平台。

  在实施中,数据所有方设备读取差分化的目标隐私数据(result),并将该差分化的目标隐私数据反馈给区块链平台。

  在一个实施例中,步骤202还包括:

  步骤2022’,若本地缓存队列中不存在包含的数据特征与目标数据特征一致的索引关系,则在本地存储器中,查询并确定出包含的数据特征与目标数据特征一致的目标索引关系和目标对应关系,并根据目标索引关系和目标对应关系,确定对应的目标隐私数据,根据预设的隐私预算因子对目标隐私数据进行差分化处理,得到差分化的目标隐私数据,读取差分化的目标隐私数据,并将读取到的差分化的目标隐私数据反馈给区块链平台。

  在实施中,若本地缓存队列中不存在包含的数据特征与目标数据特征一致的索引关系,则数据所有方设备在本地存储器中,继续查询并确定出包含的数据特征与目标数据特征一致的目标索引关系和目标对应关系,并根据目标索引关系和目标对应关系,确定对应的目标隐私数据。最后,数据所有方设备根据预设的隐私预算因子对目标隐私数据进行差分化处理,得到差分化的目标隐私数据,读取差分化的目标隐私数据,将读取到的差分化的目标隐私数据反馈给区块链平台。具体的在本地存储器中继续查询并确定目标索引关系和目标对应关系及后续处理过程,与上述步骤2023至步骤2024相同,本申请实施例不再赘述。

  本实施例中,数据所有方设备通过查询热点缓存(缓存队列)的方法,首先在缓存队列中进行目标索引关系和目标对应关系的查找,若缓存队列中不存在,则进一步在数据库中进行查找,提高了目标数据查询速度,同时,数据所有方对目标隐私数据进行差分化查询,保证了目标隐私数据的安全性。

  在其中一个实施例中,如图8所示,该区块链隐私数据共享方法还包括:

  步骤801,根据差分化的目标隐私数据及预设的哈希算法,得到差分化的目标隐私数据的哈希值。

  在实施中,数据所有方设备将确定出的差分化的目标隐私数据(result),利用预设的哈希算法hash,得到差分化的目标隐私数据的哈希值h(result)。

  步骤802,根据数据所有方的公钥对差分化的目标隐私数据和差分化的目标隐私数据的哈希值进行加密,得到第一密文。

  在实施中,数据所有方设备根据自身账号公钥Rmc(即数据所有方公钥)对差分化的目标隐私数据(result)和差分化的目标隐私数据的哈希值h(result)进行加密CA=EccEncrypt(Rmc,h(result),result),得到第一密文CA。

  步骤803,根据数据所有方的私钥和数据接收方的公钥,生成重加密密钥。

  在实施中,数据所有方设备根据自身账号私钥rmc(数据所有方私钥)和数据接收方的公钥Rdc,生成重加密密钥rKmc→dc。

  步骤804,利用重加密密钥,对第一密文进行加密,得到第二密文,并将第二密文反馈给区块链平台。

  在实施中,数据所有方设备利用重加密密钥rKmc→dc,对第一密文CA进行重加密CB=ReEccEncrypt(rKmc→dc,h(result),result),得到第二密文CB,然后,数据所有方设备将第二密文反馈给区块链平台进行共识处理和上链。

  本实施例中,数据所有方设备通过自身账号公钥、数据接收方公钥和自身账号私钥,利用重加密技术对差分化的目标隐私数据进行重加密处理,使得只有特定的数据接收方可以进行解密,进一步保证了隐私数据的安全性。

  在一个实施例中,如图9所示,提供了一种区块链隐私数据共享方法,以该方法应用于图1中的数据接收方设备120为例进行说明,包括以下步骤:

  步骤901,创建第二交易合约,将带有目标隐私数据获取请求和目标数据特征的第二交易合约发送到区块链平台,区块链平台用于对第二交易合约进行共识处理和上链。

  在实施中,数据接收方设备根据自身数据需求,创建第二交易合约,将带有目标隐私数据获取请求和目标数据特征的第二交易合约发送到区块链平台。其中,区块链平台用于对第二交易合约进行共识处理和上链。

  具体的,数据接收方角色可以为数据分析方或保险平台等,本申请实施例不做限定。数据接收方设备在本地创建第二交易合约,该第二交易合约可以表示为tx_req={source_address,id,info,priv,sigs},其中,source_address为区块链平台地址,id为交易序号,具体的该交易序号为数据接收方当前交易序号加一,而当前交易序号可以通过查询当前返回的交易结果进行验证。info为操作列表,即本次交易的有效负载,包含本次交易的主要内容{req_type,to},req_type为数据接收方目标数据特征,例如为40至60岁之间是否患有癌症疾病的数据统计(40_60_1),其中,1表示请求癌症疾病的统计,可选的,2表示HIV疾病的统计,3表示HPV疾病的统计,4表示糖尿病疾病的统计,另外req_type以接口resolve_req_type(req_type)的形式提供解析规则,该接口会通过第二交易合约的共识发布;to为数据接收方地址。priv为数据接收方账号的权限信息。sigs为数据接收方的签名信息,数据接收方设备使用自身账号的私钥对本次交易合约进行签名。最后,数据接收方设备(例如,保险平台)将包含有目标隐私数据获取请求和目标数据特征的第二交易合约发送到区块链网络(区块链平台),区块链平台用于对该第二交易合约进行共识处理和上链。

  步骤902,接收区块链平台根据第二交易合约中的目标数据特征反馈的差分化的目标隐私数据,对差分化的目标隐私数据进行分析处理,得到目标隐私数据统计结果。

  在实施中,数据接收方设备接收区块链平台根据第二交易合约中的目标数据特征反馈的差分化的目标隐私数据,然后,数据接收方设备对差分化的目标隐私数据进行分析处理,得到目标隐私数据统计结果。

  可选的,数据接收方设备接收到区块链平台反馈的各差分化的隐私数据后,可以根据该隐私数据对应的第二交易合约中的数据接收方地址进行筛选过滤,当第二交易合约中的数据接收方地址与数据接收方设备的地址一致时,则确定该第二交易合约对应反馈的差分化的隐私数据为差分化的目标隐私数据。

  上述区块链隐私数据共享方法,数据接收方设备创建第二交易合约,将带有目标隐私数据获取请求和目标数据特征的第二交易合约发送到区块链平台,区块链平台用于对第二交易合约进行共识处理和上链;然后,数据接收方设备接收区块链平台根据第二交易合约中的目标数据特征反馈的差分化的目标隐私数据,对差分化的目标隐私数据进行分析处理,得到目标隐私数据统计结果。采用本方法,数据接收方设备只能接收到差分化的目标隐私数据,数据接收方设备可以对该差分化的目标隐私数据进行分析处理,得到统计结果,但是无法获知隐私数据的具体内容,保证了隐私数据的安全性。

  在一个实施例中,如图10所示,步骤902具体处理过程如下所示:

  步骤8021,接收区块链平台反馈的差分化的目标隐私数据,并对差分化的目标隐私数据进行扰动性统计,得到扰动统计结果。

  在实施中,数据接收方设备接收到区块链平台反馈的差分化的目标隐私数据,可以对差分化的目标隐私数据进行扰动性统计,得到扰动统计结果。

  具体的,例如,数据接收方设备并不知道具体的目标隐私数据中40到60岁之间患有癌症疾病的人数情况,仅获知40到60岁之间患有癌症疾病的真实比例为π,差分化的目标隐私数据中共有n个用户,第i个用户Xi是否患有癌症的概率分别为:患有癌症的概率为p(扰动概率),未患有癌症的概率为1-p。则数据接收方设备首先对该差分化的目标隐私数据进行扰动性统计,假设差分化的目标隐私数据的全部用户中,患有癌症的诊断数据显示为“是”的人数为n1,未患有癌症的诊断数据显示为“否”的人数为n-n1,因此,得到的扰动统计结果为差分化的目标隐私数据(诊断数据)中显示为“是”和“否”的用户比例如下所示:

  Pr(Xi="是")=πp+(1-π)(1-p)

  Pr(Xi="否")=(1-π)p+π(1-p)

  步骤8022,构建似然函数对扰动统计结果进行校正,得到校正后的统计值,作为目标隐私数据统计结果。

  在实施中,显然,数据接收方设备根据上述步骤8021公式得到的扰动统计结果并非真实比例的无偏估计,因此需要对得到的该扰动统计结果进行校正。数据接收方设备构建似然函数对扰动统计结果进行校正,得到校正后的统计值,作为目标隐私数据统计结果。

  具体的,数据接收方设备构建的似然函数如下所示:

  

  根据该似然函数,数据接收方设备可以得到π的极大似然估计:

  

  然后,数据接收方设备根据π的极大似然估计的数学期望验证了是真实分布π的无偏估计,具体的的数学期望公式如下所示:

  

  最后,数据接收方设备应用作为校正后的扰动统计结果,进行40到60岁之间患有癌症疾病的人数估算,具体计算公式如下所示:

  

  其中,N表示40到60岁之间患有癌症疾病的人数估计值,根据差分化的目标隐私数据的总人数为n,差分化的目标隐私数据中患有癌症的诊断数据显示为“是”的人数为n1和扰动概率p,即可得到差分化的目标隐私数据中包含的40到60岁之间患有癌症疾病的真实人数估计值,作为目标隐私数据统计结果。

  本实施例中,数据接收方设备通过对差分化的目标隐私数据进行扰动统计和似然函数校正,可以对该差分化的目标隐私数据进行分析处理,得到统计结果,但是无法获知隐私数据的具体内容,保证了隐私数据的安全性。

  在一个实施例中,该区块链隐私数据共享方法还包括:

  接收区块链平台反馈的加密的差分化的目标隐私数据,根据数据接收方的私钥,对加密的差分化的目标隐私数据进行解密,得到解密后的差分化的目标隐私数据。

  在实施中,区块链平台可以对差分化的目标隐私数据进行加密后,再反馈给数据接收方设备,因此,数据接收方设备接收区块链平台烦的加密的差分化的目标隐私数据后,根据自身账号私钥(数据接收方私钥),对加密的差分化的目标隐私数据进行解密,得到解密后的差分化的目标隐私数据。

  在本实施例中,数据接收方设备通过自身账号私钥,对加密的差分化的目标隐私数据进行解密,使得只有对应的数据接收方才可以获取到差分化的目标隐私数据,保证了隐私数据的安全性。

  应该理解的是,虽然图2,图4,图6,图8-10的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2,图4,图6,图8-10中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

  在一个实施例中,如图11所示,提供了一种区块链隐私数据共享装置1100,以该装置应用于图1中的数据所有方设备110为例进行说明,该装置1100包括:创建模块1110和接收模块1120。

  创建模块1110,用于创建第一交易合约,将带有目标隐私数据集数据内容哈希值和数据类型的第一交易合约发送到区块链平台,区块链平台用于对第一交易合约进行共识处理和上链。

  接收模块1120,用于接收区块链平台发送的隐私数据获取请求,在目标隐私数据集中进行差分化查询,得到差分化的目标隐私数据,并将差分化的目标隐私数据反馈给区块链平台。

  在一个实施例中,该装置1100还包括:

  提取模块,用于对写入的每一条数据记录提取数据特征,并将数据特征与对应的数据记录的数据标识建立索引关系,数据特征中包含有数据类型。

  确定模块,用于根据索引关系,确定每一条数据记录的具体数据内容与数据标识的对应关系;

  存储模块,用于将索引关系和对应关系,按照写入顺序存储至本地缓存队列,并根据数据特征中的数据类型,将包含有相同数据类型的索引关系和对应关系,由本地缓存队列依次存储至本地存储器的同一个数据库中,并根据数据类型确定数据库对应的数据集类型标识。

  在一个实施例中,接收模块1120具体用于接收区块链平台发送的隐私数据获取请求,根据隐私数据获取请求中携带的目标数据特征,在目标隐私数据集对应的本地缓存队列中对全部的索引关系和对应关系进行差分化查询。

  若本地缓存队列中存在包含的数据特征与目标数据特征一致的索引关系,则将索引关系和对应关系确定为目标索引关系和目标对应关系。

  根据目标索引关系和目标对应关系,确定对应的目标隐私数据,并根据预设的隐私预算因子对目标隐私数据进行差分化处理,得到差分化的目标隐私数据。

  读取差分化的目标隐私数据,并将读取到的差分化的目标隐私数据反馈给区块链平台。

  在一个实施例中,接收模块1120还用于若本地缓存队列中不存在包含的数据特征与目标数据特征一致的索引关系,则在本地存储器中,查询并确定出包含的数据特征与目标数据特征一致的目标索引关系和目标对应关系,并根据目标索引关系和目标对应关系,确定对应的目标隐私数据,根据预设的隐私预算因子对目标隐私数据进行差分化处理,得到差分化的目标隐私数据。

  读取差分化的目标隐私数据,并将读取到的差分化的目标隐私数据反馈给区块链平台。

  在一个实施例中,该装置1100还包括:

  哈希生成模块,用于根据差分化的目标隐私数据及预设的哈希算法,得到差分化的目标隐私数据的哈希值。

  第一加密模块,用于根据数据所有方的公钥对差分化的目标隐私数据和差分化的目标隐私数据的哈希值进行加密,得到第一密文。

  密钥生成模块,用于根据数据所有方的私钥和数据接收方的公钥,生成重加密密钥;

  第二加密模块,用于利用重加密密钥,对第一密文进行加密,得到第二密文,并将第二密文反馈给区块链平台。

  上述区块链隐私数据共享装置1100,包括:创建模块1110和接收模块1120,其中,创建模块1110,用于创建第一交易合约,将带有目标隐私数据集数据内容哈希值和数据类型的所述第一交易合约发送到区块链平台,所述区块链平台用于对所述第一交易合约进行共识处理和上链;接收模块1120,用于接收所述区块链平台发送的隐私数据获取请求,在所述目标隐私数据集中进行差分化查询,得到差分化的目标隐私数据,并将所述差分化的目标隐私数据反馈给所述区块链平台。采用本装置,对目标隐私数据的数据内容哈希值和数据类型而非明文数据进行共识处理和上链,同时在隐私数据共享过程中对隐私数据进行差分化查询处理,提高了隐私数据共享过程中的安全性。

  在一个实施例中,如图12所示,提供了一种区块链隐私数据共享装置1200,以该装置应用于图1中的数据接收方设备120为例进行说明,该装置1200包括:创建模块1210和接收模块1220。

  创建模块1210,用于创建第二交易合约,将带有目标隐私数据获取请求和目标数据特征的第二交易合约发送到区块链平台,区块链平台用于对第二交易合约进行共识处理和上链。

  接收模块1220,用于接收区块链平台根据第二交易合约中的目标数据特征反馈的差分化的目标隐私数据,对差分化的目标隐私数据进行分析处理,得到目标隐私数据统计结果。

  在一个实施例中,接收模块1220具体用于接收区块链平台反馈的差分化的目标隐私数据,并对差分化的目标隐私数据进行扰动性统计,得到扰动统计结果。

  构建似然函数对扰动统计结果进行校正,得到校正后的统计值,作为目标隐私数据统计结果。

  在一个实施例中,该装置1200还包括:

  解密模块,用于接收区块链平台反馈的加密的差分化的目标隐私数据,根据数据接收方的私钥,对加密的差分化的目标隐私数据进行解密,得到解密后的差分化的目标隐私数据。

  上述区块链隐私数据共享装置1200,包括创建模块1210和接收模块1220,其中,创建模块1210,用于创建第二交易合约,将带有目标隐私数据获取请求和目标数据特征的第二交易合约发送到区块链平台,区块链平台用于对第二交易合约进行共识处理和上链。接收模块1220,用于接收区块链平台根据第二交易合约中的目标数据特征反馈的差分化的目标隐私数据,对差分化的目标隐私数据进行分析处理,得到目标隐私数据统计结果。采用本装置,数据接收方设备只能接收到差分化的目标隐私数据,数据接收方设备可以对该差分化的目标隐私数据进行分析处理,得到统计结果,但是无法获知隐私数据的具体内容,保证了隐私数据的安全性。

  关于装置的具体限定可以参见上文中对于区块链隐私数据共享方法的限定,在此不再赘述。上述区块链隐私数据共享装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

  在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种区块链隐私数据共享方法。

  本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

  在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。

  在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。

  本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。

  以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

  以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

《区块链隐私数据共享方法、装置、计算机设备和存储介质.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)