CN114826720A - 数据存储方法、装置、计算机可读存储介质及电子设备 - Google Patents
数据存储方法、装置、计算机可读存储介质及电子设备 Download PDFInfo
- Publication number
- CN114826720A CN114826720A CN202210412239.4A CN202210412239A CN114826720A CN 114826720 A CN114826720 A CN 114826720A CN 202210412239 A CN202210412239 A CN 202210412239A CN 114826720 A CN114826720 A CN 114826720A
- Authority
- CN
- China
- Prior art keywords
- data
- matrix
- transaction data
- message
- storage
- 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
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000013500 data storage Methods 0.000 title claims abstract description 43
- 239000011159 matrix material Substances 0.000 claims abstract description 170
- 238000012545 processing Methods 0.000 claims abstract description 45
- 238000010276 construction Methods 0.000 claims abstract description 38
- 238000006243 chemical reaction Methods 0.000 claims abstract description 25
- 230000000903 blocking effect Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 12
- 230000009466 transformation Effects 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 6
- 238000012795 verification Methods 0.000 description 18
- 238000005192 partition Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 238000004422 calculation algorithm Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 230000000694 effects Effects 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- TVZRAEYQIKYCPH-UHFFFAOYSA-N 3-(trimethylsilyl)propane-1-sulfonic acid Chemical compound C[Si](C)(C)CCCS(O)(=O)=O TVZRAEYQIKYCPH-UHFFFAOYSA-N 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012550 audit Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种数据存储方法、装置、计算机可读存储介质及电子设备。涉及金融科技领域,该方法包括:获取交易数据;对交易数据进行矩阵转换处理,得到消息矩阵;对消息矩阵进行加密处理,得到构造矩阵;拆分构造矩阵,得到多个数据分块;将多个数据分块分配至多个存储节点中,以对交易数据进行存储。本发明解决了现有技术中的分散式存储安全性低的技术问题。
Description
技术领域
本发明涉及金融科技领域,具体而言,涉及一种数据存储方法、装置、计算机可读存储介质及电子设备。
背景技术
分散式存储是指在分散、不可信的网络环境中,将数据分散存储在多台独立的设备上,打破中心化存储垄断,解决存储服务器单点成为系统性能的瓶颈,满足更加安全、可信、可控的存储需求。
随着互联网内容信息的爆炸性增长,文件的分散式存储获得广泛应用,其不仅在服务节点存储海量的文件资源,同时也对去中心化文件传输提出安全性和隐私保护需求。然而,现有技术中的分散式存储技术在数据传输安全方面,仍存在不足之处。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据存储方法、装置、计算机可读存储介质及电子设备,以至少解决现有技术中的分散式存储安全性低的技术问题。
根据本发明实施例的一个方面,提供了一种数据存储方法,包括:获取交易数据;对交易数据进行矩阵转换处理,得到消息矩阵;对消息矩阵进行加密处理,得到构造矩阵;拆分构造矩阵,得到多个数据分块;将多个数据分块分配至多个存储节点中,以对交易数据进行存储。
进一步地,数据存储方法还包括:对交易数据进行分块处理,得到分块后的交易数据;确定分块后的交易数据所对应的分块数量;确定所有存储节点之间的加密通道的通道数量;基于分块数量、通道数量确定多个存储节点的节点数量;根据通道数量和节点数量,对交易数据进行矩阵转换处理,得到消息矩阵。
进一步地,数据存储方法还包括:计算消息矩阵与编码矩阵的乘积,得到构造矩阵。
进一步地,数据存储方法还包括:在计算消息矩阵与编码矩阵的乘积,得到构造矩阵之前,基于通道数量,确定编码矩阵对应的行列数量;根据行列数量,生成编码矩阵。
进一步地,数据存储方法还包括:在将多个数据分块分配至多个存储节点之前,获取多个节点标识以及至少一个对象标识,其中,节点标识为具有获取数据分块权限的节点所对应的标识,对象标识为具有获取数据分块权限的对象所对应的标识;基于多个节点标识对每个数据分块进行签名,生成多个分块签名;确定每个数据分块所对应的哈希值;基于多个节点标识、至少一个对象标识、每个数据分块、每个数据分块所对应的分块签名和哈希值生成与该数据分块对应的数据报文;将数据报文存储至区块链。
进一步地,数据存储方法还包括:接收数据获取指令,基于数据获取指令获取与每个数据分块对应的数据报文;在对每个数据报文中的分块签名验证成功的情况下,获取多个存储节点中的数据分块;基于数据分块确定交易数据;发送交易数据给目标对象。
进一步地,数据存储方法还包括:基于编码矩阵确定解码矩阵;对数据分块进行拼接处理,得到拼接后的数据分块;计算拼接后的数据分块与解码矩阵的乘积,得到交易数据。
进一步地,数据存储方法还包括:在生成编码矩阵之后,将编码矩阵存储至区块链。
根据本发明实施例的另一方面,还提供了一种数据存储装置,包括:获取模块,用于获取交易数据;转换模块,用于对交易数据进行矩阵转换处理,得到消息矩阵;加密模块,用于对消息矩阵进行加密处理,得到构造矩阵;拆分模块,用于拆分构造矩阵,得到多个数据分块;处理模块,用于将多个数据分块分配至多个存储节点中,以对交易数据进行存储。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的数据存储方法。
根据本发明实施例的另一方面,还提供了一种电子设备,电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的数据存储方法。
根据本发明实施例的另一方面,还提供了一种计算机程序产品,包括计算机程序/指令,计算机程序/指令被处理器执行时实现上述的数据存储方法。
在本发明实施例中,采用对交易数据进行矩阵转换以及加密处理后再进行分散式存储的方式,通过获取交易数据,然后对交易数据进行矩阵转换处理,得到消息矩阵,接着对消息矩阵进行加密处理,得到构造矩阵,并拆分构造矩阵,得到多个数据分块,从而将多个数据分块分配至多个存储节点中,以对交易数据进行存储。
在上述过程中,通过对与交易数据对应的消息矩阵进行加密后,再进行分块并发送给多个存储节点,避免了现有技术中将交易数据拆分后,直接发送给存储节点造成的数据传输安全性低的问题,从而实现了提高分散式存储的安全性的效果。此外,通过将交易数据转换为消息矩阵,可以避免对手或攻击方直接获取到交易数据的内容,从而可以进一步地提高分散式存储的安全性。
由此可见,本申请所提供的方案达到了对交易数据进行矩阵转换以及加密处理后再进行分散式存储的目的,从而实现了提高分散式存储的安全性的技术效果,进而解决了现有技术中的分散式存储安全性低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的分散式存储系统的结构图;
图2是根据本发明实施例的一种可选的数据存储方法的示意图;
图3是根据本发明实施例的一种可选的DS节点的示意图;
图4是根据本发明实施例的一种可选的区块链节点的示意图;
图5是根据本发明实施例的一种可选的分散式存储系统的示意图;
图6是根据本发明实施例的一种可选的数据存储方法的示意图;
图7是根据本发明实施例的一种可选的数据存储装置的示意图;
图8是根据本发明实施例的一种可选的电子设备的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
通道加密(Channel Cryptography):也称为安全通道,是利用加密学算法保证数据在多点之间安全传递的方法,用于防止数据传输过程中被恶意篡改和窃听,确保不同业务类型的数据逻辑隔离。
分散式存储(Decentralized storage):是指在分散、不可信的网络环境中,将数据分散存储在多台独立的设备上,打破中心化存储垄断,解决存储服务器单点成为系统性能的瓶颈,满足更加安全、可信、可控的存储需求。
区块链(Blockchain):一种利用密码学保证访问安全、利用P2P通讯技术实现对等通信、利用共识机制实现记账合法性,利用链式结构存储数据实现不可篡改的共同记账解决方案。
DAG:指有向无环图,图中的点指向另一个点,但不会出现环路。
需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
实施例1
根据本发明实施例,提供了一种数据存储方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
可选的,本申请所提供的方法可以基于一种可选的分散式存储系统实现,如图1所示,该分散式存储系统至少包括多个去中心化存储(Decentralized Storage,DS)节点,还可以包括多个区块链节点,其中,多个DS节点形成分散式存储网络,这些DS节点用于负责接收客户端的文件读写请求,进行分散式文件读写,将交易信息存证到区块链节点;多个区块链节点形成区块链网络,这些区块链节点用于完成交易广播、交易执行、交易验证、共识和存储等功能,具有区块链的一般特性。此外,基于客户端发起文件读取指令,经过文件读写存证的智能合约执行后的交易记录也会保存在区块链上。其中,客户端至少DS节点相连,其可以分为客户端A和客户端B,客户端A可以用于发起智能合约部署请求、分散式存储交易请求,客户端B可以用于发布分散式存储查询请求。
图2是根据本发明实施例的一种可选的数据存储方法的示意图,如图2所示,该方法包括如下步骤:
步骤S201,获取交易数据。
可选的,在本实施例中,用户可以通过客户端可以在各DS节点部署智能合约,并在完成部署后,向分散式存储系统发布分散式存储交易请求,其中,交易请求中至少包括相关的计算参数(如交易时间、交易数据的文件大小等)以及期望调用的智能合约所对应的唯一标识。
进一步地,如图3所示,分散式存储系统中的DS节点包括通讯模块,DS节点可以通过通讯模块接收分散式存储交易请求,并将交易请求组装成交易报文。其中,通讯模块用于实现分散式消息和存储报文收发,交易报文至少用于调用对应的智能合约。
更进一步地,接收到分散式存储交易请求的DS节点可以从客户端或从数据库、云服务器等存储区域中获取对应的交易数据,以便于实现后续对该交易数据的存储。
步骤S202,对交易数据进行矩阵转换处理,得到消息矩阵。
可选的,在步骤S202中,可以基于预设算法对交易数据进行预处理,将交易数据进行初步拆分,得到对应于交易数据的数据集,然后再对预处理后的交易数据进行矩阵转换处理,从而将其转换为行列数量满足一定条件的二维消息矩阵。
需要说明的是,通过将交易数据转换为消息矩阵,以便于对交易数据进行加密。
步骤S203,对消息矩阵进行加密处理,得到构造矩阵。
在步骤S203中,DS节点可以通过具有加密功能的矩阵对消息矩阵进行加密,其中,具有加密功能的矩阵可以是基于公钥基础设施(Public Key Infrastructure,PKI)技术生成的矩阵,可选的,也可以基于预设的秘钥直接对消息矩阵进行加密,或是基于其它加密算法对消息矩阵进行加密处理,以得到构造矩阵。
需要说明的是,通过加密消息矩阵,实现了对交易数据的加密,避免了现有技术中将交易数据拆分后,直接发送给存储节点造成的数据传输安全性低的问题,从而便于提高后续的分散式存储的安全性。
步骤S204,拆分构造矩阵,得到多个数据分块。
在步骤S204中,DS节点可以将构造矩阵拆分成多个数据量相等的数据分块,例如,基于构造矩阵中的一行或多行元素,一列或多列元素进行拆分;也可以将构造矩阵拆分成多个数据量不相等的数据分块,例如,基于构造矩阵中的对角线对构造矩阵进行拆分,同时,也可以是基于其它拆分方法对构造矩阵进行拆分,从而得到多个数据分块。
需要说明的是,通过拆分构造矩阵,实现了对交易数据的拆分,从而便于实现后续的分散式存储。
步骤S205,将多个数据分块分配至多个存储节点中,以对交易数据进行存储。
在步骤S205中,存储节点为前述的分散式存储网络中的DS节点。执行前述步骤S201-S203的DS节点可以将多个数据分块均匀分配至多个存储节点,也可以将多个数据分块不均匀地分配至多个存储节点,以使得多个存储节点对数据分块进行存储,从而实现对交易数据的分散式存储。
需要说明的是,将多个数据分块分配至多个存储节点中,实现了对交易数据的分散式存储,有效避免了现有技术中将交易数据整体存储在同一节点中造成的存储效率低和安全性低的问题。
基于上述步骤S201至步骤S205所限定的方案,可以获知,在本发明实施例中,采用对交易数据进行矩阵转换以及加密处理后再进行分散式存储的方式,通过获取交易数据,然后对交易数据进行矩阵转换处理,得到消息矩阵,接着对消息矩阵进行加密处理,得到构造矩阵,并拆分构造矩阵,得到多个数据分块,从而将多个数据分块分配至多个存储节点中,以对交易数据进行存储。
容易注意到的是,在上述过程中,通过对与交易数据对应的消息矩阵进行加密后,再进行分块并发送给多个存储节点,避免了现有技术中将交易数据拆分后,直接发送给存储节点造成的数据传输安全性低的问题,从而实现了提高分散式存储的安全性的效果。此外,通过将交易数据转换为消息矩阵,可以避免对手或攻击方直接获取到交易数据的内容,从而可以进一步地提高分散式存储的安全性。
由此可见,本申请所提供的方案达到了对交易数据进行矩阵转换以及加密处理后再进行分散式存储的目的,从而实现了提高分散式存储的安全性的技术效果,进而解决了现有技术中的分散式存储安全性低的技术问题。
在一种可选的实施例中,在对交易数据进行矩阵转换处理,得到消息矩阵的过程中,DS节点可以对交易数据进行分块处理,得到分块后的交易数据,然后确定分块后的交易数据所对应的分块数量,并确定所有存储节点之间的加密通道的通道数量,从而基于分块数量、通道数量确定多个存储节点的节点数量,进而根据通道数量和节点数量,对交易数据进行矩阵转换处理,得到消息矩阵。
可选的,如图3所示,DS节点还包括用于根据分块策略对交易数据进行分块处理的Chunk模块。DS节点可以通过Chunk模块,采用固定长度分块方法对交易数据进行分块处理,也可以采用Rabin分块算法对交易数据进行分块处理,以得到分块后的交易数据,在本实施例中,优选为Rabin分块算法,该算法如下所示:
M=M(child1)||M(child2)||...||M(childn)||DidA1||DidA2||....||DidAn
其中,M(childn)表示每个数据分块的Rabin指纹信息(哈希),M表示交易数据,DidA1||DidA2||…||DidAn表示多主体数字身份,具体地,表示为具有获取数据分块权限的节点所对应的数字身份标示符的集合。
其中,在区块链网络中,所有节点、用户、数据分块或交易数据具有全局唯一数字身份标识符DID,DID符合W3C DID规范,形式化表示为:
DID={id|id="did":"method-name":"{0,1}*"}
其中,method-name表示DID所在的域,{0,1}*表示256位的标识号,表明数字身份在域中的地址。DID是节点及用户在区块链网络的数字身份标识,通过区块链网络同步到共识记账节点,并存储在区块中。区块链网络提供智能合约,为访问者提供交互服务。
进一步地,M可以表示为S个长度为q的向量集,即:
M={u1,u2,...,uv}
其中,v=kα表示分块后的交易数据对应的分块数量,α=d-k+1表示所有存储节点之间的加密通道的通道数量,d=n-1表示修复数据的节点对应的节点数,即多个存储节点的节点数量。
更近一步地,可以基于前述的通道数量和节点数量确定消息矩阵的行列数量,进而基于前述确定的行列数量对交易数据进行矩阵转换处理,得到维度为d×α的消息矩阵,表示如下:
需要说明的是,通过对交易数据进行初步分块处理,得到分块后的交易数据,再基于分块后的交易数据确定消息矩阵,实现了对消息矩阵的有效确定。
在一种可选的实施例中,在对消息矩阵进行加密处理,得到构造矩阵的过程中,DS节点可以计算消息矩阵与编码矩阵的乘积,得到构造矩阵。
可选的,可以基于通道数量,确定编码矩阵对应的行列数量,从而根据行列数量,利用PKI技术生成维度为n×d的编码矩阵。
其中,n表示分散式存储网络中用于存储数据分块的节点数,即前述的修复数据的节点以及用于拆分消息矩阵的DS节点所对应的节点数之和。需要说明的,基于通道数量,确定编码矩阵对应的行列数量,以便后续得到期望的构造矩阵。
具体地,设编码矩阵为珂希矩阵(Cauchy Matrix),其元素满足性质:
其中,i=1,…,n,j=1,…,d。
进一步地,可以根据分散式传输模型DSS,也即DSS[n,k,d]模型,生成构造矩阵:
C=ψ.M
其中,C表示构造矩阵,ψ表示编码矩阵,M表示消息矩阵。且在DSS[n,k,d]模型中,k表示参与采集和重构数据分块的节点对应的节点数。
具体地,构造矩阵如下所示:
更进一步地,在确定了构造矩阵之后,可以选取构造矩阵的行数据并将每行数据分别对应发送至n个加密通道中进行数据传输,以基于加密通道发送给对应的存储节点。其中,DS节点和每个存储节点之间存在至少一条加密通道。
需要说明的是,通过采用编码矩阵对消息矩阵进行加密,便于在实现加密效果的同时,得到期望格式的加密后的交易数据,即期望的构造矩阵,从而便于对其进行拆分。
在一种可选的实施例中,在生成编码矩阵之后,DS节点可以将编码矩阵存储至区块链网络,以将其作为公共参数存储,由此,避免了编码矩阵被第三方篡改,保证了在实际应用中当需要基于数据分块还原交易数据时,能够准确还原。
在一种可选的实施例中,在将多个数据分块分配至多个存储节点之前,DS节点可以获取多个节点标识以及至少一个对象标识,然后基于多个节点标识对每个数据分块进行签名,生成多个分块签名,并确定每个数据分块所对应的哈希值,从而基于多个节点标识、至少一个对象标识、每个数据分块、每个数据分块所对应的分块签名和哈希值生成与该数据分块对应的数据报文,并将将数据报文存储至区块链。其中,节点标识为具有获取数据分块权限的节点所对应的标识,对象标识为具有获取数据分块权限的对象所对应的标识。
具体地,如图3所示,DS节点还包括加密通道模块,该加密通道为执行通道加密的主体模块,负责创建加密通道,以及对Chunk模块产生的文件数据进行报文组装,生成文件分块签名处理和文件分块签名验签处理。
首先,对本实施例中所采用的签名算法进行说明。可选的,引入RSA算法作为身份加密算法的基础,输入安全参数1k,该算法形式上表示为:
Se=Did1Did2...Didntf(t,C)(mod N)
其中,S表示分块签名,C表示数据分块的哈希值,t表示签名,DidAi(1≤i≤n)表示n个传输节点的数字身份标识符,也即前述的节点标识或多主体数字身份,N=pq为两个大素数的乘积,f为单项函数,e为大素数,且与N的阶互质,即满足:
gcd(e,φ(N))=1
可选的,Did1Did2…Didn的模,可以表示为:
g≡Did1Did2...Didn(mod n)
其中g表示生成元,根据欧拉扩展定理,当知道n和e时,g较容易计算出来。
进一步地,加密通道模块可以执行签名函数Sign(C,Did1…Didn)以对数据分块进行签名,并生成分块签名。其中,用户可以随机挑选整数r∈Z并计算:
t=re(mod N)
将关于t的上式带入前述S=Did1Did2...Didntf(t,C)(mod N)的公式中,则该算法变为下式:
se=ge.ref(t,C)(mod N)
根据公式gcd(e,φ(N))=1,e与φ(n)互质,公式se=ge.ref(t,C)(modN)可进一步约简成如下公式:
S≡g.rf(t,C)(mod N)
其中,f为单向函数,本发明采用hash散列函数代替。从而可以基于上述公式确定每个数据分块对应的分块签名。需要说明的是,通过前述加密算法,针对多主体数字身份的DID,结合数据分块的哈希,构建出了可复用的数据分块哈希指纹。
进一步地,如图3所示,DS节点还包括DAG模块。DS节点可以基于DAG模块形成数据报文。
具体地,数据报文的数据格式可以表示如下:
BlockM=(Did1,...,Didn,Ci,Didr,Si,...,chksum)
其中,Ci表示数据分块,Didr表示对象标识,即具有获取数据分块权限的用户对应的数字身份标识符,Si表示与数据分块对应的分块签名,chksum表示与数据分块对应的哈希值。由此,实现了对数据报文的确定。
更进一步地,在生成了数据报文后,DS节点可以将该数据报文发送至区块链,以使区块链网络接收该数据报文,并对其进行合法性校验,形成全网共识,进而将数据报文存储至区块链网络中。
需要说明的是,通过生成与数据分块对应的数据报文,并上传至区块链中,以对数据分块的信息内容进行存证,从而在实际应用中能够有效判断数据分块中的数据是否被篡改。
在一种可选的实施例中,DS节点可以接收数据获取指令,基于数据获取指令获取与每个数据分块对应的数据报文,并在对每个数据报文中的分块签名验证成功的情况下,获取多个存储节点中的数据分块,从而基于数据分块确定交易数据,然后发送交易数据给目标对象。
可选的,用户可以通过客户端向分散式存储网络发送下载或查询交易数据的请求,当分散式存储网络中的DS节点接受到响应的数据获取指令后,DS节点可以基于数据获取指令从区块链中获取每个数据分块对应的数据报文,并对所获取的数据报文进行验签处理。
可选的,DS节点可以通过加密通道模块,执行签名验证函数ChkSign(S),以验证获取的数据报文中的分块签名是否真实。具体地,DS节点可以将其获取到的多主体数字身份带入如下公式:
Se=DidA1DidA2...DidAntf(t,C)(mod n)
并基于前述计算签名的方法对本次签名进行计算,此处不再赘述,从而可以得到验证签名。进一步地,将新得到的验证签名与获取的数据报文中的分块签名进行比对,当所有数据分块对应的验证签名与获取的数据报文中的分块签名相同时,判断数据报文中的分块签名验证成功,此时,可以基于数据报文获取到多个存储节点中的数据分块,反之,当所有数据分块对应的验证签名与获取的数据报文中的分块签名不相同时,确定数据报文中的分块签名验证失败。此外,DS节点还可以将验证结果采用加密算法进行加密后,发送给区块链节点,以使区块链进行存证。
进一步地,DS节点可以基于数据分块还原得到交易数据,从而将交易数据发送给对应的用户。
需要说明的是,通过对数据报文进行验签,并在验签成功的情况下,获取对应的数据分块,可以有效确定数据分块是否被篡改,以及相关用户是否具有获取权限,从而进一步地提高分散式存储的安全性。此外,基于前述的验签方法,具有响应速度快的特点。
在一种可选的实施例中,在基于数据分块确定交易数据的过程中,DS节点可以基于编码矩阵确定解码矩阵,然后对数据分块进行拼接处理,得到拼接后的数据分块,从而计算拼接后的数据分块与解码矩阵的乘积,得到交易数据。
可选的,在DS节点收集到各文件分块后,DS节点可以从区块链网络中获取编码矩阵,从而基于编码矩阵确定解码矩阵,其中,解码矩阵为编码矩阵的逆矩阵。之后,DS节点可以基于DAG模块对数据分块进行拼接,得到拼接后的数据分块,从而将拼接后的数据分块与解码矩阵相乘,得到交易数据。公式如下所示:
其中,需要说明的是,由于每一个数据分块均设置有独一无二的数字身份标识,因此,即便因共享传递效率的需要,交易数据被分割成不同的数据分块,但仍能在合并数据分块后,验证其数字身份,从而根据数字身份证书,溯源文件分享者。即将数字身份嵌入到分散式数据结构中,还可以有效解决分散式数据内容跟踪和溯源难题,从而可广泛应用在安全数据分享、金融业务等业务场景中。
可选的,对本申请中的另一种可选的实施例进行说明。如图4所示,分散式存储系统包括客户访问层、分散式存储网络以及区块链网络。
其中,区块链网络由多个区块链节点构成,可以接收和解密数据报文,触发预设的智能合约逻辑,形成分散式存储的日志结果。具体地,区块链网络可提供托管节点,对于有能力的用户也可提供本地节点部署。每个用户在区块链上有各自对应的通道,用户无法获取其它通道也即其它用户的数据信息。
客户访问层至少由客户端A和客户端B构成,其用于提供用户(如运营商)访问的客户端软件,便于用户发起分散式存储请求或接收分散式存储结果。具体地,客户端A可在区块链平台上发布链码,当用户产生上传或下载的行为数据后,可调用链码发起交易请求,将行为数据上链,根据用户使用场景,提交到各个场景对应的通道上(客户端可以直接上送客户行为数据,无需加工处理,具体数据处理逻辑可交由用户执行)。用户也可以发布链码,查询对应于自己的通道中的数据,以对自己的数据进行处理分析。
分散式存储网络由多个DS节点构成,可以根据客户端提交的上传(下载)、查询等请求,通过分散式存储逻辑配置参数、数据、业务逻辑等,同时加密形成文件分块数据,并将其哈希值广播给区块链网络。具体地,用户可以发布联合运营链码,由于每个区块链节点都有对应的DS节点,因此可以通过链码调用DS节点,以指定需要哪些DS进行联合计算。基于各通道的用户数据相互之间无法访问的特性,通过DS节点可以在不泄漏各自数据的情况进行分散式数据存储。
如图5所示,区块链网络中的区块链节点包括通讯模块、交易处理模块、智能合约模块以及共识验证模块。具体地,通讯模块用于各区块链节点间的通信交互,以及完成一般区块链节点通讯信息,如交易信息广播、共识相关信息、区块同步信息、网络状态信息等;交易处理模块用于接收前述的交易请求,并生成交易唯一标识,将交易唯一标识、合约唯一标识以及调用参数组装成交易,广播到区块链的其它节点。智能合约模块用于从通讯模块接收交易请求,通过分散式存储得出计算结果,根据预设的业务逻辑进行判断,并把最终交易指令通过通讯模块提交到交易处理模块进行执行。共识验证模块用于对接收到交易请求进行共识处理,如达成共识,调用智能合约模块,执行智能合约,并最终形成记录在案,可供日后审计追溯或验证。
基于前述分散式存储系统,在数据存储的过程中,如图6所示,想要上传交易数据的用户(即图6中的发送者)可以通过客户端向分散式存储网络发送文件传输请求,以向分散式存储网络发送包括交易数据的文件。然后,可以由分散式存储网络中的某一DS节点接受相关交易请求,并生成交易报文。接着,DS节点可以基于交易报文获取到相关的上传文件,然后基于编码矩阵对该文件加密,并在加密后进行分块处理,得到文件分块,从而基于文件分块形成对应的文件签名和数据报文。进一步地,在得到数据报文后,DS节点可以向区块链网络广播该数据报文,由区块链网络接收该分散式存储行为信息,校验合法性,形成全网共识后存储至区块链。之后,DS节点可以将文件分块数据同步传送给其它DS节点,从而实现分散式存储。
在另一种场景中,即在数据下载或查询的过程中,如图6所示,想要下载或查询交易数据的用户(即图6中的接收者)可以通过客户端向分散式存储网络发送文件下载或查询请求,然后,由分散式存储网络中的某一DS节点接受相关下载或查询请求,并由至少一个DS节点收集区块链网络中的数据报文,以对其进行验签处理。之后,DS节点将验签结果发送给区块链节点,并在验证成功的情况下,对文件分块进行拼接,还原原始文件,从而将原始文件返回给客户端,并发送对应的返回结果。
需要说明的是,本公开所提供的数据存储方法及数据存储装置可用于金融领域的交易信息分散式存储场景,也可用于除金融领域之外的任意领域,如信息安全等领域,本公开所提供的数据存储方法及数据存储装置的应用领域不做限定。
由此可见,本申请所提供的方案达到了对交易数据进行矩阵转换以及加密处理后再进行分散式存储的目的,从而实现了提高分散式存储的安全性的技术效果,进而解决了现有技术中的分散式存储安全性低的技术问题。
实施例2
根据本发明实施例,提供了一种数据存储装置的实施例,其中,图7是根据本发明实施例的一种可选的数据存储装置的示意图,如图7所示,该装置包括:
获取模块701,用于获取交易数据;
转换模块702,用于对交易数据进行矩阵转换处理,得到消息矩阵;
加密模块703,用于对消息矩阵进行加密处理,得到构造矩阵;
拆分模块704,用于拆分构造矩阵,得到多个数据分块;
处理模块705,用于将多个数据分块分配至多个存储节点中,以对交易数据进行存储。
需要说明的是,上述获取模块701、转换模块702、加密模块703、拆分模块704以及处理模块705对应于上述实施例中的步骤S201至步骤S205,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。
可选的,转换模块还包括:第一子处理模块,用于对交易数据进行分块处理,得到分块后的交易数据;第一确定模块,用于确定分块后的交易数据所对应的分块数量;第二确定模块,用于确定所有存储节点之间的加密通道的通道数量;第三确定模块,用于基于分块数量、通道数量确定多个存储节点的节点数量;第二子处理模块,用于根据通道数量和节点数量,对交易数据进行矩阵转换处理,得到消息矩阵。
可选的,加密模块还包括:第一计算模块,用于计算消息矩阵与编码矩阵的乘积,得到构造矩阵。
可选的,数据存储装置还包括:第四确定模块,用于基于通道数量,确定编码矩阵对应的行列数量;第一生成模块,用于根据行列数量,生成编码矩阵。
可选的,数据存储装置还包括:第一子获取模块,用于获取多个节点标识以及至少一个对象标识,其中,节点标识为具有获取数据分块权限的节点所对应的标识,对象标识为具有获取数据分块权限的对象所对应的标识;签名模块,用于基于多个节点标识对每个数据分块进行签名,生成多个分块签名;第五确定模块,用于确定每个数据分块所对应的哈希值;第二生成模块,用于基于多个节点标识、至少一个对象标识、每个数据分块、每个数据分块所对应的分块签名和哈希值生成与该数据分块对应的数据报文;第三子处理模块,用于将数据报文存储至区块链。
可选的,数据存储装置还包括:接收模块,用于接收数据获取指令,基于数据获取指令获取与每个数据分块对应的数据报文;第二子获取模块,用于在对每个数据报文中的分块签名验证成功的情况下,获取多个存储节点中的数据分块;第六确定模块,用于基于数据分块确定交易数据;发送模块,用于发送交易数据给目标对象。
可选的,第六确定模块还包括:第七确定模块,用于基于编码矩阵确定解码矩阵;拼接模块,用于对数据分块进行拼接处理,得到拼接后的数据分块;第二计算模块,用于计算拼接后的数据分块与解码矩阵的乘积,得到交易数据。
可选的,数据存储装置还包括:第四子处理模块,用于将编码矩阵存储至区块链。
实施例3
根据本发明实施例的另一方面,还提供了计算机可读存储介质,计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的数据存储方法。
实施例4
根据本发明实施例的另一方面,还提供了一种电子设备,其中图8是根据本发明实施例的一种可选的电子设备的示意图是根据本发明实施例的一种可选的电子设备的示意图,如图8所示,电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的数据存储方法。
实施例5
根据本发明实施例的另一方面,还提供了一种计算机程序产品,包括计算机程序/指令,计算机程序/指令被处理器执行时实现上述的数据存储方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种数据存储方法,其特征在于,包括:
获取交易数据;
对所述交易数据进行矩阵转换处理,得到消息矩阵;
对所述消息矩阵进行加密处理,得到构造矩阵;
拆分所述构造矩阵,得到多个数据分块;
将所述多个数据分块分配至多个存储节点中,以对所述交易数据进行存储。
2.根据权利要求1所述的方法,其特征在于,对所述交易数据进行矩阵转换处理,得到消息矩阵,包括:
对所述交易数据进行分块处理,得到分块后的交易数据;
确定所述分块后的交易数据所对应的分块数量;
确定所有存储节点之间的加密通道的通道数量;
基于所述分块数量、所述通道数量确定所述多个存储节点的节点数量;
根据所述通道数量和所述节点数量,对所述交易数据进行矩阵转换处理,得到所述消息矩阵。
3.根据权利要求2所述的方法,其特征在于,对所述消息矩阵进行加密处理,得到构造矩阵,包括:
计算所述消息矩阵与编码矩阵的乘积,得到所述构造矩阵。
4.根据权利要求3所述的方法,其特征在于,在计算所述消息矩阵与编码矩阵的乘积,得到所述构造矩阵之前,所述方法还包括:
基于所述通道数量,确定所述编码矩阵对应的行列数量;
根据所述行列数量,生成所述编码矩阵。
5.根据权利要求1所述的方法,其特征在于,在将所述多个数据分块分配至多个存储节点之前,所述方法还包括:
获取多个节点标识以及至少一个对象标识,其中,所述节点标识为具有获取数据分块权限的节点所对应的标识,所述对象标识为具有获取所述数据分块权限的对象所对应的标识;
基于所述多个节点标识对每个数据分块进行签名,生成多个分块签名;
确定所述每个数据分块所对应的哈希值;
基于所述多个节点标识、所述至少一个对象标识、所述每个数据分块、所述每个数据分块所对应的分块签名和哈希值生成与该数据分块对应的数据报文;
将所述数据报文存储至区块链。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
接收数据获取指令,基于所述数据获取指令获取与每个数据分块对应的数据报文;
在对每个数据报文中的分块签名验证成功的情况下,获取所述多个存储节点中的数据分块;
基于所述数据分块确定所述交易数据;
发送所述交易数据给目标对象。
7.根据权利要求6所述的方法,其特征在于,基于所述数据分块确定所述交易数据,包括:
基于所述编码矩阵确定解码矩阵;
对所述数据分块进行拼接处理,得到拼接后的数据分块;
计算所述拼接后的数据分块与所述解码矩阵的乘积,得到所述交易数据。
8.根据权利要求4所述的方法,其特征在于,在生成所述编码矩阵之后,所述方法还包括:
将所述编码矩阵存储至区块链。
9.一种数据存储装置,其特征在于,包括:
获取模块,用于获取交易数据;
转换模块,用于对所述交易数据进行矩阵转换处理,得到消息矩阵;
加密模块,用于对所述消息矩阵进行加密处理,得到构造矩阵;
拆分模块,用于拆分所述构造矩阵,得到多个数据分块;
处理模块,用于将所述多个数据分块分配至多个存储节点中,以对所述交易数据进行存储。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至8任一项中所述的数据存储方法。
11.一种电子设备,其特征在于,所述电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现用于运行程序,其中,所述程序被设置为运行时执行所述权利要求1至8任一项中所述的数据存储方法。
12.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现权利要求1至8中任一项所述的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210412239.4A CN114826720B (zh) | 2022-04-19 | 2022-04-19 | 数据存储方法、装置、计算机可读存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210412239.4A CN114826720B (zh) | 2022-04-19 | 2022-04-19 | 数据存储方法、装置、计算机可读存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114826720A true CN114826720A (zh) | 2022-07-29 |
CN114826720B CN114826720B (zh) | 2024-01-30 |
Family
ID=82506001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210412239.4A Active CN114826720B (zh) | 2022-04-19 | 2022-04-19 | 数据存储方法、装置、计算机可读存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114826720B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103336785A (zh) * | 2013-06-04 | 2013-10-02 | 华中科技大学 | 一种基于网络编码的分布式存储方法及其装置 |
US10198317B1 (en) * | 2014-11-17 | 2019-02-05 | Amazon Technologies Inc. | Computation refinement in a data storage system |
CN112181307A (zh) * | 2020-10-13 | 2021-01-05 | 宁波金狮科技有限公司 | 基于区块链的分布式数据冗余存储方法和电子设备 |
CN112529586A (zh) * | 2020-12-15 | 2021-03-19 | 深圳市快付通金融网络科技服务有限公司 | 交易信息管理方法、装置、设备及存储介质 |
CN112906061A (zh) * | 2021-02-08 | 2021-06-04 | 中国工商银行股份有限公司 | 基于区块链的信息处理方法和装置 |
CN114168979A (zh) * | 2021-11-09 | 2022-03-11 | 华中科技大学 | 一种用于分散式存储系统的数据副本编码方法及存储介质 |
-
2022
- 2022-04-19 CN CN202210412239.4A patent/CN114826720B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103336785A (zh) * | 2013-06-04 | 2013-10-02 | 华中科技大学 | 一种基于网络编码的分布式存储方法及其装置 |
US10198317B1 (en) * | 2014-11-17 | 2019-02-05 | Amazon Technologies Inc. | Computation refinement in a data storage system |
CN112181307A (zh) * | 2020-10-13 | 2021-01-05 | 宁波金狮科技有限公司 | 基于区块链的分布式数据冗余存储方法和电子设备 |
CN112529586A (zh) * | 2020-12-15 | 2021-03-19 | 深圳市快付通金融网络科技服务有限公司 | 交易信息管理方法、装置、设备及存储介质 |
CN112906061A (zh) * | 2021-02-08 | 2021-06-04 | 中国工商银行股份有限公司 | 基于区块链的信息处理方法和装置 |
CN114168979A (zh) * | 2021-11-09 | 2022-03-11 | 华中科技大学 | 一种用于分散式存储系统的数据副本编码方法及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114826720B (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111737724B (zh) | 一种数据处理方法、装置、智能设备及存储介质 | |
Yang et al. | Provable data possession of resource-constrained mobile devices in cloud computing | |
Wei et al. | Security and privacy for storage and computation in cloud computing | |
Yu et al. | Improved security of a dynamic remote data possession checking protocol for cloud storage | |
CN106789080A (zh) | 数字签名生成方法和系统 | |
CN109767218B (zh) | 区块链证书处理方法及系统 | |
CN110365469B (zh) | 一种支持数据隐私保护的云存储中数据完整性验证方法 | |
CN112152778B (zh) | 一种节点管理方法、装置、及电子设备 | |
CN114157415A (zh) | 数据处理方法、计算节点、系统、计算机设备和存储介质 | |
CN111683090A (zh) | 一种基于分布式存储的区块链数字签名方法及装置 | |
Newman et al. | Spectrum: High-bandwidth anonymous broadcast | |
CN115906181A (zh) | 一种基于区块链属性的加密文件确权方法、装置及系统 | |
US20150023498A1 (en) | Byzantine fault tolerance and threshold coin tossing | |
Yu et al. | Veridedup: A verifiable cloud data deduplication scheme with integrity and duplication proof | |
Mishra et al. | MPoWS: Merged proof of ownership and storage for block level deduplication in cloud storage | |
Bian et al. | Data integrity audit based on data blinding for cloud and fog environment | |
CN108664814B (zh) | 一种基于代理的群组数据完整性验证方法 | |
Vasilopoulos et al. | Message-locked proofs of retrievability with secure deduplication | |
Newman et al. | Spectrum: High-Bandwidth Anonymous Broadcast with Malicious Security. | |
CN111314059B (zh) | 账户权限代理的处理方法、装置、设备及可读存储介质 | |
CN115941773A (zh) | 基于云服务共享的项目交易方法、系统、终端设备及介质 | |
CN114826720B (zh) | 数据存储方法、装置、计算机可读存储介质及电子设备 | |
CN115208656A (zh) | 一种基于区块链和权限管理的供应链数据共享方法及系统 | |
CN115022012A (zh) | 一种数据传输方法、装置、系统、设备及存储介质 | |
Suguna et al. | Privacy preserving auditing protocol for remote data storage |
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 |