CN109102284A - 一种区块链防篡改技术的优化方法 - Google Patents
一种区块链防篡改技术的优化方法 Download PDFInfo
- Publication number
- CN109102284A CN109102284A CN201810851191.0A CN201810851191A CN109102284A CN 109102284 A CN109102284 A CN 109102284A CN 201810851191 A CN201810851191 A CN 201810851191A CN 109102284 A CN109102284 A CN 109102284A
- Authority
- CN
- China
- Prior art keywords
- block
- file
- tampered
- data
- node
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- Marketing (AREA)
- Economics (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种发现区块链上某个节点所存储的账本数据被篡改的方法,本方法首先遍历验证节点中存储的区块链中除最后一个区块的所有区块是否被篡改,如验证节点中存在已被篡改的区块,则记录pre_H用于恢复数据。当在该节点区块链中新加入区块时,新进区块存储的pre_H和数据用节点的私钥分别进行签名,并单独存储。检测时将最新区块内存储的pre_H和数据与所存储的签名中的pre_H和数据分别进行比较,从而验证新进区块的数据是否被篡改,并定位恢复前面已被篡改区块中的数据。
Description
技术领域
本发明涉及区块链技术领域,具体涉及一种区块链防篡改技术的优化方法。
背景技术
区块链是比特币等数字虚拟货币的底层技术,通过去中心化的数据记录,由全网所有的节点共同维护数据,实现安全地存储数据,具有不可伪造性、不可篡改性、可追溯性、匿名性等特点。
区块链的去中心化技术方案是以区块为基本单位来管理和存储数据。区块由两个部分的数据结构组成,分别为区块头部和梅克尔树结构。区块的头部包括矿工可以修改的临时随机数、前序区块的哈希值、时间戳、挖矿难度、交易树的树根等数据。区块的另一部分是梅克尔树,用来存储有效交易。当包含交易数据信息的区块有序链接时,就形成了区块链。
由此可见,区块链是一个分布式账本,每个节点维护一份账本数据,每个账本数据包括了所有的历史交易信息,账本之间通过哈希指针连接。正常情况下,全网维护共同的区块链数据,单个节点存储的数据与全网的数据一致。但是如果有攻击者试图篡改该节点的历史数据,账本的原始数据被毁坏,那么智能合约就无法通过该节点的账本获取准确的历史交易数据,基于账本历史数据的所有应用均将受到影响。如何保证节点所存账本的安全性,确保节点账本数据及应用的有效性,成为亟待解决的技术问题。
发明内容
本发明提出了一种发现区块链上某个节点所存储的账本数据被篡改的方法。
为解决上述技术问题,本发明采用以下技术方案:
本发明通过检测该节点上每个区块的哈希值,与其紧邻的后一个区块头部所存储的前序区块哈希值pre_H相比较,如果出现不一致则说明该节点账本数据被篡改。
上述方法通过下列步骤得以实现:
一种区块链防篡改技术的优化方法,包括如下步骤:
1、检验节点中除最后一个区块外的所有区块是否被篡改,并定位被篡改的区块:
1.1)在每个节点中,由最先的区块开始,遍历验证所存储区块链区块的哈希值与紧邻后续区块pre_H值是否一致,如果出现不一致认为此区块已被篡改,并记录此区块的pre_H,用于数据恢复,如果所有区块的哈希值与紧邻后续区块的pre_H一致,则需根据后续步骤判断该区块是否被篡改;
1.2)在遍历验证所有区块的哈希值是否与紧邻后续区块pre_H值一致的同时,根据每个区块的时间戳,将同一天内的所有区块存储在同一个文件内,前一个文件的最后一个区块的哈希值,作为后一个文件的第一个区块的哈希指针,以此将区块链按日拆分,如果同一天内的文件中没有发现前一区块的哈希值与紧邻后续区块pre_H不同,则计算该文件的哈希值H,并将H存储在临时文件夹中;
2、检验节点中最后一个区块,并根据检验结果定位并恢复区块链中被篡改的区块:
2.1)对于节点中最后一个区块存储的pre_H和数据,在该区块被挂上节点的区块链时用节点的私钥分别进行签名,并单独存储。当节点区块链新挂区块时该存储动态更新为最新区块存储的pre_H和数据的签名;
2.2)将最后一个区块内存储的数据与单独存储的签名中的数据进行比较,如一致则认为最后一个区块的数据未被篡改。如果不一致,说明最新区块的数据被篡改,此时向邻近节点询问最新区块并恢复数据。
将最后一个区块内存储的pre_H与单独存储的签名中的pre_H进行比较,以此校验区块的pre_H值是否做了修改。如果不一致,通过在网上向其他节点从最近区块开始依次询问获取区块,通过比较定位出被篡改的区块,并恢复数据。
将步骤1.1)中的pre_H作为ID,通过在网上询问其他节点pre_H的区块(不一致的pre_H作为请求其他节点寻找区块的ID,并且在获得区块后验证),从而能够找到前序区块。用同样的方法可以得到之前的区块,通过比较,从而定位并恢复被篡改的数据。
对于未被篡改的文件,对临时文件夹里存储的文件的H标记为正式存储的文件哈希值,对于被篡改的数据恢复后计算所属文件的正式存储文件哈希值。
3、快速验证区块链是否正确:
第一次检测完成以后,再次检验是否被篡改,直接进行文件检测:
3.1)重新计算区块链中每一天的文件的哈希值file_hash;
3.2)比较file_hash与步骤2中正式存储的文件H;
3.3)若file_hash与H相同,则认为数据未被篡改,否则针对文件里的区块重复步骤1和2,对于有过N次篡改经历的(N≥1)的高危块,设置并记录文件的高危参数标识r,r为该文件内的块被篡改的加权次数,其中k为被篡改的次数,m为对应被篡改k次的区块个数。针对r>0的区块,单独设置每单位时间内(如每隔一周)扫描r次,作为扫描频率。每次扫描完后更新高危参数标识,计算下一次该文件扫描的时间,设置定时任务。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
1、能够判断单一节点的区块链是否被篡改的同时修复区块链数据。
2、验证次数较少,验证效率高。
附图说明
图1为区块的数据结构图;
图2为将文件按天划分为文件的示意图;
图3为区块链结构示意图;
图4为未篡改到最后一个区块的区块链示意图;
图5为对最后一个区块的签名存储;
图6为检验文件哈希值时的示意图;
图7为完成文件划分后的区块链示意图;
图8为实施例的流程图。
具体实施方式
下面结合附图对本发明的技术方案做进一步的详细说明:
假设节点A维护一条如图3所示的区块链,每个块按照时间戳T,通过前序区块的哈希值进行互联,当前有n个区块,每个区块内容包括:区块的数据D和上一个区块的哈希指针pre_H。
区块链上的哈希指针可简化为:
pre_H(1)=hash(D(1))
pre_H(2)=hash(pre_H(1)||D(1))
……
pre_H(n-2)=hash(pre_H(n-3)||D(n-2))
pre_H(n-1)=hash(pre_H(n-2)||D(n-1))
pre_H(n)=hash(pre_H(n-1)||D(n))
防篡改检测机制如下步骤:
1、开始第一次检测,主要对整个区块链进行区块间pre_H对比检测,如图1所示,如果pre_H(m)=hash(pre_H(m-1)||D(m)),则此次检测通过;否则检测不通过,并将有问题的pre_H(m)记录下来,用于后面的数据恢复。
2、在进行区块间pre_H对比检测的同时,统计各个区块的时间戳,将同一个时间段的区块划分为一个文件,文件以天为单位进行划分。假设区块1、2、3的时间戳属于文件1的时间段2018-6-1,将这三个区块归于文件1,如图2所示。
其中file_H1=hash(D1||pre_H1||D2||pre_H2||D3),当所有属于文件1的区块都统计完成后,计算文件1的文件哈希值file_H1,并将该文件哈希值存储于临时文件夹里。
3、如果有篡改者篡改块m中的数据D(m),并且篡改者未篡改到最后一个区块存储的pre_H(n),那么按照技术方案第一条的方法来比较,总能发现某个区块的哈希值与紧邻后序区块存储的pre_H的值不同。如图4所示,如果D(m)、pre_H(m)、pre_H(m+1)被修改,则通过比较块m+2的哈希值与pre_H(m+2),因为不一致从而发现数据被篡改。
4、通过在网上询问其他节点pre_H(m+2)的区块(pre_H(m+2)作为请求其他节点寻找区块的ID,并且在获得区块后验证),从而能够找到块m+2。用同样的方法,找到块m+1和块m,通过核验比较,从而定位出数据D(m)被篡改,并恢复数据。
5、节点核验新区块通过以后,在挂链的同时,节点增加一项工作,即:对于该新进区块的存储的pre_H和数据用节点的私钥进行签名,并单独存储。这样,节点为了验证最新区块的pre_H,只需将区块存储的pre_H与所存的签名中的pre_H进行比较,以此校验区块的pre_H值是否做了修改。如果篡改者修改的是最新区块的数据,可通过比较数据的签名,同样可以发现篡改。如图5所示。
6、若第5步中pre_H(n-1)值比较的结果不同,向其他节点询问最新区块,按步骤4可定位篡改区块并恢复成原来的正确数据。若第5步中数据值比较的结果不同,向其他节点询问最新区块,恢复最后一个区块的数据。
7、第一次检测时,进行如上步骤,对于未被篡改的文件,将第2步临时文件夹里存储的文件的H进行标记,对于被篡改的数据恢复后重新计算文件的哈希值,以后的检测可直接通过检测文件的哈希值file_H即可,以提高扫描效率,如图6所示。
8、整个区块链完成区块间检测和文件划分,假设现在节点A的区块链由三个完整的文件和当天还未归为文件的剩余区块组成,如图7所示。
9、检测过程中定位具体被篡改的区块后,将该区块打上被篡改的标签,并在每一次被发现篡改后累加次数。对于有过N次篡改经历的(N≥1)的高危块,设置并记录文件的高危参数标识r,r为该文件内的块被篡改的加权次数,其中k为被篡改的次数,m为对应被篡改k次的区块个数。如某个文件中,有1个被2次篡改的区块,和2个被3次篡改的区块,该文件的标签为2次*1+3次*2=8次。单独设置每单位时间内(如每隔一周)扫描r次,作为扫描频率。每次扫描完后更新高危参数标识,计算下一次该文件扫描的时间,设置定时任务。
Claims (1)
1.一种区块链防篡改技术的优化方法,包括如下步骤:
1、检验节点中除最后一个区块外的所有区块是否被篡改,并定位被篡改的区块:
1.1)在每个节点中,由最先的区块开始,遍历验证所存储区块链区块的哈希值与紧邻后续区块pre_H值是否一致,如果出现不一致认为此区块已被篡改,并记录此区块的pre_H,用于数据恢复,如果所有区块的哈希值与紧邻后续区块的pre_H一致,则需根据后续步骤判断该区块是否被篡改;
1.2)在遍历验证所有区块的哈希值是否与紧邻后续区块pre_H值一致的同时,根据每个区块的时间戳,将同一天内的所有区块存储在同一个文件内,前一个文件的最后一个区块的哈希值,作为后一个文件的第一个区块的哈希指针,以此将区块链按日拆分,如果同一天内的文件中没有发现前一区块的哈希值与紧邻后续区块pre_H不同,则计算该文件的哈希值H,并将H存储在临时文件夹中;
2、检验节点中最后一个区块,并根据检验结果定位并恢复区块链中被篡改的区块:
2.1)对于节点中最后一个区块存储的pre_H和数据,在该区块被挂上节点的区块链时用节点的私钥分别进行签名,并单独存储。当节点区块链新挂区块时该存储动态更新为最新区块存储的pre_H和数据的签名;
2.2)将最后一个区块内存储的数据与单独存储的签名中的数据进行比较,如一致则认为最后一个区块的数据未被篡改。如果不一致,说明最新区块的数据被篡改,此时向邻近节点询问最新区块并恢复数据。
将最后一个区块内存储的pre_H与单独存储的签名中的pre_H进行比较,以此校验区块的pre_H值是否做了修改。如果不一致,通过在网上向其他节点从最近区块开始依次询问获取区块,通过比较定位出被篡改的区块,并恢复数据。
将步骤1.1)中的pre_H作为ID,通过在网上询问其他节点pre_H的区块(不一致的pre_H作为请求其他节点寻找区块的ID,并且在获得区块后验证),从而能够找到前序区块。用同样的方法可以得到之前的区块,通过比较,从而定位并恢复被篡改的数据。
对于未被篡改的文件,对临时文件夹里存储的文件的H标记为正式存储的文件哈希值,对于被篡改的数据恢复后计算所属文件的正式存储文件哈希值。
3、快速验证区块链是否正确:
第一次检测完成以后,再次检验是否被篡改,直接进行文件检测:
3.1)重新计算区块链中每一天的文件的哈希值file_hash;
3.2)比较file_hash与步骤2中正式存储的文件H;
3.3)若file_hash与H相同,则认为数据未被篡改,否则针对文件里的区块重复步骤1和2,对于有过N次篡改经历的(N≥1)的高危块,设置并记录文件的高危参数标识r,r为该文件内的块被篡改的加权次数,其中k为被篡改的次数,m为对应被篡改k次的区块个数。针对r>0的区块,单独设置每单位时间内(如每隔一周)扫描r次,作为扫描频率。每次扫描完后更新高危参数标识,计算下一次该文件扫描的时间,设置定时任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810851191.0A CN109102284B (zh) | 2018-07-30 | 2018-07-30 | 一种区块链防篡改技术的优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810851191.0A CN109102284B (zh) | 2018-07-30 | 2018-07-30 | 一种区块链防篡改技术的优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109102284A true CN109102284A (zh) | 2018-12-28 |
CN109102284B CN109102284B (zh) | 2021-07-27 |
Family
ID=64848008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810851191.0A Active CN109102284B (zh) | 2018-07-30 | 2018-07-30 | 一种区块链防篡改技术的优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109102284B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110535967A (zh) * | 2019-09-06 | 2019-12-03 | 江苏物联网研究发展中心 | 一种车辆运输数据判断系统 |
CN114025355A (zh) * | 2021-08-05 | 2022-02-08 | 成都西加云杉科技有限公司 | 一种伪ap识别方法、装置、设备及存储介质 |
CN114237987A (zh) * | 2022-02-22 | 2022-03-25 | 南京金宁汇科技有限公司 | 一种基于区块链的非结构化数据自修复方法 |
CN115618426B (zh) * | 2022-11-17 | 2023-04-28 | 山东区块链研究院 | 基于检查点的区块链数据防篡改方法及系统 |
CN116883027A (zh) * | 2023-09-06 | 2023-10-13 | 南通汉迪自动化设备有限公司 | 一种物料进出口通关联网监管系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170109735A1 (en) * | 2015-07-14 | 2017-04-20 | Fmr Llc | Computationally Efficient Transfer Processing and Auditing Apparatuses, Methods and Systems |
CN106796524A (zh) * | 2016-12-27 | 2017-05-31 | 深圳前海达闼云端智能科技有限公司 | 记录应用程序配置信息的方法、装置和电子设备 |
CN107135661A (zh) * | 2016-12-26 | 2017-09-05 | 深圳前海达闼云端智能科技有限公司 | 数据处理方法、装置、系统及信息采集设备 |
CN107257336A (zh) * | 2017-06-15 | 2017-10-17 | 北京汇通金财信息科技有限公司 | 一种用户认证方法及系统 |
CN107659410A (zh) * | 2017-08-30 | 2018-02-02 | 湖南众享政联科技有限公司 | 基于区块链防篡改公文传输和存储方法 |
CN107909369A (zh) * | 2017-10-13 | 2018-04-13 | 布比(北京)网络技术有限公司 | 基于跨链交易的共识方法、装置和存储介质 |
-
2018
- 2018-07-30 CN CN201810851191.0A patent/CN109102284B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170109735A1 (en) * | 2015-07-14 | 2017-04-20 | Fmr Llc | Computationally Efficient Transfer Processing and Auditing Apparatuses, Methods and Systems |
CN107135661A (zh) * | 2016-12-26 | 2017-09-05 | 深圳前海达闼云端智能科技有限公司 | 数据处理方法、装置、系统及信息采集设备 |
CN106796524A (zh) * | 2016-12-27 | 2017-05-31 | 深圳前海达闼云端智能科技有限公司 | 记录应用程序配置信息的方法、装置和电子设备 |
CN107257336A (zh) * | 2017-06-15 | 2017-10-17 | 北京汇通金财信息科技有限公司 | 一种用户认证方法及系统 |
CN107659410A (zh) * | 2017-08-30 | 2018-02-02 | 湖南众享政联科技有限公司 | 基于区块链防篡改公文传输和存储方法 |
CN107909369A (zh) * | 2017-10-13 | 2018-04-13 | 布比(北京)网络技术有限公司 | 基于跨链交易的共识方法、装置和存储介质 |
Non-Patent Citations (2)
Title |
---|
何蒲 等: "区块链技术与应用前瞻综述", 《计算机科学》 * |
黄天开: "区块链与大数据结合既安全又高效——区块链与大数据结合的研究", 《电子制作》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110535967A (zh) * | 2019-09-06 | 2019-12-03 | 江苏物联网研究发展中心 | 一种车辆运输数据判断系统 |
CN110535967B (zh) * | 2019-09-06 | 2022-08-23 | 江苏物联网研究发展中心 | 一种车辆运输数据判断系统 |
CN114025355A (zh) * | 2021-08-05 | 2022-02-08 | 成都西加云杉科技有限公司 | 一种伪ap识别方法、装置、设备及存储介质 |
CN114237987A (zh) * | 2022-02-22 | 2022-03-25 | 南京金宁汇科技有限公司 | 一种基于区块链的非结构化数据自修复方法 |
CN115618426B (zh) * | 2022-11-17 | 2023-04-28 | 山东区块链研究院 | 基于检查点的区块链数据防篡改方法及系统 |
CN116883027A (zh) * | 2023-09-06 | 2023-10-13 | 南通汉迪自动化设备有限公司 | 一种物料进出口通关联网监管系统 |
CN116883027B (zh) * | 2023-09-06 | 2023-12-19 | 南通汉迪自动化设备有限公司 | 一种物料进出口通关联网监管系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109102284B (zh) | 2021-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109102284A (zh) | 一种区块链防篡改技术的优化方法 | |
CN107526775B (zh) | 一种区块链数据归档的方法 | |
CN108053239B (zh) | 基于区块链的传感器网络共享方法 | |
CN110827028B (zh) | 一种基于区块链的数据采集交易系统和方法 | |
CN107239954A (zh) | 一种提高区块产生速度的方法及装置 | |
CN110650321B (zh) | 基于区块链技术的视频内容防篡改、防丢失及恢复的方法 | |
CN107171812A (zh) | 一种基于区块链的无密钥签名基础设施构建方法 | |
CN108009445B (zh) | 一种半中心化的可信数据管理系统 | |
CN109039646B (zh) | 一种基于节点能力的区块链区块打包和验证方法及系统 | |
CN107562883B (zh) | 一种数据同步的方法及系统 | |
CN109100785B (zh) | 连续记录数据的质控方法和装置 | |
CN104679777A (zh) | 一种用于检测欺诈交易的方法及系统 | |
CN109658099B (zh) | 一种基于区块链的账本记账方法 | |
CN109101830A (zh) | 基于区块链的实时数据安全防护方法和系统 | |
KR101911863B1 (ko) | 스마트 미터 및 원격 검침 시스템 | |
Xu et al. | Blockchain technology and smart contract for civil structural health monitoring system | |
KR102010571B1 (ko) | 블록체인을 이용한 스마트그리드 이종 데이터 보안 저장 방법 | |
CN111711192B (zh) | 一种支撑台区线损精益化管理的实时线损分析方法及系统 | |
CN104778123A (zh) | 一种检测系统性能的方法及装置 | |
CN106650496A (zh) | 一种数据处理方法及装置 | |
KR101937090B1 (ko) | 블록체인 기반 블록 검증 방법 | |
CN109102049A (zh) | 一种产品信息追溯方法 | |
CN109492432A (zh) | 基于区块链的实时数据安全防护方法和系统 | |
CN109829076A (zh) | 一种生成区块链的方法及设备 | |
CN109872159B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |