CN111428277B - 区块链数据的校验方法、装置及系统 - Google Patents
区块链数据的校验方法、装置及系统 Download PDFInfo
- Publication number
- CN111428277B CN111428277B CN202010200120.1A CN202010200120A CN111428277B CN 111428277 B CN111428277 B CN 111428277B CN 202010200120 A CN202010200120 A CN 202010200120A CN 111428277 B CN111428277 B CN 111428277B
- Authority
- CN
- China
- Prior art keywords
- block
- job
- hash
- check
- information
- 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.)
- Active
Links
Classifications
-
- 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
-
- 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
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- 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)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种区块链数据的校验方法、装置及系统,其中,该方法包括:随机选择区块链节点中的校验区块,校验区块包括:区块编号、以及区块根哈希,以便于相应的客户端根据校验区块的区块编号返回与区块编号对应的作业信息;接收来自相应的客户端返回的至少一个作业信息,作业信息包括:作业哈希以及作业在校验区块中的位置信息;根据位置信息对至少一个作业的作业哈希进行排序;对排序后的作业哈希进行预定运算以得到至少一个作业的根哈希;响应于至少一个作业的根哈希与校验区块中的区块根哈希相同,则校验上述校验区块成功。通过本发明,可以及时发现区块链节点是否存储作弊行为,从而可以及时解决作弊问题。
Description
技术领域
本发明涉及数据处理领域,具体涉及一种区块链数据的校验方法、装置及系统。
背景技术
区块链技术,也被称作分布式账本技术,底层组合了密码学、P2P(peer-to-peer,点对点)通信、共识算法等技术,提供了一种在弱信任环境下,低成本建立信任的新型计算范式和协作模式。区块链的主要特性包括去中心化、公开透明、防篡改、可追溯。
在通常的区块链网络的区块数据中,包含区块头和区块数据两部分。其中,区块头主要包含:交易信息构建默克尔树的根哈希(可以每笔交易先做一次哈希,再根据交易的哈希值构建默克尔树;任一交易改变或者交易顺序改变,默克尔树的根哈希都会随之改变,因此根哈希可以唯一锁定一组交易)、前一区块头的哈希值(保证了其不可篡改性,因为改变历史区块的数据,会导致其区块头哈希值改变,因此后续所有区块数据都需要修改)、以及世界状态的默克尔根哈希。区块数据主要包括:按照一定顺序排列的交易信息列表。
由于部署网络、数据隐私性的限制,在实际的应用过程中,部分场景会使用私有化部署模式(私有链),即区块链节点均部署在一个组织内部。在私有链的模式下,区块链作为一个链式数据库使用。
目前,在一个私有链业务场景中,全部节点都部署在一个组织内,区块链使用者使用客户端SDK(Software Development Kit,软件开发工具包)通过一个或者多个节点接入区块链网络,客户端不存储区块链相关信息。私有链的主要好处有:1)更快的交易速度、更低的交易成本;2)内部多节点,容错性更强;3)数据隐私性更好。但是,由于节点均部署在一个中心化组织内,因此客户端交易可能存在被恶意丢弃或者区块链上交易数据被篡改而无法及时发现的可能。
发明内容
有鉴于此,本发明提供一种区块链数据的校验方法、装置及系统,以解决上述提及的至少一个问题。
根据本发明的第一方面,提供一种区块链数据的校验方法,所述方法包括:随机选择区块链节点中的校验区块,所述校验区块包括:区块编号、以及区块根哈希,以便于相应的客户端根据所述校验区块的区块编号返回与所述区块编号对应的作业信息;接收来自所述相应的客户端返回的至少一个作业信息,所述作业信息包括:作业哈希以及作业在所述校验区块中的位置信息;根据所述位置信息对所述至少一个作业的作业哈希进行排序;对排序后的作业哈希进行预定运算以得到所述至少一个作业的根哈希;响应于所述至少一个作业的根哈希与所述校验区块中的区块根哈希相同,则校验所述校验区块成功。
根据本发明的第二方面,提供一种区块链数据的校验装置,所述装置包括:区块选择单元,用于随机选择区块链节点中的校验区块,所述校验区块包括:区块编号、以及区块根哈希,以便于相应的客户端根据所述校验区块的区块编号返回与所述区块编号对应的作业信息;作业信息接收单元,用于接收来自所述相应的客户端返回的至少一个作业信息,所述作业信息包括:作业哈希以及作业在所述校验区块中的位置信息;排序单元,用于根据所述位置信息对所述至少一个作业的作业哈希进行排序;根哈希生成单元,用于对排序后的作业哈希进行预定运算以得到所述至少一个作业的根哈希;校验单元,用于响应于所述至少一个作业的根哈希与所述校验区块中的区块根哈希相同,则校验所述校验区块成功。
根据本发明的第三方面,提供一种区块链数据的校验系统,所述系统包括:多个客户端、以及上述的装置,其中,所述客户端用于存储每个作业的哈希、以及该作业在所属区块的区块编号和位置信息。
根据本发明的第四方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述区块链数据的校验方法的步骤。
根据本发明的第五方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述区块链数据的校验方法的步骤。
由上述技术方案可知,通过随机选择区块链节点中的区块作为校验区块,使得相应的客户端可以根据校验区块的区块编号返回对应的作业信息,通过根据作业信息中的位置信息对作业信息中的作业哈希进行排序,并根据排序后的作业哈希计算根哈希,当该根哈希与校验区块中的区块根哈希相同时,表示校验区块校验成功,并未被篡改,通过本技术方案,可以及时发现区块链节点是否存储作弊行为,从而可以及时解决作弊问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的区块链数据的校验方法的流程图;
图2是根据本发明实施例的区块链数据的校验方法的详细流程图;
图3是根据本发明实施例的步骤205的详细流程图;
图4是默克尔根哈希的计算流程图;
图5是根据本发明实施例的区块链数据校验系统的结构框图;
图6是根据本发明实施例的数据校验装置1的结构框图;
图7是根据本发明实施例的数据校验装置1的详细结构框图;
图8是根据本发明实施例的客户端2的结构框图;
图9是根据本发明实施例的电子设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在私有链场景下,由于节点都部署在中心化组织内部,因此会存在客户端交易(或称为作业)被恶意丢弃或者区块链数据被篡改等作弊行为而无法及时发现的问题。基于此,本发明实施例提供一种区块链数据的校验方案,由于链上所有交易均由客户端产生,因此如果客户端可以联合起来,定期对区块中的数据进行检查,可以及时发现私有链节点作弊的问题。以下结合附图来详细描述本发明实施例。
图1是根据本发明实施例的区块链数据的校验方法的流程图,如图1所示,该方法包括:
步骤101,随机选择区块链节点中的校验区块,所述校验区块包括:区块编号、以及区块根哈希,相应的客户端会根据所述校验区块的区块编号返回与所述区块编号对应的作业(也可以称为交易)信息。
具体而言,这里可以是随机选择预定数量或者预定比例的多个校验区块,也就是说,对多个校验区块进行校验。
步骤102,接收来自所述相应的客户端返回的至少一个作业信息,所述作业信息包括:作业哈希以及作业在所述校验区块中的位置信息。
步骤103,根据所述位置信息对所述至少一个作业的作业哈希进行排序。
当校验区块为多个时,可以根据所述位置信息对所述至少一个作业的所属同一区块编号的作业哈希进行排序。
在实际操作中,可以将排序后的作业哈希与校验区块中的作业哈希进行比较;当所述排序后的作业哈希与所述校验区块中的作业哈希不同时,表示校验区块校验失败,即,该校验区块存在作弊行为,此时,管理员可以及时对该作弊行为进行处理。
步骤104,对排序后的作业哈希进行预定运算以得到所述至少一个作业的根哈希。
这里的预定运算可以是默克尔树构建运算,从而可以得到所述至少一个作业的默克尔树根哈希。校验区块的区块根哈希也是默克尔树根哈希。
步骤105,响应于所述至少一个作业的根哈希与所述校验区块中的区块根哈希相同,则校验所述校验区块成功。
通过随机选择区块链节点中的区块作为校验区块,使得相应的客户端可以根据校验区块的区块编号返回对应的作业信息,通过根据作业信息中的位置信息对作业信息中的作业哈希进行排序,并根据排序后的作业哈希计算根哈希,当该根哈希与校验区块中的区块根哈希相同时,表示校验区块校验成功,并未被篡改,通过本发明实施例,可以及时发现区块链节点是否存储作弊行为,从而可以及时解决作弊问题。
在具体实施过程中,客户端需要预先存储每笔上链作业的哈希值(与区块内构建交易列表默克尔树使用相同的哈希算法)、作业在区块内的排序位置(一个区块内可能有多笔交易)以及作业所在的区块编号。
为了更好地理解本发明实施例,以下以经融交易为例来详细描述本发明实施例。在金融交易中,客户端需要将每天的交易(或称为作业)上传至私有链。
在每日日终,从上一交易日新增长的区块中,随机选取x%(这里的x可以是10、20或者30等,可以根据实际情况而定)个区块进行校验。客户端根据业务情况,在业务低峰时期时,主动获取需要校验的区块编号,并与本地的交易进行匹配,得到相应的交易数据(包括交易哈希和交易在所属区块中的位置)。在收集完所有的客户端匹配到的交易数据后,对交易数据基于所属区块位置进行排序并计算排序后的交易哈希的默克尔树根哈希,之后与私有链节点对应校验区块的交易列表哈希对比验证。以下结合图2所示的流程来详细描述本发明实施例。
图2是根据本发明实施例的区块链数据的校验方法的详细流程图,如图2所示,该流程包括:
步骤201,在当日日终时,查询私有链区块高度,并进行存储。
步骤202,查询本地存储昨日区块高度,并在当日新增区块中,随机选取x%个区块作为校验区块,例如,选择20%个区块作为校验区块,即新增100个区块,随机选取20个作为校验区块。
步骤203,客户端在业务低峰时期,获取需要校验的区块列表。
步骤204,客户端将需要校验的区块,与本地的交易进行匹配,并发送匹配到的交易的哈希和交易在区块内的排序位置。在整个私有链的网络中,一般会有一个主节点,会对一定时间内的交易进行排序,生成一个区块,区块内的位置指的就是这笔交易在区块链内排序的位置,例如一个区块可能有10笔交易,某笔交易在该区块内排在第五个。
步骤205,收集完全部客户端的交易信息后,将接收到的同一区块编号内的交易哈希按照位置进行排序,得到交易哈希序列。
步骤206,基于上述有序的交易哈希序列,使用与私有链相同的方法构造默克尔树,计算该有序交易哈希序列的默克尔树根哈希,并与私有链的对应的校验区块头里的交易列表的默克尔树根哈希进行对比,如果两个根哈希结果不一样,则可能存在校验区块被篡改的可能,如果两个根哈希结果一样,则表示未存在作弊行为。
在实际操作中,可以重复上述步骤205-206,直到步骤202中所选取的全部校验区块被校验完成。
对于上述步骤205,还可以根据排序后的哈希序列与相应的校验区块中的哈希序列进行比较,如果出现排序不同、或者哈希序列不同的情况,可以认为该校验区块存在作弊行为,此时,管理员可以及时对该作弊行为进行处理。
以下结合图3来详细描述步骤205,在该实施例中,以校验区块为一个来描述,如图3所示,该流程包括:
步骤2051,在随机选定校验的第n号区块后,首先从链上查询,该区块内所包含的交易数目为m,用于后续校验区块内哈希序列的位置序列,其中,n和m为大于等于1的正整数。
步骤2052,接下来在T时间内,由于各客户端业务低峰时间不同,这里的T可以为12小时(h),每次接收到一组客户端匹配到的新交易信息(包括:交易哈希、区块内位置),存储该新的交易信息,可使用哈希表(HashMAP)以交易哈希为key(键)进行存储,从而可以直接过滤掉因网络问题客户端重发的交易信息。
步骤2053,当到达T时间后,遍历哈希表,使用接收到的新交易信息内的位置信息对交易哈希进行正序排列,并根据校验区块中的哈希序列校验排序的交易哈希位置是否严格从1-m,单调递增,并得到有序的交易哈希列表,用于后续步骤206的计算。若为其他情况,例如,校验位置并非从1-m单调递增,则说明该区块可能被篡改。
以下给出一个实例。
①随机选定校验的区块为第108号区块,首先查询私有链,该区块链内包含4笔交易TX1、TX2、TX3、TX4。
②客户端A在上述步骤203,查询到本日校验区块包含第108号区块,且区块链中有两笔交易TX2、TX3为客户端A在日间发起的,因此客户端A发送本地存储的交易信息(TX-HASH 2,SITE2)和(TX-HASH 3、SITE3)。在接收到交易信息后,存储这两笔交易(TX-HASH 2,SITE2)和(TX-HASH 3、SITE3)进入本地哈希表。其中,HASH表示哈希值,SITE表示区块中的位置。
③客户端B在上述步骤203,查询到本日校验区块包含第108号区块,且区块链中有一笔交易TX1为客户端B在日间发起的,因此客户端B发送本地存储的交易信息(TX-HASH1,SITE1)。在接收到交易信息后,存储交易信息(TX-HASH1,SITE1)进入本地哈希表。
④客户端C在上述步骤203,查询到本日校验区块包含第108号区块,且区块链中有一笔交易TX4为客户端C在日间发起的,因此客户端C发送本地存储的(TX-HASH 4,SITE4)。在接收到交易信息后,存储交易信息(TX-HASH 4,SITE4)进入本地哈希表。
⑤当到达交易收集时间时(12h),对已收集到的交易信息,按照交易的位置信息进行排序,并检查交易位置是否为(1、2、3、4),并记录排序后的交易序列(TX-HASH 1、TX-HASH2、TX-HASH 3、TX-HASH 4)。若排序后的交易位置为(1、2、3)或者(1、2、3、4、5)等其他序列,则说明该区块可能被篡改(私自插入交易或者丢弃交易)。
⑥当位置序列正确时,即,得到交易序列(TX-HASH 1、TX-HASH 2、TX-HASH 3、TX-HASH 4),则构建默克尔树,并计算默克尔根(Merkle-Root,简称为MR)哈希,计算过程如图4所示。
⑦查询私有链上第108号区块头中交易列表的默克尔值MR-HASH1,与计算出的MR-HASH进行比较,若不一致,则表示该区块可能被篡改(部分交易,与客户端发起不一致,存在交易被修改的可能)。
基于相似的发明构思,本发明实施例还提供一种区块链数据的校验系统,图5是该系统的结构框图,如图5所示,该系统包括:区块链数据校验装置1、以及多个客户端2,其中,每个客户端2存储上传至区块链的每个作业的哈希、以及该作业在所属区块的区块编号和位置信息。
优选地,区块链数据校验装置1(以下称为数据校验装置)可以用于实现上述方法实施例中的步骤(或流程)。
在实际操作中,每日日终,数据校验装置会在上一交易日新增长的区块中,随机选取x%个区块进行校验。每个客户端根据自己的业务情况,在业务低峰时期,访问数据校验装置,获取需要校验的区块编号,并与本地的交易进行匹配,将匹配到的交易数据发送给数据校验装置。数据校验装置在收集完所有客户端的交易数据后,构建验证校验区块交易列表的默克尔树根哈希,与私有链节点对应区块头的交易列表根哈希对比验证。当两个根哈希相同时,表示校验区块校验成功,并未被篡改。以下结合附图分别详细描述数据校验装置1和客户端2。
图6是数据校验装置1的结构框图,如图6所示,该数据校验装置1包括:区块选择单元11、作业信息接收单元12、排序单元13、根哈希生成单元14和校验单元15,其中:
区块选择单元11,用于随机选择区块链节点中的校验区块,所述校验区块包括:区块编号、以及区块根哈希,以便于相应的客户端根据所述校验区块的区块编号返回与所述区块编号对应的作业信息。
具体地,区块选择单元可以随机选择区块链节点中的预定数量或者预定比例的多个校验区块。
作业信息接收单元12,用于接收来自所述相应的客户端返回的至少一个作业信息,所述作业信息包括:作业哈希以及作业在所述校验区块中的位置信息。
排序单元13,用于根据所述位置信息对所述至少一个作业的作业哈希进行排序。
当存在多个校验区块时,排序单元可以根据所述位置信息对所述至少一个作业的所属同一区块编号的作业哈希进行排序。
根哈希生成单元14,用于对排序后的作业哈希进行预定运算以得到所述至少一个作业的根哈希。
这里的预定运算优选地为默克尔树构建运算,根哈希生成单元14对排序后的作业哈希进行默克尔树构建运算,以得到所述至少一个作业的默克尔树根哈希。
校验单元15,用于响应于所述至少一个作业的根哈希与所述校验区块中的区块根哈希相同,则校验所述校验区块成功。
通过区块选择单元11随机选择区块链节点中的区块作为校验区块,使得相应的客户端可以根据校验区块的区块编号返回对应的作业信息,通过排序单元13根据作业信息接收单元12接收的作业信息中的位置信息对作业信息中的作业哈希进行排序,以及根哈希生成单元14根据排序后的作业哈希计算根哈希,当该根哈希与校验区块中的区块根哈希相同时,校验单元15对校验区块校验成功,表示校验区块并未被篡改,通过本发明实施例,可以及时发现区块链节点是否存储作弊行为,从而可以及时解决作弊问题。
优选地,如图7所示,上述数据校验装置1还包括:比较单元16,用于将所述排序后的作业哈希与所述校验区块中的作业哈希进行比较。相应地,上述校验单元15还用于响应于所述排序后的作业哈希与所述校验区块中的作业哈希不同,则校验所述校验区块失败。
图8是上述客户端2的结构框图,如图8所示,客户端2包括:存储单元21、编号获取单元22和作业信息发送单元23,其中:
存储单元21,用于存储上传至区块链节点的每个作业的哈希、以及该作业在所属区块的区块编号和位置信息;
编号获取单元22,用于获取随机选择的校验区块的区块编号;
作业信息发送单元23,用于根据所述区块编号发送与所述区块编号对应的作业信息。
通过数据校验装置1协同区块链客户端2一起验证区块中交易列表的有效性,可以及时发现区块链节点数据的作弊行为,从而可以及时解决问题,保证区块链节点数据的准确性。
上述各单元的具体执行过程,可以参见上述方法实施例中的描述,此处不再赘述。
在实际操作中,上述各单元可以组合设置、也可以单一设置,本发明不限于此。
图9是根据本发明实施例的电子设备的示意图。图9所示的电子设备为通用数据处理装置,其包括通用的计算机硬件结构,其至少包括处理器901和存储器902。处理器901和存储器902通过总线903连接。存储器902适于存储处理器901可执行的一条或多条指令或程序。该一条或多条指令或程序被处理器901执行以实现上述区块链数据的校验方法中的步骤。
上述处理器901可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器901通过执行存储器902所存储的命令,从而执行如上所述的本发明实施例的方法流程实现对于数据的处理和对于其他装置的控制。总线903将上述多个组件连接在一起,同时将上述组件连接到显示控制器904和显示装置以及输入/输出(I/O)装置905。输入/输出(I/O)装置905可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出(I/O)装置905通过输入/输出(I/O)控制器906与系统相连。
其中,存储器902可以存储软件组件,例如操作系统、通信模块、交互模块以及应用程序。以上所述的每个模块和应用程序都对应于完成一个或多个功能和在发明实施例中描述的方法的一组可执行程序指令。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时以实现上述区块链数据的校验方法的步骤。
综上所述,本发明实施例提供了一种区块链数据校验方案,通过定期随机选择新增的区块,发起验证流程,通过获取客户端的交易哈希和交易在区块中的位置,并通过交易位置对获取的交易哈希进行排序,并计算排序后的交易哈希的默克尔树根哈希,基于此对私有链的区块数据进行校验,从而可以及时发现区块链节点是否存储作弊行为,进而可以及时解决作弊问题。本发明实施例联合使用区块链的客户端,一同对私有链上区块内的数据进行验证,在保证链上数据隐私性的同时,也可以防范中心化组织(私有链所有方)的作弊行为。
以上参照附图描述了本发明的优选实施方式。这些实施方式的许多特征和优点根据该详细的说明书是清楚的,因此权利要求旨在覆盖这些实施方式的落入其真实精神和范围内的所有这些特征和优点。此外,由于本领域的技术人员容易想到很多修改和改变,因此不是要将本发明的实施方式限于所例示和描述的精确结构和操作,而是可以涵盖落入其范围内的所有合适修改和等同物。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (14)
1.一种区块链数据的校验方法,其特征在于,所述方法包括:
随机选择区块链节点中的校验区块,所述校验区块包括:区块编号、以及区块根哈希,以便于相应的客户端根据所述校验区块的区块编号返回与所述区块编号对应的作业信息;
接收来自所述相应的客户端返回的至少一个作业信息,所述作业信息包括:作业哈希以及作业在所述校验区块中的位置信息;
根据所述位置信息对所述至少一个作业的作业哈希进行排序;
对排序后的作业哈希进行预定运算以得到所述至少一个作业的根哈希;
响应于所述至少一个作业的根哈希与所述校验区块中的区块根哈希相同,则校验所述校验区块成功;
当校验区块为一个时,所述根据所述位置信息对所述至少一个作业的作业哈希进行排序,包括:
从链上查询随机选择的校验区块内所包含的作业数目;
在预定时间段内,对每次接收到的一组客户端匹配到的新作业信息,使用哈希表以作业哈希为键进行存储;
达到所述预定时间段后,遍历所述哈希表,使用接收到的新作业信息内的位置信息对所述作业哈希进行正序排列,并根据校验区块中的哈希序列校验排序的作业哈希位置是否严格从1至作业数目单调递增;
若是,得到有序的作业哈希列表;
当校验区块为多个时,所述根据所述位置信息对所述至少一个作业的作业哈希进行排序,包括:
根据所述位置信息对所述至少一个作业的所属同一区块编号的作业哈希进行排序。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述排序后的作业哈希与所述校验区块中的作业哈希进行比较;
响应于所述排序后的作业哈希与所述校验区块中的作业哈希不同,则校验所述校验区块失败。
3.根据权利要求1所述的方法,其特征在于,随机选择区块链节点中的校验区块包括:
随机选择区块链节点中的预定数量或者预定比例的多个校验区块。
4.根据权利要求3所述的方法,其特征在于,根据所述位置信息对所述至少一个作业的作业哈希进行排序包括:
根据所述位置信息对所述至少一个作业的所属同一区块编号的作业哈希进行排序。
5.根据权利要求1所述的方法,其特征在于,对排序后的作业哈希进行预定运算以得到所述至少一个作业的根哈希包括:
对排序后的作业哈希进行默克尔树构建运算,以得到所述至少一个作业的默克尔树根哈希。
6.一种区块链数据的校验装置,其特征在于,所述装置包括:
区块选择单元,用于随机选择区块链节点中的校验区块,所述校验区块包括:区块编号、以及区块根哈希,以便于相应的客户端根据所述校验区块的区块编号返回与所述区块编号对应的作业信息;
作业信息接收单元,用于接收来自所述相应的客户端返回的至少一个作业信息,所述作业信息包括:作业哈希以及作业在所述校验区块中的位置信息;
排序单元,用于根据所述位置信息对所述至少一个作业的作业哈希进行排序;
根哈希生成单元,用于对排序后的作业哈希进行预定运算以得到所述至少一个作业的根哈希;
校验单元,用于响应于所述至少一个作业的根哈希与所述校验区块中的区块根哈希相同,则校验所述校验区块成功;
当校验区块为一个时,所述排序单元,具体用于从链上查询随机选择的校验区块内所包含的作业数目;在预定时间段内,对每次接收到的一组客户端匹配到的新作业信息,使用哈希表以作业哈希为键进行存储;达到所述预定时间段后,遍历所述哈希表,使用接收到的新作业信息内的位置信息对所述作业哈希进行正序排列,并根据校验区块中的哈希序列校验排序的作业哈希位置是否严格从1至作业数目单调递增;若是,得到有序的作业哈希列表;
当校验区块为多个时,所述排序单元,具体用于根据所述位置信息对所述至少一个作业的所属同一区块编号的作业哈希进行排序。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
比较单元,用于将所述排序后的作业哈希与所述校验区块中的作业哈希进行比较;
所述校验单元,还用于响应于所述排序后的作业哈希与所述校验区块中的作业哈希不同,则校验所述校验区块失败。
8.根据权利要求6所述的装置,其特征在于,所述区块选择单元具体用于:
随机选择区块链节点中的预定数量或者预定比例的多个校验区块。
9.根据权利要求8所述的装置,其特征在于,所述排序单元具体用于:
根据所述位置信息对所述至少一个作业的所属同一区块编号的作业哈希进行排序。
10.根据权利要求6所述的装置,其特征在于,所述根哈希生成单元具体用于:
对排序后的作业哈希进行默克尔树构建运算,以得到所述至少一个作业的默克尔树根哈希。
11.一种区块链数据的校验系统,其特征在于,所述系统包括:多个客户端、以及上述权利要求6至10中任一项所述的装置,其中,所述客户端用于存储每个作业的哈希、以及该作业在所属区块的区块编号和位置信息。
12.根据权利要求11所述的系统,其特征在于,所述客户端包括:
存储单元,用于存储上传至区块链节点的每个作业的哈希、以及该作业在所属区块的区块编号和位置信息;
编号获取单元,用于获取随机选择的校验区块的区块编号;
作业信息发送单元,用于根据所述区块编号发送与所述区块编号对应的作业信息。
13.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至5中任一项所述方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010200120.1A CN111428277B (zh) | 2020-03-20 | 2020-03-20 | 区块链数据的校验方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010200120.1A CN111428277B (zh) | 2020-03-20 | 2020-03-20 | 区块链数据的校验方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111428277A CN111428277A (zh) | 2020-07-17 |
CN111428277B true CN111428277B (zh) | 2023-08-18 |
Family
ID=71548313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010200120.1A Active CN111428277B (zh) | 2020-03-20 | 2020-03-20 | 区块链数据的校验方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111428277B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105719185A (zh) * | 2016-01-22 | 2016-06-29 | 杭州复杂美科技有限公司 | 区块链的数据对比及共识方法 |
CN106682907A (zh) * | 2016-12-10 | 2017-05-17 | 江苏恒为信息科技有限公司 | 区块链数据对比及共识方法 |
KR20180079806A (ko) * | 2017-01-02 | 2018-07-11 | 주식회사 코인플러그 | 블록체인 및 이와 연동되는 머클 트리 구조 기반의 모바일 아이디를 이용하여 사용자를 비대면 인증하는 방법, 단말 및 이를 이용한 서버 |
CN108427601A (zh) * | 2017-02-13 | 2018-08-21 | 北京航空航天大学 | 一种私有链节点的集群交易处理方法 |
CN108667836A (zh) * | 2018-05-08 | 2018-10-16 | 众安信息技术服务有限公司 | 区块链共识方法 |
CN109214817A (zh) * | 2018-10-08 | 2019-01-15 | 莆田市烛火信息技术有限公司 | 一种基于算力寄生的区块链共识装置 |
CN109493221A (zh) * | 2018-10-26 | 2019-03-19 | 全链通有限公司 | 区块链中交易记录保密方法、设备、网络及存储介质 |
CN109684413A (zh) * | 2018-12-25 | 2019-04-26 | 深圳市网心科技有限公司 | 一种区块链存储证明方法、系统及电子设备和存储介质 |
CN109903049A (zh) * | 2019-03-01 | 2019-06-18 | 长沙理工大学 | 一种区块链交易数据存储方法、装置、设备及存储介质 |
CN110390524A (zh) * | 2019-07-31 | 2019-10-29 | 中国工商银行股份有限公司 | 区块链中作业数据处理方法、装置、电子设备及存储介质 |
CN110490640A (zh) * | 2019-07-24 | 2019-11-22 | 阿里巴巴集团控股有限公司 | 用于对象分发处理的方法、装置及系统 |
CN110602239A (zh) * | 2019-09-20 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种区块链信息存储方法及相关设备 |
KR102088346B1 (ko) * | 2019-09-24 | 2020-03-12 | 엘에스웨어(주) | 외부 스토리지와 연계된 블록체인의 정보변경장치 및 방법 |
CN110889729A (zh) * | 2019-11-29 | 2020-03-17 | 腾讯科技(深圳)有限公司 | 一种基于区块链网络的数据验证方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10114980B2 (en) * | 2016-07-21 | 2018-10-30 | Acronis International Gmbh | System and method for verifying data integrity using a blockchain network |
EP3379447B1 (de) * | 2017-03-22 | 2022-04-27 | Siemens Aktiengesellschaft | Verfahren und vorrichtung zum manipulationssicheren speichern von informationen bezüglich objektbezogener massnahmen |
US10754989B2 (en) * | 2018-03-27 | 2020-08-25 | International Business Machines Corporation | Runtime self-correction for blockchain ledgers |
US10985907B2 (en) * | 2018-05-16 | 2021-04-20 | International Business Machines Corporation | Identifying faults in a blockchain ordering service |
-
2020
- 2020-03-20 CN CN202010200120.1A patent/CN111428277B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105719185A (zh) * | 2016-01-22 | 2016-06-29 | 杭州复杂美科技有限公司 | 区块链的数据对比及共识方法 |
CN106682907A (zh) * | 2016-12-10 | 2017-05-17 | 江苏恒为信息科技有限公司 | 区块链数据对比及共识方法 |
KR20180079806A (ko) * | 2017-01-02 | 2018-07-11 | 주식회사 코인플러그 | 블록체인 및 이와 연동되는 머클 트리 구조 기반의 모바일 아이디를 이용하여 사용자를 비대면 인증하는 방법, 단말 및 이를 이용한 서버 |
CN108427601A (zh) * | 2017-02-13 | 2018-08-21 | 北京航空航天大学 | 一种私有链节点的集群交易处理方法 |
CN108667836A (zh) * | 2018-05-08 | 2018-10-16 | 众安信息技术服务有限公司 | 区块链共识方法 |
CN109214817A (zh) * | 2018-10-08 | 2019-01-15 | 莆田市烛火信息技术有限公司 | 一种基于算力寄生的区块链共识装置 |
CN109493221A (zh) * | 2018-10-26 | 2019-03-19 | 全链通有限公司 | 区块链中交易记录保密方法、设备、网络及存储介质 |
CN109684413A (zh) * | 2018-12-25 | 2019-04-26 | 深圳市网心科技有限公司 | 一种区块链存储证明方法、系统及电子设备和存储介质 |
CN109903049A (zh) * | 2019-03-01 | 2019-06-18 | 长沙理工大学 | 一种区块链交易数据存储方法、装置、设备及存储介质 |
CN110490640A (zh) * | 2019-07-24 | 2019-11-22 | 阿里巴巴集团控股有限公司 | 用于对象分发处理的方法、装置及系统 |
CN110390524A (zh) * | 2019-07-31 | 2019-10-29 | 中国工商银行股份有限公司 | 区块链中作业数据处理方法、装置、电子设备及存储介质 |
CN110602239A (zh) * | 2019-09-20 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种区块链信息存储方法及相关设备 |
KR102088346B1 (ko) * | 2019-09-24 | 2020-03-12 | 엘에스웨어(주) | 외부 스토리지와 연계된 블록체인의 정보변경장치 및 방법 |
CN110889729A (zh) * | 2019-11-29 | 2020-03-17 | 腾讯科技(深圳)有限公司 | 一种基于区块链网络的数据验证方法和装置 |
Non-Patent Citations (1)
Title |
---|
可更改区块链技术研究;李佩丽;徐海霞;马添军;穆永恒;;密码学报(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111428277A (zh) | 2020-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107332876B (zh) | 区块链状态的同步方法及装置 | |
CN110602148B (zh) | 一种区块的状态树的生成和链上数据验证的方法及装置 | |
US20210295321A1 (en) | Methods for decentralized digital asset transfer and smart contract state transition | |
CN109034809B (zh) | 区块链的生成方法、装置、区块链节点及存储介质 | |
CN109242500B (zh) | 区块链交易有效性验证方法、装置及存储介质 | |
CN111061769B (zh) | 一种区块链系统的共识方法及相关设备 | |
CN109189751A (zh) | 基于区块链的数据同步方法及终端设备 | |
CN109167661B (zh) | 一种应用于联盟链的拜占庭容错共识方法及终端 | |
CN110597922B (zh) | 数据处理方法、装置、终端及存储介质 | |
CN109413202B (zh) | 区块链交易信息的排序系统及方法 | |
CN113645278B (zh) | 一种区块链的跨链消息传输方法、设备、存储介质 | |
CN109799948A (zh) | 一种数据存储方法及装置 | |
CN110287226A (zh) | 基于区块链的数据查询方法及装置 | |
CN108881476A (zh) | 区块链部署方法与系统 | |
CN108563697A (zh) | 一种数据处理方法、装置和存储介质 | |
CN111767128A (zh) | 执行定时任务的方法以及装置 | |
CN111444203B (zh) | 一种同步处理方法、装置、设备及介质 | |
CN111669267B (zh) | 区块链的共识机制配置及背书策略配置方法 | |
KR101600717B1 (ko) | P2p 방식의 가상머신 운영체제 이미지 다운로드 방법 및 장치 | |
CN111428277B (zh) | 区块链数据的校验方法、装置及系统 | |
CN111444206B (zh) | 一种同步处理方法、装置、设备及介质 | |
CN116915791A (zh) | 区块链交易冲突检测的方法、排序节点及背书节点 | |
CN106886589A (zh) | 一种图片存储方法、服务端以及客户端 | |
WO2019200461A1 (en) | Method and system for performing an action requested by a blockchain | |
CN117134998B (zh) | 基于SDN的Gossip区块链的电力信息认证方法 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220913 Address after: 25 Financial Street, Xicheng District, Beijing 100033 Applicant after: CHINA CONSTRUCTION BANK Corp. Address before: 25 Financial Street, Xicheng District, Beijing 100033 Applicant before: CHINA CONSTRUCTION BANK Corp. Applicant before: Jianxin Financial Science and Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |