基于区块链的保护用户数据隐私的方法及装置与流程

文档序号:17356019发布日期:2019-04-09 21:40阅读:221来源:国知局
基于区块链的保护用户数据隐私的方法及装置与流程

本发明涉及区块链技术领域,具体而言,涉及一种基于区块链的保护用户数据隐私的方法及装置。



背景技术:

区块链可以方便的实现资产数字化,资产的跨平台流转。数据全网公开透明是区块链最重要的特性之一。但是在联盟链等某些商业应用场景下,用户的数据被分为可公开数据和私有数据,可公开数据可以全网透明,私有数据只有数据拥有者才能查看,但是现在很多的区块链网络由于无法保护数据隐私,不能满足联盟链等某些商业应用场景下的数据要求,在针对私有数据在授权的情况下如何访问,现有技术还没有一种有效的解决方法。



技术实现要素:

本发明的主要目的在于提供一种基于区块链的保护用户数据隐私的方法,以解决在区块链中用户私有数据授权访问的问题。

为了实现上述目的,根据本发明的一个方面,提供了一种基于区块链的保护用户数据隐私的方法,该方法包括:

接收第一用户对存证数据的数据访问请求;

根据所述数据访问请求以及所述存证数据的数据访问权限和授权访问列表,判断所述第一用户是否满足数据访问条件;

当所述第一用户满足数据访问条件时,向所述第一用户发送所述存证数据。

为了实现上述目的,根据本发明的另一方面,提供了一种基于区块链的保护用户数据隐私的装置,该装置包括:

数据访问请求接收单元,用于接收第一用户对存证数据的数据访问请求;

数据访问条件判断单元,用于根据所述数据访问请求以及所述存证数据的数据访问权限和授权访问列表,判断所述第一用户是否满足数据访问条件;

存证数据返回单元,用于当所述第一用户满足数据访问条件时,向所述第一用户发送所述存证数据。

为了实现上述目的,根据本申请的另一方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于区块链的保护用户数据隐私的方法中的步骤。

为了实现上述目的,根据本申请的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序在计算机处理器中执行时实现上述基于区块链的保护用户数据隐私的方法中的步骤。

本发明的有益效果为:在本发明实施例中,用户在向区块链网络中上传的存证数据时,在存证数据中设置了数据访问权限和授权访问列表。当其他用户访问该存证数据时,需要根据数据访问权限和授权访问列表判断该用户是否具有访问权限,以此解决了在区块链中用户隐私数据保护的问题以及用户私有数据授权访问的问题。

附图说明

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

图1是本发明实施例基于区块链的保护用户数据隐私的方法的第一流程图;

图2是本发明实施例基于区块链的保护用户数据隐私的方法的应用场景图;

图3是本发明实施例对第一用户进行验证的流程图;

图4是本发明实施例基于区块链的保护用户数据隐私的方法的第二流程图;

图5是本发明实施例基于区块链的保护用户数据隐私的方法的第三流程图;

图6是本发明实施例判断第一用户是否满足数据访问条件的方法的流程图;

图7是本发明实施例基于区块链的保护用户数据隐私的装置的第一结构图;

图8是本发明实施例基于区块链的保护用户数据隐私的装置的第二结构图;

图9是本发明实施例基于区块链的保护用户数据隐私的装置的第三结构图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

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

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。

图2是本发明实施例基于区块链的保护用户数据隐私的方法的应用场景图。在现有技术中,用户在向区块链网络中上传数据时,先将存证数据发送到区块链网络中的背书节点进行验证,验证通过后背书节点对存证数据进行签名,签名完毕后发送到打包节点进行打包及上链。

在本发明中,用户在向区块链网络中上传数据时,先将存证数据上传到背书节点,其中存证数据中包括用户设置的数据访问权限和授权访问列表。背书节点对用户上传的存证数据进行验证,当验证通过后背书节点使用节点私钥对存证数据进行签名,并将签名后的存证数据发送到打包节点。打包节点将该签名后的存证数据打包成区块,并进行上链。在区块链网络中该存证数据的索引地址可以是该存证数据的哈希值。当区块链网络中的其他用户想要访问该存证数据时,需要向背书节点发送数据访问请求,该数据访问请求中包含该存证数据的哈希值、用户的地址、用户用私钥对哈希值进行签名生成的存证签名值。背书节点收到数据访问请求后,根据数据访问请求对该用户进行验证,当验证通过时,从存证数据中提取数据访问权限和授权访问列表,并判断该用户是否满足数据访问条件,若满足则向该用户返回该存证数据。

图1是本发明实施例基于区块链的保护用户数据隐私的方法的第一流程图,如图1所示,本实施例的基于区块链的保护用户数据隐私的方法包括步骤s101至步骤s103。

步骤s101,接收第一用户对所述存证数据的数据访问请求。在本申请的实施例中,当用户想要访问区块链网络中的某个存证数据时,先获取该存证数据的索引地址(即该存证数据的哈希值),进而生成数据访问请求,并将数据访问请求通过交易的方式发送到区块链网络中的背书节点。在本申请的实施例中,数据访问请求中可以包括:欲访问存证数据的哈希值hash、该用户的地址address、以及该用户用私钥对欲访问存证数据的哈希值hash进行签名生成的存证签名值sign。

步骤s102,根据所述数据访问请求以及所述存证数据的数据访问权限和授权访问列表,判断所述第一用户是否满足数据访问条件。在本申请的实施例中,当背书节点接收到用户的数据访问请求后,先对该数据访问请求进行验证,当验证通过时,提取欲访问存证数据的数据访问权限(scope)和授权访问列表(authlist),并根据数据访问权限(scope)和授权访问列表(authlist)判断该用户是否满足欲访问存证数据的数据访问条件。在本申请的可选实施例中,当数据访问请求通过验证时,背书节点根据存证数据的哈希值hash从区块链网络中查找出该存证数据,查找出的数据结构可以为:

{

“address”:”用户地址”,

“data”:”数据内容”,

"hash":"存证数据的hash值",

"sign":"基于hash的存证签名值"

“scope”:”public/private/protect”,

“authlist”:[

{

“address”:“用户1地址”,

“expiretime”:“访问截止时间(例如:2018-10-518:10:20)”

},

{

“address”:“用户2地址”,

“expiretime”:“访问截止时间(例如:2018-6-515:10:20)”

}

]

}

在从区块链网络中查询出该存证数据之后,提取出该存证数据的数据访问权限(scope)和授权访问列表(authlist),以验证欲访问用户是否满足该存证数据的访问条件。

步骤s103,当所述第一用户满足数据访问条件时,向所述第一用户发送所述存证数据。在本申请的实施例中,当用户满足存证数据的数据访问条件时,背书节点向该用户返回该存证数据。在本申请的可选实施例中,背书节点向该用户的存证数据返回值可以为:

{

“address”:”用户地址”,

“data”:”数据内容”,

"hash":"存证数据的hash值",

"sign":"基于hash的存证签名值"

}

图3是本发明实施例对第一用户进行验证的流程图,如图3所示,上述步骤s102中背书节点对用户的数据访问请求进行验证的方法包括步骤s201至步骤s204。

步骤s201,接收第一用户对所述存证数据的数据访问请求,所述数据访问请求包括:利用所述第一用户的私钥对所述存证数据的哈希值进行签名生成的第一存证签名值。在本申请的实施例中,用户的数据访问请求中可以包括:欲访问存证数据的哈希值hash、该用户的地址address、以及该用户用私钥对欲访问存证数据的哈希值hash进行签名生成的存证签名值sign。

步骤s202,对所述第一存证签名值进行验证。在本申请的实施例中,当背书节点接收到用户的数据访问请求时,背书节点首先使用用户的地址address找到address对应的公钥信息,然后使用公钥和哈希值hash验证存证签名值sign的合法性,如果签名不合法,则验证不通过,数据访问失败。

步骤s203,当所述第一存证签名值通过验证时,从所述存证数据中提取数据访问权限和授权访问列表。在本申请的实施例中,当通过上述步骤s202验证用户的数据访问请求通过时,背书节点根据存证数据的哈希值hash从区块链网络中查找出该存证数据,查找出的数据结构可以如上述步骤s102所示,在查找出存证数据后提取出该存证数据的数据访问权限(scope)和授权访问列表(authlist)。

步骤s204,根据所述数据访问请求以及提取的所述数据访问权限和授权访问列表,判断所述第一用户是否满足数据访问条件。在本申请的实施例中,背书节点根据数据访问权限(scope)和授权访问列表(authlist)判断用户是否满足存证数据的数据访问条件。

图4是本发明实施例基于区块链的保护用户数据隐私的方法的第二流程图,如图4所示,本实施例的基于区块链的保护用户数据隐私的方法包括步骤s301至步骤s303。

步骤s301,接收第二用户发送的所述存证数据,其中,所述存证数据包括:所述第二用户设置的数据访问权限和授权访问列表。在本申请实施例中,当所述第二用户向区块链网络中上传上述存证数据时,先将存证数据上传到背书节点,其中存证数据中可以包括:用户地址(address)、数据内容(data)、对所述数据内容进行加密生成的哈希值(hash)、所述第二用户使用私钥对所述哈希值进行签名生成的第二存证签名值(sign)、以及所述第二用户设定的数据访问权限(scope)和授权访问列表(authlist)。在本申请的实施例中,用户首先生成存证数据的数据内容data,同时使用sha256对数据内容data进行加密生成hash值,此hash值是为了验证data是否被篡改,然后用户使用私钥对hash进行签名,生成hash签名sign值,此值用于在链内验证用户的身份。在本申请的实施例中,用户在生成存证数据后,将该存证数据通过交易的方式发送区块链的背书节点。

在本申请的实施例中,用户设定的数据访问权限(scope)和授权访问列表(authlist)可以作为存证数据的存证数据值存入区块链中。在本申请的实施例中,用户设定的数据访问权限(scope)可以为:public(所有人可以访问)、private(仅自己才能访问)、protect(授权用户也可以访问)中的一种。授权访问列表(authlist)中可以储存有用户设定的能够访问该存证数据的用户地址列表以及每个用户地址对应的访问截止时间。

步骤s302,对所述存证数据的哈希值以及第二存证签名值进行验证,其中,所述第二存证签名值通过使用所述第二用户的私钥对所述哈希值进行签名生成。在本申请实施例中,当背书节点接收到用户发送的存证数据后,首先使用sha256加密算法对data进行加密生成hash值,进而使用此hash值和接收的hash做比较,如果不同则存证失败。如果hash值相同则通过用户地址address找到address对应的公钥信息,然后使用公钥和hash值验证用户存证签名值sign的合法性,如果签名不合法,则存证失败,如果签名合法,则存证成功。当存证成功时,将该存证数据的hash值作为该存证数据的索引地址。

步骤s303,若通过验证时,使用本地私钥对所述存证数据进行签名,将签名后的所述存证数据通过打包节点进行打包并上链。在本申请实施例中,当用户上传的存证数据存证成功后,即背书节点背书完毕后,背书节点会使用节点私钥对该存证数据进行签名,签名完毕后将签名后的存证数据通过广播的方式发送给打包节点。进而打包节点将该签名后的存证数据打包成区块,并在区块链网络中进行广播,以完成上链。

在本申请的可选实施例中,用户也可以直接调用预设的数据存证接口进行数据存证,数据存证接口的定义可以为:

“address”:”用户地址”,

“data”:”数据内容”,

"hash":"存证数据的hash值",

"sign":"基于hash的存证签名值"

“scope”:”public/private/protect”,

“authlist”:[

{

“address”:“用户1地址”,

“expiretime”:“访问截止时间(例如:2018-10-518:10:20)”

},

{

“address”:“用户2地址”,

“expiretime”:“访问截止时间(例如:2018-6-515:10:20)”

}

]

从以上的描述中,可以看出,在本发明实施例中,用户在向区块链网络中上传的存证数据时,在存证数据中设置了数据访问权限和授权访问列表。当其他用户访问该存证数据时,需要根据数据访问权限和授权访问列表判断该用户是否具有访问权限,以此解决了在区块链中用户隐私数据保护的问题以及用户私有数据授权访问的问题。

图5是本发明实施例基于区块链的保护用户数据隐私的方法的第三流程图,如图5所示,本实施例的基于区块链的保护用户数据隐私的方法包括步骤s401至步骤s403。

步骤s401,接收所述第二用户对所述存证数据的数据访问条件更改请求,所述数据访问条件更改请求包括:授权访问列表更新信息和/或数据访问权限更改信息。在本申请的实施例中,当用户想对存证数据的数据访问权限(scope)和/或授权访问列表(authlist)进行更改或更新时,可以生成数据访问条件更改请求,并将该数据访问条件更改请求通过交易的方式发送到区块链网络的背书节点。在本申请的实施例中,数据访问条件更改请求可以包括:目标数据的哈希值hash、用户地址address、用户用私钥对存证数据的哈希值hash进行签名生成的存证签名值sign、以及授权访问列表更新信息和/或数据访问权限更改信息。

步骤s402,根据所述数据访问条件更改请求更改所述存证数据的授权访问列表和/或数据访问权限,生成更新存证数据。在本申请的实施例中,当背书节点接收到用户的数据访问条件更改请求时,先对数据访问条件更改请求进行验证。在本申请的实施例中,对数据访问条件更改请求进行验证可以为,根据用户的数据访问条件更改请求中的用户地址address与存证数据中储存的用户地址address进行对比,判断该用户是否为该存证数据的拥有者。在本申请的实施例中,对数据访问条件更改请求进行验证还可以为,背书节点使用用户地址address找到address对应的公钥信息,然后使用公钥和哈希值hash验证存证签名值sign的合法性,如果签名不合法,则验证不通过。若验证通过,背书节点根据授权访问列表更新信息和/或数据访问权限更改信息对存证数据的授权访问列表和数据访问权限进行更改或更新,并生成更新存证数据。

在本申请的可选实施例中,数据访问权限更改信息可以包括:三种数据访问权限(scope),public(所有人可以访问)、private(仅自己才能访问)、protect(授权用户也可以访问)之间的切换信息。

在本申请的可选实施例中,背书节点根据授权访问列表更新信息对存证数据的授权访问列表进行更新具体可以为,背书节点先提取出授权访问列表更新信息中所有的用户地址address,进而在授权访问列表中查找该用户地址address,如果查找不到就将用户地址address添加到授权访问列表中,如果查找到就根据状态值status判断是删除还是更新,如果是删除,则从授权访问列表移除此用户地址address,如果是更新,就更新此用户地址address的访问权限。

在本申请的可选实施例中,对存证数据的授权访问列表进行更新可以采用预设的授权访问列表更新接口,接口的定义可以为:

{

“address”:”用户地址”,

"hash":"存证数据的hash值",

"sign":"基于hash的存证签名值"

“authlist”:[

{

“status”:”0:删除/1:更新”,

“address”:“用户1地址”,

“expiretime”:“访问截止时间(例如:2018-10-518:10:20)”

},

{

“status”:”0:删除/1:更新”,

“address”:“用户2地址”,

“expiretime”:“访问截止时间(例如:2018-6-515:10:20)”

}

]

}

步骤s403,使用本地私钥对所述更新存证数据进行签名,将签名后的所述更新存证数据通过打包节点进行打包并上链。在本申请实施例中,当背书节点会使用节点私钥对该更新存证数据进行签名,签名完毕后将签名后的更新存证数据通过广播的方式发送给打包节点。进而打包节点将该签名后的更新存证数据打包成区块,并在区块链网络中进行广播,以完成上链。

从以上的描述中,可以看出,在本发明实现了用户对存证数据的数据访问权限和授权访问列表进行更新,实现了用户灵活的对私有数据进行保护,也实现了用户对授权访问数据的管理。

图6是本发明实施例判断第一用户是否满足数据访问条件的方法的流程图,如图6所示,上述步骤s102,根据所述数据访问请求以及所述存证数据的数据访问权限和授权访问列表,判断所述第一用户是否满足数据访问条件,具体可以包括步骤s501至步骤s504。

步骤s501,确定所述数据访问权限的种类。在本申请的实施例中,当用户的数据访问请求通过验证时,背书节点根据存证数据的数据访问权限(scope)和授权访问列表(authlist)验证用户是否满足存证数据的数据访问条件。在本申请的实施例中,用户设定的数据访问权限(scope)可以为:public(所有人可以访问)、private(仅自己才能访问)、protect(授权用户也可以访问)中的一种。授权访问列表(authlist)中可以储存有用户设定的能够访问该存证数据的用户地址列表以及每个用户地址对应的访问截止时间。在本申请的实施例中,验证用户是否满足存证数据的数据访问条件需要首先确定存证数据的数据访问权限(scope)。

步骤s502,若所述数据访问权限为授权用户可以访问,通过验证所述第一用户是否在所述授权访问列表中,以判断所述第一用户是否满足数据访问条件。在本申请的实施例中,当存在数据的数据访问权限(scope)为protect(授权用户也可以访问)时,背书节点提取存证数据的授权访问列表(authlist),首先判断用户的地址是否在授权访问列表(authlist)中,若在,则进一步判断用户的地址是否在访问截止时间内,若是,则判断该用户满足数据访问条件,如果用户不在授权访问列表(authlist)内或者过了访问截止时间,则判断该用户不满足数据访问条件,数据访问失败。

步骤s503,若所述数据访问权限为所有人可以访问,判断所述第一用户满足数据访问条件。在本申请的实施例中,当存在数据的数据访问权限(scope)为public(所有人可以访问)时,背书节点直接判断用户满足数据访问条件。

步骤s504,若所述数据访问权限为仅自己可以访问,通过验证所述第一用户的地址是否与所述存证数据中储存的地址相同,来判断所述第一用户是否满足数据查询条件。在本申请的实施例中,当存在数据的数据访问权限(scope)为private(仅自己才能访问)时,背书节点通过判断用户的地址address是否与存证数据中储存的用户地址address相同,来判断用户是否满足数据访问条件。如果用户的数据访问请求中的用户地址address与目标存证数据中储存的用户地址address不同时,则判断该用户不满足数据访问条件,访问失败。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

基于同一发明构思,本发明实施例还提供了一种基于区块链的保护用户数据隐私的装置,可以用于实现上述实施例所描述的基于区块链的保护用户数据隐私的方法,如下面的实施例所述。由于基于区块链的保护用户数据隐私的装置解决问题的原理与基于区块链的保护用户数据隐私的方法相似,因此基于区块链的保护用户数据隐私的装置的实施例可以参见基于区块链的保护用户数据隐私的方法的实施例,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图7是本发明实施例基于区块链的保护用户数据隐私的装置的第一结构图,如图7所示,本发明实施例基于区块链的保护用户数据隐私的装置还包括:数据访问请求接收单元1、数据访问条件判断单元2以及存证数据返回单元3。

数据访问请求接收单元1,用于接收第一用户对所述存证数据的数据访问请求。在本申请的实施例中,当用户想要访问区块链网络中的某个存证数据时,先获取该存证数据的索引地址(即该存证数据的哈希值),进而生成数据访问请求,并将数据访问请求通过交易的方式发送到区块链网络中的背书节点。在本申请的实施例中,数据访问请求中可以包括:欲访问存证数据的哈希值hash、该用户的地址address、以及该用户用私钥对欲访问存证数据的哈希值hash进行签名生成的存证签名值sign。

数据访问条件判断单元2,用于根据所述数据访问请求以及所述存证数据的数据访问权限和授权访问列表,判断所述第一用户是否满足数据访问条件。在本申请的实施例中,当背书节点接收到用户的数据访问请求后,先对该数据访问请求进行验证,当验证通过时,提取欲访问存证数据的数据访问权限(scope)和授权访问列表(authlist),并根据数据访问权限(scope)和授权访问列表(authlist)判断该用户是否满足欲访问存证数据的数据访问条件。

存证数据返回单元3,用于当所述第一用户满足数据访问条件时,向所述第一用户发送所述存证数据。在本申请的实施例中,当用户满足存证数据的数据访问条件时,背书节点向该用户返回该存证数据。

图8是本发明实施例基于区块链的保护用户数据隐私的装置的第二结构图,如图8所示,本发明实施例基于区块链的保护用户数据隐私的装置包括:存证数据接收单元4、存证数据验证单元5以及签名上链单元6。

存证数据接收单元4,用于接收第二用户的存证数据,其中,所述存证数据包括:数据访问权限和授权访问列表。在本申请的实施例中,用户设定的数据访问权限(scope)和授权访问列表(authlist)可以作为存证数据的存证数据值存入区块链中。在本申请的实施例中,用户设定的数据访问权限(scope)可以为:public(所有人可以访问)、private(仅自己才能访问)、protect(授权用户也可以访问)中的一种。授权访问列表(authlist)中可以储存有用户设定的能够访问该存证数据的用户地址列表以及每个用户地址对应的访问截止时间。

存证数据验证单元5,用于对所述存证数据的哈希值以及第二存证签名值进行验证,其中,所述第二存证签名值通过使用所述第二用户的私钥对所述哈希值进行签名生成。在本申请实施例中,当背书节点接收到用户发送的存证数据后,首先使用sha256加密算法对data进行加密生成hash值,进而使用此hash值和接收的hash做比较,如果不同则存证失败。如果hash值相同则通过用户地址address找到address对应的公钥信息,然后使用公钥和hash值验证用户存证签名值sign的合法性,如果签名不合法,则存证失败,如果签名合法,则存证成功。

签名上链单元6,用于若通过验证时,使用本地私钥对所述存证数据进行签名,将签名后的所述存证数据通过打包节点进行打包并上链。在本申请实施例中,当用户上传的存证数据存证成功后,即背书节点背书完毕后,背书节点会使用节点私钥对该存证数据进行签名,签名完毕后将签名后的存证数据通过广播的方式发送给打包节点。进而打包节点将该签名后的存证数据打包成区块,并在区块链网络中进行广播,以完成上链。

图9是本发明实施例基于区块链的保护用户数据隐私的装置的第三结构图,如图9所示,本发明实施例基于区块链的保护用户数据隐私的装置还包括:访问条件更改请求接收单元7和更新存证数据生成单元8。

访问条件更改请求接收单元7,用于接收所述第二用户对所述存证数据的数据访问条件更改请求,所述数据访问条件更改请求包括:授权访问列表更新信息和/或数据访问权限更改信息。在本申请的实施例中,当用户想对存证数据的数据访问权限(scope)和/或授权访问列表(authlist)进行更改或更新时,可以生成数据访问条件更改请求,并将该数据访问条件更改请求通过交易的方式发送到区块链网络的背书节点。在本申请的实施例中,数据访问条件更改请求可以包括:目标数据的哈希值hash、用户地址address、用户用私钥对存证数据的哈希值hash进行签名生成的存证签名值sign、以及授权访问列表更新信息和/或数据访问权限更改信息。

更新存证数据生成单元8,用于根据所述数据访问条件更改请求更改所述存证数据的授权访问列表和/或数据访问权限,生成更新存证数据。在本申请的实施例中,当背书节点接收到用户的数据访问条件更改请求时,先对数据访问条件更改请求进行验证,若验证通过,背书节点根据授权访问列表更新信息和/或数据访问权限更改信息对存证数据的授权访问列表和数据访问权限进行更改或更新,并生成更新存证数据。

在本发明实施例中,所述签名上链单元6还用于使用本地私钥对所述更新存证数据进行签名,将签名后的所述更新存证数据通过打包节点进行打包并上链。在本申请实施例中,当背书节点会使用节点私钥对该更新存证数据进行签名,签名完毕后将签名后的更新存证数据通过广播的方式发送给打包节点。进而打包节点将该签名后的更新存证数据打包成区块,并在区块链网络中进行广播,以完成上链。

在本发明的实施例中,数据访问条件判断单元2判断第一用户是否满足存证数据的数据访问条件具体可以为,数据访问条件判断单元2先提取存证数据的数据访问权限,判断出数据访问权限为所有人可以访问、仅自己可以访问或授权用户可以访问。若数据访问权限为授权用户可以访问,数据访问条件判断单元2通过验证所述第一用户是否在所述授权访问列表中,以判断所述第一用户是否满足数据访问条件。在本申请实施例中,当数据访问权限为授权用户可以访问时,数据访问条件判断单元2提取存证数据的授权访问列表(authlist),判断用户的地址是否在授权访问列表(authlist)中,若在则进一步判断用户的地址是否在访问截止时间内,若是则判断该用户满足数据访问条件,如果用户不在授权访问列表(authlist)内或者过了访问截止时间,则判断该用户不满足数据访问条件。若数据访问权限为所有人可以访问,数据访问条件判断单元2直接判断所述第一用户满足数据访问条件。若数据访问权限为仅自己可以访问,数据访问条件判断单元2通过验证所述第一用户的地址是否与存证数据中储存的用户地址address相同,来判断所述第一用户是否满足数据查询条件。

为了实现上述目的,根据本申请的另一方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于区块链的保护用户数据隐私的方法中的步骤。

处理器可以为中央处理器(centralprocessingunit,cpu)。处理器还可以为其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。

存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及单元,如本发明上述方法实施例中对应的程序单元。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及作品数据处理,即实现上述方法实施例中的方法。

存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

所述一个或者多个单元存储在所述存储器中,当被所述处理器执行时,执行上述实施例中的方法。

上述计算机设备具体细节可以对应参阅上述实施例中对应的相关描述和效果进行理解,此处不再赘述。

为了实现上述目的,根据本申请的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序在计算机处理器中执行时实现上述基于区块链的保护用户数据隐私的方法中的步骤。本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)、随机存储记忆体(randomaccessmemory,ram)、快闪存储器(flashmemory)、硬盘(harddiskdrive,缩写:hdd)或固态硬盘(solid-statedrive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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