CN113806441A - 基于区块链的签名处理方法、装置、电子设备和存储介质 - Google Patents

基于区块链的签名处理方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN113806441A
CN113806441A CN202110181073.5A CN202110181073A CN113806441A CN 113806441 A CN113806441 A CN 113806441A CN 202110181073 A CN202110181073 A CN 202110181073A CN 113806441 A CN113806441 A CN 113806441A
Authority
CN
China
Prior art keywords
signature
endorsement
signatures
client
data 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.)
Granted
Application number
CN202110181073.5A
Other languages
English (en)
Other versions
CN113806441B (zh
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.)
Beijing Tongbang Zhuoyi Technology Co ltd
Jingdong Technology Holding Co Ltd
Original Assignee
Beijing Tongbang Zhuoyi Technology Co ltd
Jingdong Technology Holding 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 Beijing Tongbang Zhuoyi Technology Co ltd, Jingdong Technology Holding Co Ltd filed Critical Beijing Tongbang Zhuoyi Technology Co ltd
Priority to CN202110181073.5A priority Critical patent/CN113806441B/zh
Publication of CN113806441A publication Critical patent/CN113806441A/zh
Application granted granted Critical
Publication of CN113806441B publication Critical patent/CN113806441B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开了一种基于区块链的签名处理方法、装置、电子设备和存储介质,涉及数据处理技术领域中的区块链技术领域。具体实现方案为:所述方法应用于所述区块链中的排序节点,获取多个数据信息,提取每个所述数据信息中的原始客户端签名;根据预设算法对提取的多个所述原始客户端签名进行压缩处理,生成与所述多个数据信息对应的客户端聚合签名;清空所有的所述原始客户端签名,并在任一个所述数据信息中插入所述客户端聚合签名,生成区块发送到区块链网络中。

Description

基于区块链的签名处理方法、装置、电子设备和存储介质
技术领域
本申请涉及数据处理技术领域中的区块链技术领域,尤其涉及一种基于区块链的签名处理方法、装置、电子设备和存储介质。
背景技术
区块链本质上是一个共享数据库,具体包括:客户端、背书节点、排序节点、记账节点。为了确保数据的可信性,客户端会对数据信息进行签名操作后,由排序节点将携带客户端签名的数据信息发送给记账节点。
因此,记账节点会依次对每个数据信息中的客户端签名进行校验,大量的数据信息会导致处理效率较低。
发明内容
本申请提供了一种基于区块链的签名处理方法、装置、设备以及存储介质,涉及数据处理技术领域中的区块链技术领域。
根据本申请的第一方面,提供了一种基于区块链的签名处理方法,所述方法应用于所述区块链中的排序节点,包括:
获取多个数据信息,提取每个所述数据信息中的原始客户端签名;
根据预设算法对提取的多个所述原始客户端签名进行压缩处理,生成与所述多个数据信息对应的客户端聚合签名;
清空所有的所述原始客户端签名,并在任一个所述数据信息中插入所述客户端聚合签名,生成区块发送到区块链网络中。
根据本申请的第二方面,提供了一种基于区块链的签名处理方法,所述方法应用于所述区块链中的记账节点,包括:
获取包含多个数据信息的区块;
提取所述多个数据信息中客户端公钥和客户端聚合签名;
根据所述客户端公钥和预设算法对所述客户端聚合签名进行验证,如果验证通过,则确定所述区块内的所述多个数据信息签名合法,写入区块链。
根据本申请第三方面,提供了一种基于区块链的签名处理装置,所述装置应用于所述区块链中的排序节点,包括:
第一提取模块,用于获取多个数据信息,提取每个所述数据信息中的原始客户端签名;
第一聚合模块,用于根据预设算法对提取的多个所述原始客户端签名进行压缩处理,生成与所述多个数据信息对应的客户端聚合签名;
区块生成模块,用于清空所有的所述原始客户端签名,并在任一个所述数据信息中插入所述客户端聚合签名,用于生成区块发送到区块链网络中。
根据本申请第四方面,提供了一种基于区块链的签名处理装置,所述装置应用于所述区块链中的记账节点,包括:
第一获取模块,用于获取包含多个数据信息的区块;
第一提取模块,用于提取所述多个数据信息中客户端公钥和客户端聚合签名;
第一验证模块,用于根据所述客户端公钥和预设算法对所述客户端聚合签名进行验证,如果验证通过,则确定所述区块内的所述多个数据信息签名合法,写入区块链。
根据本申请第五方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请的第一方面,和/或,本申请的第二方面所述的基于区块链的签名处理方法。
根据本申请的第六方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本申请的第一方面,和/或,本申请的第二方面所述的基于区块链的签名处理法。
根据本申请的第七方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据第一方面,和/或,第二方面所述的基于区块链的签名处理方法。
上述提供的技术方案,至少具有如下有益技术效果:
减少了区块中签名的数据量,简化了签名验证流程,提高了数据信息的扩散速度,节约了数据落盘空间。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请第一个实施例的基于区块链的签名处理方法的流程图;
图2是根据本申请第二个实施例的基于区块链的签名处理方法的流程图;
图3是根据本申请第三个实施例的基于区块链的签名处理方法的流程图;
图4是根据本申请第四个实施例的基于区块链的签名处理方法的流程图;
图5是根据本申请第五实施例在某一应用场景下的签名交互流程图;
图6是根据本申请第五实施例中未进行压缩处理时的简化交易结构;
图7是根据本申请第五实施例中将背书签名压缩成第一背书聚合签名的简化交易结构;
图8是根据本申请第五实施例中进一步将客户端签名压缩成客户端聚合签名的简化交易结构;
图9是根据本申请第五实施例中进一步将第一背书聚合签名压缩成第二背书聚合签名的简化交易结构;
图10是根据本申请一个实施例的基于区块链的签名处理装置的结构框图;
图11是根据本申请另一实施例的基于区块链的签名处理装置的结构框图;
图12是根据本申请又一实施例的基于区块链的签名处理装置的结构框图;
图13是根据本申请又一实施例的基于区块链的签名处理装置的结构框图;
图14是根据本申请又一实施例的基于区块链的签名处理装置的结构框图;
图15是用来实现本申请实施例的基于区块链的签名处理方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本申请第一个实施例的基于区块链的签名处理方法的流程图。需要说明的是,本申请实施例的基于区块链的签名处理方法可应用于本申请实施例的基于区块链的签名处理装置,该基于区块链的签名处理装置可被配置于本申请实施例的电子设备上。
如图1所示,本申请实施例的基于区块链的签名处理方法应用于区块链网络中的排序节点,该方法可以包括:
步骤101,获取多个数据信息,提取每个数据信息中的原始客户端签名。
通常来说,区块链中的每个区块可以由区块头和区块体组成。区块头中包含的信息包括但不限于:当前版本号、上一区块的哈希值、本区块的哈希值中的多种。区块体中记录一定时间内生成的详细数据,该记录可以是交易信息,也可以是其他信息。
在本申请一些实施例中,区块的区块体中可以有一个索引列表,该索引列表中的每个索引指向对应的数据信息,该数据信息中可以有客户端签名,并且还可以有数据信息元数据和/或数据信息执行结果。该数据信息的用途包括但不限于:交易的记录、居民身份的验证、食品生产过程的溯源中的一种或多种。
通常来说,区块体中的一部分信息可以是从客户端接收到的,该部分信息有被恶意篡改的可能性。可以使用签名技术来避免信息被恶意篡改,签名是只有信息的发送者才能产生的一段信息串,该信息串无法被伪造,所以该信息串可以作为信息的发送者发送信息真实性的一个有效证明。签名的一种实现方法为数据加密领域中的非对称加密技术,该种技术中通常存在两种互补的运算,其中一种用于签名,另一种用于验证。
在本申请一些实施例中,实现签名的方法可以有多种,包括但不限于:RSA(Rivest-Shamir-Adleman)、DSA(Digital Signature Algorithm)、ECC(Elliptic CurvesCryptography)中的任一种。
可以理解地,为了防止发送的信息被伪造,每个客户端都可以有自己的签名,该签名可以标记客户端实体身份,本申请中该签名可以被称为原始客户端签名。
步骤102,根据预设算法对提取的多个原始客户端签名进行压缩处理,生成与多个数据信息对应的客户端聚合签名。
可以理解地,为了区别数据信息的来源,不同客户端的签名往往是不同的,每个客户端可以有和本客户端对应的签名。这些不同的签名会使得区块的数据量变大,从而降低了区块的传输效率,降低了网络带宽利用率,增大了存储区块需要使用的存储空间。本申请中采用预设算法将多个原始签名进行压缩,得到可以与多个数据信息对应的客户端聚合签名。
在本申请一些实施例中,预设算法可以为一种聚合算法,聚合算法可以将任意多个签名压缩成一个签名。该预设算法包括但不限于:基于RSA的聚合签名算法、Schnorr算法、基于双线性映射的聚合签名算法中的任一个。通过该预设算法获得的客户端聚合签名可以对应多个数据信息,在客户端聚合签名通过验证的情况下,可以认为其对应的多个数据信息是可信的。
步骤103,清空所有的原始客户端签名,并在任一个数据信息中插入所述客户端聚合签名,生成区块发送到区块链网络中。
可以理解地,该客户端聚合签名可以替代原始客户端签名进行验证,于是,可以删除所有的客户端签名,并且将该客户端聚合签名作为多个数据信息的签名。
在本申请一些实施例中,该客户端聚合签名可以插入在多个数据信息中的任一个中,该数据信息所在位置包括但不限于数据信息队列中的第一个、中间某一个、最后一个中的任一种。带有客户端聚合签名的多个数据信息可以直接生成区块,也可以和其他数据信息一起生成区块。该区块可以链接到已有的区块链上。
根据本申请第一实施例的基于区块链的签名处理方法,将多个原始客户端签名压缩成一个客户端聚合签名,减小了区块中客户端签名占据的数据空间。该方法可以加快多个数据信息和/或区块在网络中的扩散速度,增加网络带宽利用率,同时也减少了无效交易的产生。减小数据落盘时占据的存储空间,增加存储空间的有效利用率。在对数据信息进行签名验证时,无需验证每一个交易信息的原始客户端签名,验证客户端聚合签名即可,提高了签名验证的效率。
基于上述实施例,进一步地,由于一些数据信息重要等级高,需要其他节点对该数据信息进行背书。进行背书时,需要在该数据信息上进行背书签名,一个数据信息上可以有多个背书签名,为了使背书签名占据的数据空间更小,可以对背书签名进行压缩,通过图2具体说明该实施过程。图2是根据本申请第二实施例的基于区块链的签名处理方法的流程图,具体包括:
步骤201,提取每个数据信息携带的多个原始背书签名。
可以理解地,背书是由区块链中的节点进行的操作,可以进行该背书操作的节点通常称为背书节点,背书节点是区块链技术中可以验证数据信息并声明此数据信息可信的节点。在背书节点验证数据信息可信的情况下,背书节点会对数据信息进行背书签名,该背书签名携带于数据信息中。本申请中,可以称每个数据信息携带的背书签名为原始背书签名。
在本申请一些实施例中,为了确保数据信息的可信性,需要多个背书节点对同一数据信息进行背书。因此,一个数据信息可以携带多个原始背书签名。
步骤202,根据预设算法对多个原始背书签名进行压缩处理,生成每个数据信息对应的第一背书聚合签名。
在本申请一些实施例中,当签名的数据信息相同时,可以采用多重签名技术将多个签名压缩成一个聚合签名;当签名的数据信息不同时,可以采用聚合签名技术将多个签名压缩成一个聚合签名。
在本申请一些实施例中,该预设算法可以为一种聚合算法,聚合算法可以将任意多个签名压缩成一个签名。本申请一些实施例中采用的预设算法包括但不限于:Schnorr算法和/或基于双线性映射的聚合签名算法。通过该预设算法获得的第一背书聚合签名通过认证,则可以认为该数据信息可以通过对应的多个原始背书签名的验证,即,该数据信息的背书可信。
步骤203,清空每个数据信息对应的多个原始背书签名,并在每个数据信息中插入对应的第一背书聚合签名。
可以理解地,该第一背书聚合签名可以替代原始背书签名进行验证,于是,可以删除所有的原始背书签名,并且将该第一背书聚合签名作为每个数据信息的背书签名。
步骤204,根据预设算法对多个第一背书聚合签名进行压缩处理,生成与多个数据信息对应的第二背书聚合签名。
可以理解地,将原始背书聚合签名压缩为第一背书聚合签名之后,每个数据信息都会对应一个第一背书聚合签名。可以对多个数据信息对应的多个第一背书聚合签名进一步使用预设算法进行压缩,得到第二背书聚合签名。
在本申请一些实施例中,预设算法可以为一种聚合算法,聚合算法可以将任意多个签名压缩成一个签名。本申请一些实施例中采用的预设算法包括但不限于:Schnorr算法和/或基于双线性映射的聚合签名算法。通过该预设算法获得的第二背书聚合签名对应多个数据信息,在第二背书聚合签名通过验证的情况下,可以认为其对应的多个数据信息的所有背书都是可信的。
步骤205,清空所有的所述第一背书聚合签名,并在任一个数据信息中插入所述第二背书聚合签名。
可以理解地,该第二背书聚合签名可以替代第一背书聚合签名进行背书验证,于是,可以删除所有的第一背书聚合签名,并且将该第二背书聚合签名作为多个数据信息的背书。
在本申请一些实施例中,该第二背书聚合签名可以插入在多个数据信息中的任一个中,该数据信息所在位置包括但不限于数据信息队列中的第一个、中间某一个、最后一个中的任一种。该第二背书聚合签名可以和客户端聚合签名插入在同一个数据信息中,也可以插入在不同数据信息中。
根据本申请第二实施例的基于区块链的签名处理方法,可以在原始客户端签名已经压缩的基础上对原始背书签名继续进行压缩操作,将同一数据信息对应的多个原始背书签名压缩成一个第一背书聚合签名,再将多个第一背书签名压缩成一个第二背书签名,减小了区块中背书签名占据的数据空间,使一个区块可以包含更多的数据信息。该方法可以加快多个数据信息和/或区块在网络中的扩散速度,进一步增加了带宽利用率,减小数据落盘时占据的存储空间,同时也减少了无效交易的产生。在对数据信息携带的背书签名进行签名验证时,无需验证每一个原始背书签名,验证每一个数据信息携带的第二背书聚合签名即可,提高了签名验证的效率。
上述各实施例说明了对签名进行压缩的步骤,下面将基于本申请第三实施例和/或第四实施例说明对压缩签名进行验证的步骤。
图3是根据本申请第三个实施例的基于区块链的签名处理方法的流程图。需要说明的是,本申请实施例的基于区块链的签名处理方法可应用于本申请实施例的基于区块链的签名处理装置,该基于区块链的签名处理装置可被配置于本申请实施例的电子设备上。本方法可以应用于区块链网络中的记账节点,需要说明的是,在一些应用场景下,该记账节点也可以包括区块链网络中的背书节点。
如图3所示,该基于区块链的签名处理方法可以包括:
步骤301,获取包含多个数据信息的区块。
在本申请一些实施例中,在区块链网络中,成功生成区块的节点会将生成的区块分发出去,区块链网络中的其他节点即可获取该区块。通常,一个区块可以携带多个数据信息。
步骤302,提取多个数据信息中客户端公钥和客户端聚合签名。
在本申请一些实施例中,该数据信息可以携带的数据包括但不限于:客户端公钥、客户端聚合签名、背书策略、背书聚合签名中的多个。其中,每个数据信息对应一个客户端公钥,在该多个客户端公钥和客户端聚合签名的约束下,可以对多个数据信息同时进行签名验证。客户端公钥还可以是和客户端聚合签名一一对应的,多个数据信息可以有一个客户端公钥,并且对应有一个客户端聚合签名,在该客户端公钥和客户端聚合签名的约束下,可以对多个数据信息同时进行签名验证。
步骤303,根据客户端公钥和预设算法对客户端聚合签名进行验证,如果验证通过,则确定区块内的多个数据信息签名合法,写入区块链。
在本申请一些实施例中,可以根据一些约束,对客户端公钥和客户端聚合签名进行验证,该约束包括但不限于数据信息、预设算法、哈希函数中的一个或多个。验证通过,则说明客户端聚合签名对应的多个数据信息的签名都可信,则该区块可以写入区块链中。
根据本申请该实施例的基于区块链地签名处理方法,将对原始客户签名进行验证简化为了对客户端聚合签名进行验证。将多次验证简化为一次验证,提高了验证效率,缩短了验证时间,加快了区块链交易的完成速度,避免了无效交易的产生,提高了该区块链系统用户的用户体验。
本申请的第四实施例中,基于第三实施例,为了对背书聚合签名进行验证。可以基于图3的基于区块链的签名处理方法,使用实施例四具体说明该方法。为了更清楚地说明,可以通过图4具体说明,图4是根据本申请第四实施例的基于区块链的签名处理方法的流程图,具体包括:
步骤401,获取多个数据信息对应的背书策略和背书聚合签名。
可以理解地,背书策略和背书聚合签名是一一对应的。不同的背书策略可以代表不同的背书节点以及背书数量的要求,不同的背书节点及背书数量的要求对应的背书聚合签名是不同的。可以在数据信息中存储该交易对应的背书策略。也可以根据背书策略生成对应的背书聚合签名公钥。
步骤402,根据背书策略和预设算法对背书聚合签名进行验证,如果验证通过,则确定区块内的所述多个数据信息签名合法。
在本申请一些实施例中,可以根据背书策略以及背书聚合签名的约束,对数据信息进行背书验证,在当前数据信息对应的背书策略下,若数据信息对应的背书聚合签名符合背书策略中指定的实体、背书数量要求,则通过背书检查。也可以根据约束,对背书策略对应的背书聚合签名公钥和背书聚合签名进行验证,该约束包括但不限于:数据信息、预设算法、哈希函数中的一个或多个。验证通过,则说明背书聚合签名对应的多个数据信息的背书都可信,则该区块可以写入区块链中。可以理解地,该背书聚合签名包括第一背书聚合签名和/或第二背书聚合签名。
根据本申请该实施例的方法,将对原始背书签名进行验证简化为了对背书聚合签名进行验证。将多次验证简化为一次验证,提高了背书验证效率,缩短了背书验证时间,加快了区块链数据信息验证的完成速度,避免了无效数据信息验证的产生,提高该区块链系统用户的用户体验。
基于上述各实施例,具体的执行步骤可以依据具体的应用场景进行调整和嵌套,为了更清楚地说明具体实施过程,本申请还提出了第五实施例进行详细说明,具体说明如下:
如图5所示,图5是根据本申请第五实施例在某一应用场景下的签名交互流程图,具体实施过程如下:
该区块链系统由两个组织维护,分别为组织一和组织二,每个组织可以根据具体的应用场景包括不同种类的节点,在本实施例中,组织一包括:一个背书节点、一个记账节点。组织二包括:一个客户端、一个背书节点、一个排序节点、一个记账节点。上述三种节点的具体说明如下:
记账节点,记账节点用于接收分发的区块,并对区块进行验证,通过验证的区块即可添加在已有的区块链上,该操作也被称为记账操作。
背书节点,该节点用于对交易进行背书签名,背书节点也可以进行记账操作。
排序节点,排序节点可以是当前时间窗口进行排序服务的主节点。排序节点对接收到的交易独立进行客户端签名验证之后,将交易放回到交易池。排序节点的打包线程会从交易池中取出指定数量的交易进行打包。该排序节点还可以对交易进行排序。
本实施例中,区块链系统为Fabric,每一笔数据信息记为一笔交易,排序节点每次从交易池中提取N个交易,单个数据信息需要n个组织背书预设算法可以为基于RSA的聚合签名算法、Schnorr算法、基于双线性对的聚合签名算法中的任一个。下面,以基于双线性对的聚合签名算法为例,具体说明本实施例的签名交互流程具体说明如下:
设双线性映射e:G×G→Gt。G和Gt为p阶乘法循环群。G的生成元为g。哈希函数H:G×{0,1}*→G。
步骤一:客户端生成一个交易提案,该交易提案带有客户端的签名。客户端将交易提案分发给组织一和组织二的背书节点。
客户端可以生成私钥和公钥,该公钥和私钥可以用作签名和签名验证的过程,其中,密钥生成算法如下所述:
每个实体选择一个随机数x←Zp作为私钥,并计算公钥v←gx。所述实体包括但不限于是客户端和/或背书节点。
签名算法如下所述:
每个实体给定消息M∈{0,1}*,私钥x,公钥v。计算哈希h←H(v,M)和签名σ←hx。在实体为背书节点的情况下,消息M可以为交易模拟产生的读写集、背书者公钥、交易ID等,生成的签名也称为背书签名。在实体为客户端实体的情况下,消息M可以为交易提案、背书,生成的签名称为客户端签名。在压缩客户端签名时,客户端可以使用聚合算法对背书计算背书聚合签名。
步骤二:背书节点可以对客户端签名进行验证,对交易模拟执行,该模拟执行可以对交易做一些必要检查,该必要检查包括但不限于:权限检查和/或是否重复提交检查。在通过背书节点检查的情况下,背书节点会对该交易进行背书签名。背书节点将背书签名后的交易发送到客户端。
该步骤涉及的签名算法在上述步骤已经说明,此处不再赘述。签名验证算法如下所述:
给定消息M∈{0,1}*,私钥x,公钥v,计算哈希h←H(v,M),若e(σ,g)=e(h,v),则签名验证通过。
步骤三:客户端对收到的带有组织一背书节点背书签名和带有组织二背书节点背书签名的交易进行汇总,得到的交易如图6所示,图6是根据本申请第五实施例中未进行压缩处理时的简化交易结构。
步骤四:客户端运行聚合算法,将两个背书签名压缩成第一背书聚合签名,清空原始背书签名,插入第一背书聚合签名并构造一个交易,发往排序节点。该步骤得到的交易如图7所示,图7是根据本申请第五实施例中将背书签名压缩成第一背书聚合签名的简化交易结构。
该步骤涉及的签名聚合算法如下所述:
给定消息Mi的签名σi。i的取值范围依赖实施聚合算法的阶段。计算聚合签名
Figure BDA0002941481820000121
聚合算法的实施者包括但不限于客户端和/或排序节点。在实体为排序节点的情况下,i的取值为[1,N]。在实体为客户端的情况下,i的取值为[1,n]。
步骤五:排序节点对接收收到的的交易进行签名验证后,将该交易放回到交易池。排序节点的打包线程会从交易池中取出指定数量的交易进行打包。此时,排序节点会将指定数量的交易中每个交易的原始客户端签名提取出来压缩为一个客户端聚合签名。将每个交易的原始客户端签名清空,将客户端聚合签名插入在第一个交易的原始客户端签名部分。如图8所示,图8是根据本申请第五实施例中进一步将客户端签名压缩成客户端聚合签名的简化交易结构。其中,Block表示区块体,交易列表为区块体中交易信息的索引,0x8g2ds7glgtfa、0x8g2ds7glohd、0x8g2ds7glaed、0x8g2ds7glzdr为交易的索引。
可以理解地,该步骤中,第一背书聚合签名还可以进一步压缩为第二背书聚合签名。如图9所示,图9是根据本申请第五实施例中进一步将第一背书聚合签名压缩成第二背书聚合签名的简化交易结构。其中,每个交易的第一背书聚合签名签名被清空,第二背书聚合签名插入在第一个交易的第一背书聚合签名部分。
签名压缩完成之后,排序节点将区块分发到背书节点和/或排序节点,并对客户端进行回应。
该步骤涉及的签名聚合算法在前述步骤已经说明,此处不再赘述。
步骤六:背书节点和/或排序节点接收到区块之后,该节点首先提取该区块中的第一个交易的客户端聚合签名,以及每个交易原始消息所携带的证书中的公钥,然后在这些数据的约束下进行校验。在顺利通过校验的情况下,区块体中交易的客户端签名都是合法的。接着,记账节点和/或背书节点对交易背书策略进行校验。在当前交易调用的背书策略的约束下,若交易携带的第一背书聚合签名符合背书策略中指定的实体、背书数量要求,则通过背书检查,区块体中交易的背书签名都是合法的。
该步骤涉及的聚合签名验证算法如下所述:
给定聚合签名σ、公钥vi、消息Mi,计算hi←H(vi,Mi),i的取值范围同签名聚合算法。若
Figure BDA0002941481820000131
则签名通过验证。聚合验证算法的实施实体包括但不限于记账节点和/或背书节点。
步骤七:在通过签名验证的情况下,背书节点和/或排序节点会对区块进行落盘操作,即在本地保存该区块。
在本申请第五实施例中,可适用于多种网络拓扑结构,并且可适用于由于网络延时造成本地交易队列无此交易的情况。区块的接收方只需要进行1+N次的签名验证,极大减少计算开销。签名验证复杂度从O(N+N*n)降低为O(1+N)。其中N为单个区块体中容纳的交易总数,单个交易需要n个组织的背书。压缩后的签名占用的区块空间是未压缩交易签名累计占用的空间的1/N×S1+1/n×S2,(其中N是区块体的交易数量,S1为未压缩交易签名时所有交易签名累计占用的空间,S2为未压缩交易背书时所有背书累计占用的空间)。本实施例不仅节省了存储资源,而且会加快区块在传播过程中的速度,一定程度上缓解各节点状态库更新不同步的问题。这种压缩后的签名不会影响单个签名的合法性。在打包节点收到的原始交易在签名检查时是合法的情况下,压缩后的交易,即交易本身的签名数据为空,也能通过签名检查。
根据本申请的实施例,本申请还提供了一种基于区块链的签名处理装置。
图10是根据本申请一个实施例的基于区块链的签名处理装置的结构框图。如图10所示,该基于区块链的签名处理装置1000可以包括:第一提取模块1001,第一聚合模块1002,区块生成模块1003。
具体地,第一提取模块1001,用于获取多个数据信息,提取每个数据信息中的原始客户端签名。
第一聚合模块1002,用于根据预设算法对提取的多个原始客户端签名进行压缩处理,生成与多个数据信息对应的客户端聚合签名。
区块生成模块1003,用于清空所有的原始客户端签名,并在任一个数据信息中插入所述客户端聚合签名,用于生成区块发送到区块链网络中。
在本申请一些实施例中,如图11所示,图11是根据本申请另一实施例的基于区块链的签名处理装置的结构框图,该基于区块链的签名处理装置1100还可以包括:第二提取模块1104、第二聚合模块1105、第一处理模块1106。
具体地,第二提取模块1104,用于提取每个数据信息携带的多个原始背书签名。
第二聚合模块1105,用于根据预设算法对多个原始背书签名进行压缩处理,生成每个数据信息对应的第一背书聚合签名。
第一处理模块1106,用于清空每个数据信息对应的多个原始背书签名,并在每个数据信息中插入对应的第一背书聚合签名。
其中,图11中1101-1103和图10中1001-1003具有相同功能和结构。
在本申请一些实施例中,如图12所示,图12是根据本申请又一实施例的基于区块链的签名处理装置的结构框图,该基于区块链的签名处理装置1200还可以包括:第三聚合模块1207、第二处理模块1208。
具体地,第三聚合模块1207,用于根据预设算法对多个第一背书聚合签名进行压缩处理,生成与多个数据信息对应的第二背书聚合签名。
第二处理模块1208,用于清空所有的所述第一背书聚合签名,并在任一个数据信息中插入所述第二背书聚合签名。
其中,图12中1201-1206和图11中1101-1106具有相同功能和结构。
图13是根据本申请又一实施例的基于区块链的签名处理装置的结构框图。如图13所示,该基于区块链的签名处理装置1300可以包括:第一获取模块1301,第三提取模块1302,第一验证模块1303。
具体地,第一获取模块1301,用于获取包含多个数据信息的区块。
第一提取模块1302,用于提取多个数据信息中客户端公钥和客户端聚合签名。
第一验证模块1303,用于根据客户端公钥和预设算法对所述客户端聚合签名进行验证,如果验证通过,则确定区块内的所述多个数据信息签名合法,写入区块链。
在本申请一些实施例中,如图14所示,图14是根据本申请又一实施例的基于区块链的签名处理装置的结构框图,该基于区块链的签名处理装置1400还可以包括:第二获取模块1404、第二验证模块1405。
具体地,第二获取模块1404,用于获取多个数据信息对应的背书策略和背书聚合签名。
第二验证模块1405,用于根据背书策略和预设算法对背书聚合签名进行验证,如果验证通过,则确定区块内的所述多个数据信息签名合法。
其中,图14中1401-1403和图13中1301-1303具有相同功能和结构。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处不做详细阐述说明。
根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图15示出了可以用来实施本申请的实施例的示例电子设备1500的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图15所示,设备1500包括计算单元1501,其可以根据存储在只读存储器(ROM)1502中的计算机程序或者从存储单元1508加载到随机访问存储器(RAM)1503中的计算机程序,来执行各种适当的动作和处理。在RAM 1503中,还可存储设备1500操作所需的各种程序和数据。计算单元1501、ROM 1502以及RAM 1503通过总线1504彼此相连。输入/输出(I/O)接口1505也连接至总线1504。
设备1500中的多个部件连接至I/O接口1505,包括:输入单元1506,例如键盘、鼠标等;输出单元1507,例如各种类型的显示器、扬声器等;存储单元1508,例如磁盘、光盘等;以及通信单元1509,例如网卡、调制解调器、无线通信收发机等。通信单元1509允许设备1500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1501的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1501执行上文所描述的各个方法和处理,例如基于区块链的签名处理方法。例如,在一些实施例中,基于区块链的签名处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1502和/或通信单元1509而被载入和/或安装到设备1500上。当计算机程序加载到RAM 1503并由计算单元1501执行时,可以执行上文描述的基于区块链的签名处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元1501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于区块链的签名处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
根据本申请实施例的技术方案,将原始用户端签名进行压缩,生成客户端聚合签名,使用该客户端聚合签名进行签名验证。对原始背书签名进行压缩,生成第一背书聚合签名,使用该第一背书聚合签名进行背书验证。还可以对第一背书聚合签名进行进一步研所,生成第二背书聚合签名,使用该第二背书聚合签名进行背书验证。本申请实施例的技术方案减小了数据信息和/或区块的数据量,可以使一个区块携带更多的数据信息。数据信息在网络中传播时扩散速度更快,可以降低网络的延迟,因而使得无效交易的数量减少。该数据信息进行落盘后占据的存储空间更小,节约了存储空间。在进行签名验证操作时,可以降低签名验证操作的时间复杂度,加快了交易确认的速度,提升了用户体验。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (13)

1.一种基于区块链的签名处理方法,其特征在于,所述方法应用于所述区块链中的排序节点,包括:
获取多个数据信息,提取每个所述数据信息中的原始客户端签名;
根据预设算法对提取的多个所述原始客户端签名进行压缩处理,生成与所述多个数据信息对应的客户端聚合签名;
清空所有的所述原始客户端签名,并在任一个所述数据信息中插入所述客户端聚合签名,生成区块发送到区块链网络中。
2.根据权利要求1所述的方法,其特征在于,在所述生成区块发送到区块链网络之前,还包括:
提取每个所述数据信息携带的多个原始背书签名;
根据预设算法对所述多个原始背书签名进行压缩处理,生成每个所述数据信息对应的第一背书聚合签名;
清空每个所述数据信息对应的所述多个原始背书签名,并在每个所述数据信息中插入对应的所述第一背书聚合签名。
3.根据权利要求2所述的方法,其特征在于,还包括:
根据预设算法对多个所述第一背书聚合签名进行压缩处理,生成与所述多个数据信息对应的第二背书聚合签名;
清空所有的所述第一背书聚合签名,并在任一个所述数据信息中插入所述第二背书聚合签名。
4.一种基于区块链的签名处理方法,其特征在于,所述方法应用于所述区块链中的记账节点,包括:
获取包含多个数据信息的区块;
提取所述多个数据信息中客户端公钥和客户端聚合签名;
根据所述客户端公钥和预设算法对所述客户端聚合签名进行验证,如果验证通过,则确定所述区块内的所述多个数据信息签名合法,写入区块链。
5.根据权利要求4所述的方法,其特征在于,在所述写入区块链之前,还包括:
获取所述多个数据信息对应的背书策略和背书聚合签名;
根据所述背书策略和预设算法对所述背书聚合签名进行验证,如果验证通过,则确定所述区块内的所述多个数据信息签名合法。
6.一种基于区块链的签名处理装置,其特征在于,所述装置应用于所述区块链中的排序节点,包括:
第一提取模块,用于获取多个数据信息,提取每个所述数据信息中的原始客户端签名;
第一聚合模块,用于根据预设算法对提取的多个所述原始客户端签名进行压缩处理,生成与所述多个数据信息对应的客户端聚合签名;
区块生成模块,用于清空所有的所述原始客户端签名,并在任一个所述数据信息中插入所述客户端聚合签名,用于生成区块发送到区块链网络中。
7.根据权利要求6所述的装置,其特征在于,还包括:
第二提取模块,用于提取每个所述数据信息携带的多个原始背书签名;
第二聚合模块,用于根据预设算法对所述多个原始背书签名进行压缩处理,生成每个所述数据信息对应的第一背书聚合签名;
第一处理模块,用于清空每个所述数据信息对应的所述多个原始背书签名,并在每个所述数据信息中插入对应的所述第一背书聚合签名。
8.根据权利要求7所述的装置,其特征在于,还包括:
第三聚合模块,用于根据预设算法对多个所述第一背书聚合签名进行压缩处理,生成与所述多个数据信息对应的第二背书聚合签名;
第二处理模块,用于清空所有的所述第一背书聚合签名,并在任一个所述数据信息中插入所述第二背书聚合签名。
9.一种基于区块链的签名处理装置,其特征在于,所述装置应用于所述区块链中的记账节点,包括:
第一获取模块,用于获取包含多个数据信息的区块;
第三提取模块,用于提取所述多个数据信息中客户端公钥和客户端聚合签名;
第一验证模块,用于根据所述客户端公钥和预设算法对所述客户端聚合签名进行验证,如果验证通过,则确定所述区块内的所述多个数据信息签名合法,写入区块链。
10.根据权利要求9所述的装置,其特征在于,在所述写入区块链之前,还包括:
第二获取模块,用于获取所述多个数据信息对应的背书策略和背书聚合签名;
第二验证模块,用于根据所述背书策略和预设算法对所述背书聚合签名进行验证,如果验证通过,则确定所述区块内的所述多个数据信息签名合法。
11.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-3中任一,或者,4-5中任一所述的基于区块链的签名处理方法。
12.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-3中任一,或者,4-5中任一所述的基于区块链的签名处理方法。
13.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-3中任一,或者,4-5中任一所述的基于区块链地签名处理方法的步骤。
CN202110181073.5A 2021-02-09 2021-02-09 基于区块链的签名处理方法、装置、电子设备和存储介质 Active CN113806441B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110181073.5A CN113806441B (zh) 2021-02-09 2021-02-09 基于区块链的签名处理方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110181073.5A CN113806441B (zh) 2021-02-09 2021-02-09 基于区块链的签名处理方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN113806441A true CN113806441A (zh) 2021-12-17
CN113806441B CN113806441B (zh) 2024-04-05

Family

ID=78892810

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110181073.5A Active CN113806441B (zh) 2021-02-09 2021-02-09 基于区块链的签名处理方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN113806441B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114092093A (zh) * 2022-01-20 2022-02-25 腾讯科技(深圳)有限公司 区块链交易处理方法、装置、电子设备和可读介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110322246A (zh) * 2019-07-09 2019-10-11 深圳市网心科技有限公司 一种区块链交易信息的优化方法及相关设备
CN112053153A (zh) * 2020-08-27 2020-12-08 中信银行股份有限公司 背书签名数据存储方法、装置、电子设备及可读存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110322246A (zh) * 2019-07-09 2019-10-11 深圳市网心科技有限公司 一种区块链交易信息的优化方法及相关设备
CN112053153A (zh) * 2020-08-27 2020-12-08 中信银行股份有限公司 背书签名数据存储方法、装置、电子设备及可读存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114092093A (zh) * 2022-01-20 2022-02-25 腾讯科技(深圳)有限公司 区块链交易处理方法、装置、电子设备和可读介质

Also Published As

Publication number Publication date
CN113806441B (zh) 2024-04-05

Similar Documents

Publication Publication Date Title
JP7534024B2 (ja) 変更から検証鍵を保護し、正当性のプルーフの有効性を確かめるためのシステム
EP3552158B1 (en) INFORMATION PROTECTION SYSTEM AND PROCEDURE
JP2020519983A (ja) 並列処理ブロックチェーントランザクションのためのシステムおよび方法
CN111108732A (zh) 用于确定数字资产交易所的偿付能力的方法、系统和计算机程序产品
US20150358167A1 (en) Certificateless Multi-Proxy Signature Method and Apparatus
AU2021204543B2 (en) Digital signature method, signature information verification method, related apparatus and electronic device
CN110705976A (zh) 一种基于大数据的智慧医疗结算方法、系统、电子设备及存储介质
CN114826553A (zh) 一种群签名和同态加密的云存储数据安全保护方法及装置
CN115840787B (zh) 基于区块链的供应链数据共享方法、装置、设备及介质
CN112738253A (zh) 基于区块链的数据处理方法、装置、设备及存储介质
CN110517029A (zh) 区块链跨链交易验证的方法、装置、设备及区块链系统
CN103457720A (zh) 用于基于id的加密系统的密钥生成装置及其方法
CN112686672A (zh) 区块链上背书签名压缩方法、电子设备及存储介质
CN110351297A (zh) 一种应用于区块链的验证方法及装置
CN113939821A (zh) 用于在工作量证明区块链网络上进行非并行挖掘的系统和方法
CN113806441B (zh) 基于区块链的签名处理方法、装置、电子设备和存储介质
Liu et al. Data integrity audit scheme based on blockchain expansion technology
CN104486311A (zh) 一种支持可扩展性的远程数据完整性检查方法
JP2012194489A (ja) 分散情報管理システム、分散情報管理方法、および分散情報管理プログラム
KR20200095203A (ko) 전자 문서 관리 방법 및 그 시스템
CN114298543A (zh) 数据价值的计算方法、装置、可读介质及电子设备
CN113507367A (zh) 一种云环境下外包数据的在线/离线完整性审计方法
CN112835854A (zh) 文件存储方法、装置、电子设备和存储介质
CN112861189A (zh) 签名的生成方法和验证方法、装置、设备和介质
US12126741B2 (en) Systems and methods for non-parallelised mining on a proof-of-work blockchain network

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
GR01 Patent grant
GR01 Patent grant