一种防止区块链单链数据被篡改的方法及系统与流程

文档序号:31956338发布日期:2022-10-28 22:20阅读:47来源:国知局
1.本发明涉及区块链数据处理
技术领域
:,尤其涉及一种防止区块链单链数据被篡改的方法及系统。
背景技术
::2.随着通信技术的迅猛发展,5g成为最新一代蜂窝移动通信技术,5g的性能目标是高数据速率、减少延迟、节省能源、降低成本、提高系统容量和大规模设备连接。虽然5g网络发展迅猛并且计算机发展日新月异,但近几年单核串行计算性能的提升有限,许多大企业和公司都是通过增加计算客户端的数量实行并行计算来提高整体的计算效率,普通人也可以通过购买民用芯片来得到和大机构或公司接近的单核串行计算能力,目前所采用的传统区块链终端并行计算方式在存储数据时易被篡改、严重地降低了数据的安全性和隐私性。技术实现要素:3.针对上述所显示出来的问题,本发明提供了一种防止区块链单链数据被篡改的方法及系统用以解决
背景技术
:中提到的传统区块链终端并行计算方式在存储数据时易被篡改、严重地降低了数据的安全性和隐私性的问题。4.一种防止区块链单链数据被篡改的方法,包括以下步骤:5.获取区块链网络中发布的待计算信息;6.根据所述待计算信息获取待计算初始值,将所述待计算初始值分配到多个客户端进行串行计算;7.根据串行计算结果选择第一客户端,对所述第一客户端的第一计算结果进行并行验证;8.若验证通过,获取其他第二客户端的第二计算结果,根据第一计算结果和第二计算结果的相似度确定该第二客户端的提交数据是否是否被篡改。9.优选的,在获取区块链网络中发布的待计算信息之前,所述方法还包括:10.通过预设哈希函数生成待构建区块链的初始区块;11.根据所述待构建区块链的初始区块的业务模型确定待构建区块链的类型;12.基于待构建区块链的类型构建每个初始区块的区块链节点;13.根据所述多个初始区块的区块链节点构建待构建区块链对应的区块链网络。14.优选的,所述获取区块链网络中发布的待计算信息,包括:15.获取区块链节点与所述区块链网络的连接情况;16.根据所述连接情况对区块链网络进行状态验证,获取验证结果;17.根据所述验证结果判断区块链网络是否符合数据反馈条件,获取判断结果;18.当所述判断结果为区块链网络符合数据反馈条件时,获取所述区块链网络中发布的待计算信息。19.优选的,所述根据所述待计算信息获取待计算初始值,将所述待计算初始值分配到多个客户端进行串行计算,包括:20.根据所述待计算信息获取外部上链数据;21.从所述外部上链数据中获取待计算初始值,将所述待计算初始值上传至验证服务器进行数据初始化验证;22.验证通过后接通所述验证服务器与每个客户端之间的网络连接,接通完毕后为每个客户端配置区块链节点;23.配置完毕后,启动每个客户端的数据接收服务将所述待计算信息传输到每个客户端;24.启动每个客户端的数据计算服务以对待计算信息进行串行计算。25.优选的,所述启动每个客户端的数据计算服务以对待计算信息进行串行计算,包括:26.生成数据计算指令并发送到每个客户端以启动该客户端的数据计算服务;27.根据计算需求设置待计算信息的目标计算次数和计算时长;28.设置完毕后,通过每个客户端对待计算信息开始计算哈希值,将前次的计算结果值作为下次的待计算值;29.设置数据记录条件,根据所述数据记录条件记录每个客户端每个计算阶段的阶段结果。30.优选的,根据串行计算结果选择第一客户端,对所述第一客户端的第一计算结果进行并行验证,包括:31.根据每个客户端的串行计算结果获取该客户端的分段计算结果;32.根据每个客户端的分段计算结果统计该客户端的提交数据的数量,选择提交数量最多的客户端确认为所述第一客户端;33.根据数据记录条件设置目标数量个验证线程;34.通过所述目标数量个验证线程以并行的方式对每个客户端的分段结算结果进行真实验证。35.优选的,若验证通过,获取其他第二客户端的第二计算结果,根据第一计算结果和第二计算结果的相似度确定该第二客户端的提交数据是否是否被篡改,包括:36.根据所述第一计算结果确定第一客户端的第一数据计算量和每个第一计算数据的数据内容;37.根据每个第二计算结果获取该第二客户端的第二数据计算量和每个第二计算数据的数据内容;38.计算第一数据计算量和每个第一计算数据的数据内容与每个第二客户端的第二数据计算量和每个第二计算数据的数据内容之间的相似度;39.确认计算相似度是否大于等于预设阈值,若是,确定第二客户端的提交数据未被篡改,否则,确定第二客户端的提交数据已被篡改。40.优选的,所述方法还包括:41.在选择出第一客户端后,关闭其他客户端的数据计算进程并断开该客户端与其区块链节点的连接;42.在获取到第一客户端的目标分段计算结果后,控制第一客户端继续保持计算形态直到其接收到新的待计算数据为止。43.优选的,所述通过所述目标数量个验证线程以并行的方式对每个客户端的分段结算结果进行真实验证,包括:44.检测外部上链数据的上链频率;45.基于所述上链频率利用预设算法计算出验证线程的线程速度;46.根据所述验证线程的线程速度和线程数量为其分配平均的验证数据;47.分配完毕后,设置目标数量个线程的工作模式为并行验证,设置完毕后,通过所述目标数量个验证线程以并行的方式对每个客户端的分段结算结果进行真实验证。48.一种防止区块链单链数据被篡改的系统,该系统包括:49.第一获取模块,用于获取区块链网络中发布的待计算信息;50.分配模块,用于根据所述待计算信息获取待计算初始值,将所述待计算初始值分配到多个客户端进行串行计算;51.验证模块,用于根据串行计算结果选择第一客户端,对所述第一客户端的第一计算结果进行并行验证;52.第二获取模块,用于若验证通过,获取其他第二客户端的第二计算结果,根据第一计算结果和第二计算结果的相似度确定该第二客户端的提交数据是否是否被篡改。53.通过本发明的技术方案可以实现如下有益效果:54.可以保证区块链节点在数据同步之前不被篡改,提高了数据的安全性和隐私性,同时,也可以使得处于区块链网络中的节点在离线状态计算的数据的可信度,使得其在再次接入网络时可以将离线状态计算的数据进行同步使用,提高了实用性。55.本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。56.下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。附图说明57.附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。58.图1为本发明所提供的一种防止区块链单链数据被篡改的方法的工作流程图;59.图2为本发明所提供的一种防止区块链单链数据被篡改的方法的另一工作流程图;60.图3为本发明所提供的一种防止区块链单链数据被篡改的方法的又一工作流程图;61.图4为本发明所提供的一种防止区块链单链数据被篡改的系统的结构示意图;62.图5为根据本发明所提供的一种防止区块链单链数据被篡改的方法的实施例截图。具体实施方式63.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。64.随着通信技术的迅猛发展,5g成为最新一代蜂窝移动通信技术,5g的性能目标是高数据速率、减少延迟、节省能源、降低成本、提高系统容量和大规模设备连接。虽然5g网络发展迅猛并且计算机发展日新月异,但近几年单核串行计算性能的提升有限,许多大企业和公司都是通过增加计算客户端的数量实行并行计算来提高整体的计算效率,普通人也可以通过购买民用芯片来得到和大机构或公司接近的单核串行计算能力,目前所采用的传统区块链终端并行计算方式在存储数据时易被篡改、严重地降低了数据的安全性和隐私性。为了解决上述问题,本实施例公开了一种防止区块链单链数据被篡改的方法。65.一种防止区块链单链数据被篡改的方法,如图1所示,包括以下步骤:66.步骤s101、获取区块链网络中发布的待计算信息;67.步骤s102、根据所述待计算信息获取待计算初始值,将所述待计算初始值分配到多个客户端进行串行计算;68.步骤s103、根据串行计算结果选择第一客户端,对所述第一客户端的第一计算结果进行并行验证;69.步骤s104、若验证通过,获取其他第二客户端的第二计算结果,根据第一计算结果和第二计算结果的相似度确定该第二客户端的提交数据是否是否被篡改。70.上述技术方案的工作原理为:获取区块链网络中发布的待计算信息,根据所述待计算信息获取待计算初始值,将所述待计算初始值分配到多个客户端进行串行计算,根据串行计算结果选择第一客户端,对所述第一客户端的第一计算结果进行并行验证,若验证通过,获取其他第二客户端的第二计算结果,根据第一计算结果和第二计算结果的相似度确定该第二客户端的提交数据是否是否被篡改。71.上述技术方案的有益效果为:通过采取串行计算的区块链终端计算方式来选择出具有最佳计算性能的终端进而对其结果进行验证以确定数据的真实性最后在验证通过后根据第一计算结果和第二计算结果的相似度确定该第二客户端的提交数据是否是否被篡改可以以某个客户端的计算本地链一直运行计算的提交数据作为同步参考提交数据,由于单核串行计算的算力有限和串行计算本地链服务的持续运行,故无法通过增加客户端数量的方式来篡改历史并重新成链,使得在终端的计算过程中无法实现数据被篡改,保证了计算数据的安全性和隐私性,解决了现有技术中心传统区块链终端并行计算方式在存储数据时易被篡改、严重地降低了数据的安全性和隐私性的问题。72.在一个实施例中,在获取区块链网络中发布的待计算信息之前,所述方法还包括:73.通过预设哈希函数生成待构建区块链的初始区块;74.根据所述待构建区块链的初始区块的业务模型确定待构建区块链的类型;75.基于待构建区块链的类型构建每个初始区块的区块链节点;76.根据所述多个初始区块的区块链节点构建待构建区块链对应的区块链网络。77.上述技术方案的有益效果为:通过配置区块链节点和构建区块链网络可以稳定地构建各个终端的工作环境,保证每个终端的数据计算稳定性,奠定了稳定的参数。78.在一个实施例中,如图2所示,所述获取区块链网络中发布的待计算信息,包括:79.步骤s201、获取区块链节点与所述区块链网络的连接情况;80.步骤s202、根据所述连接情况对区块链网络进行状态验证,获取验证结果;81.步骤s203、根据所述验证结果判断区块链网络是否符合数据反馈条件,获取判断结果;82.步骤s204、当所述判断结果为区块链网络符合数据反馈条件时,获取所述区块链网络中发布的待计算信息。83.上述技术方案的有益效果为:通过对区块链网络进行状态验证可以保证区块链网络的工作状态验证进而可以评估出是否可以获取到待计算信息以及区块链网络是否异常,提高了实用性和稳定性,进一步地,通过判断区块链网络是否符合数据反馈条件可以过滤掉区块链网络发送的无用计算数据指令,可以快速地筛选出数据计算指令进而接收待计算信息以分配到各个终端进行串行计算,提高了工作效率。84.在一个实施例中,所述根据所述待计算信息获取待计算初始值,将所述待计算初始值分配到多个客户端进行串行计算,包括:85.根据所述待计算信息获取外部上链数据;86.从所述外部上链数据中获取待计算初始值,将所述待计算初始值上传至验证服务器进行数据初始化验证;87.验证通过后接通所述验证服务器与每个客户端之间的网络连接,接通完毕后为每个客户端配置区块链节点;88.配置完毕后,启动每个客户端的数据接收服务将所述待计算信息传输到每个客户端;89.启动每个客户端的数据计算服务以对待计算信息进行串行计算。90.上述技术方案的有益效果为:通过对待计算初始值进行初始化验证可以保证其合理性和有效性,提高了实用性,进一步地,通过为每个客户端配置区块链节点可以通过区块链网络实时接收每个终端的计算结果反馈,提高了数据接收稳定性和接收效率。91.在本实施例中,在启动每个客户端的数据计算服务以对待计算信息进行串行计算之前,所述方法还包括:92.获取预设计算数据;93.利用所述预设计算数据对每个客户端进行测试计算,获取测试结果;94.根据所述测试结果确定每个客户端的数据计算结果以及每个数据计算结果的时序特征;95.基于每个数据计算结果的时序特征构建每个客户端的数据计算时序特征曲线图;96.根据每个客户端的数据计算时序特征曲线图确定该客户端的数据计算时序波动趋势;97.获取每个客户端的数据计算时序波动趋势中每个波动点的量化计算指标;98.根据所述量化计算指标和每个客户端的数据计算时序特征曲线图构建每个客户端的状态向量与时间序列的线性回归方程;99.对每个客户端内的状态向量与时间序列的线性回归方程进行求解,根据求解结果确定每个客户端的状态向量变化特性;100.根据每个客户端的状态向量变化特性结合状态向量变化起止点以及状态向量相关软硬件参数确定每个客户端的多个计算性能特征评估指标;101.基于每个客户端的多个计算性能特征评估指标之间的关联关系构建该客户端的多个计算性能特征评估指标之间的关联矩阵;102.基于所述关联矩阵确定每个客户端的每个计算性能特征评估指标的指标权重和关联权重;103.根据每个计算性能特征评估指标的指标权重和关联权重确定该计算性能特征评估指标的综合评估权重;104.在每个客户端的数据计算服务中提取出与该客户端的多个计算性能特征评估指标对应的服务参数;105.对每个计算性能特征评估指标对应的服务参数进行合格评估,根据评估结果以及该计算性能特征评估指标的综合评估权重确定该计算性能特征评估指标对应的服务参数的评估分数;106.将每个客户端的多个计算性能特征评估指标的评估分数相加以获得该客户端的计算性能评估总分值;107.基于每个客户端的计算性能评估总分值确定该客户端是否满足串行计算客户端筛选条件,若是,无需进行后续操作,否则,发出更换客户端的提示。108.上述技术方案的有益效果为:通过对每个客户端进行计算性能评估可以准确地确定每个客户端是否满足串行计算的性能需求从而可以选择性地进行客户端替换,为后续进行最优客户端筛选奠定了坚实的基础,同时也为每个客户端的升级工作提供了参考依据,提高了实用性和用户的体验感。109.在一个实施例中,如图3所示,所述启动每个客户端的数据计算服务以对待计算信息进行串行计算,包括:110.步骤s301、生成数据计算指令并发送到每个客户端以启动该客户端的数据计算服务;111.步骤s302、根据计算需求设置待计算信息的目标计算次数和计算时长;112.步骤s303、设置完毕后,通过每个客户端对待计算信息开始计算哈希值,将前次的计算结果值作为下次的待计算值;113.步骤s304、设置数据记录条件,根据所述数据记录条件记录每个客户端每个计算阶段的阶段结果;114.在本实施例中,数据记录条件可以为每计算1000万次记录一次;115.上述技术方案的有益效果为:通过设置待计算信息的目标计算次数和计算时长可以定制一个合理的终端筛选条件,使得计算样本和计算量足够大,使得最终终端筛选结果更加客观,进一步地,通过将前次的计算结果值作为下次的待计算值可以一直保持每个终端的计算进程,可进一步地避免数据被篡改,提高了安全性和稳定性。116.在一个实施例中,根据串行计算结果选择第一客户端,对所述第一客户端的第一计算结果进行并行验证,包括:117.根据每个客户端的串行计算结果获取该客户端的分段计算结果;118.根据每个客户端的分段计算结果统计该客户端的提交数据的数量,选择提交数量最多的客户端确认为所述第一客户端;119.根据数据记录条件设置目标数量个验证线程;120.通过所述目标数量个验证线程以并行的方式对每个客户端的分段结算结果进行真实验证。121.上述技术方案的有益效果为:通过设置验证数量可以实现短时间内对于每个终端的计算结果的准确验证,提高了验证准确性和验证效率。122.在一个实施例中,若验证通过,获取其他第二客户端的第二计算结果,根据第一计算结果和第二计算结果的相似度确定该第二客户端的提交数据是否是否被篡改,包括:123.根据所述第一计算结果确定第一客户端的第一数据计算量和每个第一计算数据的数据内容;124.根据每个第二计算结果获取该第二客户端的第二数据计算量和每个第二计算数据的数据内容;125.计算第一数据计算量和每个第一计算数据的数据内容与每个第二客户端的第二数据计算量和每个第二计算数据的数据内容之间的相似度;126.确认计算相似度是否大于等于预设阈值,若是,确定第二客户端的提交数据未被篡改,否则,确定第二客户端的提交数据已被篡改。127.上述技术方案的有益效果为:通过对比数据计算量可以从数据准确维度和数据数量维度来全方面地评估出每个第二客户端的提交数据是否被篡改,提高了评估准确性和客观性。128.在本实施例中,考虑到每个客户端的计算性能和硬件参数各不相同,故而针对每个第二客户端设置一个与第一客户端的误差范围来防止误识别数据篡改情况的发生,其误差范围通过如下方法确定:129.获取每个第二客户端的区块链节点信息;130.根据所述区块链节点信息确定每个第二客户端的区块链节点的工作负载;131.基于所述工作负载确定每个第二客户端的区块链节点的数据计算代价指数;132.获取预设测试数据,设置所述数据的计算次数,设置完毕后,将所述预设测试数据上传到每个第二客户端进行串行测试计算,获取数据计算结果;133.根据每个第二客户端的数据计算结果和区块链节点的数据计算代价指数计算出该第二客户端的计算性能指数:[0134][0135]其中,fi表示为第i个第二客户端的计算性能指数,vi表示为第i个第二客户端的数据计算速度,v1表示为预设数据计算数据参考阈值,qi表示为第i个第二客户端对应区块链节点的数据计算代价指数,ai表示为第i个第二客户端对应区块链节点的网络波动系数,b表示为区块链网络的稳定性指数,ni表示为第i个第二客户端的计算次数,j表示为第j次计算,pj表示为第i个第二客户端的数据计算结果中第j次计算时的数据输出密度,di表示为第i个第二客户端的串行计算能力值,βi表示为第i个第二客户端的处理器性能对于数据计算的影响因子;[0136]计算第一客户端的计算性能指数,根据所述第一客户端的计算能行指数和每个第二客户端的计算性能指数的商值以及第一客户端的第一数据计算量设置每个第二客户端的数据计算量误差范围;[0137]当后续第二客户端的第二数据计算量与第一客户端的第一数据计算量不相同但是其在该第二客户端的数据计算量误差范围时,确定该第二客户端的数据未被篡改,当后续第二客户端的第二数据计算量与第一客户端的第一数据计算量不相同并且其不在该第二客户端的数据计算量误差范围时,确定该第二客户端的数据已被篡改。[0138]上述技术方案的有益效果为:通过计算每个第二客户端算性能指数并且设置数据计算误差范围可以克服每个第二客户端与第一客户端在硬件和系统以及网络方面的差异影响来精准地判定每个第二客户端的计算数据是否被篡改,提高了评估客观性和准确率,很大程度地避免了误识别情况的发生,提高了稳定性。[0139]在一个实施例中,所述方法还包括:[0140]在选择出第一客户端后,关闭其他客户端的数据计算进程并断开该客户端与其区块链节点的连接;[0141]在获取到第一客户端的目标分段计算结果后,控制第一客户端继续保持计算形态直到其接收到新的待计算数据为止。[0142]上述技术方案的有益效果为:可以有效地降低区块链系统的运行负载同时也降低了终端的能耗,节省了使用成本,进一步地,通过控制第一客户端继续保持计算形态直到其接收到新的待计算数据为止可以保证第一客户端的数据计算本地链不被中断从而可以进一步地保证计算数据不被篡改,提高了数据安全性。[0143]在一个实施例中,所述通过所述目标数量个验证线程以并行的方式对每个客户端的分段结算结果进行真实验证,包括:[0144]检测外部上链数据的上链频率;[0145]基于所述上链频率利用预设算法计算出验证线程的线程速度;[0146]根据所述验证线程的线程速度和线程数量为其分配平均的验证数据;[0147]分配完毕后,设置目标数量个线程的工作模式为并行验证,设置完毕后,通过所述目标数量个验证线程以并行的方式对每个客户端的分段结算结果进行真实验证。[0148]上述技术方案的有益效果为:通过设置线程验证速度可以进一步地提高对于每个终端的计算数据的验证效率,为后续选择最佳计算性能的终端奠定了合理的条件。[0149]本实施例还公开了一种防止区块链单链数据被篡改的系统,如图4所示,该系统包括:[0150]第一获取模块401,用于获取区块链网络中发布的待计算信息;[0151]分配模块402,用于根据所述待计算信息获取待计算初始值,将所述待计算初始值分配到多个客户端进行串行计算;[0152]验证模块403,用于根据串行计算结果选择第一客户端,对所述第一客户端的第一计算结果进行并行验证;[0153]第二获取模块404,用于若验证通过,获取其他第二客户端的第二计算结果,根据第一计算结果和第二计算结果的相似度确定该第二客户端的提交数据是否是否被篡改。[0154]上述技术方案的工作原理和有益效果在方法权利要求中已经说明,此处不再赘述。[0155]在一个实施例中,在偏远地区的牧场,由于网络不发达,但同时需要监测每个饲养动物的心跳或者体温等生理参数,通过安装在饲养动物身上的芯片来采集数据,然后利用区块链网络来进行数据的计算,最后将计算结果上传到服务器上,此时由于网络不稳定,可以设置在线计算系统和离线计算系统,其中,离线计算系统通过本发明的区块链网络系统来进行采集数据的串行计算,既可以保证计算结果的精确度同时还可以保证数据在计算过程中不被篡改,提高了工作效率和数据安全性以及隐私性。[0156]在一个实施例中,如图5所示,在本实施例中:[0157]web:表示为web端,client:表示为客户端,server:表示为服务端,web和server连接,不断将web数据写入server数据库a中,记录表为webtable;client和clientnode连接,周期性读取数据库b中表clienthashtable、nodehashtable中信息,如果有更新,重新计算hash并记录到数据库b中,记录表记为clienthashtable;tablemove周期性将数据库a中webtable对应信息搬运到数据库b的clienthashtable中对应字段去;reciever接收其它server广播的hash值,记录server广播的hash和对应server对,并将记录保存到数据库b的nodehashtable表中,[0158]其中,具体步骤包括:[0159]1)server,web,client启动且通过对应端口建立连接;[0160]2)web通过webserver(php)写入数据到表webtable中;[0161]3)client每计算500万次后连接一次数据库,检查数据表clienthashtable中对应字段数据是否有更新,[0162]a)如果没有更新,则直接将计算结果记录到txt文件中;[0163]b)如果有一条更新记录,则将计算结果记录到txt文件中后,则使用新纪录内容和上一次计算的结果计算hash;[0164]c)如果有多条更新记录,则将计算结果记录到txt文件中后,对逐条新记录依次按照步骤b)中操作计算hash,并记下所有的新纪录,以供下次500万次计算后记录计算结果时记入新结果。[0165]每10分钟更新一次server当前hash,更新步骤如下:[0166]1.从client循环计算过程中,每到10分钟间隔时,保存此时hash值作为节点hash值,后续广播hash值依据此值广播;[0167]计算完当前节点hash值后,在后续指定时间段内更新其它服务器的节点hash值。[0168]通过本技术方案,可以保证区块链节点在数据同步之前不被篡改,提高了数据的安全性和隐私性,同时,也可以使得处于区块链网络中的节点在离线状态计算的数据的可信度,使得其在再次接入网络时可以将离线状态计算的数据进行同步使用,提高了实用性。[0169]本领域技术人员应当理解的是,本发明中的第一、第二指的是不同应用阶段而已。[0170]本领域技术用户员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本
技术领域
:中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。[0171]应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种篡改和改变。本公开的范围仅由所附的权利要求来限制。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1