1.本发明涉及区块链的技术领域,尤其涉及一种基于区块链的链下数据安全存储的方法及系统。
背景技术:2.区块链是一种由互不相信的节点维护同一个全局状态的数据库。区块链不同于普通数据库,有着自身的特性。首先,区块链存储数据时使用的是p2p网络,不存在中心化的管理机构,所有节点有着均等的权利和义务,因此区块链具有去中心化的特性。第二,区块链采用基于协商一致的协议(即共识机制),系统中所有节点无需信任就可以进行自由安全的数据交换,避免人为干预,因此区块链具有无需信任背书的特性。另外,信息添加至区块链后,除非能够控制大部分节点,否则无法修改,因此区块链具有数据防篡改的特性。基于以上特性,区块链适用于存储金融数据和医疗数据等需要较高安全性的数据。
3.虽然区块链数据的存储可以通过匿名、数据加密等方式进行链上数据的存储,然而,对于注重数据所属性的特定用户,其效果并不理想,通过链上进行存储的数据始终存在数据被他人获得的风险。
技术实现要素:4.本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明公开一种基于区块链的链下数据安全存储的方法,所述方法包括如下步骤:
5.步骤1,接收客户端发送的待上链存储的数据,对所述待上链存储的数据进行分析,判断该数据的类型;
6.步骤2,根据所述的数据类型生成所述数据类型对应的数据问询信息,并将该问询信息发送至所述客户端,其中,所述问询信息包括询问用户是否需要对该数据类型的数据进行数据拆分存储,问询信息包括初筛的隐私数据判定结果;
7.步骤3,若问询结果为不需要对数据进行则将全数据直接存储于区块链的链上存储区,若问询结果为需要对数据进行拆分,则根据待上链存储数据的数据类型对应的数据拆分模型提取出所述待上链存储的数据的隐私数据部分;
8.步骤4,将拆分出的隐私数据部分进行第二次拆分存储于链下的分布式存储区中。
9.更进一步地,所述问询信息进一步包括:若检测到待上链存储的数据类型为文字,根据预设的关键词匹配的方式查询文字中可能存在隐私数据部分,提取出所述隐私数据部分所在的文字段落,在所述问询信息中显示所述文字段落并生成问询信息询问用户是否需要对上述存在的隐私段落进行链下存储,若需要进行链下存储接收用户输入的数据隐私保护级别,其中,所述隐私保护级别与对数据进行拆分的方式对应,用户输入的隐私保护级别越高,对隐私数据进行提取的细粒度越高。
10.更进一步地,若检测到待上链存储的数据类型为语音类型,通过语义识别模块将语音文件转换为文字文本,通过采用预设的关键词匹配的方式查询文字中可能存在隐私数
据部分。
11.更进一步地,若检测到待上链存储的数据类型为图像类型,通过图像识别方式识别图像中存在的文字,通过采用预设的关键词匹配的方式查询文字中可能存在隐私数据部分,再识别图像中人物和环境信息,生成问询信息是否需要对图像信息进行链下存储。
12.更进一步地,所述隐私保护级别与对数据进行拆分的方式对应关系为:
[0013][0014]
其中,grade为用户输入的隐私保护级别,win表示链上存储的数据所占全部数据的权重,wout表示链下存储数据所占全部数据的权重,nk表示待存储数据的类型对应的调整系数,wk表示隐私数据所占链下存储总量的权重,p表示待线上存储的数据条目数量,q表示待线下存储的数据条目数量。
[0015]
更进一步地,所述步骤4中的第二次拆分存储于链下的分布式存储区中进一步包括如下步骤:
[0016]
步骤401,客户端在进行数据上链存储之前,发送请求要上传一个文件到至所述区块链的链下存储区时,链下服务器节点先监听每个存储区的可用存储节点,生成一张索引表并反馈给链下服务器节点;
[0017]
步骤402,验证存储节点的可用性,对存储区设置可用性标识数值,当可用性值全为1时,则该存储区的所有的存储节点都是可用的,当有些存储节点的可用性值为0时,则此存储节点不可用;
[0018]
步骤404,所述客户端与链下存储的接口服务器进行交互,接口服务器根据待存储的数据的文件id信息给每个子块分配一个id,再把相关信息发送给链下存储的链下服务器节点,链下服务器节点根据所述索引表,找到各个分块相应的存储节点,将文件信息、块信息和相关存储节点信息写入数据库,然后再将文件块信息及对应的存储节点地址返回给链下存储的接口服务器,接口服务器再反馈给客户端,当客户端根据返回的信息后将文件分块、并行上传对应的存储节点,存储节点每接收到一个文件块后都会向链下服务器节点发送一条确认信息,主服务器将数据库中该文件的状态信息改为1,表示已经存储成功。
[0019]
更进一步地,随机分配隐私数据部分的文件id。
[0020]
更进一步地,当需要链下数据和链上数据进行协同时,将链下数据进行聚合后采用数据协同模型进行数据协同。
[0021]
本发明还公开了一种电子系统,包括存储器和处理器,所述存储器上存储有计算机程序,该计算机程序被所述处理器执行时,执行如上所述的基于区块链的链下数据安全存储的方法。
[0022]
本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质中包括实时风险控制程序,该实时风险控制程序被处理器执行时实现如上所述的基于区块链的链下数据安全存储的方法的步骤。
[0023]
本发明与现有技术相比,本发明的有益效果是:对待上链数据进行分析,并通过问询交互的方式提醒用户是否需要对上链数据进行隐私保护,是否需要将隐私数据上传至区块中,同时,对隐私数据进行二次拆分的方式,第一次拆分是根据用户的隐私保护的级别选择对应的拆分细粒度,第二次拆分是在进行隐私数据存储时,将隐私数据随机打乱成多个
数据块进行存储,实现了链下链上数据的共同保护,更进一步地是,当需要链下和链上数据协同时,可以将链下数据进行聚合重新与链上数据进行聚合,现有技术中不存在由用户选择隐私保护级别和隐私保护方式的链下数据保护,同时,为了考虑到链下数据的进一步安全,再由机器算法执行第二次数据安全存储有效的保护了数据的安全性、可靠性。
附图说明
[0024]
从以下结合附图的描述可以进一步理解本发明。图中的部件不一定按比例绘制,而是将重点放在示出实施例的原理上。在图中,在不同的视图中,相同的附图标记指定对应的部分。
[0025]
图1是本发明的一种基于区块链的链下数据安全存储的方法的流程图。
具体实施方式
[0026]
下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
[0027]
现在将参考附图描述实现本发明各个实施例的移动终端。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,"模块"与"部件"可以混合地使用。
[0028]
移动终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。下面,假设终端是移动终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
[0029]
如图1所示的种基于区块链的链下数据安全存储的方法,所述方法包括如下步骤:
[0030]
步骤1,接收客户端发送的待上链存储的数据,对所述待上链存储的数据进行分析,判断该数据的类型;
[0031]
步骤2,根据所述的数据类型生成所述数据类型对应的数据问询信息,并将该问询信息发送至所述客户端,其中,所述问询信息包括询问用户是否需要对该数据类型的数据进行数据拆分存储,问询信息包括初筛的隐私数据判定结果;
[0032]
步骤3,若问询结果为不需要对数据进行则将全数据直接存储于区块链的链上存储区,若问询结果为需要对数据进行拆分,则根据待上链存储数据的数据类型对应的数据拆分模型提取出所述待上链存储的数据的隐私数据部分;
[0033]
步骤4,将拆分出的隐私数据部分进行第二次拆分存储于链下的分布式存储区中。
[0034]
更进一步地,所述问询信息进一步包括:若检测到待上链存储的数据类型为文字,根据预设的关键词匹配的方式查询文字中可能存在隐私数据部分,提取出所述隐私数据部分所在的文字段落,在所述问询信息中显示所述文字段落并生成问询信息询问用户是否需要对上述存在的隐私段落进行链下存储,若需要进行链下存储接收用户输入的数据隐私保护级别,其中,所述隐私保护级别与对数据进行拆分的方式对应,用户输入的隐私保护级别越高,对隐私数据进行提取的细粒度越高。
[0035]
更进一步地,若检测到待上链存储的数据类型为语音类型,通过语义识别模块将语音文件转换为文字文本,通过采用预设的关键词匹配的方式查询文字中可能存在隐私数
据部分。
[0036]
更进一步地,若检测到待上链存储的数据类型为图像类型,通过图像识别方式识别图像中存在的文字,通过采用预设的关键词匹配的方式查询文字中可能存在隐私数据部分,再识别图像中人物和环境信息,生成问询信息是否需要对图像信息进行链下存储。
[0037]
更进一步地,所述隐私保护级别与对数据进行拆分的方式对应关系为:
[0038][0039]
其中,grade为用户输入的隐私保护级别,win表示链上存储的数据所占全部数据的权重,wout表示链下存储数据所占全部数据的权重,nk表示待存储数据的类型对应的调整系数,wk表示隐私数据所占链下存储总量的权重,p表示待线上存储的数据条目数量,q表示待线下存储的数据条目数量。
[0040]
更进一步地,所述步骤4中的第二次拆分存储于链下的分布式存储区中进一步包括如下步骤:
[0041]
步骤401,客户端在进行数据上链存储之前,发送请求要上传一个文件到至所述区块链的链下存储区时,链下服务器节点先监听每个存储区的可用存储节点,生成一张索引表并反馈给链下服务器节点;
[0042]
步骤402,验证存储节点的可用性,对存储区设置可用性标识数值,当可用性值全为1时,则该存储区的所有的存储节点都是可用的,当有些存储节点的可用性值为0时,则此存储节点不可用;
[0043]
步骤404,所述客户端与链下存储的接口服务器进行交互,接口服务器根据待存储的数据的文件id信息给每个子块分配一个id,再把相关信息发送给链下存储的链下服务器节点,链下服务器节点根据所述索引表,找到各个分块相应的存储节点,将文件信息、块信息和相关存储节点信息写入数据库,然后再将文件块信息及对应的存储节点地址返回给链下存储的接口服务器,接口服务器再反馈给客户端,当客户端根据返回的信息后将文件分块、并行上传对应的存储节点,存储节点每接收到一个文件块后都会向链下服务器节点发送一条确认信息,主服务器将数据库中该文件的状态信息改为1,表示已经存储成功。
[0044]
更进一步地,随机分配隐私数据部分的文件id。
[0045]
更进一步地,当需要链下数据和链上数据进行协同时,将链下数据进行聚合后采用数据协同模型进行数据协同。
[0046]
本发明还公开了一种电子系统,包括存储器和处理器,所述存储器上存储有计算机程序,该计算机程序被所述处理器执行时,执行如上所述的基于区块链的链下数据安全存储的方法。
[0047]
本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质中包括实时风险控制程序,该实时风险控制程序被处理器执行时实现如上所述的基于区块链的链下数据安全存储的方法的步骤。
[0048]
在本实施例中,对于链下存储的数据而言,具体的存储数据的方式包括如下步骤:
[0049]
步骤1,客户端在进行数据上链存储之前,发送请求要上传一个文件到至所述区块链的链下存储区时,链下服务器节点先监听每个存储区的可用存储节点,生成一张索引表并反馈给链下服务器节点,其中链下服务器节点为链下存储区的中心节点;
[0050]
步骤2,验证存储节点的可用性,对存储区设置可用性标识数值,当可用性值全为1时,则该存储区的所有的存储节点都是可用的,当有些存储节点的可用性值为0时,则此存储节点不可用。再例如存储区包括4个节点,而存储标识位的数值为1011,则该存储区的存储节点只有第二个编号的存储节点不可用。
[0051]
步骤3,对于链下存储的数据,所述客户端与链下存储的接口服务器进行交互,接口服务器根据待存储的数据的文件id信息给每个子块分配一个id,再把相关信息发送给链下存储的主服务器,主服务根据监控服务器反馈回来的索引表,找到各个分块相应的存储节点,将文件信息、块信息和相关存储节点信息写入数据库,然后链下存储的主服务器将文件块信息(块数、块大小、块id等)及对应的存储节点地址返回给链下存储的接口服务器,接口服务器再反馈给客户端,当客户端根据返回的信息后将文件分块、并行上传对应的存储节点,存储节点每接收到一个文件块后都会向主服务器发送一条确认信息,主服务器将数据库中该文件的状态信息改为1,表示已经上传成功。
[0052]
在本实施例中,还可以结合数据协同模型进行数据的协同处理,可以采用现有技术中的数据协同方法,为了方便理解这里具体步骤如下:
[0053]
步骤1:系统初始化阶段,输入所涉及的属性集合和安全参数,密钥分发模块生成系统参数和用户标识符发给数据提供者和数据请求者;
[0054]
步骤2:密钥分发模块把系统参数发放给授权管理模块,其中授权管理模块中的授权者由分布式多授权中心算法确定,授权者基于所管理的属性集生成公钥私钥。
[0055]
步骤3:授权者将自己管理的属性集和公钥发送到访问控制模块中访问控制合约作为输入;
[0056]
步骤4:数据提供者将系统参数作为计算参数,指定访问策略将文件进行加密,其中相关授权者将从访问控制模块中获取得到;
[0057]
步骤5:数据提供者提取文件相对应的关键词集合,发送给搜索模块进行加密的进一步处理;
[0058]
步骤6:访问控制模块处理完指定访问策略下加密的文件后,将密文发送给云服务器存储,并返回得到对应的存储文件位置编号;
[0059]
步骤7:访问控制模块将密文对应的文件元数据上链存证在区块链上;
[0060]
步骤8:搜索模块将关键词表加密处理后上传至云服务器中;
[0061]
步骤9:云服务器将关键词表存储后,将其发送到区块链模块上,区块链模块将该表经过映射处理存储在区块结构与交易结构上;
[0062]
步骤10:经过以上过程,完成了数据在隐私安全前提下的加密处理。该过程将是数据请求者将感兴趣的关键词集生成陷门进一步发送给搜索模块;
[0063]
步骤11:搜索模块验证数据请求者的身份后将进一步把陷门转发给云服务器模块;
[0064]
步骤12:云服务器将触发搜索合约,将陷门作为合约输入进行数据检索功能,并在交互式前端返回搜索结果;
[0065]
步骤13:数据请求者若想对搜索结果中感兴趣的数据进一步查看分享,将把自身属性集合和用户标识符发送给访问控制模块进行申请;
[0066]
步骤14:访问控制模块将从向属性相关授权者请求相关密钥,并从区块链上进行
检索获取文件元数据;
[0067]
步骤15:若符合条件则访问控制模块返回相关密钥集;
[0068]
步骤16:访问控制模块将从区块链上获取的文件元数据发送至云服务器模块进行检索处理;
[0069]
步骤17:云服务器将该文件对应的密文文件返回给数据请求者进行解密,如果符合访问策略条件则解密成功。
[0070]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0071]
本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0072]
虽然上面已经参考各种实施例描述了本发明,但是应当理解,在不脱离本发明的范围的情况下,可以进行许多改变和修改。因此,其旨在上述详细描述被认为是例示性的而非限制性的,并且应当理解,以下权利要求(包括所有等同物)旨在限定本发明的精神和范围。以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
技术特征:1.一种基于区块链的链下数据安全存储的方法,其特征在于,所述方法包括如下步骤:步骤1,接收客户端发送的待上链存储的数据,对所述待上链存储的数据进行分析,判断该数据的类型;步骤2,根据所述的数据类型生成所述数据类型对应的数据问询信息,并将该问询信息发送至所述客户端,其中,所述问询信息包括询问用户是否需要对该数据类型的数据进行数据拆分存储,问询信息包括初筛的隐私数据判定结果;步骤3,若问询结果为不需要对数据进行则将全数据直接存储于区块链的链上存储区,若问询结果为需要对数据进行拆分,则根据待上链存储数据的数据类型对应的数据拆分模型提取出所述待上链存储的数据的隐私数据部分;步骤4,将拆分出的隐私数据部分进行第二次拆分存储于链下的分布式存储区中。2.如权利要求1所述的一种基于区块链的链下数据安全存储的方法,其特征在于,所述问询信息进一步包括:若检测到待上链存储的数据类型为文字,根据预设的关键词匹配的方式查询文字中可能存在隐私数据部分,提取出所述隐私数据部分所在的文字段落,在所述问询信息中显示所述文字段落并生成问询信息询问用户是否需要对上述存在的隐私段落进行链下存储,若需要进行链下存储接收用户输入的数据隐私保护级别,其中,所述隐私保护级别与对数据进行拆分的方式对应,用户输入的隐私保护级别越高,对隐私数据进行提取的细粒度越高。3.如权利要求2所述的一种基于区块链的链下数据安全存储的方法,其特征在于,若检测到待上链存储的数据类型为语音类型,通过语义识别模块将语音文件转换为文字文本,通过采用预设的关键词匹配的方式查询文字中可能存在隐私数据部分。4.如权利要求3所述的一种基于区块链的链下数据安全存储的方法,其特征在于,若检测到待上链存储的数据类型为图像类型,通过图像识别方式识别图像中存在的文字,通过采用预设的关键词匹配的方式查询文字中可能存在隐私数据部分,再识别图像中人物和环境信息,生成问询信息是否需要对图像信息进行链下存储。5.如权利要求1所述的一种基于区块链的链下数据安全存储的方法,其特征在于,所述隐私保护级别与对数据进行拆分的方式对应关系为:其中,grade为用户输入的隐私保护级别,win表示链上存储的数据所占全部数据的权重,wout表示链下存储数据所占全部数据的权重,nk表示待存储数据的类型对应的调整系数,wk表示隐私数据所占链下存储总量的权重,p表示待线上存储的数据条目数量,q表示待线下存储的数据条目数量。6.如权利要求5所述的一种基于区块链的链下数据安全存储的方法,其特征在于,所述步骤4中的第二次拆分存储于链下的分布式存储区中进一步包括如下步骤:步骤401,客户端在进行数据上链存储之前,发送请求要上传一个文件到至所述区块链的链下存储区时,链下服务器节点先监听每个存储区的可用存储节点,生成一张索引表并反馈给链下服务器节点;步骤402,验证存储节点的可用性,对存储区设置可用性标识数值,当可用性值全为1
时,则该存储区的所有的存储节点都是可用的,当有些存储节点的可用性值为0时,则此存储节点不可用;步骤404,所述客户端与链下存储的接口服务器进行交互,接口服务器根据待存储的数据的文件id信息给每个子块分配一个id,再把相关信息发送给链下存储的链下服务器节点,链下服务器节点根据所述索引表,找到各个分块相应的存储节点,将文件信息、块信息和相关存储节点信息写入数据库,然后再将文件块信息及对应的存储节点地址返回给链下存储的接口服务器,接口服务器再反馈给客户端,当客户端根据返回的信息后将文件分块、并行上传对应的存储节点,存储节点每接收到一个文件块后都会向链下服务器节点发送一条确认信息,主服务器将数据库中该文件的状态信息改为1,表示已经存储成功。7.如权利要求6所述的一种基于区块链的链下数据安全存储的方法,其特征在于,随机分配隐私数据部分的文件id。8.如权利要求1所述的一种基于区块链的链下数据安全存储的方法,其特征在于,当需要链下数据和链上数据进行协同时,将链下数据进行聚合后采用数据协同模型进行数据协同。9.一种电子系统,其特征在于,包括存储器和处理器,所述存储器上存储有计算机程序,该计算机程序被所述处理器执行时,执行如权利要求1至8中任意一项中的基于区块链的链下数据安全存储的方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括实时风险控制程序,该实时风险控制程序被处理器执行时实现如权利要求1至8中任意一项所述的基于区块链的链下数据安全存储的方法的步骤。
技术总结本发明公开一种基于区块链的链下数据安全存储的方法,接收客户端发送的待上链存储的数据,对所述待上链存储的数据进行分析,判断该数据的类型;根据所述的数据类型生成所述数据类型对应的数据问询信息,并将该问询信息发送至所述客户端,其中,所述问询信息包括询问用户是否需要对该数据类型的数据进行数据拆分存储,问询信息包括初筛的隐私数据判定结果若问询结果为不需要对数据进行则将全数据直接存储于区块链的链上存储区,若问询结果为需要对数据进行拆分,则根据待上链存储数据的数据类型对应的数据拆分模型提取出所述待上链存储的数据的隐私数据部分;将拆分出的隐私数据部分进行第二次拆分存储于链下的分布式存储区中。储区中。储区中。
技术研发人员:葛莺燕
受保护的技术使用者:葛莺燕
技术研发日:2022.07.13
技术公布日:2022/11/1