CN111985928A - 一种验证方法、装置、电子设备和存储介质 - Google Patents

一种验证方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN111985928A
CN111985928A CN202010918633.6A CN202010918633A CN111985928A CN 111985928 A CN111985928 A CN 111985928A CN 202010918633 A CN202010918633 A CN 202010918633A CN 111985928 A CN111985928 A CN 111985928A
Authority
CN
China
Prior art keywords
block
verification
blocks
thread
new
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.)
Pending
Application number
CN202010918633.6A
Other languages
English (en)
Inventor
冯世伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
OneConnect Smart Technology Co Ltd
OneConnect Financial Technology Co Ltd Shanghai
Original Assignee
OneConnect Financial Technology Co Ltd Shanghai
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by OneConnect Financial Technology Co Ltd Shanghai filed Critical OneConnect Financial Technology Co Ltd Shanghai
Priority to CN202010918633.6A priority Critical patent/CN111985928A/zh
Publication of CN111985928A publication Critical patent/CN111985928A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3821Electronic credentials
    • G06Q20/38215Use of certificates or encrypted proofs of transaction rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Abstract

本申请涉及区块存储系统,公开了一种验证方法、装置、电子设备和存储介质,该方法包括:获取N个区块,N个区块中的每个区块包括交易数据对应的证书信息、签名信息和数据版本号;对N个区块中的每个区块包括的证书信息进行验证,得到N个区块对应的N个第一验证结果;对N个区块中的每个区块包括的签名信息进行验证,得到N个区块对应的N个第二验证结果;对N个区块中的每个区块包括的数据版本号进行验证,得到N个区块对应的N个第三验证结果;根据N个第一验证结果、N个第二验证结果和N个第三验证结果,将N个区块并行写入区块链。实施本申请实施例,提高了区块的验证效率。

Description

一种验证方法、装置、电子设备和存储介质
技术领域
本申请涉及区块链技术领域,尤其涉及一种验证方法、装置、电子设备和存储介质。
背景技术
目前,在将交易数据写入区块链时,需要对交易数据进行验证,在验证通过时,才会将交易数据写入区块链。在现有方案中,在对交易数据进行验证时,只能对单条交易数据进行验证。例如,对交易数据1进行验证时,无法对交易数据2进行验证。当交易数据1所有的验证完成后,才可以对交易数据2进行验证。因此,这种验证方式效率低。
发明内容
本申请实施例提供了一种验证方法、装置、电子设备和存储介质,实施本申请实施例,提高了区块的验证效率。
本申请第一方面提供了一种验证方法,包括:
获取N个区块,所述N个区块中的每个区块包括交易数据对应的证书信息、签名信息和数据版本号,所述N为大于1的整数;
在第一验证线程上并行对所述N个区块中的每个区块包括的证书信息进行验证,得到所述N个区块对应的N个第一验证结果;
在第二验证线程上并行对N个区块中的每个区块包括的签名信息进行验证,得到所述N个区块对应的N个第二验证结果;
按照所述N个区块对应的N个区块号从小到大的顺序在第三验证线程上串行对所述N个区块中的每个区块包括的数据版本号进行验证,得到所述N个区块对应的N个第三验证结果;
根据所述N个第一验证结果、所述N个第二验证结果和所述N个第三验证结果,将所述N个区块并行写入区块链。
本申请第二方面提供了一种验证装置,包括获取模块和处理模块,其中,
所述获取模块,用于获取N个区块,所述N个区块中的每个区块包括交易数据对应的证书信息、签名信息和数据版本号,所述N为大于1的整数;
所述处理模块,用于在第一验证线程上并行对所述N个区块中的每个区块包括的证书信息进行验证,得到所述N个区块对应的N个第一验证结果;在第二验证线程上并行对N个区块中的每个区块包括的签名信息进行验证,得到所述N个区块对应的N个第二验证结果;按照所述N个区块对应的N个区块号从小到大的顺序在第三验证线程上串行对所述N个区块中的每个区块包括的数据版本号进行验证,得到所述N个区块对应的N个第三验证结果;根据所述N个第一验证结果、所述N个第二验证结果和所述N个第三验证结果,将所述N个区块并行写入区块链。
本申请第三方面提供了一种验证的电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被生成由所述处理器执行,以执行一种验证方法任一项方法中的步骤的指令。
本申请第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述存储计算机程序被所述处理器执行,以实现一种验证方法任一项所述的方法。
可以看出,上述技术方案中,在第一验证线程上并行对多个区块进行验证,在第二验证线程上并行对多个区块进行验证,在第三验证线程上串行对多个区块进行验证,避免了现有方案中对单个区块完成所有验证后才可以对其他区块进行验证的问题,提高了对区块的验证效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1是本申请实施例提供的一种验证系统的示意图;
图2为本申请实施例提供的一种验证方法的流程示意图;
图3为本申请实施例提供的又一种验证方法的流程示意图;
图4为本申请实施例提供的又一种验证方法的流程示意图;
图5为本申请实施例提供的又一种验证方法的流程示意图;
图6为本申请实施例提供的一种验证装置的示意图;
图7为本申请的实施例涉及的硬件运行环境的电子设备结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下分别进行详细说明。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,参见图1,图1是本申请实施例提供的一种验证系统的示意图,该验证系统100包括验证装置110。该验证装置110用于处理、存储、显示区块数据。该验证系统100可以包括集成式单体设备或者多设备,为方便描述,本申请将验证系统100统称为区块链节点。显然该区块链节点可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(UserEquipment,UE),移动台(Mobile Station,MS),终端设备(terminal device)等等。
进一步的,为了使得本申请实施例更加的清楚,在此对本申请实施例中的部分概念或内容作简单介绍。
区块链是一种按照时间顺序将数据区块相连的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。该区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
进一步的,区块链的特性有开放、共识、去中心、去信任、透明、双方匿名、不可篡改以及可追溯等。其中,开放与透明意为任何人都可以参与到区块链网络,每一台设备都能作为一个节点,每个节点都允许获得一份完整的数据库拷贝。节点基于一套共识机制,通过竞争计算共同维护整个区块链。任一节点失效,其余节点仍能正常工作。其中,去中心化与去信任意为区块链由众多节点共同组成一个端到端的网络,不存在中心化的设备和管理机构。节点之间数据交换通过数字签名技术进行验证,无需互相信任,只要按照系统既定的规则进行,节点之间不能也无法欺骗其他节点。其中,透明与双方匿名意为区块链的运行规则是公开的,所有的数据信息也是公开的,因此每一笔交易都对所有节点可见。由于节点与节点之间是去信任的,因此节点之间无需公开身份,每个参与的节点都是匿名的。其中,不可篡改和可追溯意为每个甚至多个节点对数据库的修改无法影响其他节点的数据库,除非能控制整个网络中超过51%的节点同时修改,这是几乎不可能发生的。区块链中的,每一笔交易都通过密码学方法与相邻两个区块串联,因此可以追溯到任何一笔交易记录。
具体的,区块链可以利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。因此,区块链技术不可篡改的特性从根本上改变了中心化的信用创建方式,有效提高了数据的不可更改性以及安全性。其中,由于智能合约使得所有的条款编写为程序,这些条款可在区块链上自动执行,保证了当存在触发智能合约的条件时,区块链能强制根据智能合约中的内容执行,且不受任何外力阻挡,从而保证了合约的有效性和执行力,不仅能够大大降低成本,也能提高效率。区块链上的各个节点都有相同的账本,能够确保账本记录过程是公开透明的。区块链技术可以实现了一种点对点的、公开透明的直接交互,使得高效率、大规模、无中心化代理的信息交互方式成为了现实。
另外,在将交易数据写入区块链时,需要对交易数据进行验证,在验证通过时,才会将交易数据写入区块链。在现有方案中,在对交易数据进行验证时,只能对单条交易数据进行验证。例如,对交易数据1进行验证时,无法对交易数据2进行验证。当交易数据1所有的验证完成后,才可以对交易数据2进行验证。因此,这种验证方式效率低。
基于此,本申请实施例提出一种验证方法以解决上述问题,下面对本申请实施例进行详细介绍。
参见图2,图2为本申请实施例提供的一种验证方法的流程示意图。该验证方法可以应用于区块链节点,如图2所示,所述方法包括:
201、获取N个区块,所述N个区块中的每个区块包括交易数据对应的证书信息、签名信息和数据版本号。
其中,所述N为大于1的整数。
其中,交易数据例如可以为转账交易涉及到的数据、支付交易涉及到的数据,在此不做限制。
202、在第一验证线程上并行对所述N个区块中的每个区块包括的证书信息进行验证,得到所述N个区块对应的N个第一验证结果。
其中,第一验证线程为VACC(verifyauthoritychaincode)线程。
203、在第二验证线程上并行对N个区块中的每个区块包括的签名信息进行验证,得到所述N个区块对应的N个第二验证结果。
其中,第二验证线程为VSCC(verify system chain code)线程。
204、按照所述N个区块对应的N个区块号从小到大的顺序在第三验证线程上串行对所述N个区块中的每个区块包括的数据版本号进行验证,得到所述N个区块对应的N个第三验证结果。
其中,第三验证线程为MVCC(multi-version chain code)线程。
205、根据所述N个第一验证结果、所述N个第二验证结果和所述N个第三验证结果,将所述N个区块并行写入区块链。
可以看出,上述技术方案中,在第一验证线程上并行对多个区块进行验证,在第二验证线程上并行对多个区块进行验证,在第三验证线程上串行对多个区块进行验证,避免了现有方案中对单个区块完成所有验证后才可以对其他区块进行验证的问题,提高了对区块的验证效率。
参见图3,图3为本申请实施例提供的又一种验证方法的流程示意图。该验证方法可以应用于区块链节点,其中,如图3所示,第一区块和第二区块为所述N个区块中两个不同的区块,所述在第一验证线程上并行对所述N个区块中的每个区块包括的证书信息进行验证,得到所述N个区块对应的N个第一验证结果,包括:
301、获取所述第一区块对应的预设证书信息和所述第二区块对应的预设证书信息。
其中,第一区块对应的预设证书信息和第二区块对应的预设证书信息是从验证节点获取的。进一步的,验证节点为不同于区块链节点的其他节点。可以理解的,验证节点可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(User Equipment,UE),移动台(Mobile Station,MS),终端设备(terminal device)等等。
302、采用所述第一区块对应的预设证书信息在所述第一验证线程上对所述第一区块包括的证书信息进行验证,得到所述第一区块对应的第一验证结果,以及,采用所述第二区块对应的预设证书信息在所述第一验证线程上对所述第二区块包括的证书信息进行验证,得到所述第二区块对应的第一验证结果。
需要说明的,若所述第一区块包括的证书信息与所述第一区块对应的预设证书信息匹配,那么,所述第一区块对应的第一验证结果为验证通过;若所述第一区块包括的证书信息与所述第一区块对应的预设证书信息不匹配,那么,所述第一区块对应的第一验证结果为验证不通过。若所述第二区块包括的证书信息与所述第二区块对应的预设证书信息匹配,那么,所述第二区块对应的第一验证结果为验证通过;若所述第二区块包括的证书信息与所述第二区块对应的预设证书信息不匹配,那么,所述第二区块对应的第一验证结果为验证不通过。
可以看出,上述技术方案中,通过并行多个区块进行验证,提高了区块的验证效率。
在一种可能的实施方式中,所述方法还包括:将所述第一区块对应的第一任务数据和所述第一区块对应的第一验证结果打包成所述第一区块对应的第二任务数据,所述第一区块对应的第一任务数据是所述第一区块打包得到的;将所述第二区块对应的第一任务数据和所述第二区块对应的第一验证结果打包成所述第二区块对应的第二任务数据,所述第二区块对应的第一任务数据是所述第二区块打包得到的;所述在第二验证线程上并行对N个区块中的每个区块包括的签名信息进行验证,得到所述N个区块对应的N个第二验证结果,包括:在所述第二验证线程对所述第一区块对应的第二任务数据包括的签名信息进行验证,得到所述第一区块对应的第二验证结果,以及在所述第二验证线程对所述第二区块对应的第二任务数据包括的签名信息进行验证,得到所述第二区块对应的第二验证结果。
可以看出,上述技术方案中,通过并行多个区块进行验证,提高了区块的验证效率。同时,通过将区块以及区块对应的验证结果打包成任务数据,使得后续的验证过程更加便捷。
在一种可能的实施方式中,所述根据所述N个第一验证结果、所述N个第二验证结果和所述N个第三验证结果,将所述N个区块并行写入区块链,包括:根据所述第一区块对应的第一验证结果、所述第一区块对应的第二验证结果和所述第一区块对应的第三验证结果,将所述第一区块序列化,得到序列化后的第一区块;根据所述第二区块对应的第一验证结果、所述第二区块对应的第二验证结果和所述第二区块对应的第三验证结果,将所述第二区块序列化,得到序列化后的第二区块;将所述序列化后的第一区块和所述序列化后的第二区块并行写入所述区块链。
需要说明的,若所述第一区块对应的第一验证结果为验证通过,所述第一区块对应的第二验证结果为验证通过且所述第一区块对应的第三验证结果为验证通过,则将所述第一区块序列化;若所述第二区块对应的第一验证结果为验证通过,所述第二区块对应的第二验证结果为验证通过且所述第二区块对应的第三验证结果为验证通过,则将所述第二区块序列化。
可以理解的,在本方案中,序列化为二进制序列化。即,将所述第一区块进行二进制序列化,将所述第二区块进行二进制序列化。
可以看出,上述技术方案中,实现了并行写入区块链,提高了对区块的处理效率。
参见图4,图4为本申请实施例提供的又一种验证方法的流程示意图。该验证方法可以应用于区块链节点,其中,如图4所示,所述方法还包括:
401、获取所述N个区块对应的N个权重。
其中,区块P1为N个区块中的任意一个区块。区块P1对应的权重是根据区块P2对应的区块号和区块P3对应的区块号确定的。区块P2为N个区块中区块号为中位数的区块,区块P3为N个区块中区块号为区块号K1的区块。区块号K1是根据K2和K3确定的,K2为N个区块中区块号最大的区块对应的区块号,K3为N个区块中区块号最小的区块对应的区块号。
进一步的,区块号K1为
Figure BDA0002664496530000071
其中,A为区块P1对应的区块号。
402、根据所述N个权重,从所述N个区块中确定权重最大区块,得到区块Q。
403、若所述区块Q未在所述第二验证线程上完成验证,则停止对新区块进行验证,所述新区块为不同于所述N个区块的至少一个区块。
可以看出,上述技术方案中,通过停止对新区块进行验证,避免了验证过程出现了资源利用率过高导致验证效率降低的问题。
在一种可能的实施方式中,所述新区块中的每个区块包括交易数据对应的证书信息、签名信息和数据版本号,所述区块Q在所述第二验证线程上完成验证后,所述方法还包括:在所述第二验证线程上并行对M个区块中的每个区块包括的签名信息进行验证时,在所述第一验证线程上并行对所述新区块中的每个区块包括的证书信息进行验证,得到所述新区块对应的第一验证结果,其中,所述M个区块为所述N个区块中未在所述第二验证线程上完成验证的区块,所述M为大于0的整数;若所述N个区块在所述第二验证线程上完成验证,则在所述第二验证线程上并行对所述新区块中的每个区块包括的签名信息进行验证,得到所述新区块对应的第二验证结果;若所述N个区块未在所述第三验证线程上完成验证,则根据所述新区块对应的区块号,对所述新区块进行排序,得到排序后的新区块,将排序后的新区块放入任务队列进行排队,当检测到所述N个区块在所述第三验证线程上完成验证后,从所述任务队列中获取所述排序后的新区块,在所述第三验证线程上串行对所述排序后的新区块包括的数据版本号进行验证,得到所述新区块对应的第三验证结果;根据所述新区块对应的第一验证结果、所述新区块对应的第二验证结果和所述新区块对应的第三验证结果,将所述新区块序列化,得到序列化后的新区块;将所述序列化后的新区块并行写入所述区块链。
其中,交易数据例如可以为转账交易涉及到的数据、支付交易涉及到的数据,在此不做限制。
举例来说,参见图5,图5为本申请实施例提供的又一种验证方法。如图5所示,假设区块Q为区块7,即区块7已在第二验证线程上完成验证。那么,在第二验证线程上并行对区块8包括的签名信息和区块9包括的签名信息进行验证时,区块链节点可以在第一验证线程上并行对区块10至区块12中每个区块包括的证书信息进行验证。即,新区块可以为区块10至区块12。进一步的,区块6和区块7已在第二验证线程上完成验证,当区块6在第三验证线程上完成验证时,区块7可以在第三验证线程上进行验证。可以理解的,在第三验证线程上进行验证时,需要按照区块对应的区块号从小到大的顺序进行串行验证。另外,针对区块3至区块5,其对应的第一验证结果、第二验证结果和第三验证结果均为验证通过,因此,区块链节点可以并行的将序列化后的区块3至区块5写入区块链。
可以理解的,结合图5,若区块Q为区块7,区块7已在VSCC线程上完成验证。那么,在VSCC线程上并行对区块8包括的签名信息和区块9包括的签名信息进行验证时,区块链节点可以在VACC线程上并行对区块10至区块12中每个区块包括的证书信息进行验证。即,新区块可以为区块10至区块12。进一步的,区块6和区块7已在VSCC线程上完成验证,当区块6在MVCC线程上完成验证时,区块7可以在MVCC线程上进行验证。可以理解的,在MVCC线程上进行验证时,需要按照区块对应的区块号从小到大的顺序进行串行验证。另外,针对区块3至区块5,其对应的第一验证结果、第二验证结果和第三验证结果均为验证通过,因此,区块链节点可以并行的将序列化后的区块3至区块5写入区块链。
进一步的,结合图5,可以理解的,在同一时刻,区块链节点可以在VACC线程对区块10至区块12进行并行验证,在VSCC线程对区块8和区块9进行并行验证,在MVCC线程上对区块6和区块7进行串行验证。进一步,区块3至区块12均需要在VACC线程、VSCC线程和MVCC线程上进行验证,在验证结束后,才可以进入写入区块链的步骤。
而在现有方案中,如果某个区块在VACC线程、VSCC线程和MVCC线程中任意一个线程上进行验证时,其他区块无法进行验证,只有该区块在MVCC线程完成验证后,其他区块中一个区块可以开始在VACC线程进行验证。即可以理解的,在现有方案中,在VACC线程、VSCC线程和MVCC线程中任意一个线程上,只能串行验证,且当某个区块在VACC线程、VSCC线程和MVCC线程中任意一个线程上进行验证时,其他区块无法进行验证。
另外,第三区块为所述N个区块或所述M个区块中的任意一个区块,第三区块在第一验证线程上进行验证时,区块链节点可以采用第三区块对应的预设证书信息在第一验证线程上对第三区块包括的证书信息进行验证,得到第三区块对应的第一验证结果。其中,第三区块对应的预设证书信息是从验证节点获取的。关于验证节点,可以参考图3步骤301,在此不加赘述。可以理解的,若第三区块对应的预设证书信息与第三区块包括的证书信息一致,第三区块对应的第一验证结果为验证通过;若第三区块对应的预设证书信息与第三区块包括的证书信息不一致,第三区块对应的第一验证结果为验证不通过。
进一步的,第三区块包括的签名信息包括第三区块对应的原文信息、第三区块对应的数字签名和第三区块对应的公钥。当第三区块在第二验证线程上进行验证时,区块链节点可以采用第三区块对应的公钥对第三区块对应的数字签名进行解密,得到第三区块对应的第一摘要信息;区块链节点可以采用哈希算法对第三区块对应的原文信息进行处理,得到第三区块对应的第二摘要信息;然后,区块链节点可以根据第三区块对应的第一摘要信息和第三区块对应的第二摘要信息,得到第三区块对应的第二验证结果。可以理解的,若第三区块对应的第一摘要信息和第三区块对应的第二摘要信息一致,第三区块对应的第二验证结果为验证通过;若第三区块对应的第一摘要信息和第三区块对应的第二摘要信息不一致,第三区块对应的第二验证结果为验证不通过。
进一步的,当第三区块在第三验证线程上进行验证时,区块链节点可以在第三验证线程上根据第三区块包括的数据版本号,确定第三区块对应的第三验证结果。具体的,区块链节点可以获取第三区块对应的预设数据版本号,在第三验证线程上根据第三区块包括的数据版本号和第三区块对应的预设数据版本号,确定第三区块对应的第三验证结果。若第三区块包括的数据版本号和第三区块对应的预设数据版本号一致,第三区块对应的第三验证结果为验证通过;若第三区块包括的数据版本号和第三区块对应的预设数据版本号不一致,第三区块对应的第三验证结果为验证不通过。其中,第三区块对应的预设数据版本号可以存储在区块链节点上,也可以是区块链节点从其他区块链节点获取的,在此不做限制。
可以看出,上述技术方案中,实现了在不同验证线程上,同时对不同的区块进行验证,提高了对区块的验证效率。同时,在第一验证线程上并行对多个区块进行验证,在第二验证线程上并行对多个区块进行验证,在第三验证线程上串行对多个区块进行验证,避免了现有方案中对单个区块完成所有验证后才可以对其他区块进行验证的问题,提高了对区块的验证效率。
在一种可能的实施方式中,所述方法还包括:将所述第一区块对应的第一验证结果、所述第一区块对应的第二验证结果和所述第一区块对应的第三验证结果,以及所述第二区块对应的第一验证结果、所述第二区块对应的第二验证结果和所述第二区块对应的第三验证结果并行写入数据库。
可以看出,上述技术方案中,实现了并行写入数据库,提高了写入效率。
参见图6,图6为本申请实施例提供的一种验证装置的示意图。其中,如图6所示,本申请实施例提供的一种验证装置600包括获取模块601和处理模块602,其中,
所述获取模块401,用于获取N个区块,所述N个区块中的每个区块包括交易数据对应的证书信息、签名信息和数据版本号,所述N为大于1的整数。
所述处理模块602,用于在第一验证线程上并行对所述N个区块中的每个区块包括的证书信息进行验证,得到所述N个区块对应的N个第一验证结果;在第二验证线程上并行对N个区块中的每个区块包括的签名信息进行验证,得到所述N个区块对应的N个第二验证结果;按照所述N个区块对应的N个区块号从小到大的顺序在第三验证线程上串行对所述N个区块中的每个区块包括的数据版本号进行验证,得到所述N个区块对应的N个第三验证结果;根据所述N个第一验证结果、所述N个第二验证结果和所述N个第三验证结果,将所述N个区块并行写入区块链。
可以看出,上述技术方案中,在第一验证线程上并行对多个区块进行验证,在第二验证线程上并行对多个区块进行验证,在第三验证线程上串行对多个区块进行验证,避免了现有方案中对单个区块完成所有验证后才可以对其他区块进行验证的问题,提高了对区块的验证效率。
在一种可能的实施方式中,第一区块和第二区块为所述N个区块中两个不同的区块,在第一验证线程上并行对所述N个区块中的每个区块包括的证书信息进行验证,得到所述N个区块对应的N个第一验证结果时,所述获取模块601,用于获取所述第一区块对应的预设证书信息和所述第二区块对应的预设证书信息;所述处理模块602,用于采用所述第一区块对应的预设证书信息在所述第一验证线程上对所述第一区块包括的证书信息进行验证,得到所述第一区块对应的第一验证结果,以及,采用所述第二区块对应的预设证书信息在所述第一验证线程上对所述第二区块包括的证书信息进行验证,得到所述第二区块对应的第一验证结果。
可以看出,上述技术方案中,通过并行多个区块进行验证,提高了区块的验证效率。
在一种可能的实施方式中,所述处理模块602,还用于将所述第一区块对应的第一任务数据和所述第一区块对应的第一验证结果打包成所述第一区块对应的第二任务数据,所述第一区块对应的第一任务数据是所述第一区块打包得到的;将所述第二区块对应的第一任务数据和所述第二区块对应的第一验证结果打包成所述第二区块对应的第二任务数据,所述第二区块对应的第一任务数据是所述第二区块打包得到的;在第二验证线程上并行对N个区块中的每个区块包括的签名信息进行验证,得到所述N个区块对应的N个第二验证结果时,所述处理模块602,用于在所述第二验证线程对所述第一区块对应的第二任务数据包括的签名信息进行验证,得到所述第一区块对应的第二验证结果,以及在所述第二验证线程对所述第二区块对应的第二任务数据包括的签名信息进行验证,得到所述第二区块对应的第二验证结果。
可以看出,上述技术方案中,通过并行多个区块进行验证,提高了区块的验证效率。同时,通过将区块以及区块对应的验证结果打包成任务数据,使得后续的验证过程更加便捷。
在一种可能的实施方式中,在根据所述N个第一验证结果、所述N个第二验证结果和所述N个第三验证结果,将所述N个区块并行写入区块链时,所述处理模块602,用于根据所述第一区块对应的第一验证结果、所述第一区块对应的第二验证结果和所述第一区块对应的第三验证结果,将所述第一区块序列化,得到序列化后的第一区块;根据所述第二区块对应的第一验证结果、所述第二区块对应的第二验证结果和所述第二区块对应的第三验证结果,将所述第二区块序列化,得到序列化后的第二区块;将所述序列化后的第一区块和所述序列化后的第二区块并行写入所述区块链。
可以看出,上述技术方案中,实现了并行写入区块链,提高了对区块的处理效率。
在一种可能的实施方式中,所述获取模块601,还用于获取所述N个区块对应的N个权重;所述处理模块602,还用于根据所述N个权重,从所述N个区块中确定权重最大区块,得到区块Q;若所述区块Q未在所述第二验证线程上完成验证,则停止对新区块进行验证,所述新区块为不同于所述N个区块的至少一个区块。
可以看出,上述技术方案中,通过停止对新区块进行验证,避免了验证过程出现了资源利用率过高导致验证效率降低的问题。
在一种可能的实施方式中,所述新区块中的每个区块包括交易数据对应的证书信息、签名信息和数据版本号,所述区块Q在所述第二验证线程上完成验证后,所述处理模块602,用于在所述第二验证线程上并行对M个区块中的每个区块包括的签名信息进行验证时,在所述第一验证线程上并行对所述新区块中的每个区块包括的证书信息进行验证,得到所述新区块对应的第一验证结果,其中,所述M个区块为所述N个区块中未在所述第二验证线程上完成验证的区块,所述M为大于0的整数;
若所述N个区块在所述第二验证线程上完成验证,则在所述第二验证线程上并行对所述新区块中的每个区块包括的签名信息进行验证,得到所述新区块对应的第二验证结果;
若所述N个区块未在所述第三验证线程上完成验证,则根据所述新区块对应的区块号,对所述新区块进行排序,得到排序后的新区块,将排序后的新区块放入任务队列进行排队,当检测到所述N个区块在所述第三验证线程上完成验证后,从所述任务队列中获取所述排序后的新区块,在所述第三验证线程上串行对所述排序后的新区块包括的数据版本号进行验证,得到所述新区块对应的第三验证结果;
根据所述新区块对应的第一验证结果、所述新区块对应的第二验证结果和所述新区块对应的第三验证结果,将所述新区块序列化,得到序列化后的新区块;
将所述序列化后的新区块并行写入所述区块链。
可以看出,上述技术方案中,实现了在不同验证线程上,同时对不同的区块进行验证,提高了对区块的验证效率。
参见图7,图7为本申请的实施例涉及的硬件运行环境的电子设备结构示意图。
本申请实施例提供了一种验证的电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,以执行包括任一项验证方法中的步骤的指令。其中,如图7所示,本申请的实施例涉及的硬件运行环境的电子设备可以包括:
处理器701,例如CPU。
存储器702,可选的,存储器可以为高速RAM存储器,也可以是稳定的存储器,例如磁盘存储器。
通信接口703,用于实现处理器701和存储器702之间的连接通信。
本领域技术人员可以理解,图7中示出的电子设备的结构并不构成对其的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图7所示,存储器702中可以包括操作系统、网络通信模块以及一个或多个程序。操作系统是管理和控制服务器硬件和软件资源的程序,支持一个或多个程序的运行。网络通信模块用于实现存储器702内部各组件之间的通信,以及与电子设备内部其他硬件和软件之间通信。
在图7所示的电子设备中,处理器701用于执行存储器702中一个或多个程序,实现以下步骤:
获取N个区块,所述N个区块中的每个区块包括交易数据对应的证书信息、签名信息和数据版本号,所述N为大于1的整数;
在第一验证线程上并行对所述N个区块中的每个区块包括的证书信息进行验证,得到所述N个区块对应的N个第一验证结果;
在第二验证线程上并行对N个区块中的每个区块包括的签名信息进行验证,得到所述N个区块对应的N个第二验证结果;
按照所述N个区块对应的N个区块号从小到大的顺序在第三验证线程上串行对所述N个区块中的每个区块包括的数据版本号进行验证,得到所述N个区块对应的N个第三验证结果;
根据所述N个第一验证结果、所述N个第二验证结果和所述N个第三验证结果,将所述N个区块并行写入区块链。
本申请涉及的电子设备的具体实施可参见上述验证方法的各实施例,在此不做赘述。
本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述存储计算机程序被所述处理器执行,以实现以下步骤:
获取N个区块,所述N个区块中的每个区块包括交易数据对应的证书信息、签名信息和数据版本号,所述N为大于1的整数;
在第一验证线程上并行对所述N个区块中的每个区块包括的证书信息进行验证,得到所述N个区块对应的N个第一验证结果;
在第二验证线程上并行对N个区块中的每个区块包括的签名信息进行验证,得到所述N个区块对应的N个第二验证结果;
按照所述N个区块对应的N个区块号从小到大的顺序在第三验证线程上串行对所述N个区块中的每个区块包括的数据版本号进行验证,得到所述N个区块对应的N个第三验证结果;
根据所述N个第一验证结果、所述N个第二验证结果和所述N个第三验证结果,将所述N个区块并行写入区块链。
本申请涉及的计算机可读存储介质的具体实施可参见上述验证方法的各实施例,在此不做赘述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应所述知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应所述知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (10)

1.一种验证方法,其特征在于,包括:
获取N个区块,所述N个区块中的每个区块包括交易数据对应的证书信息、签名信息和数据版本号,所述N为大于1的整数;
在第一验证线程上并行对所述N个区块中的每个区块包括的证书信息进行验证,得到所述N个区块对应的N个第一验证结果;
在第二验证线程上并行对N个区块中的每个区块包括的签名信息进行验证,得到所述N个区块对应的N个第二验证结果;
按照所述N个区块对应的N个区块号从小到大的顺序在第三验证线程上串行对所述N个区块中的每个区块包括的数据版本号进行验证,得到所述N个区块对应的N个第三验证结果;
根据所述N个第一验证结果、所述N个第二验证结果和所述N个第三验证结果,将所述N个区块并行写入区块链。
2.根据权利要求1所述的方法,其特征在于,第一区块和第二区块为所述N个区块中两个不同的区块,所述在第一验证线程上并行对所述N个区块中的每个区块包括的证书信息进行验证,得到所述N个区块对应的N个第一验证结果,包括:
获取所述第一区块对应的预设证书信息和所述第二区块对应的预设证书信息;
采用所述第一区块对应的预设证书信息在所述第一验证线程上对所述第一区块包括的证书信息进行验证,得到所述第一区块对应的第一验证结果,以及,采用所述第二区块对应的预设证书信息在所述第一验证线程上对所述第二区块包括的证书信息进行验证,得到所述第二区块对应的第一验证结果。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
将所述第一区块对应的第一任务数据和所述第一区块对应的第一验证结果打包成所述第一区块对应的第二任务数据,所述第一区块对应的第一任务数据是所述第一区块打包得到的;
将所述第二区块对应的第一任务数据和所述第二区块对应的第一验证结果打包成所述第二区块对应的第二任务数据,所述第二区块对应的第一任务数据是所述第二区块打包得到的;
所述在第二验证线程上并行对N个区块中的每个区块包括的签名信息进行验证,得到所述N个区块对应的N个第二验证结果,包括:
在所述第二验证线程对所述第一区块对应的第二任务数据包括的签名信息进行验证,得到所述第一区块对应的第二验证结果,以及在所述第二验证线程对所述第二区块对应的第二任务数据包括的签名信息进行验证,得到所述第二区块对应的第二验证结果。
4.根据权利要求2或3所述的方法,其特征在于,所述根据所述N个第一验证结果、所述N个第二验证结果和所述N个第三验证结果,将所述N个区块并行写入区块链,包括:
根据所述第一区块对应的第一验证结果、所述第一区块对应的第二验证结果和所述第一区块对应的第三验证结果,将所述第一区块序列化,得到序列化后的第一区块;
根据所述第二区块对应的第一验证结果、所述第二区块对应的第二验证结果和所述第二区块对应的第三验证结果,将所述第二区块序列化,得到序列化后的第二区块;
将所述序列化后的第一区块和所述序列化后的第二区块并行写入所述区块链。
5.根据权利要求1-3任意一项所述的方法,其特征在于,所述方法还包括:
获取所述N个区块对应的N个权重;
根据所述N个权重,从所述N个区块中确定权重最大区块,得到区块Q;
若所述区块Q未在所述第二验证线程上完成验证,则停止对新区块进行验证,所述新区块为不同于所述N个区块的至少一个区块。
6.根据权利要求5所述的方法,其特征在于,所述新区块中的每个区块包括交易数据对应的证书信息、签名信息和数据版本号,所述区块Q在所述第二验证线程上完成验证后,所述方法还包括:
在所述第二验证线程上并行对M个区块中的每个区块包括的签名信息进行验证时,在所述第一验证线程上并行对所述新区块中的每个区块包括的证书信息进行验证,得到所述新区块对应的第一验证结果,其中,所述M个区块为所述N个区块中未在所述第二验证线程上完成验证的区块,所述M为大于0的整数;
若所述N个区块在所述第二验证线程上完成验证,则在所述第二验证线程上并行对所述新区块中的每个区块包括的签名信息进行验证,得到所述新区块对应的第二验证结果;
若所述N个区块未在所述第三验证线程上完成验证,则根据所述新区块对应的区块号,对所述新区块进行排序,得到排序后的新区块,将排序后的新区块放入任务队列进行排队,当检测到所述N个区块在所述第三验证线程上完成验证后,从所述任务队列中获取所述排序后的新区块,在所述第三验证线程上串行对所述排序后的新区块包括的数据版本号进行验证,得到所述新区块对应的第三验证结果;
根据所述新区块对应的第一验证结果、所述新区块对应的第二验证结果和所述新区块对应的第三验证结果,将所述新区块序列化,得到序列化后的新区块;
将所述序列化后的新区块并行写入所述区块链。
7.一种验证装置,其特征在于,包括获取模块和处理模块,其中,
所述获取模块,用于获取N个区块,所述N个区块中的每个区块包括交易数据对应的证书信息、签名信息和数据版本号,所述N为大于1的整数;
所述处理模块,用于在第一验证线程上并行对所述N个区块中的每个区块包括的证书信息进行验证,得到所述N个区块对应的N个第一验证结果;在第二验证线程上并行对N个区块中的每个区块包括的签名信息进行验证,得到所述N个区块对应的N个第二验证结果;按照所述N个区块对应的N个区块号从小到大的顺序在第三验证线程上串行对所述N个区块中的每个区块包括的数据版本号进行验证,得到所述N个区块对应的N个第三验证结果;根据所述N个第一验证结果、所述N个第二验证结果和所述N个第三验证结果,将所述N个区块并行写入区块链。
8.根据权利要求7所述的装置,其特征在于,第一区块和第二区块为所述N个区块中两个不同的区块,在第一验证线程上并行对所述N个区块中的每个区块包括的证书信息进行验证,得到所述N个区块对应的N个第一验证结果时,
所述获取模块,用于获取所述第一区块对应的预设证书信息和所述第二区块对应的预设证书信息;
所述处理模块,用于采用所述第一区块对应的预设证书信息在所述第一验证线程上对所述第一区块包括的证书信息进行验证,得到所述第一区块对应的第一验证结果,以及,采用所述第二区块对应的预设证书信息在所述第一验证线程上对所述第二区块包括的证书信息进行验证,得到所述第二区块对应的第一验证结果。
9.一种验证的电子设备,其特征在于,包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被生成由所述处理器执行,以执行权利要求1-6任一项方法中的步骤的指令。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述存储计算机程序被所述处理器执行,以实现权利要求1-6任一项所述的方法。
CN202010918633.6A 2020-09-03 2020-09-03 一种验证方法、装置、电子设备和存储介质 Pending CN111985928A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010918633.6A CN111985928A (zh) 2020-09-03 2020-09-03 一种验证方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010918633.6A CN111985928A (zh) 2020-09-03 2020-09-03 一种验证方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN111985928A true CN111985928A (zh) 2020-11-24

Family

ID=73447461

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010918633.6A Pending CN111985928A (zh) 2020-09-03 2020-09-03 一种验证方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN111985928A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180040857A (ko) * 2016-10-13 2018-04-23 주식회사 코인플러그 머클 트리 구조를 사용하여 m of n 다중 서명에 의한 인증서 서비스를 제공하는 방법 및 이를 이용한 서버
CN109285006A (zh) * 2018-09-20 2019-01-29 中链科技有限公司 一种区块链数据的并行验证处理方法及装置
CN110245126A (zh) * 2019-05-20 2019-09-17 深圳壹账通智能科技有限公司 区块处理方法、装置、计算机设备和存储介质
CN110245006A (zh) * 2019-05-07 2019-09-17 深圳壹账通智能科技有限公司 区块链事务的处理方法、装置、设备及存储介质
CN111047319A (zh) * 2019-09-03 2020-04-21 腾讯科技(深圳)有限公司 区块链网络的交易处理方法及区块链网络
WO2020082576A1 (zh) * 2018-10-25 2020-04-30 深圳壹账通智能科技有限公司 区块链事务处理的装置、方法及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180040857A (ko) * 2016-10-13 2018-04-23 주식회사 코인플러그 머클 트리 구조를 사용하여 m of n 다중 서명에 의한 인증서 서비스를 제공하는 방법 및 이를 이용한 서버
CN109285006A (zh) * 2018-09-20 2019-01-29 中链科技有限公司 一种区块链数据的并行验证处理方法及装置
WO2020082576A1 (zh) * 2018-10-25 2020-04-30 深圳壹账通智能科技有限公司 区块链事务处理的装置、方法及存储介质
CN110245006A (zh) * 2019-05-07 2019-09-17 深圳壹账通智能科技有限公司 区块链事务的处理方法、装置、设备及存储介质
CN110245126A (zh) * 2019-05-20 2019-09-17 深圳壹账通智能科技有限公司 区块处理方法、装置、计算机设备和存储介质
CN111047319A (zh) * 2019-09-03 2020-04-21 腾讯科技(深圳)有限公司 区块链网络的交易处理方法及区块链网络

Similar Documents

Publication Publication Date Title
CN110442652B (zh) 一种基于区块链的跨链数据处理方法及装置
CN111445333B (zh) 区块生成方法、装置、计算机设备以及存储介质
US20210049715A1 (en) Blockchain-based data procesing method, apparatus, and electronic device
CN109493204B (zh) 基于区块链的业务记账方法及终端设备
CN109815373B (zh) 数据存储的控制方法、装置、服务器及可读存储介质
WO2019113495A1 (en) Systems and methods for cryptographic provision of synchronized clocks in distributed systems
US20200220881A1 (en) Weighted verification of entity data blocks on a blockchain
CN115152177B (zh) 提供机密知识的专门证明的系统和方法
Tate et al. Multi-user dynamic proofs of data possession using trusted hardware
EP4216077A1 (en) Blockchain network-based method and apparatus for data processing, and computer device
CN111523890A (zh) 基于区块链的数据处理方法、装置、存储介质及设备
CN110177124A (zh) 基于区块链的身份认证方法及相关设备
WO2022206454A1 (zh) 提供跨链消息的方法和装置
CN109886810B (zh) 众包交易方法及系统、可读存储介质和终端
CN115840787B (zh) 基于区块链的供应链数据共享方法、装置、设备及介质
CN108809929B (zh) 一种基于区块链技术的农村金融系统
CN114629663B (zh) 基于区块链的数字商品交易方法及装置
CN111985928A (zh) 一种验证方法、装置、电子设备和存储介质
CN109698750A (zh) 区块链的区块生成方法、装置、设备及可读存储介质
CN111984202A (zh) 一种数据处理方法、装置、电子设备和存储介质
CN110910091A (zh) 一种数据处理方法、设备及介质
CN111882416A (zh) 一种风险预测模型的训练方法和相关装置
CN111882415A (zh) 一种质量检测模型的训练方法和相关装置
CN112116461A (zh) 区块链及其共识方法
CN111147477A (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