CN110011981B - 一种基于区块链的可信云存储方法及系统 - Google Patents
一种基于区块链的可信云存储方法及系统 Download PDFInfo
- Publication number
- CN110011981B CN110011981B CN201910198624.1A CN201910198624A CN110011981B CN 110011981 B CN110011981 B CN 110011981B CN 201910198624 A CN201910198624 A CN 201910198624A CN 110011981 B CN110011981 B CN 110011981B
- Authority
- CN
- China
- Prior art keywords
- node
- cloud storage
- file
- block chain
- block
- 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.)
- Active
Links
Images
Classifications
-
- 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
-
- 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/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
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)
- Power Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种基于区块链的可信云存储方法及系统,该方法包括:接入区块链网络的至少两个云存储服务器共识协定出记录权节点和非记录权节点;记录权节点从区块链网络接收密文文件,且基于密文文件构建完整区块,以及将完整区块发布至区块链网络;非记录权节点从区块链网络接收完整区块,且验证完整区块是否可信,若是,则将完整区块加入区块链,若否,则停止将完整区块加入区块链。本发明提供的基于区块链的可信云存储方法及系统,非记录权节点可以只将可信性验证通过的完整区块加入区块链,实现非记录节点基于区块链为密文文件提供可信云存储服务,降低了区块链占用非记录权节点中的磁盘空间,提高了磁盘性能。
Description
技术领域
本发明涉及云存储技术领域,具体涉及一种基于区块链的可信云存储方法及系统。
背景技术
目前,云存储倾向于采用第三方服务商提供的云存储解决方案,这种云存储解决方案面临着第三方服务商不可信的问题,需要可信的第三方服务商来保证云存储解决方案提供的云存储服务是可信的。
在接入区块链网络的云存储服务器中,区块链通过数字证书、签名和加密等方式为海量数据提供安全保障,将区块链应用于上述云存储服务器中能够有效提高云存储服务的可信性,但是云存储服务器需要为可信云存储服务提供较多的磁盘空间。
发明内容
针对现有技术中云存储服务器为基于区块链的可信云存储提供较多的磁盘空间的不足,本发明提供一种基于区块链的可信云存储方法及系统。
第一方面,本发明提供了一种基于区块链的可信云存储方法,包括:
接入区块链网络的至少两个云存储服务器共识协定出记录权节点和非记录权节点;
所述记录权节点从所述区块链网络接收密文文件,且基于所述密文文件构建完整区块,以及将所述完整区块发布至区块链网络;
所述非记录权节点从所述区块链网络接收所述完整区块,且验证所述完整区块是否可信,若是,则将所述完整区块加入区块链,若否,则停止将所述完整区块加入所述区块链。
第二方面,本发明提供了一种基于区块链的可信云存储系统,包括:
接入区块链网络的至少两个云存储服务器,用于共识协定出记录权节点和非记录权节点;
所述记录权节点,用于从所述区块链网络接收密文文件,且基于所述密文文件构建完整区块,以及将所述完整区块发布至区块链网络;
所述非记录权节点,用于从所述区块链网络接收所述完整区块,且验证所述完整区块是否可信,若是,则将所述完整区块加入区块链,若否,则停止将所述完整区块加入所述区块链。
本发明提供的基于区块链的可信云存储方法及系统的有益效果是:记录权节点基于密文文件构建并发布完整区块至区块链网络,使得非记录权节点能够从区块链网络中获得完整区块,非记录权节点可以只将可信性验证通过的完整区块加入区块链,实现非记录节点基于区块链为密文文件提供可信云存储服务,相比于传统的云存储方案,降低了区块链占用非记录权节点中的磁盘空间。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于区块链的可信云存储方法的流程示意图;
图2为本发明实施例提供的区块结构的示意图;
图3为本发明实施例提供的另一种基于区块链的可信云存储方法的流程示意图;
图4为本发明实施例提供的另一种基于区块链的可信云存储方法的流程示意图;
图5为本发明实施例提供的另一种基于区块链的可信云存储方法的流程示意图;
图6为本发明实施例提供的一种基于区块链的可信云存储系统的结构示意图;
图7为本发明实施例提供的另一种基于区块链的可信云存储系统的结构示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
实施例一
如图1所示,本发明实施例的一种基于区块链的可信云存储方法,该方法包括:
步骤110、接入区块链网络的至少两个云存储服务器共识协定出记录权节点和非记录权节点;
步骤120、记录权节点从区块链网络接收密文文件,且基于密文文件构建完整区块,以及将完整区块发布至区块链网络;
步骤130、非记录权节点从区块链网络接收完整区块,且验证完整区块是否可信,若是,则将完整区块加入区块链,若否,则停止将完整区块加入区块链。
区块链网络可以包括对等计算机网络(P2P),接入区块链网络的诸如云存储服务器和客户端等设备成为云存储网络节点,记录权节点是获得记录密文文件权限的云存储网络节点,非记录权节点是未获得记录密文文件权限的云存储网络节点。
非记录权节点将验证完整区块的可信性作为在区块链中添加完整区块的条件,过滤掉可信性验证不通过的完整区块,仅将可信性验证通过的完整区块加入区块链,区块链具备防篡改、防泄漏、透明和可追溯的特点,能够为密文文件提供安全保障,实现非记录节点基于区块链为密文文件提供可信云存储服务,相比于传统的云存储方案,降低了区块链占用非记录权节点中的磁盘空间,并且能够更好地整合及利用闲置存储空间,提高存储空间的使用率,提高了磁盘性能。
作为可选的实施方式,步骤110具体包括:
步骤111、任一云存储服务器采用性能贡献计算公式对性能向量和权重向量进行计算,得到性能贡献值,且统计应用代币拥有量,以及基于性能贡献值、应用代币拥有量和委托权益证明协议选举出至少一个投票节点;
步骤112、至少一个投票节点基于一致性哈希策略从至少两个云存储服务器中选择出记录权节点,且将不同于记录权节点的云存储服务器确定为非记录权节点。
在一些具体实例中,云存储服务器的个数为4个,4个云存储服务器分别采用性能贡献计算公式对性能向量[Ci Di Mi Ti Ri]和权重向量[k1 k2 k3 k4 k5]进行加权计算,得到性能贡献值Si。
性能贡献计算公式具体为:
Si=k1×Ci+k2×Di+Mi×k3+Ti×k4+Ri×k5
其中,Si表示第i个云存储服务器的性能贡献值,Ci表示第i个云存储服务器在设定时段内的CPU主频性能,Di表示第i个云存储服务器的空闲磁盘占比,Mi表示第i个云存储服务器的内存使用占比,Ti表示第i个云存储服务器接入区块链网络的总计时,Ri表示第i个云存储服务器的平均响应时间,k1表示与CPU主频性能Ci对应的权重,k2表示与空闲磁盘占比Di对应的权重,k3表示与内存使用占比Mi对应的权重,k4表示与总计时Ti对应的权重,k5表示与平均响应时间Ri对应的权重。
在一些具体实例中,采用统计函数token=Sum(wallet)统计得到应用代币拥有量,采用共识函数StockServers=Vote(Si,token,DPOS)投票选举出投票节点,其中,DPOS为委托权益证明协议,如此可以通过结合委托权益证明协议和一致性哈希策略实现文件记录权的分派,以完成共识协定。
作为可选的实施方式,一致性哈希策略包括负载因子计算公式、随机函数和总值计算公式。
步骤112具体包括:获取节点哈希值;基于节点哈希值确定在所投票节点所属一致性哈希域上的任一云存储服务器;针对任一云存储服务器收集负载参数;基于负载因子计算公式对负载参数进行计算,得到负载因子;将负载因子和性能贡献值组合为综合因子,综合因子用于表征对应所云存储服务器的一致性哈希性能;应用随机函数生成随机数;从综合因子中分解出负载因子和所述性能贡献值;基于总值计算公式对随机数、负载因子和性能贡献值进行求和,得到总值;基于总值将与节点哈希值对应的云存储服务器确定为记录权节点。
投票节点能够将哈希环平均分割为不同的一致性哈希域,并沿着哈希环的顺时针方向统计在各个一致性哈希域上的所有云存储服务器的负载情况,获得云存储服务器集合,并收集各个云存储服务器的负载参数。
在一些具体实例中,与投票节点对应的节点哈希值表示为:skey=ServerHash(1k,server),在投票节点所属一致性哈希域上的任一云存储服务器表示为:T=GetCircleServer(skey,Len(StockServers)),其中,ServerHash()表示统一哈希函数,GetCircleServer()表示环获取函数,Len(StockServers)为用于统计投票节点个数的长度函数,实现引入具有平衡性、单调性、分散性和负载均衡等特征的一致性哈希算法。
在一些具体实例中,负载因子计算公式表示为:
其中,Pi表示第i个负载参数,ai表示与第i个负载参数对应的权重,负载参数包括节点请求占比P1、记录权占比P2和节点命中率P3。
在一些具体实例中,综合因子表示为:Oi=(Si,Wi),随机数表示为:random=Random(0,1),总值计算公式表示为:crbi=Si×random+Wi×(1-random),其中,crbi表示总值,随机数保证了构造排序的随机性。
在一些具体实例中,记录权节点表示为:suc_server=max(crbi),采用队列加入函数write_node.append(suc_server)将记录权节点加入记录节点队列。
作为可选的实施方式,记录权节点基于密文文件构建完整区块,具体包括:应用分块函数对密文文件进行分块,得到多个文件块;应用预设整合条件将所有文件块整合为默克尔树,基于默克尔树构建具有完整性的默克尔哈希树;将默克尔哈希树存入区块结构,得到完整区块。
在一些具体实例中,分块函数表示为:2m,多个文件块以数组的方式表示为C=(b1,b2,...,b2m),其中,C表示密文文件,b2m表示第2m个文件块,2m中的m是由哈希函数处理要求所决定的。
在一些具体实例中,采用预设整合条件依序将2m个文件块整合在默克尔树(Merkle-Tree)中,预设整合条件可以是所有文件块在密文文件中的位置顺序,采用哈希函数hi=H(mi||1)对每个文件块进行哈希,再采用前述哈希函数对默克尔树中的每相邻两个哈希节点进行哈希,得到默克尔哈希树(Merkle-Hash-Tree)。
在一些具体实例中,如图2所示为区块结构,区块结构包括文件头和文件体,区块头包括版本号、父区块头哈希值、Merkle根、时间戳、校验码、区块类型、加密级别、访问控制矩阵和其他信息,区块体包括默克尔树。
版本号,主要用于各个云存储网络节点识别当前使用的协议版本、数据结构和区块生成算法等,以及根据更新版本号升级和迭代行区块链网络。
父区块头哈希值,主要用于存储文件块构成的根节点,以防篡改及完整性校验文件。
时间戳,主要用于区块的确认,防止区块链网络中的恶意篡改,各个云存储网络节点只接收一定时间范围的区块。
校验码,主要用于简单校验区块头,可以CRC校验码对区块头进行计算,生成校验码,确保简单校验区块头。
区块类型,主要用于扩展区块且支持存储不同的区块体,除了默克尔树,还可以基于不同密码学工具整合文件,提供安全保障。
加密级别,主要用于标识当前区块所使用的加密等级,针对具有不同安全需求的数据提供不同级别的安全加密服务。
访问控制矩阵,主要用于记录不同用户和节点对当前区块可执行的操作权限,从而进一步提升区块链网络的整体访问的安全性。
其他信息,主要用于未来对区块链的升级,作保留字段使用。
默克尔树是包含各个文件块的完全二叉树所构成的森林,在默克尔树中,任何一个非叶子结点都存储有其子节点哈希后的逻辑或运算的结果值,对于其叶子结点,直接存储完整文件块,采用SHA256函数计算完整文件块的哈希值,构成完整的哈希树结构,将所有文件块组织在一起,构成一个完整文件。
基于默克尔树的特性,只要任何一个子节点的文件块内容发生了变化,那么该子节点的双亲及祖先节点都会累计发生变化,直到区块头所存储的Merkle根,很容易发现和定位发生变化的文件块。
作为可选的实施方式,非记录权节点验证完整区块是否可信,具体包括:从完整区块中查找出第一哈希值;采用哈希算法对完整区块中的文件体进行计算,得到第二哈希值;基于第一哈希值与第二哈希值验证文件体的可信性。
在一些具体实例中,若第一哈希值与第二哈希值匹配,确定存储在文件体中的文件块具有完整性和合法性,否则确定存储在文件体中的文件块不具有完整性和合法性,如此实现检验文件体的可信性。
实施例二
如图3所示,本发明实施例的另一种基于区块链的可信云存储方法,该方法包括:
步骤310、请求节点将用于唯一标识待加密文件的文件标识信息发送至区块链网络;
步骤320、任一云存储服务器从区块链网络接收文件标识信息,且基于文件标识信息去重检验是否存在待加密文件,若否,则通过区块链网络向请求节点反馈用于指示对应的云存储服务器中不存在待加密文件的第一状态消息,若是,则通过区块链网络向请求节点反馈用于指示对应的云存储服务器已存在待加密文件的第二状态信息;
步骤330、当请求节点从区块链网络接收到第一状态信息时,请求节点基于收敛加密模型对待加密文件进行加密,得到密文文件,且将密文文件上传给接入区块链网络的缓存节点;或者,当请求节点从区块链网络接收到第二状态信息时,请求节点停止加密待加密文件;
步骤340、接入区块链网络的至少两个云存储服务器共识协定出记录权节点和非记录权节点;
步骤350、记录权节点从区块链网络接收密文文件,且基于密文文件构建完整区块,以及将完整区块发布至区块链网络;
步骤360、非记录权节点从区块链网络接收完整区块,且验证完整区块是否可信,若是,则将完整区块加入区块链,若否,则停止将完整区块加入区块链。
在一些具体实例中,文件标识信息包括文件标识符,文件标识符IDf表示为:IDf=SHA1(F),其中,SHA1()表示安全散列函数,f表示待加密文件F的标识。
在一些具体实例中,通过判断文件标识信息在文件账本中是否具有唯一性来去重检验待加密文件,例如:“if IDf is unique........else”可以判断文件标识信息在文件账本中是否具有唯一性;若文件标识信息在文件账本中具有唯一性,表示服务器中不存在待加密文件,若文件标识信息在文件账本中具有非唯一性,表示服务器中存在待加密文件。
在一些具体实例中,当接收到第二状态信息时,停止从上传文件标识信息到加密待加密文件的过程,开始记录将用户元信息记录在区块账本中,用户元信息包括用户标识和时间等。
作为可选的实施方式,请求节点将密文文件上传给接入区块链网络的缓存节点,具体包括:基于用户元信息和待加密文件生成请求数据包;采用第一安全哈希函数对请求数据包和安全参数进行计算,得到请求哈希值;采用第二安全哈希函数对请求数据包进行计算,得到云存储服务器的IP地址;将用户元信息、待加密文件和IP地址共同上传给缓存节点。
在一些具体实例中,请求数据包request表示为:request=Format(Cf,META),请求哈希值rkey表示为:rkey=RequestHash(1k,request),IP地址serverIP表示为:serverIP=RequestServerHash(request),其中,Format()表示数据包构建函数,Cf表示密文文件,META表示用户元信息,RequestHash()表示第一安全哈希函数,1k表示安全参数,RequestServerHash()表示第二安全哈希函数。
在一些具体实例中,采用上传函数UploadFile(Cf,META,serverIP)上传用户元信息META、待加密文件Cf和IP地址serverIP,采用记录函数RecordUserInfo(META)记录用户元信息。
作为可选的实施方式,收敛加密模型包括密钥加密函数和文件加密函数,请求节点采用收敛加密模型对待加密文件进行加密,得到密文文件,具体包括:应用密钥加密函数对待加密文件进行加密,得到文件密钥;应用文件加密函数对待加密文件和文件密钥进行加密,得到密文文件。
在一些具体实例中,文件密钥kf表示为:kf=KeyGen(1k,F),密文文件Cf表示为:Cf=Encrypt(kf,F),其中,KeyGen()表示密钥加密函数,Encrypt()表示文件加密函数,如此通过收敛加密模型(CE)实现强加密文件,同时可以保留文件的可去重性。
实施例三
如图4所示,本发明实施例的另一种基于区块链的可信云存储方法,该方法包括:
步骤410、接入区块链网络的至少两个云存储服务器共识协定出记录权节点和非记录权节点;
步骤420、记录权节点从区块链网络接收密文文件,且基于密文文件构建完整区块,以及将完整区块发布至区块链网络;
步骤430、非记录权节点从区块链网络接收完整区块,且验证完整区块是否可信,若是,则将完整区块加入区块链,若否,则停止将完整区块加入区块链;
步骤440、请求节点基于请求哈希值确定任一所述云存储服务器在哈希环上的IP地址,基于IP地址将文件访问请求发送至区块链网络;
步骤450、记录权节点当从区块链网络接收到文件访问请求时通过区块链网络向非记录权节点发送网络请求;
步骤460、当非记录权节点从区块链网络接收到文件访问请求时,非记录权节点通过区块链网络向请求节点反馈与区块链对应的文件账本;或者,当非记录权节点从区块链网络接收到网络请求时,非记录权节点对文件账本进行简单访问身份验证,且在验证通过时通过区块链网络向请求节点反馈文件账本。
区块链具备防篡改、防泄漏、透明和可追溯的特点,请求节点不再需要存储完整性校验标签,降低了请求节点的计算量,非记录权节点只需要通过简单访问身份验证(SAA)即可实现快速、简单地对文件账本进行完整性校验,保证了区块链网络中存在一定冗余备份和文件的实时响应性。
实施例四
如图5所示,本发明实施例的另一种基于区块链的可信云存储方法,该方法包括:
步骤510、请求节点将用于唯一标识待加密文件的文件标识信息发送至区块链网络;
步骤520、任一云存储服务器从区块链网络接收文件标识信息,且基于文件标识信息去重检验是否存在待加密文件,若否,则通过区块链网络向请求节点反馈用于指示对应的云存储服务器中不存在待加密文件的第一状态消息,若是,则通过区块链网络向请求节点反馈用于指示对应的云存储服务器已存在待加密文件的第二状态信息;
步骤530、当请求节点从区块链网络接收到第一状态信息时,请求节点基于收敛加密模型对待加密文件进行加密,得到密文文件,且将密文文件上传给接入区块链网络的缓存节点;或者,当请求节点从区块链网络接收到第二状态信息时,请求节点停止加密待加密文件;
步骤540、接入区块链网络的至少两个云存储服务器共识协定出记录权节点和非记录权节点;
步骤550、记录权节点从区块链网络接收密文文件,且基于密文文件构建完整区块,以及将完整区块发布至区块链网络;
步骤560、非记录权节点从区块链网络接收完整区块,且验证完整区块是否可信,若是,则将完整区块加入区块链,若否,则停止将完整区块加入区块链;
步骤570、请求节点基于请求哈希值确定任一云存储服务器在哈希环上的IP地址,基于IP地址将文件访问请求发送至区块链网络;
步骤580、当记录权节点从区块链网络接收到文件访问请求时,记录权节点通过区块链网络向非记录权节点发送网络请求;
步骤590、当非记录权节点从区块链网络接收到文件访问请求时,非记录权节点通过区块链网络向请求节点反馈与区块链对应的文件账本;或者,当非记录权节点从区块链网络接收到网络请求时,非记录权节点对文件账本进行简单访问身份验证,且在验证通过时通过区块链网络向请求节点反馈文件账本。
实施例五
如图6所示,本发明实施例的一种基于区块链的可信云存储系统,包括:接入区块链网络的至少两个云存储服务器,用于共识协定出记录权节点和非记录权节点;记录权节点,用于从区块链网络接收密文文件,且基于密文文件构建完整区块,以及将完整区块发布至区块链网络;非记录权节点,用于从区块链网络接收完整区块,且验证完整区块是否可信,若是,则将完整区块加入区块链,若否,则停止将完整区块加入区块链。
任一云存储服务器,具体用于采用性能贡献计算公式对性能向量和权重向量进行计算,得到性能贡献值,且统计应用代币拥有量,以及基于性能贡献值、应用代币拥有量和委托权益证明协议选举出至少一个投票节点。
至少一个投票节点,用于基于一致性哈希策略从至少两个云存储服务器中选择出记录权节点,且将不同于记录权节点的云存储服务器确定为非记录权节点。
性能贡献计算公式具体为:
Si=k1×Ci+k2×Di+Mi×k3+Ti×k4+Ri×k5
其中,Si表示第i个云存储服务器的性能贡献值,Ci表示第i个云存储服务器在设定时段内的CPU主频性能,Di表示第i个云存储服务器的空闲磁盘占比,Mi表示第i个云存储服务器的内存使用占比,Ti表示第i个云存储服务器接入区块链网络的总计时,Ri表示第i个云存储服务器的平均响应时间,k1表示与CPU主频性能Ci对应的权重,k2表示与空闲磁盘占比Di对应的权重,k3表示与内存使用占比Mi对应的权重,k4表示与总计时Ti对应的权重,k5表示与平均响应时间Ri对应的权重。
至少一个投票节点,具体用于获取节点哈希值;基于节点哈希值确定在投票节点所属一致性哈希域上的任一云存储服务器;针对任一云存储服务器收集负载参数;基于负载因子计算公式对负载参数进行计算,得到负载因子;将负载因子和性能贡献值组合为综合因子;应用随机函数生成随机数;从综合因子中分解出负载因子和性能贡献值;基于总值计算公式对随机数、负载因子和性能贡献值进行求和,得到总值;基于总值将与节点哈希值对应的云存储服务器确定为记录权节点。
记录权节点,具体用于应用分块函数对密文文件进行分块,得到多个文件块;应用预设整合条件将所有文件块整合为默克尔树,基于默克尔树构建具有完整性的默克尔哈希树;将默克尔哈希树存入区块结构,得到完整区块。
非记录权节点,具体用于从完整区块中查找出第一哈希值;采用哈希算法对完整区块中的文件体进行计算,得到第二哈希值;基于第一哈希值与第二哈希值验证文件体的可信性。
在一些具体实例中,如图6所示,在一致性哈希环的初始化过程,云存储服务器将自身的IP地址和安全系数调用统一哈希函数ServerHash(),将自身映射到一致性哈希环上的一致性哈希域上,一致性哈希环的大小可以为2n,以等待接收来自用户所持有的请求节点发送的文件访问请求,并且请求节点调用统一接口和第一安全哈希函数RequestHash(),统一接口封装请求,第一安全哈希函数将请求节点映射到云服务节点所属的一致性哈希域上。
实施例六
如图7所示,本发明实施例的另一种基于区块链的可信云存储系统,包括:请求节点、缓存节点和至少两个云存储服务器。
请求节点,用于将用于唯一标识待加密文件的文件标识信息发送至区块链网络;
任一云存储服务器,用于从区块链网络接收文件标识信息,且基于文件标识信息去重检验是否存在待加密文件,若否,则通过区块链网络向请求节点反馈用于指示对应的云存储服务器中不存在待加密文件的第一状态消息,若是,则通过区块链网络向请求节点反馈用于指示对应的云存储服务器已存在待加密文件的第二状态信息。
请求节点,还用于当从区块链网络接收到第一状态信息时,基于收敛加密模型对待加密文件进行加密,得到密文文件,且将密文文件上传给接入区块链网络的缓存节点;或者,当从区块链网络接收到第二状态信息时,停止加密待加密文件。
接入区块链网络的至少两个云存储服务器,具体用于共识协定出记录权节点和非记录权节点。
记录权节点,具体用于从区块链网络接收密文文件,且基于密文文件构建完整区块,以及将完整区块发布至区块链网络。
非记录权节点,具体用于从区块链网络接收完整区块,且验证完整区块是否可信,若是,则将完整区块加入区块链,若否,则停止将完整区块加入区块链。
请求节点,还用于基于请求哈希值确定任一云存储服务器在哈希环上的IP地址,基于IP地址将文件访问请求发送至区块链网络。
记录权节点,还用于当从区块链网络接收到文件访问请求时,通过区块链网络向非记录权节点发送网络请求。
非记录权节点,还用于当从区块链网络接收到文件访问请求时,通过区块链网络向请求节点反馈与区块链对应的文件账本;或者,当从区块链网络接收到网络请求时,对文件账本进行简单访问身份验证,且在验证通过时通过区块链网络向请求节点反馈文件账本。
在一些具体实例中,请求节点可以是第一客户端,缓存节点可以是距离第一客户端最近的第二客户端,哈希环包括一致性哈希环,如图7所示,在一致性哈希环上包括云存储服务器s1、s2、s3和s4,以及请求节点r1、r2、r3和r4,缓存节点未在一致性哈希环上(图7中未示出)。
读者应理解,在本说明书的描述中,参考术语“方面”、“作为可选的实施方式”或“一些具体实例”等的描述意指结合该实施例或示例描述的具体特征、步骤或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、步骤或者特点可以在任一或多个具体实例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同具体实例或示例以及不同实施例或示例的特征进行结合或/和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (8)
1.一种基于区块链的可信云存储方法,其特征在于,包括:
接入区块链网络的至少两个云存储服务器共识协定出记录权节点和非记录权节点;
所述记录权节点从所述区块链网络接收密文文件,且基于所述密文文件构建完整区块,以及将所述完整区块发布至区块链网络;
所述非记录权节点从所述区块链网络接收所述完整区块,且验证所述完整区块是否可信,若是,则将所述完整区块加入区块链,若否,则停止将所述完整区块加入所述区块链;
所述接入区块链网络的至少两个云存储服务器共识协定出记录权节点和非记录权节点,具体包括:
任一所述云存储服务器采用性能贡献计算公式对性能向量和权重向量进行计算,得到性能贡献值,且统计应用代币拥有量,以及基于所述性能贡献值、所述应用代币拥有量和委托权益证明协议选举出至少一个投票节点;
至少一个所述投票节点基于一致性哈希策略从至少两个所述云存储服务器中选择出所述记录权节点,且将不同于所述记录权节点的所述云存储服务器确定为所述非记录权节点;
所述一致性哈希策略包括负载因子计算公式、随机函数和总值计算公式,至少一个所述投票节点基于一致性哈希策略从至少两个所述云存储服务器中选择出所述记录权节点,具体包括:
获取节点哈希值;
基于所述节点哈希值确定在所述投票节点所属一致性哈希域上的任一所述云存储服务器;
针对任一所述云存储服务器收集负载参数;
基于所述负载因子计算公式对所述负载参数进行计算,得到负载因子;
将所述负载因子和所述性能贡献值组合为综合因子,所述综合因子用于表征对应所述云存储服务器的一致性哈希性能;
应用所述随机函数生成随机数;
从所述综合因子中分解出所述负载因子和所述性能贡献值;
基于所述总值计算公式对所述随机数、所述负载因子和所述性能贡献值进行求和,得到总值;
基于所述总值将与所述节点哈希值对应的所述云存储服务器确定为所述记录权节点。
2.根据权利要求1所述的基于区块链的可信云存储方法,其特征在于,在所述记录权节点基于所述密文文件构建完整区块之前,还包括:
请求节点将用于唯一标识待加密文件的文件标识信息发送至所述区块链网络;
任一所述云存储服务器从所述区块链网络接收所述文件标识信息,且基于所述文件标识信息去重检验是否存在所述待加密文件,若否,则通过所述区块链网络向所述请求节点反馈用于指示对应的所述云存储服务器中不存在所述待加密文件的第一状态信 息,若是,则通过所述区块链网络向所述请求节点反馈用于指示对应的所述云存储服务器中已存在所述待加密文件的第二状态信息;
当所述请求节点从所述区块链网络接收到所述第一状态信息时,所述请求节点基于收敛加密模型对所述待加密文件进行加密,得到所述密文文件,且将所述密文文件上传给接入所述区块链网络的缓存节点;
当所述请求节点从所述区块链网络接收到所述第二状态信息时,所述请求节点停止加密所述待加密文件。
3.根据权利要求2所述的基于区块链的可信云存储方法,其特征在于,所述收敛加密模型包括密钥加密函数和文件加密函数,当所述请求节点从所述区块链网络接收到所述第一状态信息时,所述请求节点基于收敛加密模型对所述待加密文件进行加密,得到所述密文文件,具体包括:
所述请求节点应用所述密钥加密函数对所述待加密文件进行加密,得到文件密钥;
所述请求节点应用所述文件加密函数对所述待加密文件和所述文件密钥进行加密,得到所述密文文件。
4.根据权利要求1所述的基于区块链的可信云存储方法,其特征在于,所述性能贡献计算公式具体为:
Si=k1×Ci+k2×Di+Mi×k3+Ti×k4+Ri×k5
其中,Si表示第i个所述云存储服务器的所述性能贡献值,Ci表示第i个所述云存储服务器在设定时段内的CPU主频性能,Di表示第i个所述云存储服务器的空闲磁盘占比,Mi表示第i个所述云存储服务器的内存使用占比,Ti表示第i个所述云存储服务器接入所述区块链网络的总计时,Ri表示第i个所述云存储服务器的平均响应时间,k1表示与所述CPU主频性能Ci对应的权重,k2表示与所述空闲磁盘占比Di对应的权重,k3表示与所述内存使用占比Mi对应的权重,k4表示与所述总计时Ti对应的权重,k5表示与所述平均响应时间Ri对应的权重。
5.根据权利要求1所述的基于区块链的可信云存储方法,其特征在于,所述记录权节点基于所述密文文件构建完整区块,具体包括:
应用分块函数对所述密文文件进行分块,得到多个文件块;
应用预设整合条件将所有所述文件块整合为默克尔树,基于所述默克尔树构建具有完整性的默克尔哈希树;
将所述默克尔哈希树存入区块结构,得到所述完整区块。
6.根据权利要求1所述的基于区块链的可信云存储方法,其特征在于,所述非记录权节点验证所述完整区块是否可信,具体包括:
从所述完整区块中查找出第一哈希值;
采用哈希算法对所述完整区块中的文件体进行计算,得到第二哈希值;
基于所述第一哈希值与所述第二哈希值验证所述文件体的可信性。
7.根据权利要求1-6任一项所述的基于区块链的可信云存储方法,其特征在于,在所述非记录权节点将所述完整区块加入区块链之后,还包括:
请求节点基于请求哈希值确定任一所述云存储服务器在哈希环上的IP地址,基于所述IP地址将文件访问请求发送至所述区块链网络;
当所述记录权节点从所述区块链网络接收到所述文件访问请求时,所述记录权节点通过所述区块链网络向所述非记录权节点发送网络请求;
当所述非记录权节点从所述区块链网络接收到所述文件访问请求时,所述非记录权节点通过所述区块链网络向所述请求节点反馈与所述区块链对应的文件账本;
当所述非记录权节点从所述区块链网络接收到所述网络请求时,所述非记录权节点对所述文件账本进行简单访问身份验证,且在验证通过时通过所述区块链网络向所述请求节点反馈所述文件账本。
8.一种基于区块链的可信云存储系统,其特征在于,包括:
接入区块链网络的至少两个云存储服务器,用于共识协定出记录权节点和非记录权节点;
所述记录权节点,用于从所述区块链网络接收密文文件,且基于所述密文文件构建完整区块,以及将所述完整区块发布至区块链网络;
所述非记录权节点,用于从所述区块链网络接收所述完整区块,且验证所述完整区块是否可信,若是,则将所述完整区块加入区块链,若否,则停止将所述完整区块加入所述区块链;
所述共识协定出记录权节点和非记录权节点,具体包括:
任一所述云存储服务器采用性能贡献计算公式对性能向量和权重向量进行计算,得到性能贡献值,且统计应用代币拥有量,以及基于所述性能贡献值、所述应用代币拥有量和委托权益证明协议选举出至少一个投票节点;
至少一个所述投票节点基于一致性哈希策略从至少两个所述云存储服务器中选择出所述记录权节点,且将不同于所述记录权节点的所述云存储服务器确定为所述非记录权节点;
所述一致性哈希策略包括负载因子计算公式、随机函数和总值计算公式,至少一个所述投票节点基于一致性哈希策略从至少两个所述云存储服务器中选择出所述记录权节点,具体包括:
获取节点哈希值;
基于所述节点哈希值确定在所述投票节点所属一致性哈希域上的任一所述云存储服务器;
针对任一所述云存储服务器收集负载参数;
基于所述负载因子计算公式对所述负载参数进行计算,得到负载因子;
将所述负载因子和所述性能贡献值组合为综合因子,所述综合因子用于表征对应所述云存储服务器的一致性哈希性能;
应用所述随机函数生成随机数;
从所述综合因子中分解出所述负载因子和所述性能贡献值;
基于所述总值计算公式对所述随机数、所述负载因子和所述性能贡献值进行求和,得到总值;
基于所述总值将与所述节点哈希值对应的所述云存储服务器确定为所述记录权节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910198624.1A CN110011981B (zh) | 2019-03-15 | 2019-03-15 | 一种基于区块链的可信云存储方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910198624.1A CN110011981B (zh) | 2019-03-15 | 2019-03-15 | 一种基于区块链的可信云存储方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110011981A CN110011981A (zh) | 2019-07-12 |
CN110011981B true CN110011981B (zh) | 2021-06-29 |
Family
ID=67167252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910198624.1A Active CN110011981B (zh) | 2019-03-15 | 2019-03-15 | 一种基于区块链的可信云存储方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110011981B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110474877A (zh) * | 2019-07-16 | 2019-11-19 | 盐城师范学院 | 一种基于大数据技术的数字内容交互方法 |
CN110689344B (zh) * | 2019-08-30 | 2021-04-09 | 创新先进技术有限公司 | 在区块链中并发执行交易的方法和装置 |
CN110971393B (zh) * | 2019-11-29 | 2020-11-06 | 中南大学 | 基于区块链动态社交外包数据关键词查询验证方法及装置 |
CN111177107B (zh) * | 2019-12-31 | 2023-07-25 | 百度在线网络技术(北京)有限公司 | 基于区块链的文件处理方法、装置、设备和存储介质 |
CN111447069B (zh) * | 2020-03-23 | 2021-10-26 | 腾讯科技(深圳)有限公司 | 一种基于区块链的低频访问数据处理方法 |
CN111783141B (zh) * | 2020-07-02 | 2021-08-06 | 深圳市腾盟技术有限公司 | 基于区块链的数据存储方法、装置、设备及存储介质 |
CN112257048B (zh) * | 2020-12-21 | 2021-10-08 | 南京韦科韬信息技术有限公司 | 一种信息安全防护的方法及装置 |
CN112788122A (zh) * | 2020-12-30 | 2021-05-11 | 普华云创科技(北京)有限公司 | 基于区块链的分布式可信云节点的选择和校验方法及系统 |
CN112699406A (zh) * | 2020-12-30 | 2021-04-23 | 浙江飞图影像科技有限公司 | 基于区块链的医疗影像数据安全管理方法和系统 |
CN112785408A (zh) * | 2021-02-26 | 2021-05-11 | 中国工商银行股份有限公司 | 基于哈希的对账方法及装置 |
CN113037824B (zh) * | 2021-03-02 | 2022-04-08 | 山东大学 | 一种面向云计算的高性能区块链的构建方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106357405A (zh) * | 2016-09-19 | 2017-01-25 | 弗洛格(武汉)信息科技有限公司 | 一种基于区块链技术一致性算法的数据管理方法及系统 |
CN108182636A (zh) * | 2018-01-30 | 2018-06-19 | 杨显波 | 基于贡献的区块链共识机制 |
CN108768607A (zh) * | 2018-05-14 | 2018-11-06 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 一种基于区块链的投票方法、装置、设备及介质 |
CN109032802A (zh) * | 2018-07-26 | 2018-12-18 | 国信优易数据有限公司 | 一种区块链系统和管理方法 |
CN109194482A (zh) * | 2018-08-03 | 2019-01-11 | 中山大学 | 一种基于信誉证明的区块链共识方法 |
CN109325746A (zh) * | 2018-08-29 | 2019-02-12 | 华中科技大学 | 一种基于存储的区块链激励方法、区块链网络及存储网络 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10733602B2 (en) * | 2016-09-29 | 2020-08-04 | Microsoft Technology Licensing, Llc. | Heartbeats and consensus in verifiable outsourced ledgers |
CN108462568B (zh) * | 2018-02-11 | 2021-08-06 | 西安电子科技大学 | 一种基于区块链的安全文件存储和共享方法、云存储系统 |
CN109165092B (zh) * | 2018-07-10 | 2021-07-20 | 矩阵元技术(深圳)有限公司 | 一种基于有效算力贡献的共识方法、装置及系统 |
CN109242484A (zh) * | 2018-08-09 | 2019-01-18 | 玄章技术有限公司 | 一种区块链的共识激励方法 |
-
2019
- 2019-03-15 CN CN201910198624.1A patent/CN110011981B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106357405A (zh) * | 2016-09-19 | 2017-01-25 | 弗洛格(武汉)信息科技有限公司 | 一种基于区块链技术一致性算法的数据管理方法及系统 |
CN108182636A (zh) * | 2018-01-30 | 2018-06-19 | 杨显波 | 基于贡献的区块链共识机制 |
CN108768607A (zh) * | 2018-05-14 | 2018-11-06 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 一种基于区块链的投票方法、装置、设备及介质 |
CN109032802A (zh) * | 2018-07-26 | 2018-12-18 | 国信优易数据有限公司 | 一种区块链系统和管理方法 |
CN109194482A (zh) * | 2018-08-03 | 2019-01-11 | 中山大学 | 一种基于信誉证明的区块链共识方法 |
CN109325746A (zh) * | 2018-08-29 | 2019-02-12 | 华中科技大学 | 一种基于存储的区块链激励方法、区块链网络及存储网络 |
Non-Patent Citations (3)
Title |
---|
区块链共识算法的发展现状与展望;袁勇等;《自动化学报》;20181130;第44卷(第11期);第2011-2022页 * |
基于区块链的可信电子券系统的设计与实现;刘亚辉;《中国优秀硕士学位论文全文数据库 信息科技辑》;20181115;全文 * |
袁勇等.区块链共识算法的发展现状与展望.《自动化学报》.2018,第44卷(第11期),第2011-2022页. * |
Also Published As
Publication number | Publication date |
---|---|
CN110011981A (zh) | 2019-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110011981B (zh) | 一种基于区块链的可信云存储方法及系统 | |
US10178069B2 (en) | Systems and methods for managing top-level domain names using consortium blockchain | |
CN112910840B (zh) | 一种基于联盟区块链的医疗数据存储共享方法及系统 | |
CN109829326B (zh) | 基于区块链的跨域认证与公平审计去重云存储系统 | |
CN107295002B (zh) | 一种云端存储数据的方法及服务器 | |
CN109327481B (zh) | 一种基于区块链的全网统一在线认证方法及系统 | |
CN110647503A (zh) | 一种分布式存储方法及装置 | |
JP5075236B2 (ja) | サーバーレス分散ファイルシステムにおけるセキュアリカバリ | |
US11394556B2 (en) | Blockchain-enabled computing | |
JP4263421B2 (ja) | サーバレス分散ファイルシステム | |
Nayak et al. | SEPDP: Secure and efficient privacy preserving provable data possession in cloud storage | |
CN102457555A (zh) | 一种分布式存储的安全系统及方法 | |
US9424433B2 (en) | Data storage management | |
Giri et al. | A survey on data integrity techniques in cloud computing | |
Li et al. | Using blockchain for data auditing in cloud storage | |
Gudeme et al. | Review of remote data integrity auditing schemes in cloud computing: taxonomy, analysis, and open issues | |
CN112733204A (zh) | 一种基于区块链和多重签名技术的防伪溯源方法 | |
Ahmed et al. | Toward fine‐grained access control and privacy protection for video sharing in media convergence environment | |
Tang et al. | Lightweight authentication of freshness in outsourced key-value stores | |
CN104182418A (zh) | 节点元数据获取方法与装置 | |
Hwang et al. | Real-time proof of violation for cloud storage | |
Ali et al. | Secure provable data possession scheme with replication support in the cloud using Tweaks | |
Yan et al. | Storage optimization for certificates in blockchain based PKI system | |
Hwang et al. | Efficient real-time auditing and proof of violation for cloud storage systems | |
Thakur et al. | Data integrity techniques in cloud computing: an analysis |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230412 Address after: Room 701, No. 2 Fengyuan Road (University Science Park), Luojiaqiao Street Office, Daye City, Huangshi City, Hubei Province, 435100 Patentee after: Hubei Meihe Big Data Co.,Ltd. Address before: 432000 No. 272 traffic Avenue, Hubei, Xiaogan Patentee before: HUBEI ENGINEERING University |
|
TR01 | Transfer of patent right |