本技术涉及区块链,特别涉及一种区块链数据校验方法、数据处理方法、装置、计算机设备以及存储介质。
背景技术:
1、区块链系统中的节点设备可以共同维护同一个存储交易数据的区块链,区块链中每个区块内都存储本区块的特征值以及父特征值,父特征值为本区块上一个区块的特征值,从而使得的多个区块可以组成一个区块链,为了保证区块链内各个区块之间的连接性,区块链系统内的节点设备需要校验区块链中的各个区块是否合法。
2、区块链数据校验可以是以下过程:对于任一区块,获取该区块的特征值以及区块的父特征值;再获取该区块的上一个区块的特征值以及该区块的下一个区块的父特征值,当该区块的父特征值与上一个区块的特征值一致,且该区块的特征值与下一个区块的父特征值一致时,该区块合法,否则,该区块不合法。
3、有的时候区块链内的交易数据需要被合法修改,那么修改后的区块实际上应该是合法,由于区块的特征值取决于区块内存储的交易数据,当区块内的交易数据被修改时,区块的特征值也会随之改变,一旦区块的特征值发生改变,该区块的特征值与下一个区块的父特征值不一致,若按照上述校验方法,则该区块不合法。因此,通过上述校验方法来校验区块链上的区块是否合法时,校验结果不准确。
技术实现思路
1、本技术实施例提供了一种区块链数据校验方法、数据处理方法、装置及设备,能够解决校验结果不准确的问题。该技术方案如下:
2、第一方面,提供一种区块链数据校验方法,所述区块链中包括第一区块和第二区块,所述第一区块中存储有第一目标特征值,所述第二区块中存储有第二目标特征值,所述方法包括:
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、当所述第二交易数据内的第一特征值以及第二特征值均通过验证时,执行交易数据替换的步骤;或,
59、当所述第二交易数据内的第一特征值以及第三特征值均通过验证时,执行交易数据替换的步骤。
60、基于上述可能的实现方式,通过验证第二交易数据,可以保证第二交易数据的有效性,避免第一节点设备处理无效的第二交易数据,降低了第一节点设备的工作量。
61、在一种可能实现方式中,当所述区块链上的创世区块内存储有所述监管节点设备的公钥时,所述监管节点设备的签名通过验证,否则,所述监管节点设备的签名未通过验证;
62、若将所述第一区块内的所述第一交易数据替换后,所得到的区块的特征值与所述第一特征值一致时,则所述第一特征值通过验证,否则,所述第一特征值未通过验证;
63、当所述第一区块相邻的区块的特征值与所述第二特征值一致时,则所述第二特征值希通过验证,否则,所述第二特征值未通过验证;
64、当所述区块链上与所述第一区块后一块区块的父特征值与所述第三特征值一致时,则所述第三特征值通过验证,否则,所述第三特征值未通过验证。
65、基于上述可能的实现方式,通过上述对第一特征值的验证,可以保证第一节点设备后续对第一交易数据进行替换后得到的第三区块与监管节点设备得到的第三区块相同,进而可以保证区块链系统中的每个节点设备配置的区块链上的第三区块相同。并且,通过上述对第二特征值或第三特征值进行验证,可以保证第一节点设备后续对第一交易数据进行替换后得到的第三区块与第四区块的连接性。
66、在一种可能实现方式中,所述第二交易数据中的交易内容为空或为非空的预设内容。
67、基于上述可能的实现方式,由于交易内容为空,若将区块链上的第一交易数据替换为该第二交易数据,相当于删除了区块链上的该第一交易数据,或由于交易内容为非空,若将区块链上的第一交易数据替换为该第二交易数据,相当于修改了区块链上的该第一交易数据。
68、在一种可能实现方式中,所述方法还包括:
69、接收所述第二交易数据;
70、在所述第二交易数据验证通过的情况下,生成所述第二区块;
71、在区块链系统对所述第二区块共识通过的情况下,将所述第二区块存储在所述区块链系统内的区块链上。
72、在一种可能实现方式中,所述对所述区块链上的第一区块内的所述第一交易数据进行替换包括:
73、当所述第二交易数据携带第三交易数据时,将所述区块链上的所述第一区块内的所述第一交易数据替换为所述第三交易数据;
74、所述方法还包括:
75、根据所述第三区块之后、所述第二区块之前的所有区块,重新生成多个区块;
76、将所述第三区块之后、所述第二区块之前的所有区块替换为所述多个区块。
77、在一种可能实现方式中,所述第二交易数据还携带第四特征值,所述第四特征值为所述多个区块中最后一个区块的特征值。
78、在一种可能实现方式中,在所述第二交易数据内的所述第四特征值均通过验证的情况下,执行交易数据替换的步骤。
79、基于上述可能的实现方式,通过验证第二交易数据,可以保证第二交易数据的有效性,避免第一节点设备处理无效的第二交易数据,降低了第一节点设备的工作量。并且,通过上述对第四特征值进行验证,可以保证第一节点设备后续对第一交易数据进行替换后得到的第三区块与第一区块后的所有区块的连接性,从而可以保证区块链的完整性。
80、在一种可能实现方式中,所述第三交易数据中的交易内容为空或为非空的预设内容。
81、在一种可能实现方式中,所述方法还包括:
82、接收广播停止服务消息,所述停止服务消息用于指示停止将监管节点设备以外的节点设备所广播的普通交易数据打包至区块的服务;
83、在接收到多个交易数据的情况下,仅对所述多个交易数据中的第二交易数据进行验证,在所述第二交易数据验证通过的情况下,生成所述第二区块;
84、在所述区块链系统对所述第二区块共识通过的情况下,将所述第二区块存储在所述区块链系统内的区块链上。
85、第四方面,提供一种系统,所述系统包括处理器和存储器,该存储器中存储有至少一条指令,该指令由该处理器加载并执行以实现如上述第一方面或上述第一方面的任一种可选方式提供的区块链数据校验方法所执行的操作。
86、第五方面,提供一种系统,所述系统包括处理器和存储器,该存储器中存储有至少一条指令,该指令由该处理器加载并执行以实现如上述第二方面或上述第二方面的任一种可选方式提供的数据处理方法所执行的操作。
87、第六方面,提供一种系统,所述系统包括处理器和存储器,该存储器中存储有至少一条指令,该指令由该处理器加载并执行以实现如上述第三方面或上述第三方面的任一种可选方式提供的数据处理方法所执行的操作。
88、第七方面,提供一种程序,所述程序被执行时,用于实现如上述第一方面或上述第一方面的任一种可选方式提供的区块链数据校验方法所执行的操作。
89、第八方面,提供一种程序,所述程序被执行时,用于实现如上述第二方面或上述第二方面的任一种可选方式提供的数据处理方法所执行的操作。
90、第九方面,提供一种程序,所述程序被执行时,用于实现如上述第三方面或上述第三方面的任一种可选方式提供的数据处理方法所执行的操作。
1.一种区块链数据校验方法,其特征在于,所述区块链中包括第一区块和第二区块,所述第一区块中存储有第一目标特征值,所述第二区块中存储有第二目标特征值,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在所述目标区块内的交易数据被修改过的情况下,所述方法还包括:将所述目标区块中存储的第三目标特征值与所述目标区块的上一个区块的特征值进行对比,以确定所述目标区块的上一个区块是否合法。
3.根据权利要求1所述的方法,其特征在于,在任一区块内的交易数据被修改过的情况下,所述区块中还包括原始特征值以及修改特征值,所述原始特征值是所述区块的交易数据修改前的特征值,所述更新特征值是所述区块的交易数据修改后的特征值;
4.一种数据处理方法,其特征在于,所述方法包括:
5.根据权利要求4所述的方法,其特征在于,所述查询区块链系统的区块链上的区块包括:
6.根据权利要求4所述的方法,其特征在于,所述对所述区块链上的所述第一区块内的所述第一交易数据进行替换包括:
7.根据权利要求6所述的方法,其特征在于,所述第二交易数据还携带第一特征值,所述第一特征值为所述第一区块未存储所述第一交易数据时的特征值;
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
9.根据权利要求6所述的方法,其特征在于,所述第二交易数据中的交易内容为空或为非空的预设内容。
10.根据权利要求4所述的方法,其特征在于,所述对所述区块链上的所述第一区块内的所述第一交易数据进行替换包括:
11.根据权利要求10所述的方法,其特征在于,所述第二交易数据还携带第四特征值,所述第四特征值为所述多个区块中最后一个区块的特征值。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
13.根据权利要求10所述的方法,其特征在于,所述方法还包括:
14.根据权利要求10所述的方法,其特征在于,所述第三交易数据中的交易内容为空或为非空的预设内容。
15.一种数据处理方法,其特征在于,所述方法包括:
16.根据权利要求15所述的方法,其特征在于,所述对所述区块链上的第一区块内的所述第一交易数据进行替换包括:
17.根据权利要求16所述的方法,其特征在于,所述第二交易数据还携带第一特征值;所述第一特征值为所述第一区块未存储所述第一交易数据时的特征值;
18.根据权利要求15所述的方法,其特征在于,所述方法还包括:
19.根据权利要求15所述的方法,其特征在于,所述方法还包括:
20.一种系统,其特征在于,所述系统包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至权利要求3任一项所述的方法所执行的操作。
21.一种系统,其特征在于,所述系统包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求4至权利要求14任一项所述的方法所执行的操作。
22.一种系统,其特征在于,所述系统包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求15至权利要求19任一项所述的方法所执行的操作。
23.一种程序,其特征在于,所述程序被执行时,用于实现如权利要求1至权利要求3任一项所述的方法所执行的操作。
24.一种程序,其特征在于,所述程序被执行时,用于实现如权利要求4至权利要求14任一项所述的方法所执行的操作。
25.一种程序,其特征在于,所述程序被执行时,用于实现如权利要求15至权利要求19任一项所述的方法所执行的操作。
