发明内容
为解决上述问题,本公开提供一种基于区块链存储的数据安全隔离方法及装置,在外部应用或者其他节点访问区块链节点存储的数据时予以监测其安全性,发现恶意访问时将区块链存储节点的数据打散存储,建立隔离记录文件并删除源数据,在风险解除时可以方便的根据隔离记录文件从各隔离存储节点中读取并恢复原原始数据文件。
为了实现上述目的,根据本公开的一方面,提供一种基于区块链存储的数据安全隔离方法,所述方法包括以下步骤:
步骤1,实时监测区块链网络中各区块链节点的数据访问请求生成的访问工作量证明数据;
步骤2,如果访问工作量证明数据大于工作量证明数据的2倍则将数据文件标记为风险数据;
步骤3,将风险数据分割为3个文件分块;
步骤4,将3个文件分块分别存储在随机的3个相邻区块链节点中;
步骤5,删除风险数据并生成隔离记录文件。
进一步地,在步骤1中,所述区块链网络为多个区块链节点构成的网状拓扑结构网络,每个区块链节点都有唯一的节点ID编号,每个区块链节点至少有一个相邻的区块链节点,所述区块链节点包括智能手机、平板电脑、台式电脑、笔记本电脑,每个区块链节点存储有多个数据文件,在外部的数据访问请求访问数据文件时生成访问工作量证明数据,各区块链节点通过有线网络、无线网络任意一种互相连接并进行通信。
进一步地,在步骤1中,所述访问工作量证明数据包括区块链节点的数据访问总时间的十进制形式经过SHA256哈希运算的递增值字符串,SHA256哈希运算的方法为:将十进制数X看作十三进制,再按照十三进制数以转换基数转换成十进制数,提取其中若干为作为X的哈希值,所述十三进制数的转换基数为大于十进制数基数的数,并且两个基数应该是互素的,所述数据访问总时间为十进制形式,为访问数据文件耗费的时间。
进一步地,在步骤2中,所述工作量证明数据为区块链节点中所有的访问工作量证明数据的算数平均值。
进一步地,在步骤3中,将风险数据分割为3个文件分块包括以下子步骤,
步骤3.1,计算分块大小,所述分块大小为风险数据的大小的三分之一的向上取整,向上取整即只要后面有小数前面的整数就加1;
步骤3.2,根据分块大小对风险数据的文件进行切分得到3个文件分块,即第一分块、第二分块、第三分块;具体分块方法为,先读取一个分块大小的字节流,这对这些字节流进行复制操作作为一个文件分块,然后再次移动一个分块大小的字节,然后进行复制操作一个文件分块,依次复制完三次文件分块,即切分得到3个文件分块,如果风险数据的文件的尾端的大小即最后一次文件分块的大小不足分块大小,则复制实际的大小作为文件分块的大小;
所述文件分块由文件头和数据块描述实体集组成,其中,文件头定义了文件分块的数据块大小、数据块总数、文件分块顺序编号,文件头后紧随一组数据块描述实体,每个实体代表一个数据块,定义了块长度、块在文件分块中的偏移、弱校验值和强md5校验值。
进一步地,在步骤4中,将3个文件分块分别存储在随机的3个相邻区块链节点后返回3个文件分块各自所在区块链节点的节点ID编号、区块链节点存储位置偏移量到风险数据所在的区块链节点,即第一分块区块链的节点ID编号、第一分块区块链节点存储位置偏移量、第二分块区块链的节点ID编号、第二分块区块链节点存储位置偏移量、第三分块区块链的节点ID编号、第三分块区块链节点存储位置偏移量,所述区块链节点存储位置偏移量为文件的物理偏移量即文件分块的存储位置,如果相邻区块链少于三个则将第一分块、第二分块、第三分块存储在任意一个相邻区块链节点中。
进一步地,在步骤5中,所述隔离记录文件包括风险数据的访问工作量证明数据、第一分块区块链的节点ID编号、第一分块区块链节点存储位置偏移量、第二分块区块链的节点ID编号、第二分块区块链节点存储位置偏移量、第三分块区块链的节点ID编号、第三分块区块链节点存储位置偏移量。
本发明还提供了一种基于区块链存储的数据安全隔离装置,所述装置包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在所述装置的以下单元中:
实时监测单元,用于实时监测区块链网络中各区块链节点的数据访问请求生成的访问工作量证明数据;
风险标记单元,用于在如果访问工作量证明数据大于工作量证明数据的2倍时将数据文件标记为风险数据;
数据分块单元,用于将风险数据分割为3个文件分块;
随机存储单元,用于将3个文件分块分别存储在随机的3个相邻区块链节点中;
风险隔离单元,用于删除风险数据并生成隔离记录文件。
本公开的有益效果为:本发明提供一种基于区块链存储的数据安全隔离方法及装置,通过实时的监测文件是否被恶意访问或入侵,可有效抵御内部的非授权用户的恶意访问泄密和网络黑客入侵,3个隔离存储节点中只要入侵节点数只要不被同时被入侵,均无法利用隔离存储节点中是文件片合成原始文件,理论上被隔离文件都是安全的,在风险解除时可以方便的根据隔离记录文件从3个隔离存储节点中读取并恢复原原始数据文件,提升了区块链文件存储系统的安全性,能够很好的保障了区块链存储的数据安全性和动态完整性。
具体实施方式
以下将结合实施例和附图对本公开的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本公开的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图1所示为根据本公开的一种基于区块链存储的数据安全隔离方法的流程图,下面结合图1来阐述根据本公开的实施方式的一种基于区块链存储的数据安全隔离方法。
本公开提出一种基于区块链存储的数据安全隔离方法,具体包括以下步骤:
步骤1,实时监测区块链网络中各区块链节点的数据访问请求生成的访问工作量证明数据;
步骤2,如果访问工作量证明数据大于工作量证明数据的2倍则将数据文件标记为风险数据;
步骤3,将风险数据分割为3个文件分块;
步骤4,将3个文件分块分别存储在随机的3个相邻区块链节点中;
步骤5,删除风险数据并生成隔离记录文件。
进一步地,在步骤1中,所述区块链网络为多个区块链节点构成的网状拓扑结构网络,每个区块链节点都有唯一的节点ID编号,每个区块链节点至少有一个相邻的区块链节点,所述区块链节点包括智能手机、平板电脑、台式电脑、笔记本电脑,每个区块链节点存储有多个数据文件,在外部的数据访问请求访问数据文件时生成访问工作量证明数据,各区块链节点通过有线网络、无线网络任意一种互相连接并进行通信。
进一步地,在步骤1中,所述访问工作量证明数据包括区块链节点的数据访问总时间的十进制形式经过SHA256哈希运算的递增值字符串,SHA256哈希运算的方法为:将十进制数X看作十三进制,再按照十三进制数以转换基数转换成十进制数,提取其中若干为作为X的哈希值,所述十三进制数的转换基数为大于十进制数基数的数,并且两个基数应该是互素的,所述数据访问总时间为十进制形式,为访问数据文件耗费的时间,例如数据访问总时间为91234569秒,则十进制形式为(91234569)10。
例如:
Hash(90127429)13=9*137+1*136+2*135+3*134+4*133+5*132+6*131+9=(4028)10,如果取中间两位作为哈希值,得Hash(91234569)=02。
进一步地,在步骤2中,所述工作量证明数据为区块链节点中所有的访问工作量证明数据的算数平均值。
进一步地,在步骤3中,将风险数据分割为3个文件分块包括以下子步骤,
步骤3.1,计算分块大小,所述分块大小为风险数据的大小的三分之一的向上取整,向上取整即只要后面有小数前面的整数就加1;
步骤3.2,根据分块大小对风险数据的文件进行切分得到3个文件分块,即第一分块、第二分块、第三分块;具体分块方法为,先读取一个分块大小的字节流,这对这些字节流进行复制操作作为一个文件分块,然后再次移动一个分块大小的字节,然后进行复制操作一个文件分块,依次复制完三次文件分块,即切分得到3个文件分块,如果风险数据的文件的尾端的大小即最后一次文件分块的大小不足分块大小,则复制实际的大小作为文件分块的大小;
所述文件分块由文件头和数据块描述实体集组成,其中,文件头定义了文件分块的数据块大小、数据块总数、文件分块顺序编号。文件头后紧随一组数据块描述实体,每个实体代表一个数据块,定义了块长度、块在文件分块中的偏移、弱校验值和强md5校验值。
其中,所述文件分块定义如下:
进一步地,在步骤4中,将3个文件分块分别存储在随机的3个相邻区块链节点后返回3个文件分块即第一分块、第二分块、第三分块各自所在区块链节点的节点ID编号、区块链节点存储位置偏移量到风险数据所在的区块链节点,即第一分块区块链的节点ID编号、第一分块区块链节点存储位置偏移量、第二分块区块链的节点ID编号、第二分块区块链节点存储位置偏移量、第三分块区块链的节点ID编号、第三分块区块链节点存储位置偏移量,所述区块链节点存储位置偏移量为文件的物理偏移量即文件分块的存储位置,如果相邻区块链少于三个则将第一分块、第二分块、第三分块存储在任意一个相邻区块链节点中。
进一步地,在步骤5中,所述隔离记录文件包括风险数据的访问工作量证明数据、第一分块区块链的节点ID编号、第一分块区块链节点存储位置偏移量、第二分块区块链的节点ID编号、第二分块区块链节点存储位置偏移量、第三分块区块链的节点ID编号、第三分块区块链节点存储位置偏移量。
本公开的实施例提供的一种基于区块链存储的数据安全隔离装置,如图2所示为本公开的一种基于区块链存储的数据安全隔离装置图,该实施例的一种基于区块链存储的数据安全隔离装置包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种基于区块链存储的数据安全隔离装置实施例中的步骤。
所述装置包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在所述装置的以下单元中:
实时监测单元,用于实时监测区块链网络中各区块链节点的数据访问请求生成的访问工作量证明数据;
风险标记单元,用于在如果访问工作量证明数据大于工作量证明数据的2倍时将数据文件标记为风险数据;
数据分块单元,用于将风险数据分割为3个文件分块;
随机存储单元,用于将3个文件分块分别存储在随机的3个相邻区块链节点中;
风险隔离单元,用于删除风险数据并生成隔离记录文件。
所述一种基于区块链存储的数据安全隔离装置可以运行于桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备中。所述一种基于区块链存储的数据安全隔离装置,可运行的装置可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述例子仅仅是一种基于区块链存储的数据安全隔离装置的示例,并不构成对一种基于区块链存储的数据安全隔离装置的限定,可以包括比例子更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述一种基于区块链存储的数据安全隔离装置还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述一种基于区块链存储的数据安全隔离装置运行装置的控制中心,利用各种接口和线路连接整个一种基于区块链存储的数据安全隔离装置可运行装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述一种基于区块链存储的数据安全隔离装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
尽管本公开的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,而是应当将其视作是通过参考所附权利要求考虑到现有技术为这些权利要求提供广义的可能性解释,从而有效地涵盖本公开的预定范围。此外,上文以发明人可预见的实施例对本公开进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本公开的非实质性改动仍可代表本公开的等效改动。