发明内容
有鉴于此,本申请的目的在于提供一种基于区块链的隐私保护和数据共享方法、装置、设备,能够避免用户隐私泄露。其具体方案如下:
第一方面,本申请公开了一种基于区块链的隐私保护和数据共享方法,应用于区块链节点,包括:
通过权限控制预编译合约给用户角色添加对应的目标资源的访问权限以及将所述用户角色赋予对应的用户;
当获取到任一用户账户发送的交易查询请求,则通过交易查询预编译合约判断当前用户账户是否具有对应的所述目标资源的访问权限,若当前用户账户不具有所述访问权限,则对所述目标资源以预设方式进行隐藏保护。
可选的,所述隐私保护和数据共享方法,还包括:
通过数据存证预编译合约对待存证交易数据进行数据存证,以及确定所述待存证交易数据中的待保护的目标资源。
可选的,所述通过数据存证预编译合约对待存证交易数据进行数据存证,包括:
通过数据存证预编译合约对JOSN格式的待存证交易数据进行数据存证。
可选的,所述对所述目标资源以预设方式进行隐藏保护,包括:
将所述目标资源隐藏,以禁止显示所述目标资源。
可选的,所述隐私保护和数据共享方法,还包括:
根据参数名称确定非存证交易数据中的待保护的目标资源。
可选的,所述对所述目标资源以预设方式进行隐藏保护,包括:
对于所述非存证交易数据,根据所述目标资源的数据类型进行默认值显示。
可选的,所述隐私保护和数据共享方法,还包括:
通过所述权限控制预编译合约进行待保护的所述目标资源的注册。
第二方面,本申请公开了一种基于区块链的隐私保护和数据共享装置,应用于区块链节点,包括:
权限分配模块,用于通过权限控制预编译合约给用户角色添加对应的目标资源的访问权限以及将所述用户角色赋予对应的用户;
隐私保护模块,用于当获取到任一用户账户发送的交易查询请求,则通过交易查询预编译合约判断当前用户账户是否具有对应的所述目标资源的访问权限,若当前用户账户不具有所述访问权限,则对所述目标资源以预设方式进行隐藏保护。
第三方面,本申请公开了一种隐私保护和数据共享设备,包括处理器和存储器;其中,
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序以实现前述的隐私保护和数据共享方法。
第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述的隐私保护和数据共享方法。
可见,本申请通过权限控制预编译合约给用户角色添加对应的目标资源的访问权限以及将所述用户角色赋予对应的用户;当获取到任一用户账户发送的交易查询请求,则通过交易查询预编译合约判断当前用户账户是否具有对应的所述目标资源的访问权限,若当前用户账户不具有所述访问权限,则对所述目标资源以预设方式进行隐藏保护。也即,本申请通过权限控制,对于没有访问权限的用户进行相应资源的隐藏,从而避免了用户隐私泄露。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在现有技术中,通常区块链上的数据是可被大众查看的明文,通过区块链浏览器或着RPC协议可以直接查看到每笔交易的详细信息。这带来了用户隐私泄漏的问题。为此,本申请提供了一种基于区块链的隐私保护和数据共享方案,能够避免用户隐私泄露。
参见图1所示,本申请实施例公开了一种基于区块链的隐私保护和数据共享方法,应用于区块链节点,包括:
步骤S11:通过权限控制预编译合约给用户角色添加对应的目标资源的访问权限以及将所述用户角色赋予对应的用户。
其中,本申请实施例的区块链可以为FISCO-BCOS联盟链,数据共享技术基于访问控制列表(Access Control Lists,ACL),实现ACL权限控制预编译合约,可根据分组进行权限控制。
在具体的实施方式中,可以通过权限控制预编译合约进行待保护的目标资源的注册、给用户角色添加对应的目标资源的访问权限以及将所述用户角色赋予对应的用户。并且,本实施例可以通过权限控制预编译合约对用户角色进行删除,以及移除用户角色对目标资源的访问权限等。资源的访问控制配置会存储到FISCO-BCOS支持的RocksDB数据库,并通过共识协议同步到全网的所有节点。
其中,给用户角色添加目标资源的访问权限以及给用户赋予对应的用户角色,有相应权限的用户才能操作,当操作用户不具有权限时,系统会报错,防止普通用户进行不当的权限配置。具体的,可以通过区块链管理员给用户配置相应的操作权限。
例如,ACL控制预编译合约可以包括如下ACL预编译合约接口:
需要指出的是,通过ACL授权接口可以实现灵活的访问控制,达到隐私保护的目的,并方便监管方进行监管审计。
步骤S12:当获取到任一用户账户发送的交易查询请求,则通过交易查询预编译合约判断当前用户账户是否具有对应的所述目标资源的访问权限,若当前用户账户不具有所述访问权限,则对所述目标资源以预设方式进行隐藏保护。
现有技术中,FISCO-BCOS存在交易查询接口,为了保护隐私,本实施例可以去掉交易查询接口,查询交易只能通过交易查询预编译合约。交易查询预编译合约是具有隐私保护功能的,当用户不具有某条交易的查看权限,对交易数据的input字段进行修改,把隐私数据进行隐藏保护。
并且,本申请实施例可以通过数据存证预编译合约对待存证交易数据进行数据存证,以及确定所述待存证交易数据中的待保护的目标资源。具体的,通过数据存证预编译合约对JOSN格式的待存证交易数据进行数据存证。相应的,对于存证数据,本实施例可以将所述目标资源隐藏,以禁止显示所述目标资源。
在具体的实施方式中,数据存证预编译合约,提供数据存证函数saveEvidence,实现JSON格式的数据存证,并指明存证类型和需要保护的资源。
参见表一,表一为存证函数的输入:
表一
参数 |
类型 |
说明 |
data |
string |
要存证的数据,JSON格式 |
datatype |
string |
存证的数据类型 |
resource |
string |
要保护的资源,以逗号分割的字符串 |
其中,数据存证的data参数是JSON格式数据,在resource参数可以把其中的部分或者全部字段设置为敏感信息即目标资源,进行保护。
数据存证上链以后,存证的数据是交易的input字段,通过交易查询预编译合约,可以把敏感的字段进行隐藏,也即对于数据存证交易input的处理,数据存证的第一个参数为JSON格式数据,通过ACL预编译合约控制可以访问某个字段(资源),不能访问的字段,对用户不可见。
例如,本实施例的交易信息可以如下所示
另外,本实施例的数据存证预编译合约提供通用的数据存证功能,并具有扩展性,业务系统可以根据业务需求进行扩充。
例如,下面的Solidity智能合约MyEvidence扩充了数据存证预编译合约。
也即,本实施例中,用户通过预编译存证进行数据存证,并指明需要保护的敏感数据即目标资源,方便进行隐私保护和数据共享。并且,用户可方便的在数据存证的基础上进行扩充,方便业务系统定制。
可见,本申请实施例通过权限控制预编译合约给用户角色添加对应的目标资源的访问权限以及将所述用户角色赋予对应的用户;当获取到任一用户账户发送的交易查询请求,则通过交易查询预编译合约判断当前用户账户是否具有对应的所述目标资源的访问权限,若当前用户账户不具有所述访问权限,则对所述目标资源以预设方式进行隐藏保护。也即,本申请通过权限控制,对于没有访问权限的用户进行相应资源的隐藏,从而避免了用户隐私泄露。
参见图2所示,本申请实施例公开了一种具体的基于区块链的隐私保护和数据共享方法,应用于区块链节点,包括:
步骤S21:根据参数名称确定非存证交易数据中的待保护的目标资源。
步骤S22:通过权限控制预编译合约给用户角色添加对应的目标资源的访问权限以及将所述用户角色赋予对应的用户。
步骤S23:当获取到任一用户账户发送的交易查询请求,则通过交易查询预编译合约判断当前用户账户是否具有对应的所述目标资源的访问权限,若当前用户账户不具有所述访问权限,则对所述目标资源以预设方式进行隐藏保护。
在具体的实施方式中,对于所述非存证交易数据,根据所述目标资源的数据类型进行默认值显示。
也即,本申请可以把交易分为数据存证交易和其它交易即非存证交易,通过交易查询预编译合约使用不同的方式对input进行处理。
对于非数据存证交易,要存储的信息有多个参数,可以根据参数名确定待保护的资源,未被授权查看的参数,可以根据不同的数据类型显示成默认的值。也即,可以对未经过授权访问的参数进行隐藏,不同类型的数据类型隐藏形式不同,隐藏后的数据类型与参数原来的类型一致。
例如,参见表二所示:
表二
数据类型 |
信息隐藏后的值 |
int,uint,int256,uint256 |
0 |
string |
"***" |
Address |
0x0 |
参见图3所示,本申请实施例公开了一种基于区块链的隐私保护和数据共享装置,应用于区块链节点,包括:
权限分配模块11,用于通过权限控制预编译合约给用户角色添加对应的目标资源的访问权限以及将所述用户角色赋予对应的用户;
隐私保护模块12,用于当获取到任一用户账户发送的交易查询请求,则通过交易查询预编译合约判断当前用户账户是否具有对应的所述目标资源的访问权限,若当前用户账户不具有所述访问权限,则对所述目标资源以预设方式进行隐藏保护。
可见,本申请实施例通过权限控制预编译合约给用户角色添加对应的目标资源的访问权限以及将所述用户角色赋予对应的用户;当获取到任一用户账户发送的交易查询请求,则通过交易查询预编译合约判断当前用户账户是否具有对应的所述目标资源的访问权限,若当前用户账户不具有所述访问权限,则对所述目标资源以预设方式进行隐藏保护。也即,本申请通过权限控制,对于没有访问权限的用户进行相应资源的隐藏,从而避免了用户隐私泄露。
所述装置,还包括数据存证模块,用于通过数据存证预编译合约对待存证交易数据进行数据存证,以及确定所述待存证交易数据中的待保护的目标资源。
在具体的实施方式中,所述数据存证模块,具体用于通过数据存证预编译合约对JOSN格式的待存证交易数据进行数据存证。相应的,所述隐私保护模块12,具体用于对于将所述目标资源隐藏,以禁止显示所述目标资源。
所述装置,还包括非存证交易数据待保护资源确定模块,用于根据参数名称确定非存证交易数据中的待保护的目标资源。相应的,所述隐私保护模块12,具体用于对于所述非存证交易数据,根据所述目标资源的数据类型进行默认值显示。
所述装置,还包括目标资源注册模块,用于通过所述权限控制预编译合约进行待保护的所述目标资源的注册。
参见图4所示,本申请实施例公开了一种隐私保护和数据共享设备,包括处理器21和存储器22;其中,所述存储器22,用于保存计算机程序;所述处理器21,用于执行所述计算机程序,以实现前述实施例公开的隐私保护和数据共享方法。
关于上述隐私保护和数据共享方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
参见图5所示,本申请实施例公开了一种电子终端20,包括前述实施例中公开的处理器21和存储器22。关于上述处理器21具体可以执行的步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
进一步的,本实施例中的电子终端20,还可以具体包括电源23、通信接口24、输入输出接口25和通信总线26;其中,所述电源23用于为所述终端20上的各硬件设备提供工作电压;所述通信接口24能够为所述终端20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;所述输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
进一步的,本申请实施例还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的隐私保护和数据共享方法。
关于上述隐私保护和数据共享方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种基于区块链的隐私保护和数据共享方法、装置、设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。