本发明属于计算机技术领域,尤其涉及一种数据保护系统以及方法、计算机设备和存储介质。
背景技术:
当前基于区块链或联盟链的用户隐私数据保护方式主要有三种,一种是将数据哈希上链,数据保存在中心化数据库中限制非授权用户访问;第二种是数据经过加密后记录在区块链上,用户在第三方系统进行鉴权后获取密钥,解密链上信息;第三种是用户的授权信息记录在区块链上,第三方系统鉴权后从区块链上获取用户的权限,然后允许用户访问数据库中的数据。
其中,数据哈希上链能对数据进行核对,但无法保证中心化数据库中的数据不会丢失;将数据加密后存储在链上能够防止数据被篡改,但会大量消耗区块链性能,不适合数据量大的数据库;将权限记录在区块链上的方式依然是依靠传统数据库存储数据,只是将第三方系统的权限数据放在链上,数据可以随时被篡改。
技术实现要素:
本发明实施例的目的在于提供一种数据保护系统,旨在解决上述技术问题。
本发明实施例是这样实现的,一种数据保护系统,包括分布式数据库、分布式数据存储端、权限验证端以及与所述权限验证端相互通讯的数据调度端:所述分布式数据库由若干联盟成员端的业务数据库构成;
其中,所述分布式数据存储端,用于响应于所述联盟成员端对业务数据的存储操作,计算所述业务数据对应的数据包哈希,将所述业务数据存储至至少两个联盟成员端的业务数据库中;将所述数据包哈希贴上标签信息后上传至联盟链;
所述权限验证端,用于接收用户的权限验证请求以及业务数据获取请求,所述业务数据获取请求携带有标签信息或者哈希信息;当判断所述用户具有数据读取权限时,向所述数据调度端发送所述业务数据获取请求;接收所述数据调度端发送的业务数据,以供用户对所述业务数据进行哈希计算并与联盟链上数据包哈希进行比对;
所述数据调度端,用于接收所述权限验证端发送的业务数据获取请求;根据所述标签信息或者哈希信息,从所述分布式数据库中调取对应业务数据;将所述业务数据发送至所述权限验证端。
本发明实施例的另一目的在于一种数据保护方法,应用于权限验证端,包括:
接收用户的权限验证请求以及业务数据获取请求,所述业务数据获取请求携带有标签信息或者哈希信息;
当判断所述用户具有数据读取权限时,向数据调度端发送所述业务数据获取请求,以使所述数据调度端根据所述标签信息或者哈希信息,从分布式数据库中调取对应业务数据;
接收所述数据调度端发送的业务数据,以供用户对所述业务数据进行哈希计算并与联盟链上数据包哈希进行比对。
本发明实施例的另一目的在于一种数据保护方法,应用于分布式数据存储端,包括:
响应于第一联盟成员端的输入数据存储操作,将所述输入数据存储至第一联盟成员端的业务数据库中;
根据所述输入数据,生成与所述输入数据对应的输入数据哈希以及与所述输入数据对应的输出数据;
根据所述输出数据,计算与所述输出数据对应的第一输出数据哈希;
当判断所述输入数据哈希通过智能合约校验时,将所述第一输出数据哈希贴上标签信息后上传至联盟链;
接收所述第二联盟成员端根据所述输出数据计算得到的第二输出数据哈希;
判断所述第二输出数据哈希与所述第一输出数据哈希是否匹配,若是,则将所述输出数据存储至所述第二联盟成员端的业务数据库中;若否,则阻止所述输出数据存储至所述第二联盟成员端的业务数据库中。
本发明实施例的另一目的在于一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行所述数据保护方法的步骤。
本发明实施例的另一目的在于一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行所述数据保护方法的步骤。
本发明实施例提供的一种数据保护系统,通过分布式数据存储端响应于所述联盟成员端对业务数据的存储操作,计算所述业务数据对应的数据包哈希,将所述业务数据存储至至少两个联盟成员端的业务数据库中,以及将所述数据包哈希贴上标签信息后上传至联盟链;在数据调取过程中,当权限验证端判断用户具有数据读取权限时,向数据调度端发送业务数据获取请求,由于所述业务数据获取请求携带有标签信息或者哈希信息,数据调度端可以根据所述标签信息或者哈希信息,从分布式数据库中调取对应业务数据,以供用户对所述业务数据进行哈希计算并与联盟链上数据包哈希进行比对。本发明将业务数据使用分布式数据库进行存储,并将数据包哈希贴标签后上链保存,由统一的权限验证端以及数据调度端进行调度,在保证了隐私的基础上保证了数据的安全性和不可篡改,同时链上存储的标签信息为脱敏后的信息,又可以支持大数据在不获取用户信息的基础上进行计算,能够实现隐私保护、数据安全、数据挖掘多方共赢。
附图说明
图1为本发明实施例提供的一种数据保护系统的结构示意图;
图2为本发明实施例提供的数据保护系统中的分布式数据存储端的结构示意图;
图3为本发明实施例提供的分布式数据存储端中的数据存储单元的结构示意图;
图4为本发明实施例提供的数据保护系统中的权限验证端的结构示意图;
图5为本发明实施例提供的数据保护系统中的数据调度端的结构示意图;
图6为本发明实施例提供的一种数据保护方法的实现流程图;
图7为本发明实施例提供的另一种数据保护方法的实现流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但除非特别说明,这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一xx脚本称为第二xx脚本,且类似地,可将第二xx脚本称为第一xx脚本。
本发明实施例提供的一种数据保护系统,通过分布式数据存储端响应于所述联盟成员端对业务数据的存储操作,计算所述业务数据对应的数据包哈希,将所述业务数据存储至至少两个联盟成员端的业务数据库中,以及将所述数据包哈希贴上标签信息后上传至联盟链;在数据调取过程中,当权限验证端判断用户具有数据读取权限时,向数据调度端发送业务数据获取请求,由于所述业务数据获取请求携带有标签信息或者哈希信息,数据调度端可以根据所述标签信息或者哈希信息,从分布式数据库中调取对应业务数据,以供用户对所述业务数据进行哈希计算并与联盟链上数据包哈希进行比对。本发明将业务数据使用分布式数据库进行存储,并将数据包哈希贴标签后上链保存,由统一的权限验证端以及数据调度端进行调度,在保证了隐私的基础上保证了数据的安全性和不可篡改,同时链上存储的标签信息为脱敏后的信息,可以支持大数据在不获取用户信息的基础上进行计算,能够实现隐私保护、数据安全、数据挖掘多方共赢。
为了进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的具体实施方式、结构、特征及其功效,详细说明如下。
图1为本发明实施例提供的一种数据保护系统的结构示意图,为了便于说明,仅示出与本发明实施例相关的部分。
在本发明实施例中,所述数据保护系统包括分布式数据库、分布式数据存储端110、权限验证端120以及与所述权限验证端120相互通讯的数据调度端130:所述分布式数据库由若干联盟成员端的业务数据库构成。
在本发明实施例中,联盟成员端不少于两个,各个联盟成员端均设置有各自的业务数据库,用于存储各自交易产生的业务数据,甚至还存储有其他联盟成员端的业务数据。
其中,所述分布式数据存储端110,用于响应于所述联盟成员端对业务数据的存储操作,计算所述业务数据对应的数据包哈希,将所述业务数据存储至至少两个联盟成员端的业务数据库中;将所述数据包哈希贴上标签信息后上传至联盟链。
在本发明实施例中,当联盟链成员在系统中存储数据时,数据会被打包存储在各个联盟成员端的数据库中,形成一套分布式数据库。分布式数据存储端110按照预设的存储规则控制各个联盟成员端的业务数据的存储位置,如但联盟成员端为三个时,将联盟成员端a的业务数据存储至联盟成员端a以及联盟成员端c的业务数据库中,将联盟成员端b的业务数据存储至联盟成员端a以及联盟成员端b的业务数据库中,将联盟成员端c的业务数据存储至联盟成员端b以及联盟成员端c的业务数据库中,即保证每一联盟成员端的业务数据存储至两个或两个以上的业务数据库中。
在本发明实施例中,预设的存储规则可以在具体实现时,根据终端性能和/或实现需求等自行设定,本发明实施例对上述预设的存储规则不作具体限定。
在本发明实施例中,将所述数据包哈希贴上标签信息后上传至联盟链,这样其他联盟成员在联盟链上看不到具体的数据信息,但是可以看到数据的哈希及其标签,进而可以从标签中获取模糊信息,用于一般的业务处理。
所述权限验证端120,用于接收用户的权限验证请求以及业务数据获取请求,所述业务数据获取请求携带有标签信息或者哈希信息;当判断所述用户具有数据读取权限时,向所述数据调度端130发送所述业务数据获取请求;接收所述数据调度端130发送的业务数据,以供用户对所述业务数据进行哈希计算并与联盟链上数据包哈希进行比对。
在本发明实施例中,如上所述,联盟链上的数据只有数据包哈希值,且贴上了标签,只能进行模糊查询,例如只能查到某个人的身高为180以上、170以上、160以上等,却无法查到具体的身高信息。当其他联盟成员需要查询数据的详细信息时,首先需要经过中心化的权限验证端120进行权限验证,权限验证端120保存了用户身份及其权限,且与其他系统隔离,保证了用户身份信息的隐私性。
在本发明实施例中,权限验证端120接收到数据调度端130反馈的业务数据后进而反馈给用户,用户获取数据后,对数据包进行哈希计算,并与联盟链中的数据包哈希进行比对,确保数据的真实性。
所述数据调度端130,用于接收所述权限验证端120发送的业务数据获取请求;根据所述标签信息或者哈希信息,从所述分布式数据库中调取对应业务数据;将所述业务数据发送至所述权限验证端120。
在本发明实施例中,原始数据包被存储于分布式数据库中,需要由数据调度端130通过标签信息和/或哈希信息找到对应的数据库,并获取数据。用户通过向权限验证端120发送权限验证请求以及业务数据获取请求,只有权限验证通过后,业务数据获取请求才会被发送至数据调度端130,只有数据调度端130才具有各个分布式数据库的外部读取权限,分布式数据库之间也无法互相读取,保证了原始数据的安全隔离,同时业务双方都会保存业务信息,保证了数据不会只有单一备份。本发明通过将用户权限和数据库读取权限分开处理,可以有效保护数据访问者的身份权限隐私。
在本发明一个优选实施例中,当数据调度端130需要调度数据时,会根据条件从联盟链中获取存证哈希。存证哈希中会附带存证此数据包节点的信息。调度节点会根据该信息向所有存证节点广播数据请求命令,并等待节点回应。数据请求遵循速度优先原则,哪个节点先返回应答就先建立数据传输通道,接收数据并验证,并使其他已应答节点进入待处理队列。数据调度端130收到数据包后需要校验数据包哈希与存证哈希是否一致。如果一条数据包被验证通过,就解除其他节点排队状态,不再接收相同数据的发送,以节省系统资源。
本发明实施例提供的一种数据保护系统,通过分布式数据存储端响应于所述联盟成员端对业务数据的存储操作,计算所述业务数据对应的数据包哈希,将所述业务数据存储至至少两个联盟成员端的业务数据库中,以及将所述数据包哈希贴上标签信息后上传至联盟链;在数据调取过程中,当权限验证端判断用户具有数据读取权限时,向数据调度端发送业务数据获取请求,由于所述业务数据获取请求携带有标签信息或者哈希信息,数据调度端可以根据所述标签信息或者哈希信息,从分布式数据库中调取对应业务数据,以供用户对所述业务数据进行哈希计算并与联盟链上数据包哈希进行比对。本发明将业务数据使用分布式数据库进行存储,并将数据包哈希贴标签后上链保存,由统一的权限验证端以及数据调度端进行调度,在保证了隐私的基础上保证了数据的安全性和不可篡改,同时链上存储的标签信息为脱敏后的信息,可以支持大数据在不获取用户信息的基础上进行计算,能够实现隐私保护、数据安全、数据挖掘多方共赢。
图2为本发明实施例提供的数据保护系统中的分布式数据存储端的结构示意图,详述如下:
在本发明实施例中,所述分布式数据存储端110,包括:
数据存储单元111,用于响应于所述联盟成员端对业务数据的存储操作,计算所述业务数据对应的数据包哈希,将所述业务数据存储至至少两个联盟成员端的业务数据库中。
在本发明实施例中,所述联盟成员端包括第一联盟成员端以及第二联盟成员端;所述业务数据为输入数据。
在本发明实施例中,所述数据存储单元111响应于第一联盟成员端的输入数据存储操作,将所述输入数据存储至第一联盟成员端的业务数据库中;根据所述输入数据,生成与所述输入数据对应的输入数据哈希以及与所述输入数据对应的输出数据;根据所述输出数据,计算与所述输出数据对应的第一输出数据哈希;接收所述第二联盟成员端根据所述输出数据计算得到的第二输出数据哈希;判断所述第二输出数据哈希与所述第一输出数据哈希是否匹配,若是,则将所述输出数据存储至所述第二联盟成员端的业务数据库中;若否,则阻止所述输出数据存储至所述第二联盟成员端的业务数据库中。
上链单元112,用于将所述数据包哈希贴上标签信息后上传至联盟链。
在本发明实施例中,所述上链单元112用于当判断所述输入数据哈希通过智能合约校验时,将所述第一输出数据哈希贴上标签信息后上传至联盟链。
在本发明一个优选实施例中,联盟成员在进行业务处理时,会在己方的业务系统进行业务数据的处理。业务数据先输入业务系统,业务系统再输出处理结果。其中输入、输出的数据就是需要存证的业务数据。
举例而言,在业务流程中,a联盟成员端的输出数据就是b联盟成员端的输入数据,因此每条存证数据至少会有两个联盟成员端进行校验和保存。比如定义a联盟成员端输入的数据为ai(输入数据),保留特征并哈希后得到ai`(输入数据哈希),输出的数据为ao(输出数据),保留特征并哈希后得到ao`(输出数据哈希,为了与后续b联盟成员端根据ao计算得到的ao`相区别,此处命名为第一输出数据哈希)。智能合约可以验证ai`和ao`的关系是否正确。
具体逻辑关系为:
业务数据处理:ao=f(ai);
智能合约验证:ao`=f(ai`)
数据存证哈希算法:x`=h(x)
在输出数据之前,a联盟成员端需要先将ao`(第一输出数据哈希)上链存证,智能合约会检查ao`是否等于f(ai`),对存证数据进行校验,校验通过才能存证,否则会存证失败。存证通过后a联盟成员端将ao发送给b联盟成员端。b联盟成员端在收到ao时,先计算出ao`(b联盟成员端计算得到的第二输出数据哈希),并与联盟链上的存证信息即第一输出数据哈希进行比较,确保数据的一致性后,再保存存证。如果接收到的数据哈希与存证不符,b联盟成员端将拒绝该数据包。
在本发明一个优选实施例中,如果b联盟成员端与a联盟成员端合谋,接收了错误的数据包,并向联盟链上传了虚假的哈希。b联盟成员端的处理流程提交到c联盟成员端时,c联盟成员端可以再次验证并拒绝b联盟成员端的数据。
本发明实施例通过这种方式可以保证数据处理过程中的正确性,且数据包会保存在至少两个联盟成员端的数据库中。有些数据可能需要流转到多个成员处,则会保存多份。
图3为本发明实施例提供的分布式数据存储端中的数据存储单元的结构示意图,详述如下:
在本发明实施例中,所述数据存储单元111,包括:
第一存储模块1111,用于响应于第一联盟成员端的输入数据存储操作,将所述输入数据存储至第一联盟成员端的业务数据库中。
输出数据生成模块1112,用于根据所述输入数据,生成与所述输入数据对应的输入数据哈希以及与所述输入数据对应的输出数据。
第一输出数据哈希计算模块1113,用于根据所述输出数据,计算与所述输出数据对应的第一输出数据哈希。
第二输出数据哈希计算模块1114,用于接收所述第二联盟成员端根据所述输出数据计算得到的第二输出数据哈希。
第二存储模块1115,用于判断所述第二输出数据哈希与所述第一输出数据哈希是否匹配,若是,则将所述输出数据存储至所述第二联盟成员端的业务数据库中;若否,则阻止所述输出数据存储至所述第二联盟成员端的业务数据库中。
图4为本发明实施例提供的数据保护系统中的权限验证端的结构示意图,详述如下:
在本发明实施例中,所述权限验证端120,包括:
请求接收单元121,用于接收用户的权限验证请求以及业务数据获取请求,所述业务数据获取请求携带有标签信息或者哈希信息。
业务数据获取请求发送单元122,用于当判断所述用户具有数据读取权限时,向所述数据调度端发送所述业务数据获取请求。
业务数据接收单元123,用于接收所述数据调度端发送的业务数据,以供用户对所述业务数据进行哈希计算并与联盟链上数据包哈希进行比对。
图5为本发明实施例提供的数据保护系统中的数据调度端的结构示意图,详述如下:
在本发明实施例中,所述数据调度端130,包括:
业务数据获取请求接收单元131,用于接收所述权限验证端发送的业务数据获取请求。
业务数据调取单元132,用于根据所述标签信息或者哈希信息,从所述分布式数据库中调取对应业务数据。
业务数据发送单元133,用于将所述业务数据发送至所述权限验证端。
图6为本发明实施例提供的一种数据保护方法的实现流程图,其应用于权限验证端,详述如下。
步骤s601,接收用户的权限验证请求以及业务数据获取请求,所述业务数据获取请求携带有标签信息或者哈希信息。
步骤s602,当判断所述用户具有数据读取权限时,向数据调度端发送所述业务数据获取请求,以使所述数据调度端根据所述标签信息或者哈希信息,从分布式数据库中调取对应业务数据。
在本发明实施例中,当联盟链成员在系统中存储数据时,数据会被打包存储在各个联盟成员端的数据库中,形成一套分布式数据库。原始数据包被存储于分布式数据库中,需要由数据调度端通过标签信息和/或哈希信息找到对应的数据库,并获取数据。只有在用户权限验证通过后,业务数据获取请求才会被发送至数据调度端,只有数据调度端才具有各个分布式数据库的外部读取权限,分布式数据库之间也无法互相读取,保证了原始数据的安全隔离,同时业务双方都会保存业务信息,保证了数据不会只有单一备份。本发明通过将用户权限和数据库读取权限分开处理,可以有效保护数据访问者的身份权限隐私。
步骤s603,接收所述数据调度端发送的业务数据,以供用户对所述业务数据进行哈希计算并与联盟链上数据包哈希进行比对。
在本发明实施例中,用户获取数据后,对数据包进行哈希计算,并与联盟链中的数据包哈希进行比对,确保数据的真实性。
图7为本发明实施例提供的一种数据保护方法的实现流程图,其应用于分布式数据存储端,详述如下。
步骤s701,响应于第一联盟成员端的输入数据存储操作,将所述输入数据存储至第一联盟成员端的业务数据库中。
步骤s702,根据所述输入数据,生成与所述输入数据对应的输入数据哈希以及与所述输入数据对应的输出数据。
步骤s703,根据所述输出数据,计算与所述输出数据对应的第一输出数据哈希。
步骤s704,当判断所述输入数据哈希通过智能合约校验时,将所述第一输出数据哈希贴上标签信息后上传至联盟链。
在本发明实施例中,将所述数据包哈希贴上标签信息后上传至联盟链,这样其他联盟成员在联盟链上看不到具体的数据信息,但是可以看到数据的哈希及其标签,进而可以从标签中获取模糊信息,用于一般的业务处理。
步骤s705,接收所述第二联盟成员端根据所述输出数据计算得到的第二输出数据哈希。
步骤s706,判断所述第二输出数据哈希与所述第一输出数据哈希是否匹配,若是,则进入步骤s707;若否,则阻止所述输出数据存储至所述第二联盟成员端的业务数据库中。
步骤s707,将所述输出数据存储至所述第二联盟成员端的业务数据库中。
在本发明一个优选实施例中,联盟成员在进行业务处理时,会在己方的业务系统进行业务数据的处理。业务数据先输入业务系统,业务系统再输出处理结果。其中输入、输出的数据就是需要存证的业务数据。
举例而言,在业务流程中,a联盟成员端的输出数据就是b联盟成员端的输入数据,因此每条存证数据至少会有两个联盟成员端进行校验和保存。比如定义a联盟成员端输入的数据为ai(输入数据),保留特征并哈希后得到ai`(输入数据哈希),输出的数据为ao(输出数据),保留特征并哈希后得到ao`(输出数据哈希,为了与后续b联盟成员端根据ao计算得到的ao`相区别,此处命名为第一输出数据哈希)。智能合约可以验证ai`和ao`的关系是否正确。
具体逻辑关系为:
业务数据处理:ao=f(ai);
智能合约验证:ao`=f(ai`)
数据存证哈希算法:x`=h(x)
在输出数据之前,a联盟成员端需要先将ao`(第一输出数据哈希)上链存证,智能合约会检查ao`是否等于f(ai`),对存证数据进行校验,校验通过才能存证,否则会存证失败。存证通过后a联盟成员端将ao发送给b联盟成员端。b联盟成员端在收到ao时,先计算出ao`(b联盟成员端计算得到的第二输出数据哈希),并与联盟链上的存证信息即第一输出数据哈希进行比较,确保数据的一致性后,再保存存证。如果接收到的数据哈希与存证不符,b联盟成员端将拒绝该数据包。
在本发明一个优选实施例中,如果b联盟成员端与a联盟成员端合谋,接收了错误的数据包,并向联盟链上传了虚假的哈希。b联盟成员端的处理流程提交到c联盟成员端时,c联盟成员端可以再次验证并拒绝b联盟成员端的数据。
本发明实施例通过这种方式可以保证数据处理过程中的正确性,且数据包会保存在至少两个联盟成员端的数据库中。有些数据可能需要流转到多个成员处,则会保存多份。
在一个实施例中,提出了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收用户的权限验证请求以及业务数据获取请求,所述业务数据获取请求携带有标签信息或者哈希信息;
当判断所述用户具有数据读取权限时,向数据调度端发送所述业务数据获取请求,以使所述数据调度端根据所述标签信息或者哈希信息,从分布式数据库中调取对应业务数据;
接收所述数据调度端发送的业务数据,以供用户对所述业务数据进行哈希计算并与联盟链上数据包哈希进行比对。
在一个实施例中,提出了另一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
响应于第一联盟成员端的输入数据存储操作,将所述输入数据存储至第一联盟成员端的业务数据库中;
根据所述输入数据,生成与所述输入数据对应的输入数据哈希以及与所述输入数据对应的输出数据;
根据所述输出数据,计算与所述输出数据对应的第一输出数据哈希;
当判断所述输入数据哈希通过智能合约校验时,将所述第一输出数据哈希贴上标签信息后上传至联盟链;
接收所述第二联盟成员端根据所述输出数据计算得到的第二输出数据哈希;
判断所述第二输出数据哈希与所述第一输出数据哈希是否匹配,若是,则将所述输出数据存储至所述第二联盟成员端的业务数据库中;若否,则阻止所述输出数据存储至所述第二联盟成员端的业务数据库中。
在一个实施例中,提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:
响应于第一联盟成员端的输入数据存储操作,将所述输入数据存储至第一联盟成员端的业务数据库中;
根据所述输入数据,生成与所述输入数据对应的输入数据哈希以及与所述输入数据对应的输出数据;
根据所述输出数据,计算与所述输出数据对应的第一输出数据哈希;
当判断所述输入数据哈希通过智能合约校验时,将所述第一输出数据哈希贴上标签信息后上传至联盟链;
接收所述第二联盟成员端根据所述输出数据计算得到的第二输出数据哈希;
判断所述第二输出数据哈希与所述第一输出数据哈希是否匹配,若是,则将所述输出数据存储至所述第二联盟成员端的业务数据库中;若否,则阻止所述输出数据存储至所述第二联盟成员端的业务数据库中。
在一个实施例中,提供另一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:响应于第一联盟成员端的输入数据存储操作,将所述输入数据存储至第一联盟成员端的业务数据库中;
根据所述输入数据,生成与所述输入数据对应的输入数据哈希以及与所述输入数据对应的输出数据;
根据所述输出数据,计算与所述输出数据对应的第一输出数据哈希;
当判断所述输入数据哈希通过智能合约校验时,将所述第一输出数据哈希贴上标签信息后上传至联盟链;
接收所述第二联盟成员端根据所述输出数据计算得到的第二输出数据哈希;
判断所述第二输出数据哈希与所述第一输出数据哈希是否匹配,若是,则将所述输出数据存储至所述第二联盟成员端的业务数据库中;若否,则阻止所述输出数据存储至所述第二联盟成员端的业务数据库中。
应该理解的是,虽然本发明各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
1.一种数据保护系统,其特征在于,包括分布式数据库、分布式数据存储端、权限验证端以及与所述权限验证端相互通讯的数据调度端:所述分布式数据库由若干联盟成员端的业务数据库构成;
其中,所述分布式数据存储端,用于响应于所述联盟成员端对业务数据的存储操作,计算所述业务数据对应的数据包哈希,将所述业务数据存储至至少两个联盟成员端的业务数据库中;将所述数据包哈希贴上标签信息后上传至联盟链;
所述权限验证端,用于接收用户的权限验证请求以及业务数据获取请求,所述业务数据获取请求携带有标签信息或者哈希信息;当判断所述用户具有数据读取权限时,向所述数据调度端发送所述业务数据获取请求;接收所述数据调度端发送的业务数据,以供用户对所述业务数据进行哈希计算并与联盟链上数据包哈希进行比对;
所述数据调度端,用于接收所述权限验证端发送的业务数据获取请求;根据所述标签信息或者哈希信息,从所述分布式数据库中调取对应业务数据;将所述业务数据发送至所述权限验证端。
2.根据权利要求1所述的数据保护系统,其特征在于,所述分布式数据存储端,包括:
数据存储单元,用于响应于所述联盟成员端对业务数据的存储操作,计算所述业务数据对应的数据包哈希,将所述业务数据存储至至少两个联盟成员端的业务数据库中;以及
上链单元,用于将所述数据包哈希贴上标签信息后上传至联盟链。
3.根据权利要求2所述的数据保护系统,其特征在于,所述联盟成员端包括第一联盟成员端以及第二联盟成员端;所述业务数据为输入数据;
所述数据存储单元,用于响应于第一联盟成员端的输入数据存储操作,将所述输入数据存储至第一联盟成员端的业务数据库中;根据所述输入数据,生成与所述输入数据对应的输入数据哈希以及与所述输入数据对应的输出数据;根据所述输出数据,计算与所述输出数据对应的第一输出数据哈希;接收所述第二联盟成员端根据所述输出数据计算得到的第二输出数据哈希;判断所述第二输出数据哈希与所述第一输出数据哈希是否匹配,若是,则将所述输出数据存储至所述第二联盟成员端的业务数据库中;若否,则阻止所述输出数据存储至所述第二联盟成员端的业务数据库中;
所述上链单元,用于当判断所述输入数据哈希通过智能合约校验时,将所述第一输出数据哈希贴上标签信息后上传至联盟链。
4.根据权利要求3所述的数据保护系统,其特征在于,所述数据存储单元,包括:
第一存储模块,用于响应于第一联盟成员端的输入数据存储操作,将所述输入数据存储至第一联盟成员端的业务数据库中;
输出数据生成模块,用于根据所述输入数据,生成与所述输入数据对应的输入数据哈希以及与所述输入数据对应的输出数据;
第一输出数据哈希计算模块,用于根据所述输出数据,计算与所述输出数据对应的第一输出数据哈希;
第二输出数据哈希计算模块,用于接收所述第二联盟成员端根据所述输出数据计算得到的第二输出数据哈希;以及
第二存储模块,用于判断所述第二输出数据哈希与所述第一输出数据哈希是否匹配,若是,则将所述输出数据存储至所述第二联盟成员端的业务数据库中;若否,则阻止所述输出数据存储至所述第二联盟成员端的业务数据库中。
5.根据权利要求1所述的数据保护系统,其特征在于,所述权限验证端,包括:
请求接收单元,用于接收用户的权限验证请求以及业务数据获取请求,所述业务数据获取请求携带有标签信息或者哈希信息;
业务数据获取请求发送单元,用于当判断所述用户具有数据读取权限时,向所述数据调度端发送所述业务数据获取请求;以及
业务数据接收单元,用于接收所述数据调度端发送的业务数据,以供用户对所述业务数据进行哈希计算并与联盟链上数据包哈希进行比对。
6.根据权利要求1所述的数据保护系统,其特征在于,所述数据调度端,包括:
业务数据获取请求接收单元,用于接收所述权限验证端发送的业务数据获取请求;
业务数据调取单元,用于根据所述标签信息或者哈希信息,从所述分布式数据库中调取对应业务数据;以及
业务数据发送单元,用于将所述业务数据发送至所述权限验证端。
7.一种数据保护方法,其特征在于,应用于权限验证端,包括:
接收用户的权限验证请求以及业务数据获取请求,所述业务数据获取请求携带有标签信息或者哈希信息;
当判断所述用户具有数据读取权限时,向数据调度端发送所述业务数据获取请求,以使所述数据调度端根据所述标签信息或者哈希信息,从分布式数据库中调取对应业务数据;
接收所述数据调度端发送的业务数据,以供用户对所述业务数据进行哈希计算并与联盟链上数据包哈希进行比对。
8.一种数据保护方法,其特征在于,应用于分布式数据存储端,包括:
响应于第一联盟成员端的输入数据存储操作,将所述输入数据存储至第一联盟成员端的业务数据库中;
根据所述输入数据,生成与所述输入数据对应的输入数据哈希以及与所述输入数据对应的输出数据;
根据所述输出数据,计算与所述输出数据对应的第一输出数据哈希;
当判断所述输入数据哈希通过智能合约校验时,将所述第一输出数据哈希贴上标签信息后上传至联盟链;
接收所述第二联盟成员端根据所述输出数据计算得到的第二输出数据哈希;
判断所述第二输出数据哈希与所述第一输出数据哈希是否匹配,若是,则将所述输出数据存储至所述第二联盟成员端的业务数据库中;若否,则阻止所述输出数据存储至所述第二联盟成员端的业务数据库中。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求7或8所述数据保护方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行权利要求7或8所述数据保护方法的步骤。
技术总结