CN114780568A - 一种分布式多方数据一致性更新方法和*** - Google Patents
一种分布式多方数据一致性更新方法和*** Download PDFInfo
- Publication number
- CN114780568A CN114780568A CN202210708483.5A CN202210708483A CN114780568A CN 114780568 A CN114780568 A CN 114780568A CN 202210708483 A CN202210708483 A CN 202210708483A CN 114780568 A CN114780568 A CN 114780568A
- Authority
- CN
- China
- Prior art keywords
- data
- party
- association
- ciphertext
- partial content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Automation & Control Theory (AREA)
- Computing Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出一种分布式多方数据一致性更新方法和***,属于数据处理技术领域。在所述方法中对于多个数据方,其各自的本地数据库相互独立且隔离,所述方法利用智能合约实现存储于若干不同的本地数据库中的相同数据的一致性更新。本发明通过智能合约维护分布式数据之间的关联关系,在数据变化时自动检查并同步更新;部门根据权限存储本地维护数据,数据修改记录上链存储,数据更新时二者相互验证保证数据安全不被篡改;数据在数据库中加密存储、同步过程中加密传输,密钥由智能合约维护,仅具备权限的用户可获取相应密钥,防止非法窃取数据。
Description
技术领域
本发明属于数据处理技术领域,尤其涉及一种分布式多方数据一致性更新方法和***。
背景技术
组织机构内不同部门通常通过协作对文档等数据进行协同编辑,然而不同部门对数据的存储和访问权限不同,每个部门局部维护并更新数据不同部分,少数用户对完整数据进行维护。当局部数据更新时,分布在其他部门的关联数据也需同步更新。如果数据不能及时更新,会造成每个部门维护的同一个数据不一致的问题,导致全局信息混乱甚至错误的发生。
传统的数据协同编辑采用实时通信传输同步数据,并设计冲突解决算法对同步编辑的一致性进行维护。数据库通常采用主从同步的方式,通过一致性算法对不同数据库中的副本进行同步,然而数据存储之后无法提供校验难以抵御数据篡改攻击,并且通过依赖中间件通知和协调数据库提交或者回滚,难以动态控制数据同步范围,中间件的存在为也数据安全同步带来了风险。
发明内容
针对上述技术问题,本发明提出一种分布式多方数据一致性更新方案。
本发明第一方面公开了一种分布式多方数据一致性更新方法。对于多个数据方,其各自的本地数据库相互独立且隔离,所述方法利用智能合约实现存储于若干不同的本地数据库中的相同数据的一致性更新;所述方法包括:
S1、数据关联阶段:
S1-1、数据关联申请方向所述智能合约发送数据关联申请,所述智能合约基于所述数据关联申请更新关联关系列表;其中:
所述数据关联申请至少包括关联文件ID、关联文件的部分内容ID、以及被关联方ID,所述关联关系列表维持的关联记录的定义为{关联文件ID,数据关联申请方ID,关联关系},一个所述关联关系的定义为{被关联方ID,关联文件的部分内容ID},一条关联记录中包含至少一个所述关联关系;
S1-2、所述智能合约获取数据加密密钥,将所述数据加密密钥封装在数据关联成功消息中,并将所述数据关联成功消息同时发送至所述数据关联申请方和所述被关联方;
S2、数据更新阶段:
S2-1、所述数据关联申请方和所述被关联方中的任一方作为第一数据方对所述关联文件的部分内容进行修改,并利用所述数据加密密钥对经修改的部分内容进行加密处理,得到的数据密文被存储在所述第一数据方侧的第一数据库中;
S2-2、将所述第一数据方的修改记录发送到分布式账本网络中与所述第一数据方对应的第一节点,并通过共识机制将所述修改记录面向所述分布式账本网络的全部节点进行广播;其中:
所述修改记录为{第一数据方ID,第一数据库,关联文件ID,经修改的部分内容ID,数据密文的密文摘要};
步骤S2-3、所述智能合约在检测到所述修改记录后,从所述修改记录中提取所述第一数据方ID、所述关联文件ID、经修改的部分内容ID,通过在所述关联关系列表中分别对所述第一数据方ID、所述关联文件ID、经修改的部分内容ID进行遍历,来确定与所述关联文件的经修改的部分内容关联的除所述第一数据方以外的其他数据方,作为第二数据方;
步骤S2-4、智能合约从所述修改记录中确定所述数据密文存储在所述第一数据库中,向所述第一数据方发送同步关联数据请求,使得所述第一数据方向所述第二数据方发送所述数据密文,同时向所述第二数据方发送数据解密密钥;
步骤S2-5、所述第二数据方读取所述经修改的部分内容时,对所述数据密文的密文摘要与所述修改记录中的数据密文的密文摘要进行一致性验证,所述一致性验证通过后利用所述数据解密密钥对接收到的数据密文进行解密,以获取所述关联文件的经修改的部分内容。
根据本发明第一方面的方法,所述分布式账本网络中包含多个节点,每个数据方通过所述分布式账本网络中的一个节点将该数据方的账本数据上传至所述分布式账本网络,并基于所述共识机制将所述账本数据面向所述分布式账本网络的全部节点进行广播,以实现所述账本数据在所述全部节点上的同步,其中,所述账本数据至少包括存储记录、读取记录和所述修改记录。
根据本发明第一方面的方法,所述同步关联数据请求定义为{第一数据库,第二数据方侧的第二数据库,数据密文},使得所述第一数据方向所述第二数据方发送所述数据密文,并将所述数据密文存储在所述第二数据库中。根据本发明第一方面的方法,
根据本发明第一方面的方法,所述第二数据方读取所述经修改的部分内容时,向所述智能合约发送数据读取请求,所述智能合约对所述第二数据方的访问权限进行验证,验证通过后进一步判断所述第二数据方要读取的部分内容是否在所述关联关系列表中,若是,则对所述数据密文的密文摘要与所述修改记录中的数据密文的密文摘要进行一致性验证,所述一致性验证通过后利用所述数据解密密钥获取所述经修改的部分内容;
其中,在所述一致性验证不通过的情况下,所述第二数据方向所述智能合约发送针对所述经修改的部分内容的同步申请,所述智能合约向所述第一数据库再次发送所述同步关联数据请求,使得所述第一数据库向所述第二数据方再次发送所述数据密文。
本发明第二方面公开了一种分布式多方数据一致性更新***。对于多个数据方,其各自的本地数据库相互独立且隔离,所述***利用智能合约实现存储于若干不同的本地数据库中的相同数据的一致性更新;所述***包括数据关联申请方、被关联方、智能合约以及分布式账本网络;其中:
在数据关联阶段:
所述数据关联申请方向所述智能合约发送数据关联申请,所述智能合约基于所述数据关联申请更新关联关系列表;其中:
所述数据关联申请至少包括关联文件ID、关联文件的部分内容ID、以及被关联方ID,所述关联关系列表维持的关联记录的定义为{关联文件ID,数据关联申请方ID,关联关系},一个所述关联关系的定义为{被关联方ID,关联文件的部分内容ID},一条关联记录中包含至少一个所述关联关系;
所述智能合约获取数据加密密钥,将所述数据加密密钥封装在数据关联成功消息中,并将所述数据关联成功消息同时发送至所述数据关联申请方和所述被关联方;
在数据更新阶段:
所述数据关联申请方和所述被关联方中的任一方作为第一数据方对所述关联文件的部分内容进行修改,并利用所述数据加密密钥对经修改的部分内容进行加密处理,得到的数据密文被存储在所述第一数据方侧的第一数据库中;
将所述第一数据方的修改记录发送到所述分布式账本网络中与所述第一数据方对应的第一节点,并通过共识机制将所述修改记录面向所述分布式账本网络的全部节点进行广播;其中:
所述修改记录为{第一数据方ID,第一数据库,关联文件ID,经修改的部分内容ID,数据密文的密文摘要};
所述智能合约在检测到所述修改记录后,从所述修改记录中提取所述第一数据方ID、所述关联文件ID、经修改的部分内容ID,通过在所述关联关系列表中分别对所述第一数据方ID、所述关联文件ID、经修改的部分内容ID进行遍历,来确定与所述关联文件的经修改的部分内容关联的除所述第一数据方以外的其他数据方,作为第二数据方;
智能合约从所述修改记录中确定所述数据密文存储在所述第一数据库中,向所述第一数据方发送同步关联数据请求,使得所述第一数据方向所述第二数据方发送所述数据密文,同时向所述第二数据方发送数据解密密钥;
所述第二数据方读取所述经修改的部分内容时,对所述数据密文的密文摘要与所述修改记录中的数据密文的密文摘要进行一致性验证,所述一致性验证通过后利用所述数据解密密钥对接收到的数据密文进行解密,以获取所述关联文件的经修改的部分内容。
根据本发明第二方面的***,所述分布式账本网络中包含多个节点,每个数据方通过所述分布式账本网络中的一个节点将该数据方的账本数据上传至所述分布式账本网络,并基于所述共识机制将所述账本数据面向所述分布式账本网络的全部节点进行广播,以实现所述账本数据在所述全部节点上的同步,其中,所述账本数据至少包括存储记录、读取记录和所述修改记录。
根据本发明第二方面的***,所述同步关联数据请求定义为{第一数据库,第二数据方侧的第二数据库,数据密文},使得所述第一数据方向所述第二数据方发送所述数据密文,并将所述数据密文存储在所述第二数据库中。
根据本发明第二方面的***,所述第二数据方读取所述经修改的部分内容时,向所述智能合约发送数据读取请求,所述智能合约对所述第二数据方的访问权限进行验证,验证通过后进一步判断所述第二数据方要读取的部分内容是否在所述关联关系列表中,若是,则对所述数据密文的密文摘要与所述修改记录中的数据密文的密文摘要进行一致性验证,所述一致性验证通过后利用所述数据解密密钥获取所述经修改的部分内容;
其中,在所述一致性验证不通过的情况下,所述第二数据方向所述智能合约发送针对所述经修改的部分内容的同步申请,所述智能合约向所述第一数据库再次发送所述同步关联数据请求,使得所述第一数据库向所述第二数据方再次发送所述数据密文。
本发明第三方面公开了一种电子设备。所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现本公开第一方面中任一项所述的一种分布式多方数据一致性更新方法中的步骤。
本发明第四方面公开了一种计算机可读存储介质。所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现本公开第一方面中任一项所述的一种分布式多方数据一致性更新方法中的步骤。
综上,本发明提供的技术方案能够实现不同部门之间数据协作的同步更新。具体地,通过智能合约维护分布式数据之间的关联关系,在数据变化时自动检查并同步更新;部门根据权限存储本地维护数据,数据修改记录上链存储,数据更新时二者相互验证保证数据安全不被篡改;数据在数据库中加密存储、同步过程中加密传输,密钥由智能合约维护,仅具备权限的用户可获取相应密钥,防止非法窃取数据。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明实施例的分布式多方数据一致性更新的组成示意图;
图2a为根据本发明实施例的一数据关联阶段的流程图;
图2b为根据本发明实施例的一数据更新阶段的流程图;
图3为根据本发明实施例的分布式多方数据一致性更新的流程示意图;
图4为根据本发明实施例的数据读取的流程示意图;
图5为根据本发明实施例的一种电子设备的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明第一方面公开了一种分布式多方数据一致性更新方法。对于多个数据方,其各自的本地数据库相互独立且隔离,所述方法利用智能合约实现存储于若干不同的本地数据库中的相同数据的一致性更新。
图1为根据本发明实施例的分布式多方数据一致性更新的组成示意图;如图1所示,每个部门维护自己的数据库,部门拥有的数据存储在部门数据库中,多方共同享有的数据保存在多个部门数据库中,其中一个数据变化对其他关联数据也进行更新。智能合约负责记录并管理数据关联关系,关联关系包括关联用户、关联内容等,当数据更新时,检测数据关联关系并将更新同步到关联数据库。每次数据修改记录上链保存,区块链节点由部署在不同部门的多个设备组成,区块链节点上维护同样的信息,读取数据时提取链上修改记录与数据库中的数据相互验证,确保数据读取正确不被篡改。
图2a为根据本发明实施例的一数据关联阶段的流程图;图2b为根据本发明实施例的一数据更新阶段的流程图;如图2a和2b分别所示,所述方法包括:
S1、数据关联阶段:
S1-1、数据关联申请方向所述智能合约发送数据关联申请,所述智能合约基于所述数据关联申请更新关联关系列表;其中:
所述数据关联申请至少包括关联文件ID、关联文件的部分内容ID、以及被关联方ID,所述关联关系列表维持的关联记录的定义为{关联文件ID,数据关联申请方ID,关联关系},一个所述关联关系的定义为{被关联方ID,关联文件的部分内容ID},一条关联记录中包含至少一个所述关联关系;
S1-2、所述智能合约获取数据加密密钥,将所述数据加密密钥封装在数据关联成功消息中,并将所述数据关联成功消息同时发送至所述数据关联申请方和所述被关联方;
S2、数据更新阶段:
S2-1、所述数据关联申请方和所述被关联方中的任一方作为第一数据方对所述关联文件的部分内容进行修改,并利用所述数据加密密钥对经修改的部分内容进行加密处理,得到的数据密文被存储在所述第一数据方侧的第一数据库中;
S2-2、将所述第一数据方的修改记录发送到分布式账本网络中与所述第一数据方对应的第一节点,并通过共识机制将所述修改记录面向所述分布式账本网络的全部节点进行广播;其中:
所述修改记录为{第一数据方ID,第一数据库,关联文件ID,经修改的部分内容ID,数据密文的密文摘要};
步骤S2-3、所述智能合约在检测到所述修改记录后,从所述修改记录中提取所述第一数据方ID、所述关联文件ID、经修改的部分内容ID,通过在所述关联关系列表中分别对所述第一数据方ID、所述关联文件ID、经修改的部分内容ID进行遍历,来确定与所述关联文件的经修改的部分内容关联的除所述第一数据方以外的其他数据方,作为第二数据方;
步骤S2-4、智能合约从所述修改记录中确定所述数据密文存储在所述第一数据库中,向所述第一数据方发送同步关联数据请求,使得所述第一数据方向所述第二数据方发送所述数据密文,同时向所述第二数据方发送数据解密密钥;
步骤S2-5、所述第二数据方读取所述经修改的部分内容时,对所述数据密文的密文摘要与所述修改记录中的数据密文的密文摘要进行一致性验证,所述一致性验证通过后利用所述数据解密密钥对接收到的数据密文进行解密,以获取所述关联文件的经修改的部分内容。
在一些实施例中,所述分布式账本网络中包含多个节点,每个数据方通过所述分布式账本网络中的一个节点将该数据方的账本数据上传至所述分布式账本网络,并基于所述共识机制将所述账本数据面向所述分布式账本网络的全部节点进行广播,以实现所述账本数据在所述全部节点上的同步,其中,所述账本数据至少包括存储记录、读取记录和所述修改记录。
在一些实施例中,所述同步关联数据请求定义为{第一数据库,第二数据方侧的第二数据库,数据密文},使得所述第一数据方向所述第二数据方发送所述数据密文,并将所述数据密文存储在所述第二数据库中。根据本发明第一方面的方法,
在一些实施例中,所述第二数据方读取所述经修改的部分内容时,向所述智能合约发送数据读取请求,所述智能合约对所述第二数据方的访问权限进行验证,验证通过后进一步判断所述第二数据方要读取的部分内容是否在所述关联关系列表中,若是,则对所述数据密文的密文摘要与所述修改记录中的数据密文的密文摘要进行一致性验证,所述一致性验证通过后利用所述数据解密密钥获取所述经修改的部分内容;
其中,在所述一致性验证不通过的情况下,所述第二数据方向所述智能合约发送针对所述经修改的部分内容的同步申请,所述智能合约向所述第一数据库再次发送所述同步关联数据请求,使得所述第一数据库向所述第二数据方再次发送所述数据密文。
具体实施例
智能合约管理对数据关联关系进行维护,记录数据关联列表,当数据更新时,检查数据关联关系并进行同步更新,具体包括数据关联管理和数据更新管理。
具体地, 数据关联管理:智能合约收到数据关联申请后,验证申请用户的合法性,将关联文件ID、申请关联用户ID、关联关系{(ui,parti), (uj, partj)…}记录在数据关联列表中。对于文件ID、申请用户ID相同的关联申请,只保存最新的关联关系集合;若关联关系集合为空,则删除该条关联关系。
表1 数据关联列表字段
具体地,数据更新管理:当关联文件的关联用户u和数据part更新时,向区块链提交part数据修改记录,修改记录包括{关联用户ID,关联文件ID,partID,part密文摘要},智能合约收到数据更新记录,检查是否属于关联数据更新。具体为:
(1)区块链节点收到数据修改记录后,智能合约查询数据关联列表,匹配关联文件ID,提取申请关联用户或关联关系包含用户u、关联关系包含partID的条目进行遍历,如不存在则终止;
(2)若用户u属于申请关联用户、partID属于关联关系中的关联数据,提取partID对应的关联用户,加入待同步集合;
(3)若(用户u,partID)属于关联关系,提取申请关联用户,加入待同步集合;
(4)用户u所在部门数据库作为同步数据源。
图3为根据本发明实施例的分布式多方数据一致性更新的流程示意图;结合图3说明。
数据关联设置:设置数据之间的关联关系,记录在数据关联列表中,并提供关联数据的存储密钥。具体为:数据用户ua向智能合约发送数据关联申请,{ua, fileID, {(u1,part1), (u2, part2),…}};智能合约记录数据关联关系;智能合约向被关联方ub发送数据关联通知、向关联申请方ua发送关联成功通知,并向申请方和被关联方发送关联数据parti的存储加密密钥pi。
关联数据一致性更新:当数据更新时,修改记录上链存储,智能合约进行对关联关系进行检查,自动对关联数据的进行密文传输更新。具体为:用户ub(第一数据方)利用密钥p加密存储数据p(partb),并存储在所在部门数据库中;ub将partb修改记录发送到区块链网络,记录包括{ub ID,文件ID,partb ID,partb密文摘要};区块链网络通过共识算法将修改记录同步到全部区块链节点上,智能合约发现关联数据partb更新,得到待同步集合和同步数据源;针对待同步集合中的每个用户,查询其所在部门数据库N,智能合约向同步数据源数据库B发送同步关联数据请求{数据库B,数据库N,partb},请求从数据库B将partb发送给数据库N;针对每个待同步数据库N,数据库B将存储的partb数据密文同步至数据库N。
关联数据读取(图4为根据本发明实施例的数据读取的流程示意图;如图4所示):当用户读取关联数据时,从智能合约获取解密密钥,验证数据库中存储数据密文与区块链中修改记录的一致性,验证通过方可对数据进行解密,否则需进行数据同步。具体为:用户ua(第二数据方)向智能合约申请读取数据{partm, partn, partk,..};智能合约查询关联关系{ua, fileID, {(u1,part1), (u2, part2),…}},确认用户ua具备数据访问权限,{partm, partn, partk,..}在关联数据集合中,否则终止;智能合约从密钥库获取解密密钥{partm:qm, partn:qn, partk:qk…}发送给用户ua,其中qi为parti部分的解密密钥;用户从数据库A中获取{partm, partn, partk,..}密文,从区块链网络读取{partm, partn,partk,...}修改记录,从中获取parti (i=m,n,k)密文摘要,对比密文与摘要,若一致则用户ua使用解密密钥qi 解密对应parti得到各协作部分的明文,通过拼接得到文件内容。
若不一致,则用户ua向智能合约申请同步数据parti;智能合约向对应数据库发送同步关联数据请求{数据库B,数据库A,parti},请求从数据库B将parti发送给数据库A;验证数据库B中的parti密文与区块链上修改记录中密文摘要的一致性,匹配则验证通过,否则终止;数据库B将更新数据密文发送至数据库A进行存储;用户ua使用解密密钥qi 解密对应parti得到各协作部分的明文,通过拼接得到文件内容。
本发明第二方面公开了一种分布式多方数据一致性更新***。对于多个数据方,其各自的本地数据库相互独立且隔离,所述***利用智能合约实现存储于若干不同的本地数据库中的相同数据的一致性更新;所述***包括数据关联申请方、被关联方、智能合约以及分布式账本网络;其中:
在数据关联阶段:
所述数据关联申请方向所述智能合约发送数据关联申请,所述智能合约基于所述数据关联申请更新关联关系列表;其中:
所述数据关联申请至少包括关联文件ID、关联文件的部分内容ID、以及被关联方ID,所述关联关系列表维持的关联记录的定义为{关联文件ID,数据关联申请方ID,关联关系},一个所述关联关系的定义为{被关联方ID,关联文件的部分内容ID},一条关联记录中包含至少一个所述关联关系;
所述智能合约获取数据加密密钥,将所述数据加密密钥封装在数据关联成功消息中,并将所述数据关联成功消息同时发送至所述数据关联申请方和所述被关联方;
在数据更新阶段:
所述数据关联申请方和所述被关联方中的任一方作为第一数据方对所述关联文件的部分内容进行修改,并利用所述数据加密密钥对经修改的部分内容进行加密处理,得到的数据密文被存储在所述第一数据方侧的第一数据库中;
将所述第一数据方的修改记录发送到所述分布式账本网络中与所述第一数据方对应的第一节点,并通过共识机制将所述修改记录面向所述分布式账本网络的全部节点进行广播;其中:
所述修改记录为{第一数据方ID,第一数据库,关联文件ID,经修改的部分内容ID,数据密文的密文摘要};
所述智能合约在检测到所述修改记录后,从所述修改记录中提取所述第一数据方ID、所述关联文件ID、经修改的部分内容ID,通过在所述关联关系列表中分别对所述第一数据方ID、所述关联文件ID、经修改的部分内容ID进行遍历,来确定与所述关联文件的经修改的部分内容关联的除所述第一数据方以外的其他数据方,作为第二数据方;
智能合约从所述修改记录中确定所述数据密文存储在所述第一数据库中,向所述第一数据方发送同步关联数据请求,使得所述第一数据方向所述第二数据方发送所述数据密文,同时向所述第二数据方发送数据解密密钥;
所述第二数据方读取所述经修改的部分内容时,对所述数据密文的密文摘要与所述修改记录中的数据密文的密文摘要进行一致性验证,所述一致性验证通过后利用所述数据解密密钥对接收到的数据密文进行解密,以获取所述关联文件的经修改的部分内容。
根据本发明第二方面的***,所述分布式账本网络中包含多个节点,每个数据方通过所述分布式账本网络中的一个节点将该数据方的账本数据上传至所述分布式账本网络,并基于所述共识机制将所述账本数据面向所述分布式账本网络的全部节点进行广播,以实现所述账本数据在所述全部节点上的同步,其中,所述账本数据至少包括存储记录、读取记录和所述修改记录。
根据本发明第二方面的***,所述同步关联数据请求定义为{第一数据库,第二数据方侧的第二数据库,数据密文},使得所述第一数据方向所述第二数据方发送所述数据密文,并将所述数据密文存储在所述第二数据库中。
根据本发明第二方面的***,所述第二数据方读取所述经修改的部分内容时,向所述智能合约发送数据读取请求,所述智能合约对所述第二数据方的访问权限进行验证,验证通过后进一步判断所述第二数据方要读取的部分内容是否在所述关联关系列表中,若是,则对所述数据密文的密文摘要与所述修改记录中的数据密文的密文摘要进行一致性验证,所述一致性验证通过后利用所述数据解密密钥获取所述经修改的部分内容;
其中,在所述一致性验证不通过的情况下,所述第二数据方向所述智能合约发送针对所述经修改的部分内容的同步申请,所述智能合约向所述第一数据库再次发送所述同步关联数据请求,使得所述第一数据库向所述第二数据方再次发送所述数据密文。
本发明第三方面公开了一种电子设备。所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现本公开第一方面中任一项所述的一种分布式多方数据一致性更新方法中的步骤。
图5为根据本发明实施例的一种电子设备的结构图,如图5所示,电子设备包括通过***总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该电子设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、近场通信(NFC)或其他技术实现。该电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本公开的技术方案相关的部分的结构图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本发明第四方面公开了一种计算机可读存储介质。所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现本公开第一方面中任一项所述的一种分布式多方数据一致性更新方法中的步骤。
综上,本发明提供的技术方案能够实现不同部门之间数据协作的同步更新。具体地,通过智能合约维护分布式数据之间的关联关系,在数据变化时自动检查并同步更新;部门根据权限存储本地维护数据,数据修改记录上链存储,数据更新时二者相互验证保证数据安全不被篡改;数据在数据库中加密存储、同步过程中加密传输,密钥由智能合约维护,仅具备权限的用户可获取相应密钥,防止非法窃取数据。
具体地,每个部门可根据权限存储加密后的数据,数据修改记录上链存储,两者通过对比相互验证,防止数据篡改。智能合约对数据关联关系进行维护,保证关联关系的防篡改,当关联数据更新时,自动发现发起数据同步,提高了数据同步更新效率。在修改记录上链存储、数据同步过程中,无任何明文传输,并可在密文数据上进行一致性检查,保证了数据的机密性。
请注意,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种分布式多方数据一致性更新方法,其特征在于,对于多个数据方,其各自的本地数据库相互独立且隔离,所述方法利用智能合约实现存储于若干不同的本地数据库中的相同数据的一致性更新;所述方法包括:
S1、数据关联阶段:
S1-1、数据关联申请方向所述智能合约发送数据关联申请,所述智能合约基于所述数据关联申请更新关联关系列表;其中:
所述数据关联申请至少包括关联文件ID、关联文件的部分内容ID、以及被关联方ID,所述关联关系列表维持的关联记录的定义为{关联文件ID,数据关联申请方ID,关联关系},一个所述关联关系的定义为{被关联方ID,关联文件的部分内容ID},一条关联记录中包含至少一个所述关联关系;
S1-2、所述智能合约获取数据加密密钥,将所述数据加密密钥封装在数据关联成功消息中,并将所述数据关联成功消息同时发送至所述数据关联申请方和所述被关联方;
S2、数据更新阶段:
S2-1、所述数据关联申请方和所述被关联方中的任一方作为第一数据方对所述关联文件的部分内容进行修改,并利用所述数据加密密钥对经修改的部分内容进行加密处理,得到的数据密文被存储在所述第一数据方侧的第一数据库中;
S2-2、将所述第一数据方的修改记录发送到分布式账本网络中与所述第一数据方对应的第一节点,并通过共识机制将所述修改记录面向所述分布式账本网络的全部节点进行广播;其中:
所述修改记录为{第一数据方ID,第一数据库,关联文件ID,经修改的部分内容ID,数据密文的密文摘要};
步骤S2-3、所述智能合约在检测到所述修改记录后,从所述修改记录中提取所述第一数据方ID、所述关联文件ID、经修改的部分内容ID,通过在所述关联关系列表中分别对所述第一数据方ID、所述关联文件ID、经修改的部分内容ID进行遍历,来确定与所述关联文件的经修改的部分内容关联的除所述第一数据方以外的其他数据方,作为第二数据方;
步骤S2-4、智能合约从所述修改记录中确定所述数据密文存储在所述第一数据库中,向所述第一数据方发送同步关联数据请求,使得所述第一数据方向所述第二数据方发送所述数据密文,同时向所述第二数据方发送数据解密密钥;
步骤S2-5、所述第二数据方读取所述经修改的部分内容时,对所述数据密文的密文摘要与所述修改记录中的数据密文的密文摘要进行一致性验证,所述一致性验证通过后利用所述数据解密密钥对接收到的数据密文进行解密,以获取所述关联文件的经修改的部分内容。
2.根据权利要求1所述的一种分布式多方数据一致性更新方法,其特征在于,所述分布式账本网络中包含多个节点,每个数据方通过所述分布式账本网络中的一个节点将该数据方的账本数据上传至所述分布式账本网络,并基于所述共识机制将所述账本数据面向所述分布式账本网络的全部节点进行广播,以实现所述账本数据在所述全部节点上的同步,其中,所述账本数据至少包括存储记录、读取记录和所述修改记录。
3.根据权利要求2所述的一种分布式多方数据一致性更新方法,其特征在于,所述同步关联数据请求定义为{第一数据库,第二数据方侧的第二数据库,数据密文},使得所述第一数据方向所述第二数据方发送所述数据密文,并将所述数据密文存储在所述第二数据库中。
4.根据权利要求3所述的一种分布式多方数据一致性更新方法,其特征在于,所述第二数据方读取所述经修改的部分内容时,向所述智能合约发送数据读取请求,所述智能合约对所述第二数据方的访问权限进行验证,验证通过后进一步判断所述第二数据方要读取的部分内容是否在所述关联关系列表中,若是,则对所述数据密文的密文摘要与所述修改记录中的数据密文的密文摘要进行一致性验证,所述一致性验证通过后利用所述数据解密密钥获取所述经修改的部分内容;
其中,在所述一致性验证不通过的情况下,所述第二数据方向所述智能合约发送针对所述经修改的部分内容的同步申请,所述智能合约向所述第一数据库再次发送所述同步关联数据请求,使得所述第一数据库向所述第二数据方再次发送所述数据密文。
5.一种分布式多方数据一致性更新***,其特征在于,对于多个数据方,其各自的本地数据库相互独立且隔离,所述***利用智能合约实现存储于若干不同的本地数据库中的相同数据的一致性更新;所述***包括数据关联申请方、被关联方、智能合约以及分布式账本网络;其中:
在数据关联阶段:
所述数据关联申请方向所述智能合约发送数据关联申请,所述智能合约基于所述数据关联申请更新关联关系列表;其中:
所述数据关联申请至少包括关联文件ID、关联文件的部分内容ID、以及被关联方ID,所述关联关系列表维持的关联记录的定义为{关联文件ID,数据关联申请方ID,关联关系},一个所述关联关系的定义为{被关联方ID,关联文件的部分内容ID},一条关联记录中包含至少一个所述关联关系;
所述智能合约获取数据加密密钥,将所述数据加密密钥封装在数据关联成功消息中,并将所述数据关联成功消息同时发送至所述数据关联申请方和所述被关联方;
在数据更新阶段:
所述数据关联申请方和所述被关联方中的任一方作为第一数据方对所述关联文件的部分内容进行修改,并利用所述数据加密密钥对经修改的部分内容进行加密处理,得到的数据密文被存储在所述第一数据方侧的第一数据库中;
将所述第一数据方的修改记录发送到所述分布式账本网络中与所述第一数据方对应的第一节点,并通过共识机制将所述修改记录面向所述分布式账本网络的全部节点进行广播;其中:
所述修改记录为{第一数据方ID,第一数据库,关联文件ID,经修改的部分内容ID,数据密文的密文摘要};
所述智能合约在检测到所述修改记录后,从所述修改记录中提取所述第一数据方ID、所述关联文件ID、经修改的部分内容ID,通过在所述关联关系列表中分别对所述第一数据方ID、所述关联文件ID、经修改的部分内容ID进行遍历,来确定与所述关联文件的经修改的部分内容关联的除所述第一数据方以外的其他数据方,作为第二数据方;
智能合约从所述修改记录中确定所述数据密文存储在所述第一数据库中,向所述第一数据方发送同步关联数据请求,使得所述第一数据方向所述第二数据方发送所述数据密文,同时向所述第二数据方发送数据解密密钥;
所述第二数据方读取所述经修改的部分内容时,对所述数据密文的密文摘要与所述修改记录中的数据密文的密文摘要进行一致性验证,所述一致性验证通过后利用所述数据解密密钥对接收到的数据密文进行解密,以获取所述关联文件的经修改的部分内容。
6.根据权利要求5所述的一种分布式多方数据一致性更新***,其特征在于,所述分布式账本网络中包含多个节点,每个数据方通过所述分布式账本网络中的一个节点将该数据方的账本数据上传至所述分布式账本网络,并基于所述共识机制将所述账本数据面向所述分布式账本网络的全部节点进行广播,以实现所述账本数据在所述全部节点上的同步,其中,所述账本数据至少包括存储记录、读取记录和所述修改记录。
7.根据权利要求6所述的一种分布式多方数据一致性更新***,其特征在于,所述同步关联数据请求定义为{第一数据库,第二数据方侧的第二数据库,数据密文},使得所述第一数据方向所述第二数据方发送所述数据密文,并将所述数据密文存储在所述第二数据库中。
8.根据权利要求7所述的一种分布式多方数据一致性更新***,其特征在于,所述第二数据方读取所述经修改的部分内容时,向所述智能合约发送数据读取请求,所述智能合约对所述第二数据方的访问权限进行验证,验证通过后进一步判断所述第二数据方要读取的部分内容是否在所述关联关系列表中,若是,则对所述数据密文的密文摘要与所述修改记录中的数据密文的密文摘要进行一致性验证,所述一致性验证通过后利用所述数据解密密钥获取所述经修改的部分内容;
其中,在所述一致性验证不通过的情况下,所述第二数据方向所述智能合约发送针对所述经修改的部分内容的同步申请,所述智能合约向所述第一数据库再次发送所述同步关联数据请求,使得所述第一数据库向所述第二数据方再次发送所述数据密文。
9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现权利要求8所述的一种分布式多方数据一致性更新方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求8所述的一种分布式多方数据一致性更新方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210708483.5A CN114780568B (zh) | 2022-06-22 | 2022-06-22 | 一种分布式多方数据一致性更新方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210708483.5A CN114780568B (zh) | 2022-06-22 | 2022-06-22 | 一种分布式多方数据一致性更新方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114780568A true CN114780568A (zh) | 2022-07-22 |
CN114780568B CN114780568B (zh) | 2022-09-20 |
Family
ID=82422300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210708483.5A Active CN114780568B (zh) | 2022-06-22 | 2022-06-22 | 一种分布式多方数据一致性更新方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114780568B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018120057A1 (zh) * | 2016-12-30 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 基于区块链的货币管理方法和*** |
CN110852745A (zh) * | 2019-10-12 | 2020-02-28 | 杭州云象网络技术有限公司 | 一种区块链分布式动态网络密钥自动更新方法 |
CN111783128A (zh) * | 2020-07-24 | 2020-10-16 | 国网湖南省电力有限公司 | 可验证的分布式数据库访问控制方法 |
US20210150054A1 (en) * | 2019-11-20 | 2021-05-20 | Brett Circe | System and method for recording independently verifiable user consent for data processing |
-
2022
- 2022-06-22 CN CN202210708483.5A patent/CN114780568B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018120057A1 (zh) * | 2016-12-30 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 基于区块链的货币管理方法和*** |
CN110852745A (zh) * | 2019-10-12 | 2020-02-28 | 杭州云象网络技术有限公司 | 一种区块链分布式动态网络密钥自动更新方法 |
US20210150054A1 (en) * | 2019-11-20 | 2021-05-20 | Brett Circe | System and method for recording independently verifiable user consent for data processing |
CN111783128A (zh) * | 2020-07-24 | 2020-10-16 | 国网湖南省电力有限公司 | 可验证的分布式数据库访问控制方法 |
Non-Patent Citations (3)
Title |
---|
ORESTIS ALPOS 等: "On the Synchronization Power of Token Smart Contracts", 《2021 IEEE 41ST INTERNATIONAL CONFERENCE ON DISTRIBUTED COMPUTING SYSTEMS (ICDCS)》 * |
周军: "区块链意味着什么?", 《四川省情》 * |
杨业平 等: "基于区块链的物联网安全数据共享***", 《福州大学学报(自然科学版)》 * |
Also Published As
Publication number | Publication date |
---|---|
CN114780568B (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109120639B (zh) | 一种基于区块链的数据云存储加密方法及*** | |
CN111970129B (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
CN109792381B (zh) | 用于存储和分享综合数据的方法和装置 | |
JP4993733B2 (ja) | 暗号クライアント装置、暗号パッケージ配信システム、暗号コンテナ配信システム及び暗号管理サーバ装置 | |
EP2865129B1 (en) | Event-triggered release through third party of pre-encrypted digital data from data owner to data assignee | |
US10432394B2 (en) | Method and system for sharing encrypted content | |
WO2019237570A1 (zh) | 电子合同签署方法、装置及服务器 | |
US7350076B1 (en) | Scheme for device and user authentication with key distribution in a wireless network | |
US8295492B2 (en) | Automated key management system | |
US11831753B2 (en) | Secure distributed key management system | |
US20080115199A1 (en) | Scheme for device and user authentication with key distribution in a wireless network | |
US11386426B2 (en) | Invoice invalidation method and apparatus based on blockchain, and electronic device | |
CN116601912A (zh) | 提供加密安全的后秘密供应服务 | |
CN106533693B (zh) | 轨道车辆监控检修***的接入方法和装置 | |
CN112202713B (zh) | 一种Kubernetes环境下用户数据安全保护方法 | |
KR20210064675A (ko) | 블록체인 기반 데이터 거래 및 보관을 위한 보안 시스템 및 그 방법 | |
CN114329528A (zh) | 一种基于区块链的档案数据管理方法及*** | |
US11252138B2 (en) | Redundant device locking key management system | |
CN114780568B (zh) | 一种分布式多方数据一致性更新方法和*** | |
WO2020255382A1 (ja) | コンテンツ取引システム、コンテンツ取引方法、鍵管理装置、及び鍵管理プログラム | |
CN109214921B (zh) | 基于云计算的文件加密传输方法 | |
KR20210036700A (ko) | 트랜잭션에 포함된 평문 데이터의 변경을 지원하는 블록체인 시스템 | |
CN113239376B (zh) | 基于区块链的数据共享方法、请求方法及装置 | |
CN115906117A (zh) | 一种基于区块链交易可信应用实现方法 | |
CN115412236A (zh) | 一种密钥管理和密码计算的方法、加密方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |