基于区块链加密存储的内容更新方法、用户节点及介质与流程

文档序号:19879340发布日期:2020-02-08 06:48阅读:155来源:国知局
基于区块链加密存储的内容更新方法、用户节点及介质与流程

本发明实施例涉及区块链技术领域,尤其涉及一种基于区块链加密存储的内容更新方法、用户节点及介质。



背景技术:

基于区块链的存储系统中,由于采用的广播共享机制,为了保证存储内容的安全保密性,所有的内容都需要加密存储,然而加密存储不像明文存储,一旦对存储的内容有更新,必须重新上传所有的存储内容,当内容比较大时,将不得不耗费很多时间和带宽,而实际上更新的内容却可能只是一个大文件中的很少一部分,比如只改了少数几个字节,因此亟需一种基于区块链加密存储的内容更新方法,以降低内容更新的时间消耗和带宽消耗。



技术实现要素:

本发明实施例提供一种基于区块链加密存储的内容更新方法、用户节点及介质,用以降低内容更新过程中,数据上传对时间和带宽的消耗。

本发明实施例第一方面提供一种基于区块链加密存储的内容更新方法,在该区块链中,存储节点存储的数据为经过同态加密算法加密后的数据,该方法包括:

所述区块链中的用户节点在得到原始数据的更新数据后,根据所述原始数据和所述更新数据之间的差异,确定目标同态计算函数以及目标参数,以使所述目标参数和所述原始数据代入所述目标同态计算函数后计算得到的数据为所述更新数据;

所述用户节点采用所述同态加密算法对所述目标参数进行加密,并将加密得到的第一加密数据和所述目标同态计算函数发送给所述区块链中的存储节点,以使所述存储节点基于所述第一加密数据、所述存储节点中存储的所述原始数据的同态加密数据,以及所述目标同态计算函数,计算得到所述更新数据的同态加密数据,并基于所述更新数据的同态加密数据对所述原始数据的同态加密数据进行更新。

在一种实施方式中,所述将加密得到的第一加密数据和所述目标同态计算函数发送给所述区块链中的存储节点,包括:

所述用户节点采用自身的私钥对所述第一加密数据和所述目标同态计算函数进行签名处理,并将签名数据广播到所述区块链中,以使所述区块链中的存储节点获得所述第一加密数据和所述目标同态计算函数。

在一种实施方式中,所述将加密得到的第一加密数据和所述目标同态计算函数发送给所述区块链中的存储节点,包括:

所述用户节点从区块链的账本中获取用于记录其数据的存储节点的ip地址;

基于所述ip地址,采用p2p的方式将所述第一加密数据和所述目标同态计算函数发送给所述存储节点。

在一种实施方式中,所述将加密得到的第一加密数据和所述目标同态计算函数发送给所述区块链中的存储节点之后,所述方法还包括:

所述用户节点接收所述存储节点发送的更新反馈信息。

在一种实施方式中,所述用户节点接收所述存储节点发送的更新反馈信息之后,所述方法还包括:

若所述更新反馈信息指示更新失败,则所述用户节点统计当前更新的失败总次数,若所述失败总次数超过预设次数,则停止更新操作,并输出更新失败的消息。

本发明实施例第二方面提供一种用户节点,该用户节点适用于一种区块链,在所述区块链中,存储节点存储的数据为经过同态加密算法加密后的数据,所述用户节点包括:处理器和存储器,所述存储器中存储有指令,当所述处理器执行所述指令时执行如下操作:

在得到原始数据的更新数据后,根据所述原始数据和所述更新数据之间的差异,确定目标同态计算函数以及目标参数,以使所述目标参数和所述原始数据代入所述目标同态计算函数后计算得到的数据为所述更新数据;

采用所述同态加密算法对所述目标参数进行加密,并将加密得到的第一加密数据和所述目标同态计算函数发送给所述区块链中的存储节点,以使所述存储节点基于所述第一加密数据、所述存储节点中存储的所述原始数据的同态加密数据,以及所述目标同态计算函数,计算得到所述更新数据的同态加密数据,并基于所述更新数据的同态加密数据对所述原始数据的同态加密数据进行更新。

在一种实施方式中,所述处理器在执行将加密得到的第一加密数据和所述目标同态计算函数发送给所述区块链中的存储节点的操作时,用于:

采用所述用户节点的私钥对所述第一加密数据和所述目标同态计算函数进行签名处理,并将签名数据广播到所述区块链中,以使所述区块链中的存储节点获得所述第一加密数据和所述目标同态计算函数。

在一种实施方式中,所述处理器在执行将加密得到的第一加密数据和所述目标同态计算函数发送给所述区块链中的存储节点的操作时,用于:

从区块链的账本中获取用于记录所述用户节点的数据的存储节点的ip地址;

基于所述ip地址,采用p2p的方式将所述第一加密数据和所述目标同态计算函数发送给所述存储节点。

在一种实施方式中,所述处理器在将加密得到的第一加密数据和所述目标同态计算函数发送给所述区块链中的存储节点之后,还用于:

接收所述存储节点发送的更新反馈信息。

本发明实施例第三方面提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。

在本发明实施例中,在存储节点用于存储同态加密后的数据的情况下,用户节点通过在得到原始数据的更新数据后,根据原始数据和更新数据之间的差异,确定目标同态计算函数以及目标参数,使得目标参数和原始数据在代入目标同态计算函数后能够计算得到更新数据;并在得到目标同态计算函数以及目标参数后,采用同态加密算法对目标参数进行加密,并将加密得到的第一加密数据和确定得到的目标同态计算函数发送给区块链中的存储节点,使得存储节点能够基于第一加密数据、存储节点中存储的所述原始数据的同态加密数据,以及目标同态计算函数,计算得到更新数据的同态加密数据。本发明实施例提供的方案在内容更新时不需要将原始数据的更新数据全部上传到存储节点,而是只要将确定得到的目标参数和计算目标同态计算函数发送给存储节点,就能够使得存储节点计算得到原始数据的更新数据,降低了内容更新过程中,数据上传对时间和带宽的消耗。

附图说明

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

图1是本发明实施例提供的一种应用场景的示意图;

图2是本发明实施例提供的一种基于区块链加密存储的内容更新方法的流程图;

图3是本发明实施例提供的一种基于区块链加密存储的内容更新方法的流程图;

图4是本发明实施例提供的一种用户节点的结构示意图。

具体实施方式

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

本发明的说明书和权利要求书的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤的过程或结构的装置不必限于清楚地列出的那些结构或步骤而是可包括没有清楚地列出的或对于这些过程或装置固有的其它步骤或结构。

本发明实施例提供的基于区块链加密存储的内容更新方法,旨在解决现有技术存在的上述问题,该方法可以适用于图1所示的通信系统。如图1所示,该通信系统包括:用户节点11、用户节点12和存储节点13、存储节点14,其中,用户节点11、用户节点12、存储节点13、存储节点14属于同一区块链网络,用户节点11、用户节点12具体可以是终端设备、服务器等设备,存储节点13和存储节点14具体可以是具有存储能力的设备。存储节点13和存储节点14可以对用户节点11、用户节点12上传的数据进行存储,其中,用户节点11和用户节点12上传到区块链的待存储数据,采用预设的同态加密算法加密后记录到存储节点上,也就是说,存储节点13和存储节点14用于存储经过同态加密的数据。另外,此处只是示意性说明,并不限定该区块链网络的结构和该区块链网络中的节点个数。

下面以具体地实施例对本发明的技术方案以及本发明的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。

图2是本发明实施例提供的一种基于区块链加密存储的内容更新方法的流程图,在该方法中,区块链的存储节点存储的数据为经过同态加密算法加密后的数据。具体的,如图2所示,该方法包括如下步骤:

步骤101、所述区块链中的用户节点在得到原始数据的更新数据后,根据所述原始数据和所述更新数据之间的差异,确定目标同态计算函数以及目标参数,以使所述目标参数和所述原始数据代入所述目标同态计算函数后计算得到的数据为所述更新数据。

本实施例中所称的存储节点可以示例性的理解为图1场景中的存储节点13或存储节点14,用户节点可示例性的理解为图1场景中的用户节点11或用户节点12。

在本实施例中,每次更新操作确定的目标同态计算函数可以不同,每次更新操做可以从预设的函数库中查找目标同态计算函数,该函数库中可以预先设置多个同态计算函数,在进行内容更新时,根据原始数据和更新数据之间的差异(包括字符排列,数值大小,以及数据格式等)从数据库中选择适当的同态计算函数作为目标同态计算函数,并确定该目标同态计算函数的目标参数,使得将目标参数和所述原始数据代入目标同态计算函数后,目标同态计算函数的输出结果为所述更新数据。

步骤102、所述用户节点采用所述同态加密算法对所述目标参数进行加密,并将加密得到的第一加密数据和所述目标同态计算函数发送给所述区块链中的存储节点,以使所述存储节点基于所述第一加密数据、所述存储节点中存储的所述原始数据的同态加密数据,以及所述目标同态计算函数,计算得到所述更新数据的同态加密数据,并基于所述更新数据的同态加密数据对所述原始数据的同态加密数据进行更新。

举例来说,假设步骤101中确定的目标参数为ma,同态加密算法为enc(),则采用同态加密算法enc()对目标参数ma加密得到的第一加密数据为enc(ma),若步骤101中确定得到的目标同态计算函数f(),则对enc(ma)和f()采用用户节点自身的私钥进行签名,并将签名后的数据广播到区块链中,区块链中的存储节点在接收到该数据后,首先采用用户节点的公钥对签名进行验证,若签名验证通过,则进一步,从自身存储的数据中找到当前存储的该用户节点的加密数据enc(m)(对原始数据m采用同态加密算法加密得到),通过将查找得到的加密数据enc(m)以及接收到的enc(ma)代入f()计算得到enc(m1),并将enc(m1)进行存储,其中,m1为原始数据m的更新数据,enc(m1)为m1的同态加密数据。

进一步的,在存储节点根据用户节点发送的enc(ma)和f()执行更新操作后,还可以向用户节点发送更新反馈信息,该更新反馈信息用于指示更新的结果,比如成功或失败。

当更新反馈信息指示更新失败时,用户节点判断当前更新的失败总次数是否超过预设次数,若超过,则停止更新操作,并基于交互组件向用户输入更新失败的信息,以使用户能够尽快排查更新失败的原因。

若更新反馈信息指示更新成功,则用户节点在需要使用该些数据时,可以从存储节点中获取更新后的数据,并采用上述同态加密算法对应的解密算法对获取到的数据进行解密得到上述未加密的更新数据。

在本实施例中,在存储节点用于存储同态加密后的数据的情况下,用户节点通过在得到原始数据的更新数据后,根据原始数据和更新数据之间的差异,确定目标同态计算函数以及目标参数,使得目标参数和原始数据在代入目标同态计算函数后能够计算得到更新数据;并在得到目标同态计算函数以及目标参数后,采用同态加密算法对目标参数进行加密,并将加密得到的第一加密数据和确定得到的目标同态计算函数发送给区块链中的存储节点,使得存储节点能够基于第一加密数据、存储节点中存储的所述原始数据的同态加密数据,以及目标同态计算函数,计算得到更新数据的同态加密数据。本实施例提供的方案在内容更新时不需要将原始数据的更新数据全部上传到存储节点,而是只要将确定得到的目标参数和计算目标同态计算函数发送给存储节点,就能够使得存储节点计算得到原始数据的更新数据,降低了内容更新过程中,数据上传对时间和带宽的消耗。

图3是本发明实施例提供的一种基于区块链加密存储的内容更新方法的流程图,如图3所述,在图2实施例的基础上,该方法包括:

步骤201、所述区块链中的用户节点在得到原始数据的更新数据后,根据所述原始数据和所述更新数据之间的差异,确定目标同态计算函数以及目标参数,以使所述目标参数和所述原始数据代入所述目标同态计算函数后计算得到的数据为所述更新数据。

步骤202、所述用户节点采用同态加密算法对所述目标参数进行加密。

步骤203、所述用户节点从区块链的账本中获取用于记录其数据的存储节点的ip地址。

步骤204、基于所述ip地址,采用p2p的方式将所述第一加密数据和所述目标同态计算函数发送给所述存储节点。

步骤205、存储节点基于所述第一加密数据、所述存储节点中存储的所述原始数据的同态加密数据,以及所述目标同态计算函数,计算得到所述更新数据的同态加密数据,并基于所述更新数据的同态加密数据对所述原始数据的同态加密数据进行更新。

本发明实施例通过p2p的方式将第一加密数据和目标同态计算函数发送给存储节点,相较于广播的方式,能够提高第一加密数据和目标同态计算函数的传输安全性。

图4是本发明实施例提供的一种用户节点的结构示意图,该用户节点适用于一种区块链,在所述区块链中,存储节点存储的数据为经过同态加密算法加密后的数据,如图4所示,存储节点40包括:

处理器41和存储器42,所述存储器42中存储有指令,当所述处理器41执行所述指令时执行如下操作:

在得到原始数据的更新数据后,根据所述原始数据和所述更新数据之间的差异,确定目标同态计算函数以及目标参数,以使所述目标参数和所述原始数据代入所述目标同态计算函数后计算得到的数据为所述更新数据;

采用所述同态加密算法对所述目标参数进行加密,并将加密得到的第一加密数据和所述目标同态计算函数发送给所述区块链中的存储节点,以使所述存储节点基于所述第一加密数据、所述存储节点中存储的所述原始数据的同态加密数据,以及所述目标同态计算函数,计算得到所述更新数据的同态加密数据,并基于所述更新数据的同态加密数据对所述原始数据的同态加密数据进行更新。

在一种实施方式中,所述处理器在执行将加密得到的第一加密数据和所述目标同态计算函数发送给所述区块链中的存储节点的操作时,用于:

采用所述用户节点的私钥对所述第一加密数据和所述目标同态计算函数进行签名处理,并将签名数据广播到所述区块链中,以使所述区块链中的存储节点获得所述第一加密数据和所述目标同态计算函数。

在一种实施方式中,所述处理器在执行将加密得到的第一加密数据和所述目标同态计算函数发送给所述区块链中的存储节点的操作时,用于:

从区块链的账本中获取用于记录所述用户节点的数据的存储节点的ip地址;

基于所述ip地址,采用p2p的方式将所述第一加密数据和所述目标同态计算函数发送给所述存储节点。

在一种实施方式中,所述处理器在将加密得到的第一加密数据和所述目标同态计算函数发送给所述区块链中的存储节点之后,还用于:

接收所述存储节点发送的更新反馈信息。

本实施例提供的存储节点能够执行图2或图3实施例的方法,其执行方和有益效果类似,在这里不再赘述。

本发明实施例还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述图2或图3提供的方法。

最后需要说明的是,本领域普通技术人员可以理解上述实施例方法中的全部或者部分流程,是可以通过计算机程序来指令相关的硬件完成,所述的程序可存储于一计算机可读存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可以为磁盘、光盘、只读存储记忆体(rom)或随机存储记忆体(ram)等。

本发明实施例中的各个功能单元可以集成在一个处理模块中,也可以是各个单元单独的物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现,并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。上述提到的存储介质可以是只读存储器、磁盘或光盘等。

以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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