CN109146487A - 一种数据重复发送方法、数据存储方法及装置 - Google Patents
一种数据重复发送方法、数据存储方法及装置 Download PDFInfo
- Publication number
- CN109146487A CN109146487A CN201811036879.XA CN201811036879A CN109146487A CN 109146487 A CN109146487 A CN 109146487A CN 201811036879 A CN201811036879 A CN 201811036879A CN 109146487 A CN109146487 A CN 109146487A
- Authority
- CN
- China
- Prior art keywords
- accounting nodes
- data piecemeal
- alliance
- piecemeal
- public key
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6272—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database by registering files or documents with a third party
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种数据重复发送方法、数据存储方法及装置。所述数据发送方法包括:非记账节点将待写入数据划分为N个主数据分块,并对每个主数据分块进行备份,如此,非记账节点可以将主数据分块发送至联盟链系统中,并且针对第一备份数据分开,若确定联盟链系统中以存储有待写入数据的至少一个备份数据分块,则为第一备份数据分块确定备加密记账节点,并使用备加密记账节点的公钥对该第一备份数据分块进行加密,并将加密后的第一备份数据分块和备加密记账节点的公钥发送至联盟链系统。从而能够有效防止记账节点保管密钥不善或者密钥恶意泄露带来的风险,进而提高了联盟链系统中数据发送的安全性。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据重复发送方法、数据存储方法及装置。
背景技术
联盟链系统是指由若干个机构共同参与管理的区块链,每个机构都运行着一个或多个节点,其中的数据只允许系统内不同的机构进行读写和发送交易,并且共同来记录交易数据。目前很多金融机构(比如银行、保险、证券等)、社会群体(商业协会、集团企业及上下游企业等)都可以采用联盟链系统,出于监管考虑,联盟链也更加适合目前的发展潮流。
对于联盟链系统而言,该系统内部既存在中立、权威、可以保持稳定在线状态的记账节点,又存在其它加入联盟链系统的非记账节点。其中,非记账节点是有义务和需求将自己的数据保存在链上,以供后期查看和审阅。例如由网贷机构、银行、监管机构等成员组成的网贷联盟链系统,对于每个参加网贷联盟链系统的网贷机构(即非记账节点),该联盟链系统要求把这些非记账节点将本地数据上链。
基于此,目前亟需一种数据重复发送方法,用于实现非记账节点将本地数据上链的同时,确保数据上链后的安全性。
发明内容
本发明实施例提供一种数据重复发送方法、数据存储方法及装置,用于实现非记账节点将本地数据上链的同时,确保数据上链后的安全性。
本发明实施例提供一种数据重复发送方法,所述方法应用于联盟链系统,所述联盟链系统包括多个记账节点和至少一个非记账节点;所述方法包括:
所述非记账节点将待写入数据划分为N个主数据分块;N为大于1的整数;
所述非记账节点对每个主数据分块进行备份,得到N个备份数据分块;
所述非记账节点将所述N个主数据分块发送至所述联盟链系统,其中至少两个主数据分块使用不同的记账节点的公钥进行加密;
针对第一备份数据分块,所述非记账节点从所述多个记账节点中确定第一备加密记账节点;所述第一备加密记账节点为所述多个记账节点中除第一主加密记账节点之外的任一记账节点,所述第一备份数据分块为第一主数据分块的备份数据分块,所述第一备份数据分块为所述N个备份数据分块中任一备份数据分块,所述第一主数据分块使用所述第一主加密记账节点的公钥进行加密;
所述非记账节点使用所述第一备加密记账节点的公钥对所述第一备份数据分块进行加密;
所述非记账节点将所述加密后的第一备份数据分块和所述第一备加密记账节点的公钥发送至所述联盟链系统。
采用上述方法,非记账节点可以将待写入数据的每个数据分块分别进行备份,如此,即使有记账节点临时下线,也可以通过获取备份数据分块的方式,确保数据的快速写入;并且,记账节点可以将待写入数据的全部内容发送到联盟链系统中,以便联盟链系统对此进行存储,如此,即使非记账节点丢失待写入数据,联盟链系统仍然存储有待写入数据;进一步地,本发明实施例可以将待写入数据划分为多个数据分块,并且,至少两个数据分块分别使用不同的加密记账节点的公钥进行加密,如此,即便出现某个加密记账节点的密钥泄露的情况,也无法完全破译待写入数据的全部数据分块,从而能够有效防止记账节点保管密钥不善或者密钥恶意泄露带来的风险,进而提高了联盟链系统中数据发送的安全性。
在一种可能的实现方式中,所述非记账节点将所述加密后的第一备份数据分块和所述第一备加密记账节点的公钥发送至所述联盟链系统,包括:
所述非记账节点将所述加密后的第一备份数据分块和所述第一备加密记账节点的公钥发送至所述联盟链系统中除第一主记账节点以外的每个记账节点中;所述第一主记账节点为具有所述第一主数据分块记录权的记账节点。
在一种可能的实现方式中,所述非记账节点将所述N个主数据分块发送至所述联盟链系统,包括:
针对任一主数据分块,执行以下过程,直至所述N个主数据分块在存储至所述联盟链系统后存在至少两个主数据分块使用不同的主加密记账节点的公钥进行加密:
所述非记账节点若确定所述联盟链系统中存储有第二主数据分块,则从第二主记账节点中确定主加密记账节点;所述第二主数据分块为所述待写入数据的至少一个主数据分块,所述第二主记账节点为具有所述第二主数据分块记录权的记账节点;
所述非记账节点使用所述主加密记账节点的公钥对第三主数据分块进行加密,所述第三主数据分块为所述N个主数据分块中除所述第二主数据分块外的任一主数据分块;
所述非记账节点将加密后的第三主数据分块和所述主加密记账节点的公钥发送至所述联盟链系统。
在一种可能的实现方式中,所述非记账节点从所述多个记账节点中确定第一备加密记账节点,包括:
所述非记账节点若确定所述联盟链系统中存储有第二备份数据分块,则从第二备记账节点中确定所述第一备加密记账节点;所述第二备份数据分块为所述待写入数据的至少一个备份数据分块,所述第二备记账节点为具有所述第二备份数据分块记录权的记账节点。
在一种可能的实现方式中,所述非记账节点将所述加密后的第一备份数据分块和所述备加密记账节点的公钥发送至所述联盟链系统,包括:
所述非记账节点将所述加密后的第一备份数据分块和所述备加密记账节点的公钥发送到所述联盟链系统中除所述第二备记账节点和所述第一主记账节点以外的每个记账节点。
在一种可能的实现方式中,N是根据所述联盟链系统中有效记账节点的数量确定的;
所述非记账节点将待写入数据划分为N个数据分块之前,还包括:
所述非记账节点根据所述联盟链系统中每个记账节点的状态信息,从所述多个记账节点中确定有效记账节点的数量。
本发明实施例提供一种数据存储方法,所述方法应用于联盟链系统,所述联盟链系统包括多个记账节点和至少一个非记账节点;所述方法包括:
所述记账节点接收待存储信息,所述待存储信息包括主数据分块或备份数据分块;
所述记账节点若确定获得到所述待存储信息的记录权,则将所述主数据分块、所述记账节点的公钥存储至所述联盟链系统;
或
所述记账节点若确定获得到所述待存储信息的记录权,则将所述备份数据分块、所述记账节点的公钥存储至所述联盟链系统。
采用上述方法,记账节点可以将数据分块以及该记账节点的公钥存储至联盟链系统中,如此,对于其它数据分块,可以使用具有前一个数据分块记录权的记账节点的公钥进行加密,从而确保不同的数据分块可以使用不同的记账节点的公钥进行加密,如此,即便出现某个加密记账节点的密钥泄露的情况,也无法完全破译待写入数据的全部数据分块,从而能够有效防止记账节点保管密钥不善或者密钥恶意泄露带来的风险,进而提高了联盟链系统中数据存储的安全性。
在一种可能的实现方式中,所述待存储信息还包括主加密记账节点的公钥或备加密记账节点的公钥,所述主加密记账节点的公钥用于对所述主数据分块进行加密,所述备加密记账节点的公钥用于对所述备份数据分块进行加密;
所述方法还包括:
所述记账节点若确定获得到所述待存储信息的记录权,则将所述主数据分块、所述记账节点的公钥和所述主加密记账节点的公钥存储至所述联盟链系统;
或
所述记账节点若确定获得到所述待存储信息的记录权,则将所述备份数据分块、所述记账节点的公钥和所述备加密记账节点的公钥存储至所述联盟链系统。
本发明实施例提供一种数据重复发送装置,所述装置应用于联盟链系统,所述联盟链系统包括多个记账节点和至少一个非记账节点;所述装置为所述非记账节点,所述装置包括:
划分单元,用于将待写入数据划分为N个主数据分块;N为大于1的整数;
备份单元,用于对每个主数据分块进行备份,得到N个备份数据分块;
发送单元,用于将所述N个主数据分块发送至所述联盟链系统,其中至少两个主数据分块使用不同的记账节点的公钥进行加密;
处理单元,用于针对第一备份数据分块,从所述多个记账节点中确定第一备加密记账节点;所述第一备加密记账节点为所述多个记账节点中除第一主加密记账节点之外的任一记账节点,所述第一备份数据分块为第一主数据分块的备份数据分块,所述第一备份数据分块为所述N个备份数据分块中任一备份数据分块,所述第一主数据分块使用所述第一主加密记账节点的公钥进行加密;以及使用所述第一备加密记账节点的公钥对所述第一备份数据分块进行加密;
所述发送单元,还用于将所述加密后的第一备份数据分块和所述第一备加密记账节点的公钥发送至所述联盟链系统。
在一种可能的实现方式中,所述发送单元具体用于:
将所述加密后的第一备份数据分块和所述第一备加密记账节点的公钥发送至所述联盟链系统中除第一主记账节点以外的每个记账节点中;所述第一主记账节点为具有所述第一主数据分块记录权的记账节点。
在一种可能的实现方式中,所述发送单元具体用于:
针对任一主数据分块,执行以下过程,直至所述N个主数据分块在存储至所述联盟链系统后存在至少两个主数据分块使用不同的主加密记账节点的公钥进行加密:
若确定所述联盟链系统中存储有第二主数据分块,则从第二主记账节点中确定主加密记账节点;所述第二主数据分块为所述待写入数据的至少一个主数据分块,所述第二主记账节点为具有所述第二主数据分块记录权的记账节点;
使用所述主加密记账节点的公钥对第三主数据分块进行加密,所述第三主数据分块为所述N个主数据分块中除所述第二主数据分块外的任一主数据分块;
将加密后的第三主数据分块和所述主加密记账节点的公钥发送至所述联盟链系统。
在一种可能的实现方式中,所述处理单元具体用于:
若确定所述联盟链系统中存储有第二备份数据分块,则从第二备记账节点中确定所述第一备加密记账节点;所述第二备份数据分块为所述待写入数据的至少一个备份数据分块,所述第二备记账节点为具有所述第二备份数据分块记录权的记账节点。
在一种可能的实现方式中,所述发送单元具体用于:
将所述加密后的第一备份数据分块和所述备加密记账节点的公钥发送到所述联盟链系统中除所述第二备记账节点和所述第一主记账节点以外的每个记账节点。
在一种可能的实现方式中,N是根据所述联盟链系统中有效记账节点的数量确定的;
在所述划分单元将待写入数据划分为N个数据分块之前,所述处理单元还用于:
根据所述联盟链系统中每个记账节点的状态信息,从所述多个记账节点中确定有效记账节点的数量。
本发明实施例提供一种数据存储装置,所述装置应用于联盟链系统,所述联盟链系统包括多个记账节点和至少一个非记账节点;所述装置为所述记账节点,所述装置包括:
接收单元,用于接收待存储信息,所述待存储信息包括主数据分块或备份数据分块;
存储单元,用于若确定获得到所述待存储信息的记录权,则将所述主数据分块、所述记账节点的公钥存储至所述联盟链系统;
或
若确定获得到所述待存储信息的记录权,则将所述备份数据分块、所述记账节点的公钥存储至所述联盟链系统。
在一种可能的实现方式中,所述待存储信息还包括主加密记账节点的公钥或备加密记账节点的公钥,所述主加密记账节点的公钥用于对所述主数据分块进行加密,所述备加密记账节点的公钥用于对所述备份数据分块进行加密;
所述存储单元还用于:
若确定获得到所述待存储信息的记录权,则将所述主数据分块、所述记账节点的公钥和所述主加密记账节点的公钥存储至所述联盟链系统;
或
若确定获得到所述待存储信息的记录权,则将所述备份数据分块、所述记账节点的公钥和所述备加密记账节点的公钥存储至所述联盟链系统。
本申请实施例的还提供一种装置,该装置可以为非记账节点或记账节点,该装置具有实现上文所描述的数据重复发送方法或数据存储方法的功能。该功能可以通过硬件执行相应的软件实现,在一种可能的设计中,该装置包括:处理器、收发器、存储器;该存储器用于存储计算机执行指令,该收发器用于实现该装置与其他通信实体进行通信,该处理器与该存储器通过该总线连接,当该装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该装置执行上文所描述的数据重复发送方法或数据存储方法。
本发明实施例还提供一种计算机存储介质,所述存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时实现上述各种可能的实现方式中所描述的数据重复发送方法或数据存储方法。
本发明实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各种可能的实现方式中所描述的数据重复发送方法或数据存储方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。
图1为本发明实施例提供的一种联盟链系统的架构图;
图2为本发明实施例提供的一种数据重复发送方法所对应的流程示意图;
图3为本发明实施例提供的一种数据存储方法对应的流程示意图;
图4为本发明实施例中所涉及到的整体性流程的示意图;
图5为本发明实施例提供的一种数据重复发送装置的结构示意图;
图6为本发明实施例提供的一种数据存储装置的结构示意图。
具体实施方式
下面结合说明书附图对本申请进行具体说明,方法实施例中的具体操作方法也可以应用于装置实施例中。
图1示例性示出了本发明实施例提供的一种联盟链系统的架构图。如图1所示,所述联盟链系统100包括多个记账节点(例如图1中示出了记账节点1011、记账节点1012、记账节点1013和记账节点1014),以及至少一个非记账节点(例如图1中示出的非记账节点1021、非记账节点1022和非记账节点1023)。其中,记账节点可以为权威的、能够保持稳定在线的节点。
以网贷业务的联盟链系统为例,监管机构,银行,保险等金融机构通常可以保持稳定在线,可以作为记账节点;普通的贷款机构、P2P资金提供方等机构可以作为一般节点。
进一步地,由于监管的需要,对于加入联盟链系统中的非记账节点,是有义务和需求将自己的数据保存在链上,以供后期查看和审阅。举个例子,在网贷业务的联盟链系统中,对于每个加入网贷业务的联盟链系统中的非记账节点(如贷款机构、P2P资金提供方等),该联盟链系统会强制要求各非记账节点将本地数据(如与客户签订的合同等)上链。而在这一过程中,如何提高一种安全的数据发送方法成为现有技术中亟需解决的技术问题。
基于图1示出的系统架构,本发明实施例提供一种数据重复发送方法,以实现提供一种安全的数据方法。如图2所示,为本发明实施例提供的一种数据重复发送方法所对应的流程示意图,具体包括如下步骤:
步骤201,非记账节点将待写入数据划分为N个主数据分块。
步骤202,非记账节点对每个主数据分块进行备份,得到N个备份数据分块。
步骤203,非记账节点将N个主数据分块存储至所述联盟链系统,其中至少两个主数据分块使用不同的记账节点的公钥进行加密。
步骤204,针对第一备份数据分块,非记账节点从所述多个记账节点中确定第一备加密记账节点。
步骤205,非记账节点使用第一备加密记账节点的公钥对第一备份数据分块进行加密。
步骤206,非记账节点将加密后的第一备份数据分块和第一备加密记账节点的公钥发送至联盟链系统。
采用上述方法,非记账节点可以将待写入数据的每个数据分块分别进行备份,如此,即使有记账节点临时下线,也可以通过获取备份数据分块的方式,确保数据的快速写入;并且,记账节点可以将待写入数据的全部内容发送到联盟链系统中,以便联盟链系统对此进行存储,如此,即使非记账节点丢失待写入数据,联盟链系统仍然存储有待写入数据;进一步地,本发明实施例可以将待写入数据划分为多个数据分块,并且,至少两个数据分块分别使用不同的加密记账节点的公钥进行加密,如此,即便出现某个加密记账节点的密钥泄露的情况,也无法完全破译待写入数据的全部数据分块,从而能够有效防止记账节点保管密钥不善或者密钥恶意泄露带来的风险,进而提高了联盟链系统中数据发送的安全性。
具体来说,步骤201中,非记账节点本地可以存储有多条待写入数据。比如,非记账节点本地存储的与每位客户签订的合同可以作为一条待写入数据,或者,也可以将其他数据作为待写入数据,具体不做限定。需要说明的是,针对每条待写入数据,都可以执行上述步骤201至步骤206所描述的步骤。
本发明实施例中,非记账节点可以先将待写入数据划分为N个主数据分块,具体的划分方式可以有多种,比如,可以是对待写入数据进行均等划分,即划分后的每个主数据分块包括的数据量相等;或者,也可以对待写入数据进行不均等划分,即划分后的每个主数据分块包括的数据量可以不相等,具体不做限定。
以非记账节点对待写入数据进行均等划分为例,具体的划分方式也有多种。一个示例中,若N=4,待写入数据的二进制编码为“0100101110110101”,则可以采用跳位的方式将该待写入数据进行划分。具体如表1所示,为主数据分块的一种示例。其中,第1个主数据分块为“0110”,第2个主数据分块为“1001”,第3个主数据分块为“0110”,第4个主数据分块为“0111”。
表1:主数据分块的一种示例
具体的划分方式为,如表2所示,为待写入数据各位置对应的二进制编码的示例。第1个主数据分块可以包括待写入数据第1位、第5位、第9位和第13位对应的二进制编码,即第1个主数据分块为“0110”;第2个主数据分块可以包括待写入数据第2位、第6位、第10位和第14位对应的二进制编码,即第2个主数据分块为“1001”;第3个主数据分块可以包括待写入数据第3位、第7位、第11位和第15位对应的二进制编码,即第3个主数据分块为“0110”;第4个主数据分块可以包括待写入数据第4位、第8位、第12位和第16位对应的二进制编码,即第4个主数据分块为“0111”。
表2:待写入数据各位置对应的二进制编码的示例
采用这种数据划分方式,即便出现数据分块泄密的情况,由于主数据分块中包括的二进制编码是跳位选取的,因此,对于不法分子而言,是无法准确知道所截获的主数据分块中包括的各二进制编码在原数据中的具体位置,进而也就无法获取原数据的内容,进一步提高了数据的安全性。
另一个示例中,若N=4,待写入数据的二进制编码仍为“0100101110110101”,也可以采用非跳位的方式将该待写入数据进行划分。具体地,第1个主数据分块可以包括待写入数据第1位至第4位对应的二进制编码,即第1个主数据分块为“0100”;第2个主数据分块可以包括待写入数据第5位至第8位对应的二进制编码,即第2个主数据分块为“1011”;第3个主数据分块可以包括待写入数据第9位至第12位对应的二进制编码,即第3个主数据分块为“1011”;第4个主数据分块可以包括待写入数据第13位至第16位对应的二进制编码,即第4个主数据分块为“0101”。
在其它可能的示例中,本领域技术人员也可以根据经验和实际情况,采用其它划分方式对待写入数据进行划分,具体不做限定。
本发明实施例中,N可以为大于1的整数;进一步地,考虑到后续步骤要求中,所有主数据分块不会被同一个记账节点记录,因此,N也可以为大于2的整数。
进一步地,考虑到实际操作中,存在部分记账节点下线或者出现故障的可能,本发明实施例在执行上述步骤201之前,非记账节点还可以根据联盟链系统中每个记账节点的状态信息,确定有效记账节点的数量M;N小于或等于M,M为大于1的整数。其中,有效记账节点为当前时刻在联盟链系统中上线且运行良好的记账节点。更进一步地,N可以是根据联盟链系统中有效记账节点的数量确定的,换言之,N可以为大于2,且小于等于有效记账节点的数量的整数,比如,有效记账节点的数量为4,则N可以为4。
步骤202中,对于每个主数据分块,非记账节点都可以进行备份。以表1示出的主数据分块的示例为例,如表3所示,为备份数据分块的一种示例。其中,备份数据分块与主数据分块一一对应,也就是说,第1个备份数据分块也为“0110”,第2个备份数据分块也为“1001”,第3个备份数据分块也为“0110”,第4个备份数据分块也为“0111”。
表3:备份数据分块的一种示例
第1个备份数据分块 | 第2个备份数据分块 | 第3个备份数据分块 | 第4个备份数据分块 |
0110 | 1001 | 0110 | 0111 |
步骤203中,对于N个主数据分块,非记账节点将其存储至联盟链系中时,需要满足至少两个主数据分块使用不同的记账节点的公钥进行加密。
具体来说,针对任一主数据分块,非记账节点可以先判断联盟链系统中存储有第二主数据分块,其中,第二主数据分块为待写入数据的至少一个主数据分块。举个例子,若待写入数据B划分为4个主数据分块,分别用B1、B2、B3和B4来表示这4个主数据分块。如此,针对任一主数据分块,比如B2,非记账节点可以先判断联盟链系统中是否存储有待写入数据B的至少一个主数据分块(即B1、B3、B4中的至少一项)。
进一步地,非记账节点若确定联盟链系统中未存储有第二主数据分块,则可以将第二主数据分块发送至联盟链系统中;进而,联盟链系统中的各记账节点可以通过竞争机制获取第二主数据分块的记录权。
非记账节点若确定联盟链系统中存储有第二主数据分块,则可以从第二主记账节点中确定主加密记账节点,其中,第二主记账节点可以为具有所述第二主数据分块记录权的记账节点;进而,非记账节点可以使用主加密记账节点的公钥对第三主数据分块进行加密,其中,第三主数据分块可以为N个数据分块中除第二主数据分块外的任一主数据分块。
本发明实施例中,非记账节点确定加密记账节点的方式有多种。一种可能的实现方式为,非记账节点按照第二主记账节点对第二主数据分块进行记录的先后顺序,对第二主记账节点进行排序,并将排序后的第二主记账节点中排名最后的记账节点确定为主加密记账节点。
举个例子,针对主数据分块B2,非记账节点若确定联盟链系统中存储有主数据分块B1,则可以先确定具有B1记录权的记账节点;以图1中示出的系统架构为例,若记账节点1011具有B1的记录权,则可以确定第二主记账节点为记账节点1011;进一步地,可以确定记账节点1011为主加密记账节点。
再举个例子,针对主数据分块B3,非记账节点若确定联盟链系统中存储有主数据分块B1、主数据分块B2,则可以先确定具有B1、B2记录权的记账节点;以图1中示出的系统架构为例,若记账节点1011具有B1的记录权,记账节点1012具有B1的记录权,则可以确定第二主记账节点为记账节点1011和记账节点1012;进一步地,可以按照记账节点1011和记账节点1012分别对主数据分块B1和主数据分块B2进行记录的先后顺序,对记账节点1011和记账节点1012进行排序;若记账节点1011先对主数据分块B1进行记录,记账节点1012后对主数据分块B2进行记录,则可以确定记账节点1012为主加密记账节点。
另一种可能的实现方式为,非记账节点可以从第二主记账节点中选取尚未作为主加密记账节点的记账节点作为主加密记账节点。
举个例子,针对主数据分块B3,非记账节点若确定联盟链系统中存储有主数据分块B1、主数据分块B2,则可以先确定具有B1、B2记录权的记账节点;以图1中示出的系统架构为例,若记账节点1011具有B1的记录权,记账节点1012具有B1的记录权;进一步地,若主数据分块B1未加密,主数据分块B2是采用记账节点1011的公钥进行加密的,即记账节点1011在此之前已作为主加密记账节点,而记账节点1012在此之前尚未作为主加密记账节点,则可以确定记账节点1012作为主加密记账节点。
进一步地,采用上述方法确定出主加密记账节点之后,非记账节点还可以使用主加密记账节点的公钥对第三主数据分块进行加密,并将加密后的第三主数据分块和主加密记账节点的公钥发送到联盟链系统中,只要确保所有的数据分块在发送到联盟系统中之后,联盟链系统后存在至少两个主数据分块使用不同的记账节点的公钥进行加密。
具体地,非记账节点可以采用非对称加密的方式对第三数据分块进行加密,即直接采用主加密记账节点的公钥对第三数据分块进行加密;或者,非记账节点可以采用对称加密的方式对第三数据分块进行加密,比如,非记账节点可以先用一小串随机生成的串T,对数据分块B2进行对称加密(机密后的数据为T(B2)),然后在用公钥G1对T进行非对称加密(G1(T)),相应地,在进行解密的过程中,可以先取出T(B2)和G1(T),先用G1的私钥S1对G1(T)进行解密,获得T后,再对T(B2)进行对称解密,从而获得原始的数据分块B2。
更进一步地,为了更加提高数据存储的安全性,本发明实施例可以使得每个记账节点分别记录一个主数据分块,非记账节点可以将加密后的第三主数据分块和主加密记账节点的公钥发送到联盟链系统中除第二主记账节点以外的每个记账节点。比如,在上述针对主数据分块B3的例子中,非记账节点若确定记账节点1012为主加密记账节点,则可以采用记账节点1012的公钥对数据分块B3进行加密,并将加密后的B3和记账节点1012的公钥发送至图1中示出的联盟链系统中除记账节点1011和记账节点1012以外的记账节点(即记账节点1014和记账节点1014)。
采用这种方式,能够使得联盟链系统中的单个或几个记账节点(只有不是所有的记账节点)无法破译出待写入数据,进而也无法获取待写入数据的真实内容,从而能够有效防止记账节点保管密钥不善或密钥泄漏后带来的风险。
在其它可能的实现方式中,本领域技术人员也可以根据经验和实际情况来确定加密记账节点,比如可以随机从第一记账节点中确定一个记账节点为加密记账节点,具体不做限定。
步骤204至步骤206中,针对N个备份数据分块中任一备份数据分块,非记账节点可以先判断联盟链系统中是否存储有第二备份数据分块。其中,第二备份数据分块为待写入数据的至少一个备份数据分块。举个例子,若待写入数据B划分为4个备份数据分块,分别用B1’、B2’、B3’和B4’来表示这4个备份数据分块。如此,针对任一备份数据分块,比如B2’,非记账节点可以先判断联盟链系统中是否存储有待写入数据B的至少一个备份数据分块(即B1’、B3’、B4’中的至少一项)。
进一步地,非记账节点若确定联盟链系统中未存储有第二备份数据分块,则可以将第一备份数据分块发送至联盟链系统除第一主记账节点以外的每个记账节点中;其中,第一主记账节点为具有第一主数据分块记录权的记账节点。进而,联盟链系统中除第一主记账节点以外的各记账节点可以通过竞争机制获取第一备份数据分块的记录权。
非记账节点若确定联盟链系统中存储有第二备份数据分块,则可以从第二备份记账节点中确定第一备加密记账节点,且,第一备加密记账节点与第一主加密记账节点不一致。其中,第二备份记账节点可以为具有所述第二备份数据分块记录权的记账节点;进而,非记账节点可以使用第一备加密记账节点的公钥对第一备份数据分块进行加密。
本发明实施例中,非记账节点确定第一备加密记账节点的方式有多种。一种可能的实现方式为,非记账节点按照第二备份记账节点对第二备份数据分块进行记录的先后顺序,对第二备份记账节点进行排序,并将排序后的第二备份记账节点中排名最后的记账节点确定为第一备加密记账节点。
举个例子,针对第一备份数据分块B2’,非记账节点若确定联盟链系统中存储有备分数据分块B1’和主数据分块B2,其中,主数据分块B2采用图1中示出的记账节点1011的公钥进行加密,则可以先确定具有B1’记录权的记账节点和具有B2记录权的记账节点;以图1中示出的系统架构为例,若记账节点1012既具有B1’的记录权,又具有B2的记录权,则可以确定第二备记账节点为记账节点1012;进一步地,可以确定记账节点1012为第一备加密记账节点。
再举个例子,针对第一备份数据分块B3’,非记账节点若确定联盟链系统中存储有备份数据分块B1’、备份数据分块B2’和主数据分块B3,其中,主数据分块B3采用图1中示出的记账节点1012的公钥进行加密,则可以先确定具有B1’、B2’记录权的记账节点;以图1中示出的系统架构为例,若记账节点1011具有B2’的记录权,记账节点1012具有B1’的记录权,则可以确定第二备记账节点为记账节点1011和记账节点1012;进一步地,可以按照记账节点1011和记账节点1012分别对备份数据分块B1’和备份数据分块B2’进行记录的先后顺序,对记账节点1011和记账节点1012进行排序;若记账节点1012先对备份数据分块B1’进行记录,记账节点1011后对备份数据分块B2’进行记录,则可以确定记账节点1011为第一备加密记账节点。
另一种可能的实现方式为,非记账节点可以从第一备份记账节点中选取尚未作为备加密记账节点的记账节点作为第一备加密记账节点。
举个例子,针对第一备份数据分块B3’,非记账节点若确定联盟链系统中存储有备份数据分块B1’、备份数据分块B2’和主数据分块B3,其中,主数据分块B3采用图1中示出的记账节点1012的公钥进行加密,则可以先确定具有B1’、B2’记录权的记账节点;以图1中示出的系统架构为例,若记账节点1012具有B1’的记录权,记账节点1011具有B2’的记录权;进一步地,若备份数据分块B1’未加密,备份数据分块B2’是采用记账节点1012的公钥进行加密的,即记账节点1012在此之前已作为备加密记账节点,而记账节点1011在此之前尚未作为备加密记账节点,则可以确定记账节点1011作为第一备加密记账节点。
进一步地,采用上述方法确定出第一备加密记账节点之后,非记账节点还可以使用第一备加密记账节点的公钥对第一备份数据分块进行加密,并将加密后的第一备份数据分块和第一备加密记账节点的公钥发送到联盟链系统中,只要确保所有的备份数据分块在发送到联盟系统中之后,联盟链系统后存在至少两个备份数据分块使用不同的记账节点的公钥进行加密。具体地,非记账节点可以将加密后的第一备份数据分块和第一备加密记账节点的公钥发送至联盟链系统中除第一主记账节点以外的每个记账节点中;其中,第一主记账节点为具有第一主数据分块记录权的记账节点。
具体地,非记账节点可以采用非对称加密的方式对第一备份数据分块进行加密,即直接采用备加密记账节点的公钥对第一备份数据分块进行加密;或者,非记账节点可以采用对称加密的方式对第一备份数据分块进行加密,比如,非记账节点可以先用一小串随机生成的串T,对数据分块B2进行对称加密(机密后的数据为T(B2)),然后在用公钥G1对T进行非对称加密(G1(T)),相应地,在进行解密的过程中,可以先取出T(B2)和G1(T),先用G1的私钥S1对G1(T)进行解密,获得T后,再对T(B2)进行对称解密,从而获得原始的数据分块B2。
更进一步地,为了更加提高数据存储的安全性,本发明实施例可以使得每个记账节点分别记录一个备份数据分块,并且,主数据分块与备份数据分块分别由不同的记账节点进行记录。如此,非记账节点可以将加密后的第一备份数据分块和第一备加密记账节点的公钥发送到联盟链系统中除第二备记账节点和第一主记账节点以外的每个记账节点。比如,在上述针对备份数据分块B3’的例子中,非记账节点若确定记账节点1011为第一备加密记账节点,则可以采用记账节点1011的公钥对备份数据分块B3’进行加密,并将加密后的B3’和记账节点1011的公钥发送至图1中示出的联盟链系统中除记账节点1011、记账节点1012和记账节点1013以外的记账节点(即记账节点1014),其中,记账节点1013为具有主数据分块B3记录权的记账节点。
采用这种方式,能够使得联盟链系统中的单个或几个记账节点(只要不是所有的记账节点)无法破译出待写入数据,进而也无法获取待写入数据的真实内容,从而能够有效防止记账节点保管密钥不善或密钥泄漏后带来的风险;进一步地,由于主数据分块和备份数据分块由不同的加密记账节点进行加密,从而能够避免数据读取时由于某个记账节点临时下线导致无法及时读取数据的情况。
在其它可能的实现方式中,本领域技术人员也可以根据经验和实际情况来确定第一备加密记账节点,比如可以随机从第二备记账节点中确定一个记账节点为第一备加密记账节点,具体不做限定。
基于同样的发明构思,本发明实施例还提供一种数据存储方法。如图3所述,为本发明实施例提供的一种数据存储方法对应的流程示意图,具体包括如下步骤:
步骤301,记账节点接收待存储信息。
步骤302,记账节点若确定获得到所述待存储信息的记录权,则将所述数据分块、所述记账节点的公钥存储至所述联盟链系统。
采用上述方法,记账节点可以将数据分块以及该记账节点的公钥存储至联盟链系统中,如此,对于其它数据分块,可以使用具有前一个数据分块记录权的记账节点的公钥进行加密,从而确保不同的数据分块可以使用不同的记账节点的公钥进行加密,如此,即便出现某个加密记账节点的密钥泄露的情况,也无法完全破译待写入数据的全部数据分块,从而能够有效防止记账节点保管密钥不善或者密钥恶意泄露带来的风险,进而提高了联盟链系统中数据存储的安全性。
具体来说,步骤301中,待存储信息可以包括主数据分块和备份数据分块;进一步地,若主数据分块(或备份数据分块)被加密,则待存储信息还可以包括主加密记账节点的公钥(或备加密记账节点的公钥),其中,主加密记账节点的公钥用于对主数据分块进行加密,备加密记账节点的公钥用于对备份数据分块进行加密。
与上文数据发送方法相对应,举个例子,若待存储信息包括主数据分块B1,根据上文数据发送方法所描述的内容可知,主数据分块B1未被加密,故,待存储信息可以仅包括主数据分块B1;或者,若待存储信息包括备份数据分块B1’,根据上文数据发送方法所描述的内容可知,备份数据分块B1’未被加密,故,待存储信息可以仅包括备份数据分块B1’。
再举个例子,若待存储信息包括主数据分块B2,根据上文数据发送方法所描述的内容可知,主数据分块B2被加密记账节点(即图1中示出的记账节点1011)的公钥加密,故,待存储信息可以包括主数据分块B2和记账节点1011的公钥;或者,若待存储信息包括备份数据分块B2’,根据上文数据发送方法所描述的内容可知,备份数据分块B2’被加密记账节点(即图1中示出的记账节点1012)的公钥加密,故,待存储信息可以包括备份数据分块B2’和记账节点1012的公钥。
步骤302中,记账节点基于竞争机制,若确定获得到待存储信息的记录权,则可以将主数据分块、记账节点的公钥存储至联盟链系统;或在,记账节点若确定获得到所述待存储信息的记录权,则将备份数据分块、记账节点的公钥存储至所述联盟链系统。
进一步地,若待存储信息包括主数据分块和主加密记账节点的公钥,则记账节点可以将主数据分块、记账节点的公钥和主加密记账节点的公钥存储至联盟链系统;或者,若待存储信息包括备份数据分块和备加密记账节点的公钥,则记账节点可以将备份数据分块、记账节点的公钥和备加密记账节点的公钥存储至联盟链系统。
如表4所示,为联盟链系统存储信息的一种示例。其中,待写入数据B划分为B1、B2、B3、B4这4个主数据分块,对应地,存在B1’、B2’、B3’、B4’这4个备份数据分块。B1是由记账节点J1进行记录的,B1未加密;B2是由记账节点J2进行记录的,B2是采用记账节点J1的公钥G1进行加密的;B3是由记账节点J3进行记录的,B3是采用记账节点J2的公钥G2进行加密的;B4是由记账节点J4进行记录的,B4是采用记账节点J3的公钥G3进行加密的;B1’是由记账节点J2进行记录的,B1’未加密;B2’是由记账节点J1进行记录的,B2’是采用记账节点J2的公钥G2进行加密的;B3’是由记账节点J4进行记录的,B3’是采用记账节点J1的公钥G1进行加密的;B4’是由记账节点J3进行记录的,B4’是采用记账节点J4的公钥G4进行加密的。
表3:联盟链系统存储信息的一种示例
为了更加清楚地介绍上述数据发送、数据存储方法,下面结合图4,对本发明实施例中所涉及到的流程进行整体性说明。如图4所示,假设联盟链系统中的有效记账节点有4个,分别为记账节点J1、记账节点J2、记账节点J3、记账节点J4,具体可以包括以下步骤:
步骤401,非记账节点将待写入数据B划分为4个主数据分块,分别为主数据分块B1、主数据分块B2、主数据分块B3、主数据分块B4。
步骤402,非记账节点对每个主数据分块进行备份,得到4个备份数据分块,分别为备份数据分块B1’、备份数据分块B2’、备份数据分块B3’、备份数据分块B4’。
步骤403,非记账节点将主数据分块B1发送至联盟链系统中。
步骤404,若记账节点J1获得主数据分块B1的记录权,则将主数据分块B1和记账节点J1的公钥存储至联盟链系统。
步骤405,非记账节点在确定主数据分块B1存储完毕后,确定主数据分块B2的主加密记账节点为记账节点J1。
步骤406,非记账节点使用记账节点J1的公钥对主数据分块B2进行加密。
步骤407,非记账节点将加密后的主数据分块B2和主加密记账节点J1的公钥发送至联盟链系统中除记账节点J1以外的每个记账节点。
步骤408,若记账节点J2获得加密后的主数据分块B2的记录权,则将加密后的主数据分块B2、主加密记账节点J1的公钥和记账节点J2的公钥存储至联盟链系统。
步骤409,非记账节点在确定加密后的主数据分块B2存储完毕后,确定主数据分块B3的主加密记账节点为记账节点J2。
步骤410,非记账节点使用记账节点J2的公钥对主数据分块B3进行加密。
步骤411,非记账节点将加密后的主数据分块B3和主加密记账节点J2的公钥发送至联盟链系统中除记账节点J1和记账节点J2以外的每个记账节点。
步骤412,若记账节点J3获得加密后的主数据分块B3的记录权,则将加密后的主数据分块B3、主加密记账节点J2的公钥和记账节点J3的公钥存储至联盟链系统。
步骤413,非记账节点在确定加密后的主数据分块B3存储完毕后,确定主数据分块B4的主加密记账节点为记账节点J3。
步骤414,非记账节点使用记账节点J3的公钥对主数据分块B4进行加密。
步骤415,非记账节点将加密后的主数据分块B4和主加密记账节点J3的公钥发送至联盟链系统中除记账节点J1、记账节点J2和记账节点J3以外的每个记账节点。
步骤416,若记账节点J4获得加密后的主数据分块B4的记录权,则将加密后的主数据分块B4、主加密记账节点J3的公钥和记账节点J4的公钥存储至联盟链系统。
步骤417,非记账节点在确定主数据分块B1存储完毕后,将备份数据分块B1’发送联盟链系统中除记账节点J1以外的每个记账节点。其中,记账节点J1为具有主数据分块B1记录权的记账节点。
步骤418,若记账节点J2获得备份数据分块B1’的记录权,则将备份数据分块B1’、记账节点J2的公钥存储至联盟链系统。
步骤419,非记账节点在确定备份数据分块B1’存储完毕后,确定备份数据分块B2’的备加密记账节点为记账节点J2。
步骤420,非记账节点使用记账节点J2的公钥对备份数据分块B2’进行加密。
步骤421,非记账节点将加密后的备份数据分块B2’和备加密记账节点J2的公钥发送至联盟链系统中除记账节点J2以外的每个记账节点。其中,记账节点J2既为备份数据分块B2’的备加密记账节点,又为具有备份数据分块B1’和主数据分块B2记录权的记账节点。
步骤422,若记账节点J1获得加密后的备份数据分块B2’的记录权,则将加密后的备份数据分块B2’、备加密记账节点J2的公钥和记账节点J1的公钥存储至联盟链系统。
步骤423,非记账节点在确定加密后的备份数据分块B2’存储完毕后,确定备份数据分块B3’的备加密记账节点为记账节点J1。
步骤424,非记账节点使用记账节点J1的公钥对备份数据分块B3’进行加密。
步骤425,非记账节点将加密后的备份数据分块B3’和备加密记账节点J1的公钥发送至联盟链系统中除记账节点J1、记账节点J2和记账节点J3以外的每个记账节点。其中,记账节点J1既为备份数据分块B3’的备加密记账节点,又为具有备份数据分块B2’记录权的记账节点;记账节点J2为具有备份数据分块B1’记录权的记账节点;记账节点J3为具有主数据分块B3记录权的记账节点。
步骤426,若记账节点J4获得加密后的备份数据分块B3’的记录权,则将加密后的备份数据分块B3’、备加密记账节点J1的公钥和记账节点J4的公钥存储至联盟链系统。
步骤427,非记账节点在确定加密后的备份数据分块B3’存储完毕后,确定备份数据分块B4’的备加密记账节点为记账节点J4。
步骤428,非记账节点使用记账节点J4的公钥对备份数据分块B4’进行加密。
步骤429,非记账节点将加密后的备份数据分块B4’和备加密记账节点J4的公钥发送至联盟链系统中除记账节点J1、记账节点J2和记账节点J4以外的每个记账节点。其中,记账节点J1为具有备份数据分块B2’记录权的记账节点;记账节点J2为具有备份数据分块B1’记录权的记账节点;记账节点J4既为备份数据分块B4’的备加密记账节点,又为具有主数据分块B4记录权的记账节点。
步骤430,若记账节点J3获得加密后的备份数据分块B4’的记录权,则将加密后的备份数据分块B4’、备加密记账节点J4的公钥和记账节点J3的公钥存储至联盟链系统。
需要说明的是,上述步骤编号仅为一种执行流程的示例性表示,本申请对各个步骤的先后顺序不做具体限定,例如,上述步骤405和步骤417中,非记账节点在确定主数据分块B1存储完毕后,也可以先将备份数据分块B1’发送联盟链系统中除记账节点J1以外的每个记账节点,然后确定主数据分块B2的主加密记账节点为记账节点J1,具体不做限定。
基于同样的发明构思,图5示例性示出了本发明实施例提供的一种数据重复发送装置的结构示意图,所述装置应用于联盟链系统,所述联盟链系统包括多个记账节点和至少一个非记账节点;所述装置可以为所述非记账节点,如图5所示,该装置包括划分单元501、备份单元502、发送单元503、处理单元504;其中,
划分单元501,用于将待写入数据划分为N个主数据分块;N为大于1的整数;
备份单元502,用于对每个主数据分块进行备份,得到N个备份数据分块;
发送单元503,用于将所述N个主数据分块发送至所述联盟链系统,其中至少两个主数据分块使用不同的记账节点的公钥进行加密;
处理单元504,用于针对第一备份数据分块,从所述多个记账节点中确定第一备加密记账节点;所述第一备加密记账节点为所述多个记账节点中除第一主加密记账节点之外的任一记账节点,所述第一备份数据分块为第一主数据分块的备份数据分块,所述第一备份数据分块为所述N个备份数据分块中任一备份数据分块,所述第一主数据分块使用所述第一主加密记账节点的公钥进行加密;以及使用所述第一备加密记账节点的公钥对所述第一备份数据分块进行加密;
所述发送单元503,还用于将所述加密后的第一备份数据分块和所述第一备加密记账节点的公钥发送至所述联盟链系统。
在一种可能的实现方式中,所述发送单元503具体用于:
将所述加密后的第一备份数据分块和所述第一备加密记账节点的公钥发送至所述联盟链系统中除第一主记账节点以外的每个记账节点中;所述第一主记账节点为具有所述第一主数据分块记录权的记账节点。
在一种可能的实现方式中,所述发送单元503具体用于:
针对任一主数据分块,执行以下过程,直至所述N个主数据分块在存储至所述联盟链系统后存在至少两个主数据分块使用不同的主加密记账节点的公钥进行加密:
若确定所述联盟链系统中存储有第二主数据分块,则从第二主记账节点中确定主加密记账节点;所述第二主数据分块为所述待写入数据的至少一个主数据分块,所述第二主记账节点为具有所述第二主数据分块记录权的记账节点;
使用所述主加密记账节点的公钥对第三主数据分块进行加密,所述第三主数据分块为所述N个主数据分块中除所述第二主数据分块外的任一主数据分块;
将加密后的第三主数据分块和所述主加密记账节点的公钥发送至所述联盟链系统。
在一种可能的实现方式中,所述处理单元504具体用于:
若确定所述联盟链系统中存储有第二备份数据分块,则从第二备记账节点中确定所述第一备加密记账节点;所述第二备份数据分块为所述待写入数据的至少一个备份数据分块,所述第二备记账节点为具有所述第二备份数据分块记录权的记账节点。
在一种可能的实现方式中,所述发送单元503具体用于:
将所述加密后的第一备份数据分块和所述备加密记账节点的公钥发送到所述联盟链系统中除所述第二备记账节点和所述第一主记账节点以外的每个记账节点。
在一种可能的实现方式中,N是根据所述联盟链系统中有效记账节点的数量确定的;
在所述划分单元501将待写入数据划分为N个数据分块之前,所述处理单元504还用于:
根据所述联盟链系统中每个记账节点的状态信息,从所述多个记账节点中确定有效记账节点的数量。
基于同样的发明构思,图6示例性示出了本发明实施例提供的一种数据存储装置的结构示意图,所述装置应用于联盟链系统,所述联盟链系统包括多个记账节点和至少一个非记账节点;所述装置可以为所述记账节点,如图6所示,该装置包括接收单元601、存储单元602;其中,
接收单元601,用于接收待存储信息,所述待存储信息包括主数据分块或备份数据分块;
存储单元602,用于若确定获得到所述待存储信息的记录权,则将所述主数据分块、所述记账节点的公钥存储至所述联盟链系统;
或
若确定获得到所述待存储信息的记录权,则将所述备份数据分块、所述记账节点的公钥存储至所述联盟链系统。
在一种可能的实现方式中,所述待存储信息还包括主加密记账节点的公钥或备加密记账节点的公钥,所述主加密记账节点的公钥用于对所述主数据分块进行加密,所述备加密记账节点的公钥用于对所述备份数据分块进行加密;
所述存储单元602还用于:
若确定获得到所述待存储信息的记录权,则将所述主数据分块、所述记账节点的公钥和所述主加密记账节点的公钥存储至所述联盟链系统;
或
若确定获得到所述待存储信息的记录权,则将所述备份数据分块、所述记账节点的公钥和所述备加密记账节点的公钥存储至所述联盟链系统。
本申请实施例的还提供一种装置,该装置可以为非记账节点或记账节点,该装置具有实现上文所描述的数据重复发送方法或数据存储方法的功能。该功能可以通过硬件执行相应的软件实现,在一种可能的设计中,该装置包括:处理器、收发器、存储器;该存储器用于存储计算机执行指令,该收发器用于实现该装置与其他通信实体进行通信,该处理器与该存储器通过该总线连接,当该装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该装置执行上文所描述的数据重复发送方法或数据存储方法。
本发明实施例还提供一种计算机存储介质,所述存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时实现上述各种可能的实现方式中所描述的数据重复发送方法或数据存储方法。
本发明实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各种可能的实现方式中所描述的数据重复发送方法或数据存储方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种数据重复发送方法,其特征在于,所述方法应用于联盟链系统,所述联盟链系统包括多个记账节点和至少一个非记账节点;所述方法包括:
所述非记账节点将待写入数据划分为N个主数据分块;N为大于1的整数;
所述非记账节点对每个主数据分块进行备份,得到N个备份数据分块;
所述非记账节点将所述N个主数据分块发送至所述联盟链系统,其中至少两个主数据分块使用不同的记账节点的公钥进行加密;
针对第一备份数据分块,所述非记账节点从所述多个记账节点中确定第一备加密记账节点;所述第一备加密记账节点为所述多个记账节点中除第一主加密记账节点之外的任一记账节点,所述第一备份数据分块为第一主数据分块的备份数据分块,所述第一备份数据分块为所述N个备份数据分块中任一备份数据分块,所述第一主数据分块使用所述第一主加密记账节点的公钥进行加密;
所述非记账节点使用所述第一备加密记账节点的公钥对所述第一备份数据分块进行加密;
所述非记账节点将所述加密后的第一备份数据分块和所述第一备加密记账节点的公钥发送至所述联盟链系统。
2.根据权利要求1所述的方法,其特征在于,所述非记账节点将所述加密后的第一备份数据分块和所述第一备加密记账节点的公钥发送至所述联盟链系统,包括:
所述非记账节点将所述加密后的第一备份数据分块和所述第一备加密记账节点的公钥发送至所述联盟链系统中除第一主记账节点以外的每个记账节点中;所述第一主记账节点为具有所述第一主数据分块记录权的记账节点。
3.根据权利要求2所述的方法,其特征在于,所述非记账节点将所述N个主数据分块发送至所述联盟链系统,包括:
针对任一主数据分块,执行以下过程,直至所述N个主数据分块在存储至所述联盟链系统后存在至少两个主数据分块使用不同的主加密记账节点的公钥进行加密:
所述非记账节点若确定所述联盟链系统中存储有第二主数据分块,则从第二主记账节点中确定主加密记账节点;所述第二主数据分块为所述待写入数据的至少一个主数据分块,所述第二主记账节点为具有所述第二主数据分块记录权的记账节点;
所述非记账节点使用所述主加密记账节点的公钥对第三主数据分块进行加密,所述第三主数据分块为所述N个主数据分块中除所述第二主数据分块外的任一主数据分块;
所述非记账节点将加密后的第三主数据分块和所述主加密记账节点的公钥发送至所述联盟链系统。
4.根据权利要求3所述的方法,其特征在于,所述非记账节点从所述多个记账节点中确定第一备加密记账节点,包括:
所述非记账节点若确定所述联盟链系统中存储有第二备份数据分块,则从第二备记账节点中确定所述第一备加密记账节点;所述第二备份数据分块为所述待写入数据的至少一个备份数据分块,所述第二备记账节点为具有所述第二备份数据分块记录权的记账节点。
5.根据权利要求4所述的方法,其特征在于,所述非记账节点将所述加密后的第一备份数据分块和所述备加密记账节点的公钥发送至所述联盟链系统,包括:
所述非记账节点将所述加密后的第一备份数据分块和所述备加密记账节点的公钥发送到所述联盟链系统中除所述第二备记账节点和所述第一主记账节点以外的每个记账节点。
6.根据权利要求1至5中任一项所述的方法,其特征在于,N是根据所述联盟链系统中有效记账节点的数量确定的;
所述非记账节点将待写入数据划分为N个数据分块之前,还包括:
所述非记账节点根据所述联盟链系统中每个记账节点的状态信息,从所述多个记账节点中确定有效记账节点的数量。
7.一种数据存储方法,其特征在于,所述方法应用于联盟链系统,所述联盟链系统包括多个记账节点和至少一个非记账节点;所述方法包括:
所述记账节点接收待存储信息,所述待存储信息包括主数据分块或备份数据分块;
所述记账节点若确定获得到所述待存储信息的记录权,则将所述主数据分块、所述记账节点的公钥存储至所述联盟链系统;
或
所述记账节点若确定获得到所述待存储信息的记录权,则将所述备份数据分块、所述记账节点的公钥存储至所述联盟链系统。
8.根据权利要求7所述的方法,其特征在于,所述待存储信息还包括主加密记账节点的公钥或备加密记账节点的公钥,所述主加密记账节点的公钥用于对所述主数据分块进行加密,所述备加密记账节点的公钥用于对所述备份数据分块进行加密;
所述方法还包括:
所述记账节点若确定获得到所述待存储信息的记录权,则将所述主数据分块、所述记账节点的公钥和所述主加密记账节点的公钥存储至所述联盟链系统;
或
所述记账节点若确定获得到所述待存储信息的记录权,则将所述备份数据分块、所述记账节点的公钥和所述备加密记账节点的公钥存储至所述联盟链系统。
9.一种数据重复发送装置,其特征在于,所述装置应用于联盟链系统,所述联盟链系统包括多个记账节点和至少一个非记账节点;所述装置为所述非记账节点,所述装置包括:
划分单元,用于将待写入数据划分为N个主数据分块;N为大于1的整数;
备份单元,用于对每个主数据分块进行备份,得到N个备份数据分块;
发送单元,用于将所述N个主数据分块发送至所述联盟链系统,其中至少两个主数据分块使用不同的记账节点的公钥进行加密;
处理单元,用于针对第一备份数据分块,从所述多个记账节点中确定第一备加密记账节点;所述第一备加密记账节点为所述多个记账节点中除第一主加密记账节点之外的任一记账节点,所述第一备份数据分块为第一主数据分块的备份数据分块,所述第一备份数据分块为所述N个备份数据分块中任一备份数据分块,所述第一主数据分块使用所述第一主加密记账节点的公钥进行加密;以及使用所述第一备加密记账节点的公钥对所述第一备份数据分块进行加密;
所述发送单元,还用于将所述加密后的第一备份数据分块和所述第一备加密记账节点的公钥发送至所述联盟链系统。
10.一种数据存储装置,其特征在于,所述装置应用于联盟链系统,所述联盟链系统包括多个记账节点和至少一个非记账节点;所述装置为所述记账节点,所述装置包括:
接收单元,用于接收待存储信息,所述待存储信息包括主数据分块或备份数据分块;
存储单元,用于若确定获得到所述待存储信息的记录权,则将所述主数据分块、所述记账节点的公钥存储至所述联盟链系统;
或
若确定获得到所述待存储信息的记录权,则将所述备份数据分块、所述记账节点的公钥存储至所述联盟链系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811036879.XA CN109146487B (zh) | 2018-09-06 | 2018-09-06 | 一种数据重复发送方法、数据存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811036879.XA CN109146487B (zh) | 2018-09-06 | 2018-09-06 | 一种数据重复发送方法、数据存储方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109146487A true CN109146487A (zh) | 2019-01-04 |
CN109146487B CN109146487B (zh) | 2021-08-27 |
Family
ID=64827291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811036879.XA Active CN109146487B (zh) | 2018-09-06 | 2018-09-06 | 一种数据重复发送方法、数据存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109146487B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110225000A (zh) * | 2019-05-21 | 2019-09-10 | 袁园 | 一种基于区块链技术的数据处理及传输系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106919476A (zh) * | 2017-02-24 | 2017-07-04 | 中国科学院软件研究所 | 基于联盟链的数据安全备份方法、客户端及云服务端 |
CN106934611A (zh) * | 2017-03-21 | 2017-07-07 | 北京汇通金财信息科技有限公司 | 一种数据处理的方法及装置 |
CN107124460A (zh) * | 2017-04-28 | 2017-09-01 | 北京汇通金财信息科技有限公司 | 一种联盟链系统、联盟链记账节点通信的方法和装置 |
US20170357966A1 (en) * | 2016-06-09 | 2017-12-14 | Mastercard International Incorporated | Method and system for use of a proprietary private blockchain |
US20180101914A1 (en) * | 2016-10-10 | 2018-04-12 | Escolhalegal, Llc | Systems, methods and machine-readable mediums for data management and payment processing |
CN108053211A (zh) * | 2017-12-27 | 2018-05-18 | 北京欧链科技有限公司 | 基于区块链的交易处理方法及装置 |
CN108389615A (zh) * | 2018-02-08 | 2018-08-10 | 罗梅琴 | 一种基于区块链技术的孕婴追溯存证系统及方法 |
-
2018
- 2018-09-06 CN CN201811036879.XA patent/CN109146487B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170357966A1 (en) * | 2016-06-09 | 2017-12-14 | Mastercard International Incorporated | Method and system for use of a proprietary private blockchain |
US20180101914A1 (en) * | 2016-10-10 | 2018-04-12 | Escolhalegal, Llc | Systems, methods and machine-readable mediums for data management and payment processing |
CN106919476A (zh) * | 2017-02-24 | 2017-07-04 | 中国科学院软件研究所 | 基于联盟链的数据安全备份方法、客户端及云服务端 |
CN106934611A (zh) * | 2017-03-21 | 2017-07-07 | 北京汇通金财信息科技有限公司 | 一种数据处理的方法及装置 |
CN107124460A (zh) * | 2017-04-28 | 2017-09-01 | 北京汇通金财信息科技有限公司 | 一种联盟链系统、联盟链记账节点通信的方法和装置 |
CN108053211A (zh) * | 2017-12-27 | 2018-05-18 | 北京欧链科技有限公司 | 基于区块链的交易处理方法及装置 |
CN108389615A (zh) * | 2018-02-08 | 2018-08-10 | 罗梅琴 | 一种基于区块链技术的孕婴追溯存证系统及方法 |
Non-Patent Citations (1)
Title |
---|
陈佳华: "联盟区块链的容量优化模型研究", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110225000A (zh) * | 2019-05-21 | 2019-09-10 | 袁园 | 一种基于区块链技术的数据处理及传输系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109146487B (zh) | 2021-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230254168A1 (en) | System and method for controlling asset-related actions via a block chain | |
EP3576033B1 (en) | Secure transaction method based on block chain, electronic device, system, and storage medium | |
JP6995762B2 (ja) | ブロックチェーンからのデータのセキュアな抽出のための暗号方法及びシステム | |
CN108681966B (zh) | 一种基于区块链的信息监管方法及装置 | |
CN109417465B (zh) | 区块链执行的智能合约的注册和自动化管理方法 | |
CN110300973A (zh) | 联盟区块链网络的建立 | |
KR20180115764A (ko) | 블록체인에서 교환을 구현하기 위한 토큰화 방법 및 시스템 | |
CN110009349B (zh) | 区块链中生成和验证可链接环签名的方法及装置 | |
CN110784320A (zh) | 分布式密钥实现方法、系统及用户身份管理方法、系统 | |
CN109214209A (zh) | 一种数据发送方法、数据存储方法及装置 | |
Singh et al. | Ring signature and improved multi‐transaction mode consortium blockchain‐based private information retrieval for privacy‐preserving smart parking system | |
Lu et al. | Bis: a novel blockchain based bank-tax interaction system in smart city | |
CN109146487A (zh) | 一种数据重复发送方法、数据存储方法及装置 | |
CN111383008B (zh) | 基于账户模型的区块链转账方法及装置 | |
CN112288576B (zh) | 一种5g网络资源的计费方法及设备 | |
CN109376538A (zh) | 一种数据还原方法及装置 | |
CN109214208A (zh) | 一种数据读取方法及装置 | |
CN114463110A (zh) | 一种基于区块链的授信系统和方法 | |
Sadath et al. | Scalability in Blockchain-Hyperledger Fabric and Hierarchical Model | |
CN112016898A (zh) | 基于区块链的协同办公方法及装置、系统 | |
Kaur et al. | Technologies Behind Crypto-Based Decentralized Finance | |
CN116171555A (zh) | 具有多个子网的分布式网络 | |
Liu et al. | FDLedger: Dynamic and Efficient Anonymous Audit for Distributed Ledgers | |
CN112581135A (zh) | 区块链交易数据的访问与生成方法、装置及电子设备 | |
CN115473739A (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 |