在区块链中验证签名的方法和装置制造方法及图纸

技术编号:19512700 阅读:28 留言:0更新日期:2018-11-21 08:37
本发明专利技术的实施例公开了在区块链中验证签名的方法、装置和计算机可读存储介质。该方法包括:接收包括多个交易的区块,所述多个交易中的每一个交易被设置为第一处理状态;使用多个验签线程来并发地处理所述多个交易的签名,其中,所述多个验签线程中的每一个验签线程用于将所述多个交易中处于第一处理状态的交易设置为第二处理状态。根据本发明专利技术的实施例的在区块链中验证签名的方法可以显著减少交易的验签所花费的时间,从而缩短区块整体的执行时间,使得区块链的处理性能得以较大的提升。

【技术实现步骤摘要】
在区块链中验证签名的方法和装置
本公开总体上涉及信息处理技术,更具体地说,涉及在区块链(BlockChain)中验证签名的方法、装置及计算机可读介质。
技术介绍
区块链技术是基于去中心化的对等网络,将密码学原理与共识机制相结合,来保障分布式各节点的数据连贯和持续,实现信息即时验证、可追溯、难篡改等特性,从而创造了一套隐私、高效、安全的分布式信任体系。用户在区块链网络上进行交易并且交易利用密钥来进行签名以防止信息和数据被恶意伪造和篡改,多个交易被收集后打包到一个区块并发送到区块链网络的节点(例如,记账节点)执行处理。区块链交易执行的过程通常可以包括两个步骤:验签(验证签名)和数据修改,其中验签步骤消耗了大量的时间,在整个交易的执行过程中是主要性能消耗点,这是因为在密码学当中验签是计算密集型操作。在现有的区块执行方法中,区块中的交易是顺序验签并执行的,即依次对区块中的每一个交易进行验签、数据修改操作。然而当区块中的交易顺序执行时,由于验签操作消耗了大量时间,导致整体区块执行时间过长,使得区块链的性能难以极大地提高,限制了区块链的应用场景。因此,需要一种改进的在区块链中验证签名的方法。
技术实现思路
总体上,本公开的实施例提供了在区块链中验证签名的方法、装置及计算机可读存储介质以至少部分地解决现有技术的上述及其它潜在问题。本公开实施例的第一方面提供了一种在区块链中验证签名的方法。该方法包括:接收包括多个交易的区块,所述多个交易中的每一个交易被设置为第一处理状态;使用多个验签线程来并发地处理所述多个交易的签名,其中,所述多个验签线程中的每一个验签线程用于将所述多个交易中处于第一处理状态的交易设置为第二处理状态。本公开实施例的第二方面提供了一种在区块链中验证签名的装置。该装置包括:存储器,其用于存储指令;以及处理器,其耦合到所述存储器,当所述指令被执行时使得所述处理器执行以下操作:接收包括多个交易的区块,所述多个交易中的每一个交易被设置为第一处理状态;使用多个验签线程来并发地处理所述多个交易的签名,其中,所述多个验签线程中的每一个验签线程用于将所述多个交易中处于第一处理状态的交易设置为第二处理状态。在上述方法和装置的一个示例中,所述多个验签线程中的每一个验签线程用于将所述多个交易中处于第一处理状态的交易设置为第二处理状态包括:确定所述多个交易中是否存在处于第一处理状态的交易;如果确定存在,则使用原子操作将所述处于第一处理状态的交易设置为第二处理状态。在上述方法和装置的一个示例中,该每一个验签线程还用于:如果将所述处于第一处理状态的交易成功地设置为第二处理状态,则对所述交易的签名进行验证。在上述方法和装置的一个示例中,该每一个验签线程还用于:如果所述交易的签名的验证结果为验证成功,则将所述交易设置为第三处理状态;如果所述交易的签名的验证结果为验证失败,则将所述交易设置为第四处理状态。上述方法和装置的一个示例还包括:基于所述多个交易中的每一个交易的处理状态,使用区块执行线程来处理所述交易。在上述方法和装置的一个示例中,基于所述多个交易中的每一个交易的处理状态,使用区块执行线程来处理所述交易包括:如果所述交易处于第三处理状态,则使用所述区块执行线程执行所述交易来更新区块链信息;如果所述交易处于第四处理状态,则使用所述区块执行线程对所述交易进行无效处理。本公开实施例的第三方面提供了一种计算机可读存储介质。该计算机可读存储介质存储有指令,所述指令用于执行根据本公开的第一方面描述的方法。本公开的实施例提供了基于区块链的并发验证签名的方案,其中区块中的交易的验签操作是以多线程并发来执行的且与顺序无关,这显著减少了交易的验签所花费的时间,从而缩短了区块整体的执行时间,使得区块链的处理性能得以较大的提升。附图说明现将仅通过示例的方式,参考所附附图对本公开的实施例进行描述,在附图中,相同或相似的附图标注表示相同或相似的元素,其中:图1示出了其中可以实现本公开的实施例的示例性区块链网络100的示意图;图2示出了根据本公开的实施例的在区块链中验证签名的方法200的流程图;图3示出了根据本公开的实施例的在区块链中验证签名的方法的示例性初始化线程300的流程图;图4示出了根据本公开的实施例的在区块链中验证签名的方法的示例性验签线程400的流程图;图5示出了根据本公开的实施例的在区块链中验证签名的方法的示例性区块执行线程500的流程图;以及图6示出了根据本公开的实施例的在区块链中验证签名的装置600的示意图。具体实施方式现将结合附图对本公开的实施例进行具体的描述。应当注意的是,附图中对相似的部件或者功能组件可能使用同样的数字标示。所附附图仅仅旨在说明本公开的实施例。本领域技术人员可以在不偏离本公开精神和保护范围的基础上从下述描述得到替代的实施方式。本文所使用的术语“包括”、“包含”及类似术语应该被理解为是开放性的术语,即“包括/包含但不限于”,表示还可以包括其它内容。术语“基于”是“至少部分地基于"。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”,等等。本文使用词语“示例性”表示“充当示例、实例或举例说明”。本文中被描述为“示例性”的任何实施例都并非必然解释为对于其它实施例而言是优选的或有优势的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。对于附图中的各单元之间的连线,仅仅是为了便于说明,其表示至少连线两端的单元是相互通信的,并非旨在限制未连线的单元之间无法通信。如前所述,在现有的区块执行方法中,区块中的交易是按照顺序来逐一验签的,导致整体区块执行时间过长。以以太坊(ETH)为例,其采用了椭圆曲线加密(ECC)算法,如果使用例如x86i5双核2.0G处理器来进行验签,则一次验签耗费时间大于20ms。由于以太坊的区块大小没有限制,如果使用的区块过大,则对区块中的交易完成验签花费的时间会较长,严重限制了区块链的应用场景。有鉴于此,本公开的实施例提供了一种基于区块链的并发验签的解决方案,该解决方案尤其适用于区块执行场景中的验签操作。本公开的实施例可以应用于不同类型的区块链网络中。根据区块链参与方的不同,区块链通常被分为公有链、联盟链和私有链三种类型。公有链对外开放,用户无需任何授权就可以访问区块链网络和区块数据,发起各种交易。联盟链限制了只有联盟中的成员才能参与,区块链上的操作权限根据联盟定制的相关规则来确定。私有链一般在私有组织内部使用,区块链上的操作权限根据私有组织的自行规定执行。本公开的实施例以联盟链为示例来描述本公开的技术,但是应当理解,本公开的实施例也可以适用于其它类型的区块链。图1示出了其中可以实现本公开的实施例的示例性区块链网络100的示意图。区块链网络100包括多个区块链节点101、102、103、104。由于区块链技术具有去中心化、分布式的特性,各区块链节点可通过各种通信介质互相交换信息。区块链节点101-104中的每个区块链节点在发送消息时利用其相应的私钥对消息进行签名,接收到消息的区块链节点利用发送节点的公钥对消息的签名进行验证,从而防止消息被恶意伪造和篡改。在区块链为联盟链的示例中,例如,区本文档来自技高网...

【技术保护点】
1.一种在区块链中验证签名的方法,其特征在于,包括:接收包括多个交易的区块,所述多个交易中的每一个交易被设置为第一处理状态;使用多个验签线程来并发地处理所述多个交易的签名,其中,所述多个验签线程中的每一个验签线程用于将所述多个交易中处于第一处理状态的交易设置为第二处理状态。

【技术特征摘要】
1.一种在区块链中验证签名的方法,其特征在于,包括:接收包括多个交易的区块,所述多个交易中的每一个交易被设置为第一处理状态;使用多个验签线程来并发地处理所述多个交易的签名,其中,所述多个验签线程中的每一个验签线程用于将所述多个交易中处于第一处理状态的交易设置为第二处理状态。2.根据权利要求1所述的方法,其特征在于,所述多个验签线程中的每一个验签线程用于将所述多个交易中处于第一处理状态的交易设置为第二处理状态包括:确定所述多个交易中是否存在处于第一处理状态的交易;如果确定存在,则使用原子操作将所述处于第一处理状态的交易设置为第二处理状态。3.根据权利要求1或2所述的方法,其特征在于,该每一个验签线程还用于:如果将所述处于第一处理状态的交易成功地设置为第二处理状态,则对所述交易的签名进行验证。4.根据权利要求3所述的方法,其特征在于,该每一个验签线程还用于:如果所述交易的签名的验证结果为验证成功,则将所述交易设置为第三处理状态;如果所述交易的签名的验证结果为验证失败,则将所述交易设置为第四处理状态。5.根据权利要求4所述的方法,其特征在于,还包括:基于所述多个交易中的每一个交易的处理状态,使用区块执行线程来处理所述交易。6.根据权利要求5所述的方法,其特征在于,基于所述多个交易中的每一个交易的处理状态,使用区块执行线程来处理所述交易包括:如果所述交易处于第三处理状态,则使用所述区块执行线程执行所述交易来更新区块链信息;如果所述交易处于第四处理状态,则使用所述区块执行线程对所述交易进行无效处理。7.一种在区块链中验证签名的装置,其特征在于,包括:存储器,其用于存储指令;以及处理器,其耦合到所述存储器,所述指令在由所述处理器执行时使得所述装置执行以下操作:接收包括多个交易的区块,所述多个交易中的每一个交易被...

【专利技术属性】
技术研发人员:曹京奇唐正超瞿争
申请(专利权)人:众安信息技术服务有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1