CN114820179A - 区块链验签方法及相关设备 - Google Patents

区块链验签方法及相关设备 Download PDF

Info

Publication number
CN114820179A
CN114820179A CN202110082518.4A CN202110082518A CN114820179A CN 114820179 A CN114820179 A CN 114820179A CN 202110082518 A CN202110082518 A CN 202110082518A CN 114820179 A CN114820179 A CN 114820179A
Authority
CN
China
Prior art keywords
transaction
signature
transactions
node
blockchain
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
CN202110082518.4A
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.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Cloud Computing Technologies Co Ltd
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 Huawei Cloud Computing Technologies Co Ltd filed Critical Huawei Cloud Computing Technologies Co Ltd
Priority to CN202110082518.4A priority Critical patent/CN114820179A/zh
Publication of CN114820179A publication Critical patent/CN114820179A/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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/3829Payment protocols; Details thereof insuring higher security of transaction involving key management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本申请提供一种区块链验签方法及相关设备,所述方法包括:接收多个待验签交易,其中,每个待验签交易携带签名和交易信息,每个签名对应一个公钥;根据每个待验签交易的签名对应的公钥将多个待验签交易划分为至少一个交易集合,其中,每个交易集合中的待验签交易的签名对应的公钥相同;从至少一个交易集合中确定目标交易集合;对目标交易集合中的待验签交易进行批量验签,获得验签结果。本申请能够有效提高区块链网络的验签效率。

Description

区块链验签方法及相关设备
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块链验签方法及相关设备。
背景技术
区块链技术是利用块链式数据结构验证和存储数据、利用分布式节点共识算法生成和更新数据、利用密码学的方式保证数据传输和访问的安全性、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构。
在区块链实际业务场景中,为了保证交易的合法性和数据的不可篡改,需要对每笔交易进行签名并且对签名进行校验(即验签)。由于区块链中存在大量的验签工作,验签的效率会对区块链的性能产生很大的影响。目前典型的区块链,例如Fabric、Bitcoin、Ethereum等区块链中,一般是针对交易逐个校验其签名,这种方式验签效率低,验签时间长。有些区块链,例如Fabric,在验签时会采用多线程的方式并发对多笔交易进行校验。然而,多线程验签方式依赖于物理资源(例如记账节点)的CPU核数,验签效率提升有限。
发明内容
本申请实施例公开了一种区块链验签方法及相关设备,能够提升区块链网络的验签效率。
本申请第一方面公开了一种区块链验签方法,应用于区块链节点,所述方法包括:接收多个待验签交易,其中,每个待验签交易携带签名和交易信息,每个签名对应一个公钥;根据每个待验签交易的签名对应的公钥将所述多个待验签交易划分为至少一个交易集合,其中,每个交易集合中的待验签交易的签名对应的公钥相同;从所述至少一个交易集合中确定目标交易集合;对所述目标交易集合中的待验签交易进行批量验签,获得验签结果。
本申请按照交易对应的公钥将交易划分为交易集合,每个公钥对应一个交易集合,对每个交易集合执行一次批量验签,即可实现对交易集合中所有待验签交易的验签,有效提高了验签效率。
在一些可选的实施方式中,所述从所述至少一个交易集合中确定目标交易集合包括:
根据所述至少一个交易集合中的待验签交易的交易数、交易大小或验签等待时间,从所述至少一个交易集合中确定所述目标交易集合,所述目标交易集合包括一个交易集合或者多个交易集合。
在一些可选的实施方式中,所述区块链节点包括联盟链的记账节点和/或主节点,所述待验签交易携带所述联盟链的背书节点和/或排序服务节点的签名。
在一些可选的实施方式中,所述区块链节点包括组成跨链的公链中的共识/记账节点和 /或组成所述跨链的联盟链中的记账节点和/或主节点,所述待验签交易携带所述跨链的转接桥、代理人和/或公证人的签名。
在一些可选的实施方式中,所述区块链节点包括公链的共识/记账节点,所述待验签交易携带所述公链其他的共识/记账节点的签名。
在一些可选的实施方式中,所述待验签交易的签名是采用椭圆曲线加密算法生成的。
在一些可选的实施方式中,所述椭圆曲线加密算法包括以下任意一种:SM2加密算法、 ecdsa加密算法、ed25519加密算法。
在一些可选的实施方式中,所述方法还包括:若所述目标交易集合中的待验签交易未通过批量验签,从所述目标交易集合中定位出签名有问题的交易。
在一些可选的实施方式中,所述目标交易集合包括n个待验签交易,n个待验签交易的签名记为sig1,sig2,…,sign,sig1=(r1 ,s1,R1),sig2=(r 2,s2,R2),…,sign=(rn,sn,Rn),r 1, r2,…,rn为sig1,sig2,…,sign的签名第一部分,s1,s2,…,sn为sig1,sig2,…,sign的签名第二部分,R1,R2,…,Rn为sig1,sig2,…,sign的随机承诺,R1=(r1x,r1y ),R2=(r2x ,r2y ),…, Rn=(rnx, rny),n个待验签交易的交易信息为m1,m2,…,mn,n个待验签交易对应公钥PK,sig1, sig2,…,sign的公开参数为Z,所述对所述目标交易集合进行批量验签包括:
计算e1=Hash(Z,m1),t1=r1+s1
e2=Hash(Z,m2),t2=r2+s2
……
en=Hash(Z,mn),tn=rn +sn
为sig1,sig2,…,sign分别选取随机数v1,v2,…,vn,验证下列等式是否全部都成立:
e1+r1x=r 1
e2+r2x=r 2
……
en+rnx=rn
Figure BDA0002909885100000021
其中G为所述椭圆曲线加密算法采用的椭圆曲线基点;
若所述等式全部都成立,所述n个待验签交易通过批量验签。
在一些可选的实施方式中,所述目标交易集合包括ik个待验签交易,ik个待验签交易的签名记为
Figure BDA0002909885100000022
Figure BDA0002909885100000023
Figure BDA0002909885100000024
Figure BDA0002909885100000025
Figure BDA0002909885100000026
Figure BDA0002909885100000027
Figure BDA0002909885100000028
的签名第一部分,
Figure BDA0002909885100000029
Figure BDA00029098851000000210
的签名第二部分,
Figure BDA00029098851000000211
Figure BDA00029098851000000212
的随机承诺,
Figure BDA00029098851000000213
ik个待验签交易的交易信息为
Figure BDA00029098851000000214
其中
Figure BDA00029098851000000215
对应公钥PK1
Figure BDA00029098851000000216
对应公钥PK2
Figure BDA00029098851000000217
Figure BDA0002909885100000031
对应公钥
Figure BDA0002909885100000032
对应公钥PKk
Figure BDA0002909885100000033
Figure BDA0002909885100000034
的公开参数为Z1
Figure BDA0002909885100000035
的公开参数为Z2
Figure BDA0002909885100000036
Figure BDA0002909885100000037
的公开参数为
Figure BDA0002909885100000038
的公开参数为Zk,所述对所述目标交易集合进行批量验签包括:
计算e1=Hash(Z1,m1),t1=r1+s1
e2=Hash(Z1,m2),t2=r2+s2
……
Figure BDA0002909885100000039
Figure BDA00029098851000000310
Figure BDA00029098851000000311
……
Figure BDA00029098851000000312
……
Figure BDA00029098851000000313
Figure BDA00029098851000000314
……
Figure BDA00029098851000000315
……
Figure BDA00029098851000000316
Figure BDA00029098851000000317
……
Figure BDA00029098851000000318
Figure BDA00029098851000000319
选取随机数
Figure BDA00029098851000000320
验证下列等式是否全部都成立:
e1+r1x=r1
e2+r2x=r2
……
Figure BDA00029098851000000321
Figure BDA00029098851000000322
其中G为所述椭圆曲线加密算法采用的椭圆曲线基点;
若所述等式全部都成立,所述ik个待验签交易通过批量验签。
在一些可选的实施方式中,所述从所述目标交易集合中定位出签名有问题的交易包括:若ep+rpx=rp不成立,确定sigp为有问题的交易,p∈{1,2,3,…,n};或者若
Figure BDA00029098851000000323
Figure BDA00029098851000000324
不成立,通过改变
Figure BDA00029098851000000325
Figure BDA00029098851000000326
中i的取值范围来确定有问题的交易。
在一些可选的实施方式中,所述从所述目标交易集合中定位出签名有问题的交易包括:若eq+rqx=rq不成立,确定sigq为有问题的交易,q∈{1,2,3,…,ik};或者若
Figure BDA00029098851000000327
Figure BDA00029098851000000328
Figure BDA0002909885100000041
不成立,通过改变
Figure BDA0002909885100000042
Figure BDA0002909885100000043
中j的取值范围来确定有问题的交易。
本申请第二方面公开了一种区块链验签装置,应用于区块链节点,所述装置包括:交易分组器,用于接收多个待验签交易,根据每个待验签交易的签名对应的公钥将所述多个待验签交易划分为至少一个交易集合,其中,每个待验签交易携带签名和交易信息,每个签名对应一个公钥,每个交易集合中的待验签交易的签名对应的公钥相同;触发器,用于从所述至少一个交易集合中确定目标交易集合;批量验签器,用于对所述目标交易集合中的待验签交易进行批量验签,获得验签结果。
在一些可选的实施方式中,所述触发器用于:
根据所述至少一个交易集合中的待验签交易的交易数、交易大小或验签等待时间,从所述至少一个交易集合中确定所述目标交易集合,所述目标交易集合包括一个交易集合或者多个交易集合。
在一些可选的实施方式中,所述区块链节点包括联盟链的记账节点和/或主节点,所述待验签交易携带所述联盟链的背书节点和/或排序服务节点的签名。
在一些可选的实施方式中,所述区块链节点包括组成跨链的公链中的共识/记账节点和/或组成所述跨链的联盟链中的记账节点和/或主节点,所述待验签交易携带所述跨链的转接桥、代理人和/或公证人的签名。
在一些可选的实施方式中,所述区块链节点包括公链的共识/记账节点,所述待验签交易携带所述公链其他的共识/记账节点的签名。
在一些可选的实施方式中,所述待验签交易的签名是采用椭圆曲线加密算法生成的。
在一些可选的实施方式中,所述装置还包括:失败定位器,用于若所述目标交易集合中的待验签交易未通过批量验签,从所述目标交易集合中定位出签名有问题的交易。
本申请第三方面公开了一种计算机可读存储介质,包括计算机指令,当所述计算机指令在区块链节点上运行时,使得所述区块链节点执行如第一方面所述的区块链验签方法。
本申请第四方面公开了一种区块链节点,所述区块链节点包括处理器和存储器,所述存储器用于存储指令,所述处理器用于调用所述存储器中的指令,使得所述区块链节点执行如第一方面所述的区块链验签方法。
本申请第五方面公开了一种芯片系统,所述芯片系统应用于区块链节点;所述芯片系统包括接口电路和处理器;接口电路和处理器通过线路互联;接口电路用于从区块链节点的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令;当处理器执行该计算机指令时,芯片系统执行如第一方面所述的区块链验签方法。
应当理解地,上述提供的第二方面所述的区块链验签装置、第三方面所述的计算机可读存储介质、第四方面所述的区块链节点、第五方面所述的芯片系统均与上述第一方面的方法对应,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
图1是本申请实施例提供的区块链验签方法的一个应用场景示意图。
图2是本申请实施例提供的区块链验签方法的另一应用场景示意图。
图3是本申请实施例提供的区块链验签方法的另一应用场景示意图。
图4是应用本申请区块链验签方法的区块链节点的软件架构图。
图5是本申请实施例提供的一种区块链验签方法的应用场景示意图。
图6-7是本申请实施例提供的一种区块链节点的结构示意图。
具体实施方式
为了便于理解,示例性的给出了部分与本申请实施例相关概念的说明以供参考。
需要说明的是,本申请中“至少一个”是指一个或者多个,“多个”是指两个或多于两个。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。本申请的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不是用于描述特定的顺序或先后次序。
为了更好地理解本申请实施例公开的区块链验签方法及相关设备,下面首先对本申请区块链验签方法的应用场景进行描述。
图1是本申请实施例提供的区块链验签方法的一个应用场景示意图。区块链验签方法可以应用于联盟链,图1以Fabric区块链网络为例进行说明。Fabric区块链网络包括背书节点、记账节点、排序服务节点、主节点。背书节点、记账节点、排序服务节点、主节点可以是物理节点(例如终端设备或服务器),也可以是虚拟节点(例如虚拟机或虚拟网络设备)。
参见图1所示,Fabric区块链网络的交易流程为:101,客户端节点向背书节点提交交易提案;102,背书节点模拟执行交易提案并对执行结果进行签名背书;103,背书节点将签名背书后的执行结果返回客户端节点;104,客户端节点将签名背书和签名背书后的执行结果作为交易发送给排序服务节点;105,排序服务节点对交易排序生成区块,并对区块进行签名;106,排序服务节点将签名后的区块广播给主节点;107,主节点验证签名并保存区块;108,背书节点、记账节点、主节点之间对区块进行同步;109,记账节点验证签名并保存区块。102和105中,背书节点、排序服务节对交易进行签名,得到待验签交易。107和109中,记账节点、主节点采用本申请区块链验签方法对交易进行批量验签,以提升Fabric区块链网络的验签效率。记账节点和主节点校验的签名可以包括背书节点的签名,也可以包括排序服务节点的签名。
以企业间数据交换的应用业务为例,101中,企业客户端节点将携带数据交换请求的交易提案提交给背书节点。背书节点、记账节点、排序服务节点、主节点按照图1所示交易流程进行处理,实现对携带数据交换请求的交易的验签。
图2是本申请实施例提供的区块链验签方法的另一应用场景示意图。如图2所示,所述区块链验签方法可以应用于公链。公链包括多个共识/记账节点,每个共识/记账节点具有记账和共识的功能(即每个共识/记账节点即是记账节点,又是共识节点)。共识/记账节点之间对交易/区块进行同步。当执行共识功能时,共识/记账节点对交易进行校验后打包成区块并签名。当执行记账功能时,共识/记账节点采用本申请区块链验签方法对交易进行批量验签,以提升公链的验签效率。
图3是本申请实施例提供的区块链验签方法的另一应用场景示意图。区块链验签方法可以应用于跨链,图3以公证人机制异构链跨链为例进行说明。图3包括区块链网络 A和区块链网络B,区块链网络A和区块链网络B之间通过公证人(其他类型跨链可以通过转接桥、代理人等)进行跨链操作。其中,区块链网络A是公链,其中各个共识/记账节点的功能参阅图2相关描述。区块链网络B是联盟链,其中各个共识/记账节点(即背书节点、记账节点、排序服务节点、主节点)的功能参阅图1相关描述。公证人对交易进行签名,得到待验签交易,将待验签交易在区块链网络之间同步。区块链网络A中的共识/记账节点和区块链网络B中的记账节点与主节点采用本申请区块链验签方法对来自于公证人的待验签交易进行批量验签,以提升跨链的验签效率。
待验签交易的签名可以采用任意的加密算法生成。
在本申请的一个实施例中,待验签交易的签名可以采用椭圆曲线加密算法生成。例如,联盟链中,背书节点、排序服务节点采用椭圆曲线加密算法对交易进行签名,得到待验签交易。
在本申请的一个实施例中,所述椭圆曲线加密算法可以是SM2加密算法、ecdsa加密算法、ed25519加密算法中的任意一种。
应用本申请区块链验签方法的区块链节点(例如记账节点)可以是手机、平板电脑、桌上型计算机、笔记本、掌上电脑、云端服务器等。
图4是应用本申请区块链验签方法的区块链节点的软件架构图。
参阅图4所示,区块链节点40(例如联盟链中的记账节点)包括交易分组器401、触发器402、批量验签器403和失败定位器404。分组器401、触发器402、批量验签器 403和失败定位器404组成区块链验签装置(图上未示出)。
交易分组器401用于接收多个待验签交易,将多个待验签交易划分为至少一个交易集合,将公钥相同的待验签交易划分到同一个交易集合。
触发器402用于从交易集合中确定目标交易集合,以触发批量验签。
批量验签器403用于对目标交易集合进行批量验签。
失败定位器404用于当目标交易集合中的待验签交易未通过批量验签时,从目标交易集合中定位出签名有问题的交易。
各个模块的具体功能将在图5中进行详细描述。
图5是本申请实施例公开的区块链验签方法的流程图。所述区块链验签方法应用于区块链节点,所述区块链节点包括交易分组器、触发器、批量验签器和失败定位器(参阅图4所示)。
501,交易分组器接收多个待验签交易。
在本申请的一个实施例中,区块链验签方法应用于联盟链的记账节点和主节点,主节点接收排序服务节点广播的多个待验签交易,记账节点接收背书节点和主节点同步过来的多个待验签交易。
在本申请的另一个实施例中,区块链验签方法应用于公链的记账/共识节点,记账/共识节点从公链其他的记账/共识节点接收多个待验签交易。
在本申请的另一个实施例中,区块链验签方法应用于跨链,跨链包括联盟链和公链,区块链验签方法应用于联盟链的记账节点和主节点以及公链的记账/共识节点,记账/共识节点从跨链的转接桥、代理人和/或公证人接收多个待验签交易,记账节点和主节点接收背书节点同步过来的多个待验签交易。背书节点从跨链的转接桥、代理人和/或公证人接收到多个待验签交易后,将多个待验签交易同步给记账节点和主节点。
每个待验签交易携带有签名和交易信息,每个签名对应一个公钥。
502,交易分组器根据每个待验签交易对应的公钥将多个待验签交易划分为至少一个交易集合,将公钥相同的待验签交易划分到同一个交易集合。
交易中携带签名者的信息,包括签名者的公钥。
待验签交易的公钥相同,表示待验签交易的签名来自于同一个签名者。
划分的交易集合可以是一个,也可以是多个。若划分的交易集合是一个,表明所有的待验签交易携带同一个签名者的签名。若划分的交易集合是多个,表明待验签交易携带不同签名者的签名。
例如,联盟链包括一个背书节点和一个排序服务节点中,记账节点接收的待验签交易携带背书节点的签名或者携带排序服务节点的签名,记账节点将接收的待验签交易划分为两个交易集合,一个交易集合对应背书节点,一个交易集合对应排序服务节点。
又如,组成跨链的联盟链中,记账节点接收的待验签交易携带同一个公证人的签名,记账节点将接收的待验签交易划分为一个交易集合。
再如,公链中,记账/共识节点接收到公链中其他两个记账/共识节点的待验签交易,记账/共识节点将接收的待验签交易划分为两个交易集合,分别对应其他两个记账/共识节点。
503,触发器从交易集合中确定目标交易集合。
触发器确定的目标交易集合可以是一个也可以是多个。
触发器可以统计单个交易集合的交易信息,根据单个集合的交易信息确定目标交易集合。具体地,触发器可以判断交易集合中单个交易集合的交易数是否大于或等于第一预设交易数,或者判断单个交易集合的交易大小是否大于或等于第一交易大小,或者判断单个交易集合的验签等待时间是否大于或等于第一等待时间。若交易集合中单个交易集合的交易数大于或等于第一预设交易数,或者单个交易集合的交易大小大于或等于第一交易大小,或者单个交易集合的验签等待时间大于或等于第一等待时间,则将单个交易集合确定为目标交易集合。
或者,触发器可以统计所有交易集合的交易信息,根据所有交易集合的交易信息确定目标交易集合。具体地,触发器可以判断所有交易集合的总交易数是否大于或等于第二预设交易数,或者判断所有交易集合的总交易大小是否大于或等于第二交易大小,或者判断所有交易集合的总验签等待时间是否大于或等于第二等待时间。若所有交易集合的总交易数大于或等于第二预设交易数,或者所有交易集合的总交易大小大于或等于第二交易大小,或者所有交易集合的总验签等待时间大于或等于第二等待时间,将所有交易集合确定为目标交易集合。
504,批量验签器对目标交易集合进行批量验签。
在本申请的一个实施例中,待验签交易的签名是采用椭圆曲线加密算法生成的,批量验签器基于签名采用的椭圆曲线加密算法对目标交易集合进行批量验签。
以下分别对目标交易集合为一个,对应一个公钥和对目标交易集合为多个,对应多个公钥两种情况进行说明。
批量验签方式一:目标交易集合为一个,对应一个公钥。
待验签的交易集合包括n个待验签交易,n个待验签交易的签名记为sig1,sig2,…,sign, sig1=(r 1,s1,R1),sig2=(r2,s2,R2),…,sign=(rn,sn,Rn),r1,r2,…,rn为sig1,sig2,…, sign的签名第一部分,s1,s2,…,sn为sig1,sig2,…,sign的签名第二部分,R1,R2,…,Rn为sig1,sig2,…,sign的随机承诺,R1=(r1x,r1y),R2=(r2x,r2y),…,Rn=(rnx,rny),n个待验签交易的交易信息为m1,m2,…,mn,n个待验签交易对应公钥PK,sig1,sig2,…,sign的公开参数为Z,对所述目标交易集合进行批量验签包括:
计算e1=Hash(Z,m1),t1=r1+s1
e2=Hash(Z,m2),t2=r2+s2
……
en=Hash(Z,mn),tn=rn+sn
为sig1,sig2,…,sign分别选取随机数v1,v2,…,vn,验证下列等式是否全部都成立:
e1+r1x=r1
e2+r2x=r2
……
en+rnx=rn
Figure BDA0002909885100000081
其中G为椭圆曲线加密算法采用的椭圆曲线基点。
若等式全部都成立,n个待验签交易通过批量验签。
批量验签方式二:目标交易集合为多个,对应多个公钥。
目标交易集合包括ik个待验签交易,ik个待验签交易的签名记为
Figure BDA0002909885100000082
Figure BDA0002909885100000083
Figure BDA0002909885100000084
Figure BDA0002909885100000085
Figure BDA0002909885100000086
Figure BDA0002909885100000087
Figure BDA0002909885100000088
Figure BDA0002909885100000089
的签名第一部分,
Figure BDA00029098851000000810
Figure BDA00029098851000000811
的签名第二部分,
Figure BDA00029098851000000812
Figure BDA00029098851000000813
的随机承诺,
Figure BDA00029098851000000814
ik个待验签交易的交易信息为
Figure BDA00029098851000000815
其中
Figure BDA00029098851000000816
对应公钥PK1
Figure BDA00029098851000000817
Figure BDA00029098851000000818
对应公钥PK2
Figure BDA00029098851000000819
对应公钥
Figure BDA00029098851000000820
Figure BDA00029098851000000821
对应公钥PKk
Figure BDA00029098851000000822
的公开参数为Z1
Figure BDA00029098851000000823
Figure BDA00029098851000000824
的公开参数为Z2
Figure BDA00029098851000000825
的公开参数为
Figure BDA00029098851000000826
Figure BDA00029098851000000827
的公开参数为Zk,所述对所述目标交易集合进行批量验签包括:
计算e1=Hash(Z1,m1),t1=r1+s1
e2=Hash(Z1,m2),t2=r2+s2
……
Figure BDA0002909885100000091
Figure BDA0002909885100000092
Figure BDA0002909885100000093
……
Figure BDA0002909885100000094
……
Figure BDA0002909885100000095
Figure BDA0002909885100000096
……
Figure BDA0002909885100000097
……
Figure BDA0002909885100000098
Figure BDA0002909885100000099
……
Figure BDA00029098851000000910
Figure BDA00029098851000000911
选取随机数
Figure BDA00029098851000000912
验证下列等式是否全部都成立:
e1+r1x=r1
e2+r2x=r2
……
Figure BDA00029098851000000913
Figure BDA00029098851000000914
其中G为所述椭圆曲线加密算法采用的椭圆曲线基点。
若等式全部都成立,ik个待验签交易通过批量验签。
需要说明的是,若目标交易集合为多个,对应多个公钥,可以针对每个目标交易集合采用批量验签方式一进行批量验签。
505,若目标交易集合中的待验签交易未通过批量验签,失败定位器从目标交易集合中定位出签名有问题的交易。
采用批量验签方式一,若待验签交易未通过验签,失败定位器可以采用以下方法从目标交易集合中定位出签名有问题的交易:
(1)若ep+rpx=rp不成立,确定sigp为有问题的交易,p∈{1,2,3,…,n}。
例如,若e5+r5=r5不成立,确定sig5为有问题的交易。
(2)若
Figure BDA00029098851000000915
不成立,通过改变
Figure BDA00029098851000000916
Figure BDA00029098851000000917
中i的取值范围来确定有问题的交易。
例如,若
Figure BDA00029098851000000918
不成立,则将n个签名sig1, sig2,…,sign分为sig1,sig2,…,sign/2
Figure BDA00029098851000000919
两部分(假设n为偶数),分别对sig1,sig2,…,sign/2
Figure BDA0002909885100000101
验证
Figure BDA0002909885100000102
Figure BDA0002909885100000103
Figure BDA0002909885100000104
是否成立,通过逐步缩小验证范围,可以确定有问题的交易。
采用批量验签方式二,若待验签交易未通过验签,失败定位器可以采用以下方法从目标交易集合中定位出签名有问题的交易:
(1)若eq+rqx=rq不成立,sigq为有问题的交易,q∈{1,2,3,…,ik}。
例如,若e8+r8=r8不成立,确定sig8为有问题的交易。
(2)若
Figure BDA0002909885100000105
Figure BDA0002909885100000106
不成立,通过改变
Figure BDA0002909885100000107
Figure BDA0002909885100000108
中j的取值范围来确定有问题的交易。
通过改变
Figure BDA0002909885100000109
Figure BDA00029098851000001010
中j的取值范围来确定有问题的交易可以参见通过改变
Figure BDA00029098851000001011
中i的取值范围来确定有问题的交易的描述,此处不再赘述。
目前典型的区块链,例如Fabric、Bitcoin、Ethereum等区块链中,一般是针对交易逐个校验其签名,这种方式验签效率低,验签时间长。有些区块链,例如Fabric,在验签时会采用多线程的方式并发对多笔交易进行校验。然而,多线程验签方式依赖于物理资源(例如记账节点)的CPU核数,验签效率提升有限。
本申请实施例提供的区块链验签方法按照交易对应的公钥将交易划分为交易集合,每个公钥对应一个交易集合,对每个交易集合执行一次批量验签,即可实现对集合中所有交易的验签,有效提高了验签效率。
在本申请的一个实施例中,在交易分组器接收多个待验签交易之前,所述方法还包括:
对所述待验签交易进行区块头校验、交易哈希校验、交易格式校验。
对所述待验签交易进行区块头校验、交易哈希校验、交易格式校验可以参考现有技术,此处不再赘述。
本申请还提供如图6所示的计算设备(即区块链节点)60。所述计算设备60包括总线601、处理器602、通信接口603和存储器604。处理器602、存储器604和通信接口 603之间通过总线601通信。
其中,处理器602可以为中央处理器(central processing unit,CPU)。存储器604可以包括易失性存储器(volatile memory),例如随机存取存储器(random accessmemory,RAM)。存储器604还可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器,HDD或SSD。存储器中存储有可执行代码,处理器602 执行该可执行代码以执行前述图5所描述的方法。存储器604中还可以包括操作系统等其他运行进程所需的软件模块(如图4中交易分组器401、触发器402、批量验签器403 和失败定位器404)。操作系统可以为LINUXTM,UNIXTM,WINDOWSTM等。
本申请还提供一种计算设备系统,所述计算设备系统包括至少一个如图7所示的计算设备(即区块链节点)70。所述计算设备70包括总线701、处理器702、通信接口703 和存储器704。处理器702、存储器704和通信接口703之间通过总线701通信。所述计算设备系统中的至少一个计算设备70之间通过通信通路进行通信。
其中,处理器702可以为CPU。存储器704可以包括易失性存储器,例如随机存取存储器。存储器704还可以包括非易失性存储器,例如只读存储器,快闪存储器,HDD 或SSD。存储器704中存储有可执行代码,处理器702执行该可执行代码以执行前述图 5描述的方法中的任意部分或全部。存储器中还可以包括操作系统等其他运行进程所需的软件模块。操作系统可以为LINUXTM,UNIXTM,WINDOWSTM等。
所述计算设备系统中的至少一个计算设备70之间通过通信网络互相建立通信,每个计算设备70上运行如图4中交易分组器401、触发器402、批量验签器403和失败定位器404中的任意一个或者任意多个模块。
上述各个附图对应的流程的描述各有侧重,某个流程中没有详述的部分,可以参见其他流程的相关描述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括计算机程序指令,在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。
所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线,例如同轴电缆、光纤、数字用户线或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如SSD)。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (16)

1.一种区块链验签方法,应用于区块链节点,其特征在于,所述方法包括:
接收多个待验签交易,其中,每个待验签交易携带签名和交易信息,每个签名对应一个公钥;
根据每个待验签交易的签名对应的公钥将所述多个待验签交易划分为至少一个交易集合,其中,每个交易集合中的待验签交易的签名对应的公钥相同;
从所述至少一个交易集合中确定目标交易集合;
对所述目标交易集合中的待验签交易进行批量验签,获得验签结果。
2.如权利要求1所述的区块链验签方法,其特征在于,所述从所述至少一个交易集合中确定目标交易集合包括:
根据所述至少一个交易集合中的待验签交易的交易数、交易大小或验签等待时间,从所述至少一个交易集合中确定所述目标交易集合,所述目标交易集合包括一个交易集合或者多个交易集合。
3.如权利要求1或2所述的区块链验签方法,其特征在于,所述区块链节点包括联盟链的记账节点和/或主节点,所述待验签交易携带所述联盟链的背书节点和/或排序服务节点的签名。
4.如权利要求1或2所述的区块链验签方法,其特征在于,所述区块链节点包括组成跨链的公链中的共识/记账节点和/或组成所述跨链的联盟链中的记账节点和/或主节点,所述待验签交易携带所述跨链的转接桥、代理人和/或公证人的签名。
5.如权利要求1或2所述的区块链验签方法,其特征在于,所述区块链节点包括公链其他的共识/记账节点,所述待验签交易携带所述公链其他的共识/记账节点的签名。
6.如权利要求1至5任一项所述的区块链验签方法,其特征在于,所述待验签交易的签名由椭圆曲线加密算法生成。
7.如权利要求1至6中任一项所述的区块链验签方法,其特征在于,所述方法还包括:
若所述目标交易集合中的待验签交易未通过批量验签,从所述目标交易集合中定位出签名有问题的交易。
8.一种区块链验签装置,应用于区块链节点,其特征在于,所述装置包括:
交易分组器,用于接收多个待验签交易,根据每个待验签交易的签名对应的公钥将所述多个待验签交易划分为至少一个交易集合,其中,每个待验签交易携带签名和交易信息,每个签名对应一个公钥,每个交易集合中的待验签交易的签名对应的公钥相同;
触发器,用于从所述至少一个交易集合中确定目标交易集合;
批量验签器,用于对所述目标交易集合中的待验签交易进行批量验签,获得验签结果。
9.如权利要求8所述的区块链验签装置,其特征在于,所述触发器用于:
根据所述至少一个交易集合中的待验签交易的交易数、交易大小或验签等待时间,从所述至少一个交易集合中确定所述目标交易集合,所述目标交易集合包括一个交易集合或者多个交易集合。
10.如权利要求8或9所述的区块链验签装置,其特征在于,所述区块链节点包括联盟链的记账节点和/或主节点,所述交易分组器用于:
从所述联盟链的背书节点和/或排序服务节点接收所述多个待验签交易。
11.如权利要求8或9所述的区块链验签装置,其特征在于,所述区块链节点包括跨链的记账节点,所述交易分组器用于:
从所述跨链的转接桥、代理人和/或公证人接收所述多个待验签交易。
12.如权利要求8或9所述的区块链验签装置,其特征在于,所述区块链节点包括公链的记账节点,所述交易分组器用于包括:
从所述公链的共识节点接收所述多个待验签交易。
13.如权利要求8至12中任一项所述的区块链验签装置,其特征在于,所述待验签交易的签名由椭圆曲线加密算法生成。
14.如权利要求8至13中任一项所述的区块链验签装置,其特征在于,所述装置还包括:
失败定位器,用于若所述目标交易集合中的待验签交易未通过批量验签,从所述目标交易集合中定位出签名有问题的交易。
15.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在区块链节点上运行时,使得所述区块链节点执行如权利要求1至7中任一项所述的区块链验签方法。
16.一种区块链节点,其特征在于,所述区块链节点包括处理器和存储器,所述存储器,用于存储指令,所述处理器用于调用所述存储器中的指令,使得所述区块链节点执行如权利要求1至7中任一项所述的区块链验签方法。
CN202110082518.4A 2021-01-21 2021-01-21 区块链验签方法及相关设备 Pending CN114820179A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110082518.4A CN114820179A (zh) 2021-01-21 2021-01-21 区块链验签方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110082518.4A CN114820179A (zh) 2021-01-21 2021-01-21 区块链验签方法及相关设备

Publications (1)

Publication Number Publication Date
CN114820179A true CN114820179A (zh) 2022-07-29

Family

ID=82524177

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110082518.4A Pending CN114820179A (zh) 2021-01-21 2021-01-21 区块链验签方法及相关设备

Country Status (1)

Country Link
CN (1) CN114820179A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024059926A1 (en) * 2022-09-20 2024-03-28 Huawei Technologies Canada Co., Ltd. Method and system for creating a distributed ledger of verified vehicle transactions
CN118631882A (zh) * 2024-07-04 2024-09-10 浙江万里共链科技发展有限公司 区块链的跨链方法以及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024059926A1 (en) * 2022-09-20 2024-03-28 Huawei Technologies Canada Co., Ltd. Method and system for creating a distributed ledger of verified vehicle transactions
CN118631882A (zh) * 2024-07-04 2024-09-10 浙江万里共链科技发展有限公司 区块链的跨链方法以及系统

Similar Documents

Publication Publication Date Title
CN112446785B (zh) 跨链交易方法、系统、装置、设备和存储介质
CN108734028B (zh) 基于区块链的数据管理方法、区块链节点及存储介质
US20230316273A1 (en) Data processing method and apparatus, computer device, and storage medium
CN111314172B (zh) 基于区块链的数据处理方法、装置、设备及存储介质
TW202016817A (zh) 基於區塊鏈的交易處理方法及裝置、電子設備
WO2022166637A1 (zh) 基于区块链网络的数据处理方法、装置及计算机设备
CN111523890A (zh) 基于区块链的数据处理方法、装置、存储介质及设备
CN112953978B (zh) 一种多重签名认证方法、装置、设备及介质
KR20180089670A (ko) 키 관리가 필요없는 블록체인을 기반한 전자서명 또는 메시지 인증 코드를 생성 및 검증 방법
US11362836B2 (en) Consensus protocol for permissioned ledgers
CN112311779B (zh) 应用于区块链系统的数据访问控制方法及装置
CN114820179A (zh) 区块链验签方法及相关设备
CN110599175A (zh) 一种区块处理方法及相关设备
CN111723159A (zh) 一种基于区块链的数据验证方法和装置
CN112039893B (zh) 私密交易处理方法、装置、电子设备及可读存储介质
US20240275600A1 (en) Secure element, method for registering tokens, and token reference register
CN111260475A (zh) 一种数据处理方法、区块链节点设备及存储介质
CN111292057A (zh) 一种基于区块链的业务处理方法
US20240275599A1 (en) Secure element, method for registering tokens, and token reference register
CN114090682A (zh) 一种多通道联盟链上链方法、装置、设备及存储介质
WO2023005500A1 (zh) 跨链交易处理方法、装置、电子设备以及存储介质
CN110941840B (zh) 一种数据处理方法、系统及终端
CN112037055B (zh) 交易处理方法、装置、电子设备及可读存储介质
CN113656497A (zh) 一种基于区块链的数据验证方法和装置
CN113328854A (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