CN116467388A - 一种基于区块链的共享文件一致性维护系统及方法 - Google Patents
一种基于区块链的共享文件一致性维护系统及方法 Download PDFInfo
- Publication number
- CN116467388A CN116467388A CN202310408294.0A CN202310408294A CN116467388A CN 116467388 A CN116467388 A CN 116467388A CN 202310408294 A CN202310408294 A CN 202310408294A CN 116467388 A CN116467388 A CN 116467388A
- Authority
- CN
- China
- Prior art keywords
- file
- consistency check
- consistency
- module
- file operation
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000012423 maintenance Methods 0.000 claims abstract description 15
- 238000012795 verification Methods 0.000 claims description 31
- 238000012986 modification Methods 0.000 claims description 29
- 230000004048 modification Effects 0.000 claims description 29
- 230000007246 mechanism Effects 0.000 claims description 12
- 238000012544 monitoring process Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 7
- 238000011084 recovery Methods 0.000 claims description 6
- 238000007792 addition Methods 0.000 claims description 4
- 238000012217 deletion Methods 0.000 claims description 4
- 230000037430 deletion Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 229910052739 hydrogen Inorganic materials 0.000 description 2
- 230000008531 maintenance mechanism Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
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/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
- 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/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- 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
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及了一种基于区块链的共享文件一致性维护系统及方法,包含以下模块:前端入口模块、服务器后端模块、数据共享模块、历史日志模块、一致性检验模块。本发明主要实现了在多节点网络的情况下,通过回溯日志操作哈希值并与区块链上保存的操作记录对比的方式,保证文件与区块链上记录的操作信息的一致性,节点可通过该系统验证所使用文件的正确性来检验共享文件是否经过恶意篡改。
Description
技术领域
本发明涉及一种基于区块链的共享文件一致性维护系统及方法,具体来说是使用区块链技术,利用区块链上的可追溯性和不可篡改性来保证共享文件一致性的方法,属于信息技术领域。
背景技术
随着互联网技术的发展,人们的生活与计算机技术逐渐密不可分,日常工作生活等都会使用计算机,这样一来,人们在计算机上存储文件的安全性就变得尤为重要。
文件安全是在文件的整个生命周期中保护文件内部数字信息免受未经授权的访问、损坏或盗窃的做法,如果文件安全不能很好地实施,组织和个人的信息资产将会收到网络犯罪活动的威胁,导致重要信息遭到篡改或盗窃,造成不可弥补的损失。
文件安全涉及到了很多方面,包括硬件的物理安全到管理和访问控制,以及应用程序的逻辑安全性等,文件安全正在深刻改变当今企业运营和竞争方式的方方面面,企业创建、操作和存储庞大数据量不断增长,并推动了对文件安全治理的更高需求,计算环境比以往更加复杂,通常跨越公共云、企业数据中心以及从物联网(IoT)传感器到机器人和远程服务器等众多边缘设备。这种复杂性导致攻击面扩大,更难以监控和保护,与此同时,人们对文件隐私的认识和需求也越来越大,相关法案也不断出台,这更加迫使业界找到更加有效的文件安全保护的方法。
当今绝大多数企业都有着庞大的中心化数据库,这些数据库往往涉及到了巨大的利益,为了保护这些利益,企业每年都需要花费大量的资金来维护数据库中的文件安全,然而这些做法并不能很好地解决问题,只使用中心化网络这种架构模式是很容易被攻击的,网络黑客的攻击成本极低,无论是多么复杂的安全防护逻辑,都会在成百上千上万次的网络攻击中出现漏洞,也因为这样的原因,很多企业如银行,每年都会因黑客网络攻击损失大量的资金。
针对上述集中化的文件安全管理的固有弊端,本发明提出了一种基于区块链的共享文件一致性维护系统及方法,以降低文件安全维护的成本及提高可靠性,区块链是近些年来发展起来的新技术,有着基于密码学的强大的去中心化能力以及维护能力,本发明使用区块链进行共享文件一致性的维护,克服了传统中心化管理数据的弊端,并提供了在区块链分布式环境中,对文件的隐私加密保护的方法。并且这种维护文件一致性的策略不需要像中心化管理一样付出巨大的成本来构建防护措施,这种基于区块链的方法文件的一致性是由区块链共识机制本身保证的,只要共识机制的安全界限不被攻破,区块链网络中的文件是永久性的,也就是说完全可信的,相比于中心化管理,通过这种方法进行文件的一致性的维护大多数情况下都更加有效,虽然分布式环境看似使用很多主机,成本较高,但是实际上工作的大部分都是由系统中的文件操作节点进行的,其他节点称为一致性检验节点,只负责简单的文件验证工作,总体成本较中心化管理是更低的。
科学研究方面,满足了绝大多数情况下的文件安全需要,提供了一个低成本、效率高的文件一致性维护方案,为文件安全管理提供了实质性的帮助。
发明内容
本发明技术解决问题:克服现有技术的不足,提供了一种基于区块链的共享文件一致性维护系统及方法,使用区块链技术完成共享文件操作日志的永久性维护,并设计了在保证数据隐私情况下数据一致性的验证方法。
本发明采用如下的技术方案:
第一方面,本发明提供一种基于区块链共享文件一致性维护系统,包括:前端入口模块、服务器后端模块、文件共享模块、历史日志模块和一致性检验模块;其中:
前端入口模块:接收用户的两种请求,一种是一致性检验请求,另一种是文件操作的请求;文件操作包括文件的增加、删除、修改和查询;对于普通用户,只能查看文件操作的内容,且仅能向服务器后端模块发送一致性检验请求,没有文件操作的权限;管理员用户能够查看操作文件的内容及相应的历史日志,并且能够向服务器后端模块发送文件操作的请求;同时将服务器后端模块的执行结果进行显示,执行结果即执行完的一致性检验请求和文件操作的请求;
服务器后端模块:接收前端入口模块发送来的一致性检验请求和文件操作的请求;对于一致性检验请求,根据历史日志模块的历史日志,将一致性检验请求和历史日志发送给一致性检验模块;对于文件操作的请求,进行文件操作,根据文件操作生成对应上传到区块链上的文件操作信息,所述文件操作信息指文件标识、文件操作、文件路径和修改时间,如果为文件操作为修改,则所述文件操作信息还包括修改内容;调用文件共享模块将所述文件操作信息上传到区块链上,同时将文件操作信息发送至历史日志模块;将一致性检验请求和文件操作的请求的执行结果返回到前端入口模块;
文件共享模块,负责整个系统内部的文件共享:运行在系统中每个节点的设备上,对于系统中的两种节点分别执行不同的功能;所述两种节点分别为文件操作节点和一致性检验节点;对于文件操作节点,文件共享模块在收到服务器后端模块发送的文件操作信息后,将文件操作信息按照打包成区块,并将打包后的区块上传到区块链上,将该区块以及对应的历史日志中的文件操作日志一起发送给除该文件操作节点外的所有其他的节点;对于一致性检验节点,文件共享模块按照设定的时间间隔,对其他节点是否发送打包的区块进行检测,检测到其他节点发送的区块后,对收到的区块进行哈希值验证,并且返回验证结果,如果验证成功,则将该区块存储到本地的区块链账本中;如果验证失败,则文件共享模块向发送该区块的其他节点返回验证失败的信息;
历史日志模块:接收服务器后端模块发送来的文件操作信息,并存储到本地数据库中;同时向服务器后端模块发送历史日志;
一致性检验模块:运行在系统中每个节点的设备上,对于一致性检验节点和文件操作节点分别执行不同的功能;对于一致性检验节点,监听来自服务器后端模块发送的一致性检验请求和历史日志,通过一致性检验算法对文件操作的内容和历史日志进行比对验证,将验证后的执行结果返回到服务器后端模块;对于文件操作节点,利用投票共识机制的投票结果对最终的文件一致性进行判断;如果验证后的执行结果是失败,则通过备份数据库恢复文件,通过备份历史日志对文件复原,使文件恢复与区块链的一致性。
进一步,所述一致性检验模块中,一致性检验算法的具体实现如下:
(1)监听服务器后端模块发送一致性检验请求和历史日志;
(2)检验一致性检请求涉及的文件是否存在,如果不存在,直接结束;如果存在,则解析历史日志,将历史日志中记录的文件自创建以来所有文件操作取出作为一个列表,记为文件记录列表,将区块链上包含该文件的区块的记录从新到旧依次取出作为另一个列表,记为区块链记录列表;
(3)从文件记录列表中顺序取出一条历史日志,对一条历史日志中记录的文件标识、文件操作、文件路径和修改时间以及修改内容,进行拼接,得到一个字符串;
(4)从区块链记录列表中顺序取出区块的记录,将步骤(3)中生成的字符串和区块的记录中的内容进行比较,如果二者不一致,则返回文件不一致的结果;
(5)判断一条历史日志中记录的文件操作是否为增加,如果是,则返回文件一致的检验结果;否则,转到步骤(3)继续。
进一步,所述一致性检验模块中,投票共识机制的方式实现如下:
(1)一致性检验节点监听一致性检验请求,每个一致性检验节点收到请求后执行一致性检验算法,得到该一致性检验节点的检验结果;
(2)对于每一个一致性检验节点,初始化赞成票数为0,在该一致性检验节点得到检验结果后,将检验结果广播到其余一致性检验节点;
(3)对于每一个一致性检验节点,监听其余一致性检验节点发送的检验结果,如果是验证成功,则赞成票数加一,否则赞成票数保持不动;
(4)对于每一个一致性检验节点,检查自己的赞成票数,如果当前赞成票数大于一致性检验节点总数的2/3,则认为已达成共识,向文件操作节点发送达成共识信号;
(5)文件操作节点监听来自一致性检验节点的达成共识信号并计数,如果大于一致性检验节点总数的2/3,则投票结束,投票结果为文件一致性验证通过;否则投票结果为文件一致性验证不通过。
进一步,所述一致性检验模块中,通过备份历史日志对文件复原的具体实现如下:
(1)将备份历史日志进行列表化处理,得到历史日志的列表,按照历史日志的操作时间倒序排列该列表;
(2)如果该列表不为空,则按顺序从其中取出一条历史日志;
(3)解析历史日志内容,根据这一条历史日志,利用备份数据库进行一次文件恢复;
(4)如果恢复成功,继续取出下一条历史日志,进行下一次文件恢复;否则,结束。
第二方面,本发明提供一种基于区块链的共享数据一致性维护方法,步骤如下:
(1)对于管理员用户,能够通过前端入口模块查看操作文件的内容及相应的历史日志,并且能够向服务器后端模块发送文件操作的请求;对于普通用户,只能通过前端入口模块查看文件操作的内容,且仅能向服务器后端模块发送一致性检验请求,没有文件操作的权限;
(2)服务器后端模块监听用户发起的请求,包括一致性检验请求和文件操作的请求;
(3)根据历史日志模块的历史日志,将一致性检验请求和历史日志发送给一致性检验模块;对于文件操作的请求,进行文件操作,根据文件操作生成对应上传到区块链上的文件操作信息;调用文件共享模块将所述文件操作信息上传到区块链上,同时将文件操作信息发送至历史日志模块;将一致性检验请求和文件操作的请求的执行结果返回到前端入口模块;
(4)一致性检验模块运行在系统中每个节点的设备上,对于一致性检验节点,监听来自服务器后端模块发送的一致性检验请求和历史日志,通过一致性检验算法对文件操作的内容和历史日志进行比对验证;
(5)首先解析历史日志,将历史日志中记录的文件自创建以来所有文件操作取出作为一个列表,记为文件记录列表,将区块链上包含该文件的区块的记录从新到旧依次取出作为另一个列表,记为区块链记录列表;从文件记录列表中顺序取出一条历史日志,对一条历史日志中记录的文件操作类型和修改内容求取哈希值,得到文件操作类型哈希值和修改内容哈希值,将上述两个哈希值以及文件标识结合为一个字符串;从区块链记录列表中顺序取出区块的记录,将字符串和区块的记录中的内容进行比较,如果二者不一致,则返回文件不一致的结果;如果一致,则判断一条历史日志中记录的文件操作是否为创建文件,如果是,则返回文件一致的检验结果;
(6)对于文件操作节点,利用投票共识机制的投票结果对最终的文件一致性进行判断;在投票共识机制中,一致性检验节点监听一致性检验请求,每个一致性检验节点收到请求后执行一致性检验算法,得到该一致性检验节点的检验结果;对于每一个一致性检验节点,初始化赞成票数为0,在该一致性检验节点得到检验结果后,将检验结果广播到其余一致性检验节点;对于每一个一致性检验节点,监听其余一致性检验节点发送的检验结果,如果是验证成功,则赞成票数加一,否则赞成票数保持不动;同时每一个一致性检验节点会检查自己的赞成票数,如果当前赞成票数大于一致性检验节点总数的2/3,则认为已达成共识,向文件操作节点发送达成共识信号;文件操作节点监听来自一致性检验节点的达成共识信号并计数,如果大于一致性检验节点总数的2/3,则投票结束,投票结果为文件一致性验证通过;否则投票结果为文件一致性验证不通过;如果验证后的执行结果是失败,则通过备份数据库恢复文件,通过备份历史日志对文件复原,使文件恢复与区块链的一致性。
第三方面,本发明提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的计算机程序,执行时实现一种基于区块链的共享文件一致性维护系统或方法。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理执行时实现一种基于区块链的共享文件一致性维护系统或方法。
本发明与现有技术相比的优点在于:
(1)本发明设计了基于区块链的文件一致性维护机制,利用了区块链的去中心化、不可篡改和可追溯性的特质,实现了对于文件更改记录的记录,对于文件整体性及完整性的验证;相比于传统文件一致性维护机制,本发明能够抵抗数据篡改、恶意攻击等风险,具有良好的稳定性与安全性。
(2)本发明建立了一个基于区块链的文件一致性检验算法,改算法基于区块链技术,拓展性强,且利用了哈希技术,能够高效快速的完成文件的一致性检验。
(3)本发明针对传统文件维护算法易于遭受单点故障和拜占庭攻击等问题,提出了投票共识机制,利用区块链进行多节点合作,从而避免单点故障引发的问题,同时具有抗拜占庭攻击的优点。
附图说明
图1为本发明的系统架构图;
图2为本发明系统的服务器后端模块流程图;
图3为本发明系统的数据共享模块流程图;
图4位本发明系统的一致性检验模块流程图。
具体实施方式
下面给合附图及实施例对本发明进行详细说明。
如图1所示,为本发明的基于区块链的共享数据一致性维护系统包括:前端入口模块、服务器后端模块、数据共享模块、历史日志模块、一致性检验模块;
上述各模块的具体实现过程如下:
1、前端入口模块,如图1所示,该模块只和服务器后端模块交互,具体细节如下:
(1)前端入口模块会通用文本框接受用户输入的用户名username和密码password,核验通过后,校验用户的级别后,分别提供不同权限;
(2)普通用户只能查看文件操作的内容,前端入口模块仅向普通用户提供发送一致性检验请求的权限;当用户发起一致性检验请求时,前端入口模块将该请求转发到服务器后端模块;
(3)管理员对用户能够查看操作文件的内容及相应的历史日志,可以发起一致性检验请求和文件操作的请求,前端入口模块会转发到服务器后端模块;
(4)服务器后端模块对请求进行处理,得到处理结果后进行显示,提示成果或失败。
2、服务器后端模块,该模块是连接其他模块的中间模块,主要处理系统的主要控制逻辑,其主要流程如图2所示,具体细节如下:
(1)服务器后端模块接受前端入口模块发送的请求Q,按照[请求类型(长度8)|文件标识(长度128)|子类型操作(长度8)|自定义字段]的格式解析请求Q,根据请求Q的前8位解析出请求类型,解下来的128位解析为文件标识,随后的8位解析为子类型操作,剩余的其他位按自定义字段进行解析;
(2)如果是一致性检验请求,根据历史日志模块获取历史日志,将一致性检验请求和历史日志发送给一致性检验模块;
(3)解析请求Q,首先根据解析的子类型操作,进行文件操作,进行文件的增加、删除、修改或查询;其中增加操作即为按照解析出的文件标识,增加一个文件内容为自定义字段的新文件,其中修改操作即为按照自定义字段进行文件修改,例如:文件标识为NAME.txt,自定义字段为A--(-为自定义字段中的断位符号),子类型操作位增加,则增加一个文件标识为NAME.txt,内容为A的新文件;文件标识为NAME.txt,自定义字段为A-B(-为自定义字段中的断位符号),就是将文件NAME.txt中的内容A修改为B;
(4)根据文件操作生成对应上传到区块链上的文件操作信息I,所述文件操作信息指文件标识N、文件操作Op、文件路径P和修改时间T,如果为文件操作为修改,则所述文件操作信息还包括修改内容D;
(5)调用文件共享模块将文件操作信息i上传到区块链上,同时将文件操作信息i发送至历史日志模块;
(6)将一致性检验请求和文件操作的请求的执行结果返回到前端入口模块。
3、数据共享模块,主要负责与区块链部分进行交互,进行区块的上传、验证和下载,流程如图3所示:
(1)在第一次启动时,为每一个一致性检验节点创立一个公钥pk和一个私钥sk;在之后运行时,首先根据判断当前节点类型,如果是数据操作节点,则转入(2);如果是一致性检验节点,则转入(5);
(2)将文件操作信息中包含的文件标识N、文件操作Op、文件路径P和修改时间T以及修改内容D提取出来;
(3)将修改内容D按照固定大小size进行切片,切片为数个修改内容子集D1,D2,...,DL,此处L为最终的子集数目;对这些修改内容子集进行Md5哈希值计算,即HM1=Md5(D1),HM2=Md5(D2),...,HML=Md5(DL);将文件操作信息中的将文件标识N、文件操作Op、文件路径P和修改时间T以及修改内容D拼接为一个字符串S=[N,Op,P,T,D],计算该字符串的哈希值HS,取出上一个区块中的哈希值HLast,将HS和HLast进行拼接后使用SHA256算法计算总体哈希值HT,将字符串和哈希值打包成区块形式B并使用私钥sk进行一次数字签名σ;
(4)上传打包的区块B到区块链BC中并发送给其余节点;
(5)每隔时间间隔δ检测其他节点n发送的打包好的区块B';
(6)获取区块B'中的数字签名σ和总体哈希值HT,验证该区块的总体哈希值HT和数字签名σ是否合法,具体方式为获取区块B'中的哈希值HS,取出上一个区块中的哈希值HLast,将HS和HLast进行拼接后使用SHA256算法计算哈希值,比较和HT是否相等;验证数字签名的具体操作为使用节点n的公钥pk对该区块B'进行签名,比较签名和数字签名σ是否一致;如果总体哈希值和数字签名σ均验证成功,则返回验证结果并则将区块B'存储到本地区块链账本,验证失败向发送该区块的其他节点返回验证失败的信息。
4、历史日志模块在系统中维护了一个数据库,包含了和服务器后端模块交互时处理的存储和查询逻辑:
(1)接受服务器后端模块发送来的文件操作信息I,所述文件操作信息指文件标识N、文件操作Op、文件路径P和修改时间T,如果为文件操作为修改,则所述文件操作信息还包括修改内容D,在本地数据库中新增一条记录存储文件操作信息,记录格式为[N|Op|P|T|D|Su],其中Su为除文件操作信息之外的一些辅助信息,例如文件的绝对路径;
(2)向服务器后端模块返回历史日志,如果服务器后端没有提供文件标识N,则返回全部的历史日志,否则按照给定的文件标识N返回筛选后的历史日志,筛选后的历史日志的记录中都包含文件标识N,除此之外返回的历史日志还包括:文件数据的存储位置以及名称、操作请求的类型包括文件的增加、删除、修改和查询、操作细节包括文件修改内容、文件操作的时间。
5、一致性检验模块,如图4所示:
(1)首先根据判断当前节点类型,如果是文件操作节点,则转入(2);如果是一致性检验节点,则转入(3);
(2)对于文件操作节点,监听来自服务器后端模块发送的一致性检验请求Q和历史日志R,然后利用投票共识机制的投票结果对最终的文件一致性进行判断;
(3)一致性检验节点监听一致性检验请求Q,按照[请求类型(长度8)|文件标识(长度128)|子类型操作(长度8)|自定义字段]的格式解析请求Q,根据请求Q的前8位解析出请求类型,解下来的128位解析为文件标识,随后的8位解析为子类型操作,剩余的其他位按自定义字段进行解析;
(4)请求解析完毕后执行一致性检验算法,首先检验文件标识N涉及的文件是否存在,如果不存在,直接结束;否则解析历史日志R,将历史日志中记录的文件自创建以来所有文件操作取出作为一个列表,记为文件记录列表ListFile=[R1,…,RN],N为文件记录列表的长度;
(5)将区块链上包含该文件的区块的记录从新到旧依次取出作为另一个列表,记为区块链记录列表ListBlock=[Rb1,…,RbN];
(6)从文件记录列表ListFile中取出一条历史日志R1,按照[N|Op|P|T|D|Su]的格式得到文件标识N、文件操作Op、文件路径P和修改时间T,如果为文件操作为修改,则还会得到修改内容D,对文件标识N、文件操作Op、文件路径P和修改时间T以及修改内容D进行拼接,得到一个字符串
(7)从区块链记录列表ListBlock取出一条区块的记录Rb1,从Rb1中得到字符串S,比较与S是否相等,如果不相等则返回文件不一致的结果;
(8)如果文件操作Op是增加,则表明文件自创建以来始终是一致的,返回文件一致的检验结果Res=1;否则,转到步骤(5)继续;
(9)每一个一致性检验节点初始化赞成票数C=0,在该一致性检验节点得到检验结果Res后,将检验结果广播到其余一致性检验节点,同时为了提高结果的可信度,会附带一个消息Msg=<ip,σ>其中σ为该节点用自己的私钥sk对自身ip地址ip加密得到的数字签名;
(10)每一个一致性检验节点,监听其余一致性检验节点发送的检验结果Res',如果Res'=1,表明验证成功,继续使用其余一致性检验节点的公钥pk对消息Msg中的数字签名σ进行解密得到ippk,如果ippk=ip,则表示验证成功且结果可信,更新赞成票数C=C+1,否则赞成票数保持不动;
(11)每一个一致性检验节点会检查自己的赞成票数,如果当前赞成票数满足 M为一致性检验节点的总数,则认为已达成共识,向文件操作节点发送达成共识信号S;文件操作节点监听来自一致性检验节点的达成共识信号S并计数,如果大于一致性检验节点总数的2/3,则投票结束,投票结果为文件一致性验证通过;否则投票结果为文件一致性验证失败;
(12)对于文件操作节点,如果投票结果为文件一致性验证失败,文件操作节点通过备份历史日志对文件复原,使文件恢复与区块链的一致性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的系统或方法。
提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。
Claims (7)
1.一种基于区块链的共享文件一致性维护系统,其特征在于,包括:前端入口模块、服务器后端模块、文件共享模块、历史日志模块和一致性检验模块;其中:
前端入口模块:接收用户的两种请求,一种是一致性检验请求,另一种是文件操作的请求;文件操作包括文件的增加、删除、修改和查询;对于普通用户,只能查看文件操作的内容,且仅能向服务器后端模块发送一致性检验请求,没有文件操作的权限;管理员用户能够查看操作文件的内容及相应的历史日志,并且能够向服务器后端模块发送文件操作的请求;同时将服务器后端模块的执行结果进行显示,执行结果即执行完的一致性检验请求和文件操作的请求;
服务器后端模块:接收前端入口模块发送来的一致性检验请求和文件操作的请求;对于一致性检验请求,根据历史日志模块的历史日志,将一致性检验请求和历史日志发送给一致性检验模块;对于文件操作的请求,进行文件操作,根据文件操作生成对应上传到区块链上的文件操作信息,所述文件操作信息指文件标识、文件操作、文件路径和修改时间,如果为文件操作为修改,则所述文件操作信息还包括修改内容;调用文件共享模块将所述文件操作信息上传到区块链上,同时将文件操作信息发送至历史日志模块;将一致性检验请求和文件操作的请求的执行结果返回到前端入口模块;
文件共享模块,负责整个系统内部的文件共享:运行在系统中每个节点的设备上,对于系统中的两种节点分别执行不同的功能;所述两种节点分别为文件操作节点和一致性检验节点;对于文件操作节点,文件共享模块在收到服务器后端模块发送的文件操作信息后,将文件操作信息按照打包成区块,并将打包后的区块上传到区块链上,将该区块以及对应的历史日志中的文件操作日志一起发送给除该文件操作节点外的所有其他的节点;对于一致性检验节点,文件共享模块按照设定的时间间隔,对其他节点是否发送打包的区块进行检测,检测到其他节点发送的区块后,对收到的区块进行哈希值验证,并且返回验证结果,如果验证成功,则将该区块存储到本地的区块链账本中;如果验证失败,则文件共享模块向发送该区块的其他节点返回验证失败的信息;
历史日志模块:接收服务器后端模块发送来的文件操作信息,并存储到本地数据库中;同时向服务器后端模块发送历史日志;
一致性检验模块:运行在系统中每个节点的设备上,对于一致性检验节点和文件操作节点分别执行不同的功能;对于一致性检验节点,监听来自服务器后端模块发送的一致性检验请求和历史日志,通过一致性检验算法对文件操作的内容和历史日志进行比对验证,将验证后的执行结果返回到服务器后端模块;对于文件操作节点,利用投票共识机制的投票结果对最终的文件一致性进行判断;如果验证后的执行结果是失败,则通过备份数据库恢复文件,通过备份历史日志对文件复原,使文件恢复与区块链的一致性。
2.根据权利要求1所述的基于区块链的共享数据一致性维护系统,其特征在于:所述一致性检验模块中,一致性检验算法的具体实现如下:
(1)监听服务器后端模块发送一致性检验请求和历史日志;
(2)检验一致性检请求涉及的文件是否存在,如果不存在,直接结束;如果存在,则解析历史日志,将历史日志中记录的文件自创建以来所有文件操作取出作为一个列表,记为文件记录列表,将区块链上包含该文件的区块的记录从新到旧依次取出作为另一个列表,记为区块链记录列表;
(3)从文件记录列表中顺序取出一条历史日志,对一条历史日志中记录的文件标识、文件操作、文件路径和修改时间以及修改内容,进行拼接,得到一个字符串;
(4)从区块链记录列表中顺序取出区块的记录,将步骤(3)中生成的字符串和区块的记录中的内容进行比较,如果二者不一致,则返回文件不一致的结果;
(5)判断一条历史日志中记录的文件操作是否为增加,如果是,则返回文件一致的检验结果;否则,转到步骤(3)继续。
3.根据权利要求1所述的基于区块链的共享数据一致性维护系统,其特征在于:所述一致性检验模块中,投票共识机制的方式实现如下:
(1)一致性检验节点监听一致性检验请求,每个一致性检验节点收到请求后执行一致性检验算法,得到该一致性检验节点的检验结果;
(2)对于每一个一致性检验节点,初始化赞成票数为0,在该一致性检验节点得到检验结果后,将检验结果广播到其余一致性检验节点;
(3)对于每一个一致性检验节点,监听其余一致性检验节点发送的检验结果,如果是验证成功,则赞成票数加一,否则赞成票数保持不动;
(4)对于每一个一致性检验节点,检查自己的赞成票数,如果当前赞成票数大于一致性检验节点总数的2/3,则认为已达成共识,向文件操作节点发送达成共识信号;
(5)文件操作节点监听来自一致性检验节点的达成共识信号并计数,如果大于一致性检验节点总数的2/3,则投票结束,投票结果为文件一致性验证通过;否则投票结果为文件一致性验证不通过。
4.根据权利要求1所述的基于区块链的共享数据一致性维护系统,其特征在于:所述一致性检验模块中,通过备份历史日志对文件复原的具体实现如下:
(1)将备份历史日志进行列表化处理,得到历史日志的列表,按照历史日志的操作时间倒序排列该列表;
(2)如果该列表不为空,则按顺序从其中取出一条历史日志;
(3)解析历史日志内容,根据这一条历史日志,利用备份数据库进行一次文件恢复;
(4)如果恢复成功,继续取出下一条历史日志,进行下一次文件恢复;否则,结束。
5.一种基于区块链的共享数据一致性维护方法,其特征在于,步骤如下:
(1)对于管理员用户,能够通过前端入口模块查看操作文件的内容及相应的历史日志,并且能够向服务器后端模块发送文件操作的请求;对于普通用户,只能通过前端入口模块查看文件操作的内容,且仅能向服务器后端模块发送一致性检验请求,没有文件操作的权限;
(2)服务器后端模块监听用户发起的请求,包括一致性检验请求和操作请求;
(3)根据历史日志模块的历史日志,将一致性检验请求和历史日志发送给一致性检验模块;对于文件操作的请求,进行文件操作,根据文件操作生成对应上传到区块链上的文件操作信息;调用文件共享模块将所述文件操作信息上传到区块链上,同时将文件操作信息发送至历史日志模块;将一致性检验请求和文件操作的请求的执行结果返回到前端入口模块;
(4)一致性检验模块运行在系统中每个节点的设备上,对于一致性检验节点,监听来自服务器后端模块发送的一致性检验请求和历史日志,通过一致性检验算法对文件操作的内容和历史日志进行比对验证;
(5)首先解析历史日志,将历史日志中记录的文件自创建以来所有文件操作取出作为一个列表,记为文件记录列表,将区块链上包含该文件的区块的记录从新到旧依次取出作为另一个列表,记为区块链记录列表;从文件记录列表中顺序取出一条历史日志,对一条历史日志中记录的文件操作类型和修改内容求取哈希值,得到文件操作类型哈希值和修改内容哈希值,将上述两个哈希值以及文件标识结合为一个字符串;从区块链记录列表中顺序取出区块的记录,将字符串和区块的记录中的内容进行比较,如果二者不一致,则返回文件不一致的结果;如果一致,则判断一条历史日志中记录的文件操作是否为创建文件,如果是,则返回文件一致的检验结果;
(6)对于文件操作节点,利用投票共识机制的投票结果对最终的文件一致性进行判断;在投票共识机制中,一致性检验节点监听一致性检验请求,每个一致性检验节点收到请求后执行一致性检验算法,得到该一致性检验节点的检验结果;对于每一个一致性检验节点,初始化赞成票数为0,在该一致性检验节点得到检验结果后,将检验结果广播到其余一致性检验节点;对于每一个一致性检验节点,监听其余一致性检验节点发送的检验结果,如果是验证成功,则赞成票数加一,否则赞成票数保持不动;同时每一个一致性检验节点会检查自己的赞成票数,如果当前赞成票数大于一致性检验节点总数的2/3,则认为已达成共识,向文件操作节点发送达成共识信号;文件操作节点监听来自一致性检验节点的达成共识信号并计数,如果大于一致性检验节点总数的2/3,则投票结束,投票结果为文件一致性验证通过;否则投票结果为文件一致性验证不通过;如果验证后的执行结果是失败,则通过备份数据库恢复文件,通过备份历史日志对文件复原,使文件恢复与区块链的一致性。
6.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的计算机程序,执行时实现权利要求1-4中任意之一所述的系统或权利要求5所述的方法。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-4中任意之一所述的系统或权利要求5所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310408294.0A CN116467388A (zh) | 2023-04-17 | 2023-04-17 | 一种基于区块链的共享文件一致性维护系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310408294.0A CN116467388A (zh) | 2023-04-17 | 2023-04-17 | 一种基于区块链的共享文件一致性维护系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116467388A true CN116467388A (zh) | 2023-07-21 |
Family
ID=87178451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310408294.0A Pending CN116467388A (zh) | 2023-04-17 | 2023-04-17 | 一种基于区块链的共享文件一致性维护系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116467388A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117591488A (zh) * | 2024-01-19 | 2024-02-23 | 北京奇虎科技有限公司 | 一种文件检测方法、装置、存储介质及电子设备 |
-
2023
- 2023-04-17 CN CN202310408294.0A patent/CN116467388A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117591488A (zh) * | 2024-01-19 | 2024-02-23 | 北京奇虎科技有限公司 | 一种文件检测方法、装置、存储介质及电子设备 |
CN117591488B (zh) * | 2024-01-19 | 2024-05-14 | 北京奇虎科技有限公司 | 一种文件检测方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108780485B (zh) | 基于模式匹配的数据集提取 | |
US11409458B2 (en) | Migration of information via storage devices | |
US20200195683A1 (en) | Systems and methods for detecting anomalous behavior within computing sessions | |
US10050982B1 (en) | Systems and methods for reverse-engineering malware protocols | |
CN113326317B (zh) | 基于同构多链架构的区块链存证方法及系统 | |
US8230228B2 (en) | Support of tamper detection for a log of records | |
CN112217835B (zh) | 报文数据的处理方法、装置、服务器和终端设备 | |
CN107220559B (zh) | 一种针对不可篡改文件的加密存储方法 | |
CN110324143A (zh) | 数据传输方法、电子设备及存储介质 | |
CN110213226B (zh) | 基于风险全要素辨识关联的网络攻击场景重建方法及系统 | |
US8572050B2 (en) | Method and system for real time system log integrity protection | |
CN111934879A (zh) | 一种内外网系统数据传输加密方法、装置、设备和介质 | |
CN108921696B (zh) | 基于区块链的智能合约调用及合约交易验证的方法 | |
Wang | Measures of retaining digital evidence to prosecute computer-based cyber-crimes | |
CN101473335A (zh) | 信息处理终端与状态通知方法 | |
US10812466B2 (en) | Using trusted platform module to build real time indicators of attack information | |
US20160301693A1 (en) | System and method for identifying and protecting sensitive data using client file digital fingerprint | |
US20180285369A1 (en) | Manifest generation for data transfers | |
CN116467388A (zh) | 一种基于区块链的共享文件一致性维护系统及方法 | |
Ye et al. | TamForen: A tamper‐proof cloud forensic framework | |
Focardi et al. | Mind your keys? a security evaluation of java keystores | |
US20050022026A1 (en) | Data processing systems | |
CN116089398A (zh) | 一种数据库安全审计方法及系统 | |
US10339308B1 (en) | Systems and methods for remediating computer reliability issues | |
CN110574352B (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 |