CN111385096A - 一种区块链网络、签名处理方法、终端及存储介质 - Google Patents
一种区块链网络、签名处理方法、终端及存储介质 Download PDFInfo
- Publication number
- CN111385096A CN111385096A CN201811626266.1A CN201811626266A CN111385096A CN 111385096 A CN111385096 A CN 111385096A CN 201811626266 A CN201811626266 A CN 201811626266A CN 111385096 A CN111385096 A CN 111385096A
- Authority
- CN
- China
- Prior art keywords
- signature
- node
- result
- public key
- composite
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
- H04L9/3231—Biological data, e.g. fingerprint, voice or retina
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3297—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- Mathematical Optimization (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- Biodiversity & Conservation Biology (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供了一种区块链网络、签名处理方法、终端及存储介质,其中,所述区块链网络的签名处理方法包括:在区块链网络中部署验签节点和至少两个签名节点,还包括:通过所述至少两个签名节点分别接收待签名信息,对所述待签名信息进行数字签名,生成各自对应的签名结果,并将所生成的签名结果发送至所述验签节点;通过所述验签节点对至少两个所述签名结果进行聚合,生成复合的签名结果,并对所述复合的签名结果的有效性进行验证。
Description
技术领域
本发明涉及通信技术,尤其涉及一种区块链网络、签名处理方法、终端及存储介质。
背景技术
在实现本发明的过程中,发明人发现相关技术的区块链***中,有时需要多个实体来决定某一相同的事物,例如多个管理者来支配和管理同一笔交易,此时,这多个管理者均需对这同一笔交易进行签名计算,如此才能完成该笔交易对应的资产转移。
如果采用相关技术的签名算法,比如椭圆曲线数字签名算法(ECDSA,EllipticCurve Digital Signature Algorithm)对该笔交易进行签名计算,则需要验签者对这多个管理者的签名结果逐一进行验证操作,才可以获知多个签名结果的有效性。当管理者的数量较多时,则验签者的计算代价较大,导致针对多个签名结果的验签效率较低,严重影响区块链***的吞吐量。
发明内容
有鉴于此,本发明实施例期望提供一种区块链网络、签名处理方法、终端及存储介质,至少用以提高对多个签名结果进行验签的效率。
为达到上述目的,本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供一种区块链网络,所述区块链网络包括:
签名节点,数量为至少两个,分别用于在响应于签名任务的进程中执行以下操作:接收待签名信息,对所述待签名信息进行数字签名,生成各自对应的签名结果,并将所生成的签名结果发送至验签节点;
验签节点,用于将接收到的所述签名节点各自针对所述待签名信息的签名结果进行聚合,生成复合的签名结果,对所述复合的签名结果的有效性进行验证。
第二方面,本发明实施例还提供一种区块链网络的签名处理方法,在区块链网络中部署验签节点和至少两个签名节点,所述方法还包括:
通过所述至少两个签名节点分别接收待签名信息,对所述待签名信息进行数字签名,生成各自对应的签名结果,并将所生成的签名结果发送至所述验签节点;
通过所述验签节点对至少两个所述签名结果进行聚合,生成复合的签名结果,并对所述复合的签名结果的有效性进行验证。
第三方面,本发明实施例还提供一种终端,所述终端包括:
接收单元,用于接收待签名信息;
签名生成单元,用于对所述待签名信息进行数字签名,生成对应的签名结果;
发送单元,用于将至少两个所述签名生成单元各自针对所述待签名信息的签名结果发送至验签节点,以使所述验签节点对至少两个所述签名结果进行聚合,生成复合的签名结果,并对所述复合的签名结果的有效性进行验证。
第四方面,本发明实施例还提供一种区块链网络,所述区块链网络包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的区块链网络的签名处理方法。
第五方面,本发明实施例还提供一种存储介质,存储有可执行指令,当所述可执行指令被执行时,用于实现本发明实施例提供的区块链网络的签名处理方法。
应用本发明实施例提供的区块链网络、签名处理方法、终端及存储介质,可以实现以下有益效果:
通过将多个签名节点对同一待签名信息进行数字签名的签名结果进行聚合,生成复合的签名结果,从而使得验签节点只需对复合的签名结果进行一次验签运算,就可以实现对多个签名结果的有效性进行验证的效果。如此,能够有效提高验签节点对多个签名结果进行验签的效率,提升区块链***的吞吐量,以满足相应场景的业务需求。
附图说明
图1为本发明实施例提供的一种区块链网络的功能架构示意图;
图2为本发明实施例提供的区块链网络的组织架构示意图;
图3为本发明实施例提供的签名节点的一个可选的硬件结构示意图;
图4为相关技术中区块链网络的签名处理方法的实现流程示意图;
图5为本发明实施例提供的区块链网络的签名处理方法的一个可选的实现流程示意图;
图6为本发明实施例提供的区块链网络的签名处理方法的另一个可选的实现流程示意图;
图7为本发明实施例提供的区块链网络的一个可选的组成结构示意图;
图8为本发明实施例提供的签名节点的一个可选的组成结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
需要说明的是,在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
除非另有定义,本发明所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本发明中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
在对本发明实施例进行进一步详细说明之前,下面先对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)交易(Transaction),等同于计算机术语“事物”,用于通过调用部署在区块链网络中的智能合约、并在智能合约中通过增、查、改的操作来提交一系列键值(Key-Value)对形式的数据更新到账本数据,从而引起对账本数据中所记录的键值对的改变,并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本发明实施例遵循了这一习惯。
2)区块(Block),记录一段时间内交易所更新的账本数据的数据结构,被标记上时间戳和之前一个区块的独特标记(例如数字指纹),区块经过区块链网络中节点的共识验证后,会被追加到区块链的末尾成为新区块。
3)区块链(Block Chain),区块以顺序相连的方式组合成的一种链式数据结构,在每个区块中引用前一个区块或者其子集的哈希值,从而以密码学的方式保证所记录交易的不可篡改和不可伪造。
4)区块链网络,通过共识的方式将新区块纳入区块链的一系列的、无中心的节点的集合。
5)账本(Ledger),区块链网络中以账户为维度所记录的数据的总和,包括账本数据、账本状态、账本状态证明和区块索引等元素。
6)账本数据,实际区块数据存储,即区块链中记录的一系列有序的、不可篡改的交易的记录,可以表现为文件***的文件的形式,交易中调用的智能合约被执行时,实现对账户/账户中数据的更新。
7)账本状态,也称为状态数据,即账本数据的状态,可以表现为数据库终中的键值对的形式,其中实时账本状态用于表示共识的交易所更新的键值对的最新记录,历史账本状态用于表示键值对的历史记录。
8)存在性证明,是对账本数据以加密学方式实现的存在真实性的证明,例对账本数据计算默克尔(Merkle)树的方式证明。
9)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对交易达成一致,实现共识的机制包括工作量证明(PoW,Proof of Work)、权益证明(PoS,Proof of Stake)、股份授权证明(DPoS,Delegated Proof-of-Stake)、消逝时间量证明(PoET,Proof of Elapsed Time)、拜占庭容错(PBFT,Practical Byzantine FaultTolerance)等。
10)智能合约(Smart Contracts),也称为链码(Chain Code),部署在区块链网络中的根据条件而触发执行的程序,链码运行在一个安全的容器中,来初始化和管理账本数据和账本状态。
11)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
下面说明实现本发明实施例的区块链网络的示例性的功能架构,参见图1,图1为本发明实施例提供的一种区块链网络的功能架构示意图,该区块链网络100的功能架构包括应用层101、共识层102、网络层103、数据层104和资源层105,下面分别进行说明。
资源层105封装各种可用的计算资源和存储资源,例如计算机、服务器/集群和云中的计算资源和存储资源,进行抽象并向数据层104提供统一的接口以屏蔽实现资源层105的底层硬件的差异性。
计算资源包括各种形式的处理器,例如中央处理器(CPU,Central ProcessingUnit)、应用专用集成电路(ASIC,Application Specific Integrated Circuit)、专用集成电路和现场可编程门阵列(FPGA,Field-Programmable Gate Array)的各种形式的处理器。
存储资源包括各种易失性存储器和非易失性存储器等各种类型的存储介质。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。
资源层105的计算资源和存储资源可以被映射为区块链网络中各种类型的节点,实现本发明实施例的存储介质存储了用于实现本发明实施例的区块链网络的签名处理方法的可执行指令,一旦被部署到区块链网络的节点的可执行指令被执行,实现节点的底层资源(例如各种类型的处理器)将实现区块链网络中各种类型的节点的部署、以及执行各种类型节点的功能,从而实现针对业务过程中的交易的账本、以及基于账本的各种应用。
作为示例,可执行指令可以采用软件(包括***程序和应用程序)、软件模块、脚本、插件等的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件或者适合在计算环境中使用的其它单元。
数据层104封装了实现账本的各种数据结构,包括以文件***实现的账本数据,以数据库形式实现的账本状态和存在性证明。
网络层103封装了点对点(P2P)网络协议、数据传播机制和数据验证机制、接入和认证机制和业务主体身份。P2P网络协议实现区块链网络中节点之间的通信,数据传播机制保证了交易/交易结果在区块链网络中的传播,数据验证机制用于基于加密学方法(例如数字证书、数字签名、公钥/私钥对)实现节点之间传输数据的可靠性;接入和认证机制用于基于业务主体身份对终端的接入和认证进行管理。
共识层102封装了区块链中传播的交易结果达成一致性的机制,包括POS、POW和DPOS等,支持共识机制的可插拔。
应用层101封装了区块链网络能够实现的各种业务,包括交易结算、溯源和存证等。
基于上述对区块链网络的功能架构的说明,接下来说明实现本发明实施例的区块链网络的示例性的组织架构,参见图2,图2为本发明实施例提供的区块链网络的组织架构示意图,区块链网络100包括至少两个签名节点110及一个验签节点120,作为示例,图2中仅示出了签名节点110-1和签名节点110-2;其中,签名节点110-1和签名节点110-2是针对参与业务的两个不同业务实体在业务中所实现的角色而对应部署;验签节点120是针对上述两个签名节点110-1和110-2针对待签名信息的签名结果进行验证而部署,且验签节点120分别与签名节点110-1和110-2相连接。在区块链网络100中,签名节点110-1和110-2分别接收待签名信息,对该待签名信息进行数字签名,生成各自对应的签名结果,并将各自对应的签名结果发送至验签节点120;验签节点120对接收到的两个签名结果进行聚合,生成复合的签名结果,并验证该复合的签名结果的有效性,以及在终端300的用户界面310显示各种中间结果或最终结果,例如,可以显示验签节点120通过网络200发送给终端300的针对复合的签名结果的有效性验证的结果。其中,网络200可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输。
下面以签名节点110为例,说明实现本发明实施例的区块链网络100的示例性的硬件结构,可以理解地,区块链网络100中的其他节点如验签节点120的硬件结构可以根据签名节点110的硬件结构而对应实施。
参见图3,图3为本发明实施例提供的签名节点110的一个可选的硬件结构示意图,签名节点110可以是多个服务器或者多个客户端,根据图3所示的签名节点110的硬件结构,可以预见签名节点110的其他的示例性硬件结构,因此,这里所描述的硬件结构不应视为限制,例如可以省略下文所描述的部分组件,或者,增设下文所未记载的组件以适应某些应用场景的特殊需求。
图3所示的签名节点110可以包括:至少一个处理器1101、存储器1102、用户接口1103和至少一个网络接口1104。签名节点110中的各个组件通过总线***1105耦合在一起。可以理解,总线***1105用于实现这些组件之间的连接通信。总线***1105除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线***1105。
其中,用户接口1103可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。
可以理解,存储器1102可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。本发明实施例描述的存储器1102旨在包括这些和任意其它适合类型的存储器。
本发明实施例中的存储器1102用于存储可执行指令11021或操作***11022以支持签名节点110的操作。这些可执行指令11021的示例包括:用于在签名节点110上操作的程序、插件和脚本等各种形式的软件模块,程序例如可以包括操作***和应用程序,其中,操作***包括各种***程序和驱动程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基础硬件的任务。应用程序可以包括实现签名节点110的各种功能的程序。
本发明实施例揭示的区块链网络的签名处理方法可以应用于处理器1101中,或者由处理器1101实现。处理器1101可以是一种集成电路芯片,具有信号的处理能力,例如上述的处理器1101可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
结合上文可知,实现本发明实施例提供的区块链网络的签名处理方法还可以直接体现为由处理器1101执行的上述不同形式的软件模块,软件模块可以位于存储介质中,存储介质位于存储器1102中。在示例性实施例中,所述存储介质可为光盘、闪存或磁盘等存储介质,可选为非瞬间存储介质。其中,所述存储介质上存储有可执行指令11021,当可执行指令11021被执行时,用于实现本发明实施例提供的区块链网络的签名处理方法。
接下来对相关技术中针对多个签名者的签名结果进行处理的过程进行说明。参见图4,图4为相关技术中区块链网络的签名处理方法的实现流程示意图,相关技术中的区块链网络的签名处理方法主要包括以下步骤:
步骤401:签名者生成各自对应的公私钥对,所述公私钥对包括公钥和私钥。
这里,签名者可以基于密钥生成算法生成对应的公私钥对,其中,密钥生成算法包括对称密钥生成算法和非对称密钥生成算法。为了提高密钥的安全性以及为了保证签名者的签名结果的不可篡改性,优选的,密钥生成算法可以为非对称密钥生成算法。
采用相关技术中的椭圆曲线数字签名算法进行签名,假设将椭圆曲线记为E,则E在素数域Ep上的群(该群可由椭圆曲线E中的正整数点构成)可记作为E(Fp),椭圆曲线E的基点记为B,将群元素个数记为#E(Fp),可通过公式#E(Fp)=l2c计算出椭圆曲线E在素数域Fp上的群的群元素个数,其中,l为大素数,c通常可以取2或3。
假设将采用密钥生成算法随机生成的签名者的私钥记为k,k的长度为n比特,将签名者的公钥记为A,则公钥A可以通过下述方式获得:A=sB,其中,B表示为椭圆曲线E的基点,s表示为对私钥k提取的摘要,且s的大小取决于私钥k的长度,例如,s可以通过下述方式获得:s=H0,…,n-1(k),也即s是通过对私钥k取哈希函数H的前面n个比特的摘要输出值,其中,H的输出总长度为2n比特。
步骤402:基于签名者自身的私钥、公钥以及待签名信息,对待签名信息进行签名,生成对应的签名结果。
步骤403:与步骤402同步的,计算其他签名者针对待签名信息的签名结果。
这里,将待签名信息记为M,将签名者针对待签名信息的签名结果记为(R,S),对于(R,S)而言,R表示签名结果中的承诺值,S表示签名结果中的证明值,则R可以通过下述方式获得:R=rB,其中,r表示基于私钥k和待签名信息M的杂凑值,也即摘要值,r可以通过下述方式获得:r=H(Hn,…,2n-1(k)||M),其中,||表示将Hn,…,2n-1(k)对应的比特串与待签名信息M对应的比特串进行连接,Hn,…,2n-1(k)表示一个摘要值,该摘要值是对私钥k取哈希函数H的后面n个比特的摘要输出值。S可以通过下述方式获得:S=r+H(R||A||M)s mod l,其中,S计算公式中的r的含义及获得方式同上面R的计算公式,这里不再赘述;H(R||A||M)表示对R、A和M各自对应的比特串进行顺序依次连接后的结果进行摘要,获得的摘要值;mod为求余函数,即表示对H(R||A||M)s与l进行求余运算。
这里,当某个恶意签名者通过非法手段获得合法签名者的私钥后,恶意签名者利用自身的公钥及待签名信息,计算得到的签名结果可能并不是该合法签名者对应的签名结果,此时,该恶意签名者所计算出的签名结果极有可能是伪造的,并不具有安全性,这样直接影响到验签者对签名结果的验证。
步骤404:验签者基于每个签名者的签名结果和对应的公钥,分别对每个签名者的签名结果进行验证,直至对所有签名者的签名结果都验证完毕后,再确定针对同一待签名信息的最终验证结果。
这里,验签者以签名者的签名结果(R,S)、签名者的公钥A以及待签名信息M作为输入值,验证是否满足验证条件,如此反复,对每个签名者都执行相同的操作,然后,根据每个签名者的验证结果来确定所有签名者针对同一待签名信息的最终验证结果,也就是说,最终验证结果是由验签者对每个签名者的签名结果进行验证的多个结果共同决定的。
通过上述相关技术中区块链网络的签名处理方法流程可以看出,为完成对多个签名者的签名结果的验证,验签者需要对这多个签名者的签名结果逐一进行验证,直至验签者对所有的签名者的签名结果都验证完毕后,结合多次的验证结果才可以得出是否能够完成该笔交易对应的资产的转移。由于验签代价与签名者的数量呈线性关系,这样多次进行验签,使得验签时间变长,验签过程变得很繁琐,大大降低了针对多个签名结果的验签效率以及交易上链速度,无法满足对多个签名结果进行高效验签的需求。
为了满足对多个签名结果进行高效验签的需求,提升区块链***的吞吐量,在本发明实施例中,在区块链网络中部署验签节点和至少两个签名节点之后,可通过如下方式实现对多个签名结果进行验签的过程,图5为本发明实施例提供的区块链网络的签名处理方法的一个可选的实现流程示意图,参见图5,本发明实施例提供的区块链网络的签名处理方法的实现流程,可以包括以下步骤:
步骤501:通过至少两个签名节点分别接收待签名信息,对所述待签名信息进行数字签名,生成各自对应的签名结果,并将所生成的签名结果发送至验签节点。
在一些实施例中,在本步骤501中对所述待签名信息进行数字签名之前,所述方法还包括:在所述区块链网络中对所述待签名信息执行共识,生成共识后的待签名信息。相应的,对于对所述待签名信息进行数字签名而言,可以采用以下方式实现:对所述共识后的待签名信息进行数字签名。
具体来说,在区块链网络中部署了至少两个签名节点,对待签名信息执行共识的过程,可以理解为这里的至少两个签名节点之间对交易即待签名信息达成一致的一个过程。也就是说,区块链网络中的每个签名节点对待签名信息进行投票,基于区块链网络中所采用的共识机制,当涉及的多个签名节点之间对交易达成一致,即进行投票的赞同票达到设定条件时,则可以通过调用智能合约来将待签名信息写入至区块链网络中。
这里,可以通过区块链网络中的P2P的方式,安全地传输待共识的待签名信息,以将待签名信息广播至全网,以实现所有签名节点对待签名信息达成共识。当然,也可以通过外部安全网络来使所有签名节点对待签名信息达成共识。在所有签名节点对待签名信息达成共识之后,就可以对共识后的待签名信息进行数字签名。
在一些实施例中,在本步骤501中接收待签名信息之前,所述方法还包括:首先,将所述签名节点进行到区块链网络的注册服务;其次,在所述签名节点进行到所述区块链网络的注册服务之后,基于密钥生成算法,生成对应的公私钥对,其中,所述公私钥对包括:公钥,以及与所述公钥对应的私钥;再者,确定所述签名节点的公钥的公钥权重值;最后,将所述签名节点的公钥以及对应的公钥权重值发送至验签节点,以供验签节点生成复合公钥。
这里,密钥生成算法包括对称密钥生成算法和非对称密钥生成算法。为了提高密钥的安全性以及为了保证签名者的签名结果的不可篡改性,优选的,密钥生成算法可以为非对称密钥生成算法。
这里,对于基于密钥生成算法,生成对应的公私钥对来说,具体可以采用以下方式来实现:基于所述密钥生成算法,生成所述签名节点对应的设定长度的私钥;基于所述私钥以及所述私钥的设定长度,确定能够在所述区块链网络通过验证的、与所述私钥对应的公钥。
需要说明的是,这里仅有公钥可以在区块链网络通过验证并显示出来,而对于私钥来说,为了保证私钥的安全性,一般不会将其存储于区块链网络中。
这里,对于确定所述签名节点的公钥的公钥权重值来说,具体可以采用以下方式来实现:首先,将至少两个所述签名节点的公钥对应的比特串进行连接,生成第一连接结果;其次,将所述第一连接结果与所述签名节点的公钥各自对应的比特串进行连接,生成第二连接结果;最后,基于摘要算法对所述第二连接结果提取摘要,将提取得到的所述第二连接结果的摘要,确定为所述签名节点的公钥的公钥权重值。
其中,摘要算法包括安全哈希算法(SHA,Secure Hash Algorithm)。其中,SHA是一个Hash函数族,例如SHA-224、SHA-256、SHA-384和SHA-512算法。
在一些实施例中,对于本步骤501中的对所述待签名信息进行数字签名,生成各自对应的签名结果来说,具体可以采用以下方式来实现:首先,对所述待签名信息进行数字签名,生成所述签名节点对应的签名结果中的承诺值和证明值;然后,基于所述签名节点对应的签名结果中的承诺值和证明值,确定所述签名节点对应的签名结果。
下面说明生成所述签名节点对应的签名结果中的承诺值和证明值的实现方式,具体包括:基于摘要算法对所述签名节点的私钥提取摘要;基于提取得到的所述签名节点的私钥的摘要,以及所述待签名信息,生成所述签名节点对应的签名结果中的承诺值;以及,
基于所述签名节点的公钥以及对应的公钥权重值、所述签名节点的私钥、所述待签名信息,生成所述签名节点对应的签名结果中的证明值。
具体来说,对于基于摘要算法对所述签名节点的私钥提取摘要而言,基于所述签名节点的私钥以及预先设定的私钥的长度,确定针对签名节点的私钥提取的摘要。对于基于提取得到的所述签名节点的私钥的摘要,以及所述待签名信息,生成所述签名节点对应的签名结果中的承诺值而言,可以先将针对签名节点的私钥提取的摘要对应的比特串,与待签名信息对应的比特串进行连接,如顺序连接,得到一个连接的比特串值,然后,对该连接的比特串值提取摘要,根据所提取的该连接的比特串值的摘要,以及椭圆曲线的基点,来确定所述签名节点对应的签名结果中的承诺值。
对于基于所述签名节点的公钥以及对应的公钥权重值、所述签名节点的私钥、所述待签名信息,生成所述签名节点对应的签名结果中的证明值而言,可以先确定针对签名节点的私钥对应的比特串与待签名信息对应的比特串进行连接得到的比特串值,对此连接的比特串值提取摘要,然后,根据所提取的连接的比特串值的摘要、签名节点的公钥的公钥权重值、签名节点的挑战值,以及针对签名节点的私钥提取的摘要来共同确定所述签名节点对应的签名结果中的证明值。
在一些实施例中,在所述生成所述签名节点对应的签名结果中的承诺值之后,所述方法还包括:
将所述签名节点对应的签名结果中的承诺值广播至目标签名节点;
其中,所述目标签名节点为所述区块链网络中,除广播承诺值的所述签名节点之外的其他签名节点。
需要说明的是,这里通过广播的方式,在多个签名节点之间进行承诺值的交换,使得区块链网络中的每个签名节点都可以得到目标签名节点的承诺值,从而可以基于区块链网络中的所有签名节点的承诺值,得到承诺值之和,以便基于所有签名节点的承诺值确定签名节点的挑战值,进而确定签名节点对应的签名结果中的证明值。由于计算签名节点对应的签名结果中的证明值的过程中考虑到了不同签名节点的公钥的公钥权重,来确定复合公钥,而并非是将对所有签名节点的公钥进行求和的结果作为复合公钥,可以防止某个恶意签名者伪造合法复合公钥和签名结果的行为发生。
步骤502:通过所述验签节点对至少两个所述签名结果进行聚合,生成复合的签名结果。
在一些实施例中,在本步骤502中对至少两个所述签名结果进行聚合之前,所述方法还包括:
通过所述验签节点获取至少两个所述签名节点的公钥以及对应的公钥权重值;基于至少两个所述签名节点的公钥的公钥权重值,对至少两个所述签名节点的公钥进行复合,生成复合公钥。
具体来说,复合公钥的生成过程可以理解为,将每个签名节点的公钥以及对应的公钥权重值进行相乘,对至少两个所述签名节点的公钥以及对应的公钥权重值进行相乘的结果进行求和,从而可以获得复合公钥。
在一些实施例中,对于本步骤502中的对至少两个所述签名结果进行聚合,生成复合的签名结果来说,可以采用以下方式来实现:
对至少两个所述签名节点对应的签名结果中的承诺值进行求和,获得第一求和结果;
对至少两个所述签名节点对应的签名结果中的证明值进行求和,获得第二求和结果;
基于所述第一求和结果和所述第二求和结果,确定所述复合的签名结果。
步骤503:通过所述验签节点对所述复合的签名结果的有效性进行验证。
在一些实施例中,对于本步骤503中的对所述复合的签名结果的有效性进行验证来说,可以采用以下方式来实现:以所述复合的签名结果、针对至少两个所述签名节点的复合公钥,以及所述待签名信息作为输入值,判断是否满足设定的验证条件,得到判断结果;
当所述判断结果表征满足所述验证条件时,确定所述复合的签名结果为有效。
在一些实施例中,对于当所述判断结果表征满足所述验证条件时,确定所述复合的签名结果为有效来说,可以采用以下方式实现:
将以所述复合的签名结果中的承诺值、第一系数、所述复合公钥,以及挑战值为因子的第一参考值,与以所述复合的签名结果中的证明值和第二系数为因子的第二参考值进行比对;
当比对相同时,确定所述复合的签名结果为有效;
其中,所述挑战值用于表征对应连接的以下信息的摘要:
所述复合的签名结果中的承诺值、所述复合公钥,以及所述待签名信息各自对应的比特串。
具体来说,判断是否满足设定的验证条件的过程可以理解为,构造以所述复合的签名结果中的证明值和第二系数为因子的第二参考值;构造以所述复合的签名结果中的承诺值和第一系数为因子的第三参考值;将所述复合的签名结果中的承诺值、复合公钥,以及待签名信息各自对应的比特串进行关联,生成第三关联结果,对第三关联结果提取摘要,构造以第一系数、复合公钥,以及对第三关联结果提取的摘要为因子的第四参考值;构造以第三参考值和第四参考值为因子的第一参考值;将第一参考值与第二参考值进行比对,当两者比对相同时,则可以确定所述复合的签名结果为有效。
需要说明的是,例如,第一系数可以表示为2c,c通常可以取2或3。第二系数为根据第一系数与椭圆曲线E的基点的乘积确定,例如,第二系数可以表示为2cB,当然,根据实际情况的需要,可对第一系数和第二系数做适应调整,并不仅限于上述表示方式。
下面结合附图对本发明实施例中区块链网络的签名处理方法的实现过程进行详细说明。
图6为本发明实施例提供的区块链网络的签名处理方法的另一个可选的实现流程示意图,参见图6,本发明实施例所提供的区块链网络的签名处理方法的具体实现流程,可以包括以下步骤:
步骤601:将签名节点进行到区块链网络的注册服务。
步骤602:基于密钥生成算法生成签名节点对应的公私钥对,其中,公私钥对包括公钥和私钥。
在一些实施例中,在签名节点进行到区块链网络的注册服务之后,基于密钥生成算法,生成签名节点对应的设定长度的私钥;基于签名节点的私钥以及私钥的设定长度,确定能够在区块链网络通过验证的、与私钥对应的公钥。
假设在本发明实施例中,将签名节点记为Ui,i∈[1,N],N表示签名节点的数量,其中,N为大于等于2的任意正整数;将验签节点记为V。
这里需要说明的是,本发明实施例中生成签名节点对应的公私钥对的方式,与相关技术中区块链网络的签名处理方法中生成公私钥对的方式类似,假设将签名节点Ui对应的私钥记为ki,将签名节点Ui对应的公钥记为Ai,其中,ki的设定长度为n比特,则Ai可以通过下述方式获得:Ai=siB,其中,B表示为椭圆曲线E的基点,si表示为对私钥ki提取的摘要,且si的大小取决于私钥ki的设定长度,特别地,si可以通过下述方式获得:si=H0,…,n-1(ki),也即si是通过对私钥ki取哈希函数H的前面n个比特的摘要输出值,其中,H的输出总长度为2n比特。
需要说明的是,这里仅有公钥可以在区块链网络通过验证并显示出来,而对于私钥来说,为了保证私钥的安全性,一般不会将其存储于区块链网络中。
步骤603:在至少两个签名节点接收到待签名信息后,分别生成各自对应的签名结果中的承诺值,将承诺值广播至目标签名节点,得到复合的签名结果中的承诺值。
这里,所述目标签名节点为所述区块链网络中,除广播承诺值的所述签名节点之外的其他签名节点。
需要说明的是,这里通过广播的方式,在多个签名节点之间进行承诺值的交换,使得区块链网络中的每个签名节点都可以得到目标签名节点的承诺值,从而可以对区块链网络中的所有签名节点的承诺值进行求和,得到复合的签名结果中的承诺值。
在一些实施例中,可以采用以下方式来生成签名节点对应的签名结果中的承诺值:基于摘要算法对签名节点的私钥提取摘要;基于提取得到的签名节点的私钥的摘要,以及待签名信息,生成签名节点对应的签名结果中的承诺值。
具体来说,对于基于摘要算法对签名节点的私钥提取摘要而言,基于签名节点的私钥以及预先设定的私钥的长度,确定针对签名节点的私钥提取的摘要。对于基于提取得到的签名节点的私钥的摘要以及待签名信息,生成签名节点对应的签名结果中的承诺值而言,可以先将针对签名节点的私钥提取的摘要对应的比特串,与待签名信息对应的比特串进行连接,如顺序连接,得到一个连接的比特串值,然后,对该连接的比特串值提取摘要,根据所提取的该连接的比特串值的摘要,以及椭圆曲线的基点,来确定签名节点对应的签名结果中的承诺值。
假设将签名节点Ui对应的签名结果中的承诺值记为Ri,则Ri可以通过下述方式获得:Ri=riB,其中,B表示为椭圆曲线E的基点,ri可以通过下述方式获得:ri=H(Hn,…,2n-1(ki)||M),其中,||表示将Hn,…,2n-1(ki)对应的比特串与待签名信息M对应的比特串进行顺序连接,Hn,…,2n-1(ki)表示一个摘要值,该摘要值是对私钥ki取哈希函数H的后面n个比特的摘要输出值。将复合的签名结果中的承诺值记为R,则R可以通过下述方式获得:其中,N表示签名节点的数量,Ri表示每个签名节点Ui对应的签名结果中的承诺值,也就是说,复合的签名结果中的承诺值R可以通过对区块链网络中的每个签名节点的承诺值Ri进行求和得到。
步骤604:确定签名节点的公钥的公钥权重值,以及确定针对至少两个签名节点的公钥的复合公钥。
这里,由签名节点确定自身的公钥的公钥权重值,并将自身的公钥以及对应的公钥权重值发送至验签节点,以供验签节点来生成针对至少两个签名节点的公钥的复合公钥。
这里,对于确定签名节点的公钥的公钥权重值来说,具体可以采用以下方式来实现:首先,将至少两个签名节点的公钥对应的比特串进行连接,生成第一连接结果;其次,将第一连接结果与签名节点的公钥各自对应的比特串进行连接,生成第二连接结果;最后,基于摘要算法对第二连接结果提取摘要,将提取得到的第二连接结果的摘要,确定为签名节点的公钥的公钥权重值。
假设将签名节点Ui的公钥的公钥权重值记为ai,则ai可以通过下述方式获得:ai=H(L||Ai),其中,L表示第一连接结果,Ai表示签名节点Ui的公钥。L可以通过下述方式获得:L=A1||…||AN,其中,A1至AN分别对应N个签名节点对应的公钥。这里将至少两个签名节点的公钥对应的比特串进行连接,可以理解为对至少两个签名节点的公钥对应的比特串进行顺序依次连接,例如签名节点U1的公钥A1对应的比特串,与签名节点U2的公钥A2对应的比特串进行连接,签名节点U2的公钥A2对应的比特串与签名节点U3的公钥A3对应的比特串进行连接,……,直至与签名节点UN的公钥AN对应的比特串进行连接。
这里,对于确定针对至少两个签名节点的公钥的复合公钥来说,具体可以采用以下方式来实现:基于至少两个签名节点的公钥的公钥权重值,对至少两个签名节点的公钥进行复合,生成复合公钥。
具体来说,复合公钥的生成过程可以理解为,将每个签名节点的公钥以及对应的公钥权重值进行相乘,对至少两个所述签名节点的公钥以及对应的公钥权重值进行相乘的结果进行求和,从而可以获得复合公钥。假设将复合公钥记为A,则A可以通过下述方式获得:其中,ai表示签名节点Ui的公钥的公钥权重值,Ai表示签名节点Ui的公钥。
步骤605:基于签名节点的公钥以及对应的公钥权重值、签名节点的私钥、待签名信息和复合公钥,生成签名节点对应的签名结果中的证明值。
具体来说,对于生成签名节点对应的签名结果中的证明值而言,可以通过下述方式实现:先确定针对签名节点的私钥对应的比特串与待签名信息对应的比特串进行连接得到的比特串值,对此连接的比特串值提取摘要,然后,根据所提取的连接的比特串值的摘要、签名节点的公钥的公钥权重值、签名节点的挑战值,以及针对签名节点的私钥提取的摘要,来共同确定签名节点对应的签名结果中的证明值。
假设将签名节点Ui对应的签名结果记为(Ri,Si),其中,Ri为签名节点Ui对应的签名结果中的承诺值,Si为签名节点Ui对应的签名结果中的证明值,则Si可以通过下述方式获得:Si=ri+aibsi,其中,ri已在生成签名节点Ui对应的签名结果中的承诺值Ri的过程中涉及,这里不再赘述;b表示挑战值,则b可以通过下述方式获得:b=H(R||A||M),也即挑战值表示对R、A和M各自对应的比特串进行顺序依次连接后的结果进行摘要,获得的摘要值,其中,R表示复合的签名结果中的承诺值,A表示复合公钥,M表示待签名信息。
在本发明实施例中,由于计算签名节点对应的签名结果中的证明值的过程中考虑了不同签名节点的公钥的公钥权重,来确定复合公钥,而并非是将对所有签名节点的公钥进行求和的结果作为复合公钥,可以防止某个恶意签名者伪造合法复合公钥和签名结果的行为发生。
步骤606:对至少两个所述签名节点对应的签名结果中的证明值进行求和,得到复合的签名结果中的证明值。
假设将复合的签名结果中的证明值记为S,则S可以通过下述方式获得:
步骤607:基于复合的签名结果中的承诺值和证明值,确定复合的签名结果。
步骤608:以复合的签名结果、针对至少两个签名节点的复合公钥,以及待签名信息作为输入值,判断是否满足设定的验证条件,得到判断结果;当判断结果表征满足验证条件时,确定复合的签名结果为有效。
这里,对于当判断结果表征满足验证条件时,确定复合的签名结果为有效来说,可以采用以下方式实现:
将以复合的签名结果中的承诺值、第一系数、复合公钥,以及挑战值为因子的第一参考值,与以复合的签名结果中的证明值和第二系数为因子的第二参考值进行比对;当两者比对相同时,确定复合的签名结果为有效;
其中,挑战值用于表征对应连接的以下信息的摘要:复合的签名结果中的承诺值、复合公钥,以及待签名信息各自对应的比特串。
具体来说,判断是否满足设定的验证条件的过程可以理解为,构造以复合的签名结果中的证明值和第二系数为因子的第二参考值;构造以复合的签名结果中的承诺值和第一系数为因子的第三参考值;将复合的签名结果中的承诺值、复合公钥,以及待签名信息各自对应的比特串进行关联,生成第三关联结果,对第三关联结果提取摘要,构造以第一系数、复合公钥,以及对第三关联结果提取的摘要为因子的第四参考值;构造以第三参考值和第四参考值为因子的第一参考值;将第一参考值与第二参考值进行比对,当两者比对相同时,则可以确定复合的签名结果为有效。
这里,第二系数为根据第一系数与椭圆曲线E的基点的乘积确定,例如,第二系数可以表示为2cB,当然,根据实际情况的需要,可对第一系数和第二系数做适应变形,并不仅限于上述表示方式。
在本发明实施例中,验证条件可以表示为2cSB=2cR+2cbA,当然,该验证条件可以根据实际情况的需要进行适应变形,并不仅限于上述表示方式。在上述验证条件的表达式中,2c表示第一系数,c通常可以取2或3;2cB表示第二系数,S表示复合的签名结果(R,S)中的证明值,则构造以复合的签名结果中的证明值S和第二系数2cB为因子的第二参考值,即第二参考值为复合的签名结果中的证明值S与第二系数2cB的乘积。R表示复合的签名结果(R,S)中的承诺值,计算复合的签名结果(R,S)中的承诺值R与2c的第一乘积,以及计算挑战值、复合公钥和2c的第二乘积,将第一乘积与第二乘积之和作为第一参考值,将第一参考值与第二参考值进行比对,当两者比对相同时,则可以确定复合的签名结果为有效。
基于上述本发明实施例提供的区块链网络的签名处理方法的实现过程,接下来结合附图说明实现本发明实施例的区块链网络100的组成结构。参见图7,图7为本发明实施例提供的区块链网络100的一个可选的组成结构示意图,所述区块链网络100包括:签名节点110和验签节点120。下面对各节点的功能进行说明。
签名节点110,数量为至少两个,分别用于在响应于签名任务的进程中执行以下操作:接收待签名信息,对所述待签名信息进行数字签名,生成各自对应的签名结果,并将所生成的签名结果发送至验签节点。
验签节点120,用于将接收到的所述签名节点各自针对所述待签名信息的签名结果进行聚合,生成复合的签名结果,对所述复合的签名结果的有效性进行验证。
在一些实施例中,所述签名节点110,还用于:在所述区块链网络中对所述待签名信息执行共识,生成共识后的待签名信息;
相应地,对于所述签名节点110对所述待签名信息进行数字签名来说,可以采用以下方式实现:对所述共识后的待签名信息进行数字签名。
在一些实施例中,所述签名节点110,还用于:
在进行到所述区块链网络的注册服务之后,基于密钥生成算法,生成对应的公私钥对,其中,所述公私钥对包括:公钥,以及与所述公钥对应的私钥;
确定所述签名节点的公钥的公钥权重值,并将所述签名节点的公钥以及对应的公钥权重值发送至所述验签节点,以供所述验签节点生成复合公钥。
在一些实施例中,对于所述签名节点110基于密钥生成算法,生成对应的公私钥对来说,具体可以采用以下方式来实现:
基于所述密钥生成算法,生成所述签名节点对应的设定长度的私钥;
基于所述私钥以及所述私钥的设定长度,确定能够在所述区块链网络通过验证的、与所述私钥对应的公钥。
在一些实施例中,对于所述签名节点110确定所述签名节点的公钥的公钥权重值来说,具体可以采用以下方式来实现:
将至少两个所述签名节点的公钥对应的比特串进行连接,生成第一连接结果;
将所述第一连接结果与所述签名节点的公钥各自对应的比特串进行连接,生成第二连接结果;
基于摘要算法对所述第二连接结果提取摘要,将提取得到的所述第二连接结果的摘要,确定为所述签名节点的公钥的公钥权重值。
在一些实施例中,所述验签节点120,还用于:获取至少两个所述签名节点的公钥以及对应的公钥权重值;
基于至少两个所述签名节点的公钥的公钥权重值,对至少两个所述签名节点的公钥进行复合,生成复合公钥。
在一些实施例中,对于所述签名节点110对所述待签名信息进行数字签名,生成对应的签名结果而言,可以采用以下方式来实现:
对所述待签名信息进行数字签名,生成所述签名节点对应的签名结果中的承诺值和证明值;
基于所述签名节点对应的签名结果中的承诺值和证明值,确定所述签名节点对应的签名结果。
在一些实施例中,对于所述签名节点110对所述待签名信息进行数字签名,生成所述签名节点对应的签名结果中的承诺值和证明值来说,具体可以采用以下方式来实现:
基于摘要算法对所述签名节点的私钥提取摘要;
基于提取得到的所述签名节点的私钥的摘要,以及所述待签名信息,生成所述签名节点对应的签名结果中的承诺值;以及,
基于所述签名节点的公钥以及对应的公钥权重值、所述签名节点的私钥、所述待签名信息,生成所述签名节点对应的签名结果中的证明值。
在一些实施例中,所述签名节点110,还用于:将所述签名节点对应的签名结果中的承诺值广播至目标签名节点;
其中,所述目标签名节点为所述区块链网络中,除广播承诺值的所述签名节点之外的其他签名节点。
在一些实施例中,对于所述验签节点120将至少两个所述签名节点各自针对所述待签名信息的签名结果进行聚合,生成复合的签名结果而言,可以采用以下方式来实现:
对至少两个所述签名节点对应的签名结果中的承诺值进行求和,获得第一求和结果;
对至少两个所述签名节点对应的签名结果中的证明值进行求和,获得第二求和结果;
基于所述第一求和结果和所述第二求和结果,确定所述复合的签名结果。
在一些实施例中,对于所述验签节点120对所述复合的签名结果的有效性进行验证来说,可以采用以下方式来实现:
以所述复合的签名结果、针对至少两个所述签名节点的复合公钥,以及所述待签名信息作为输入值,判断是否满足设定的验证条件,得到判断结果;
当所述判断结果表征满足所述验证条件时,确定所述复合的签名结果为有效。
在一些实施例中,对于所述验签节点120当所述判断结果表征满足所述验证条件时,确定所述复合的签名结果为有效来说,可以采用以下方式来实现:
将以所述复合的签名结果中的承诺值、第一系数、所述复合公钥,以及挑战值为因子的第一参考值,与以所述复合的签名结果中的证明值和第二系数为因子的第二参考值进行比对;
当比对相同时,确定所述复合的签名结果为有效;
其中,所述挑战值用于表征对应连接的以下信息的摘要:所述复合的签名结果中的承诺值、所述复合公钥,以及所述待签名信息各自对应的比特串。
这里需要特别指出的是,以上涉及区块链网络100的组成结构的描述,与上述区块链网络的签名处理方法的描述是类似的,同方法的有益效果描述,在此不做赘述。对于本发明所述区块链网络100的组成结构实施例中未披露的技术细节,请参照本发明方法实施例的描述。
下面结合附图对终端即签名节点110的组成结构进行说明。参见图8,图8为本发明实施例提供的签名节点110的一个可选的组成结构示意图,所述签名节点110包括:接收单元81、签名生成单元82和发送单元83。下面对上述各程序单元的功能进行说明。
接收单元81,用于接收待签名信息。
签名生成单元82,用于对所述待签名信息进行数字签名,生成对应的签名结果。
发送单元83,用于将至少两个所述签名生成单元82各自针对所述待签名信息的签名结果发送至验签节点120,以使所述验签节点120对至少两个所述签名结果进行聚合,生成复合的签名结果,并对所述复合的签名结果的有效性进行验证。
需要说明的是,上述实施例提供的签名节点110在生成签名结果时,仅以上述各程序单元的划分进行举例说明,在实际应用中,可以根据需要而将上述处理分配由不同的程序单元完成,即将签名节点110的内部结构划分成不同的程序单元,以完成以上描述的全部或者部分处理。
在实际应用中,所述签名节点110中的接收单元81和发送单元83,可通过通信模组(包含:基础通信套件、操作***、通信模块、标准化接口和协议等)及收发天线等实现;所述签名节点110中的签名生成单元82均可由服务器上的CPU、微处理器(MPU,Micro ProcessorUnit)、DSP或FPGA等实现。
综上所述,本发明实施例具有以下有益效果:
1)能够有效提高验签节点对多个签名结果进行验签的效率,提升区块链***的吞吐量,以满足相应场景的业务需求。
2)利用签名节点的公钥的公钥权重值来确定复合公钥,可以抵御恶意签名者伪造合法复合公钥和签名结果的行为,提高复合公钥和签名结果的安全性。
3)在保证提高验签节点对多个签名结果进行验签的效率的同时,还能够提高交易上链速度。
本发明实施例所记载的各技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (27)
1.一种区块链网络,其特征在于,所述区块链网络包括:
签名节点,数量为至少两个,分别用于在响应于签名任务的进程中执行以下操作:接收待签名信息,对所述待签名信息进行数字签名,生成各自对应的签名结果,并将所生成的签名结果发送至验签节点;
验签节点,用于将接收到的所述签名节点各自针对所述待签名信息的签名结果进行聚合,生成复合的签名结果,对所述复合的签名结果的有效性进行验证。
2.根据权利要求1所述的区块链网络,其特征在于,
所述签名节点,还用于:
在进行到所述区块链网络的注册服务之后,基于密钥生成算法,生成对应的公私钥对,其中,所述公私钥对包括:公钥,以及与所述公钥对应的私钥;
确定所述签名节点的公钥的公钥权重值,并将所述签名节点的公钥以及对应的公钥权重值发送至所述验签节点,以供所述验签节点生成复合公钥。
3.根据权利要求2所述的区块链网络,其特征在于,
所述签名节点,具体用于:
基于所述密钥生成算法,生成所述签名节点对应的设定长度的私钥;
基于所述私钥以及所述私钥的设定长度,确定能够在所述区块链网络通过验证的、与所述私钥对应的公钥。
4.根据权利要求2所述的区块链网络,其特征在于,
所述签名节点,具体用于:
将至少两个所述签名节点的公钥对应的比特串进行连接,生成第一连接结果;
将所述第一连接结果与所述签名节点的公钥各自对应的比特串进行连接,生成第二连接结果;
基于摘要算法对所述第二连接结果提取摘要,将提取得到的所述第二连接结果的摘要,确定为所述签名节点的公钥的公钥权重值。
5.根据权利要求1所述的区块链网络,其特征在于,
所述验签节点,还用于:
获取至少两个所述签名节点的公钥以及对应的公钥权重值;
基于至少两个所述签名节点的公钥的公钥权重值,对至少两个所述签名节点的公钥进行复合,生成复合公钥。
6.根据权利要求1所述的区块链网络,其特征在于,
所述签名节点,具体用于:
对所述待签名信息进行数字签名,生成所述签名节点对应的签名结果中的承诺值和证明值;
基于所述签名节点对应的签名结果中的承诺值和证明值,确定所述签名节点对应的签名结果。
7.根据权利要求6所述的区块链网络,其特征在于,
所述签名节点,具体用于:
基于摘要算法对所述签名节点的私钥提取摘要;
基于提取得到的所述签名节点的私钥的摘要,以及所述待签名信息,生成所述签名节点对应的签名结果中的承诺值;以及,
基于所述签名节点的公钥以及对应的公钥权重值、所述签名节点的私钥、所述待签名信息,生成所述签名节点对应的签名结果中的证明值。
8.根据权利要求6所述的区块链网络,其特征在于,
所述签名节点,还用于:
将所述签名节点对应的签名结果中的承诺值广播至目标签名节点;
其中,所述目标签名节点为所述区块链网络中,除广播承诺值的所述签名节点之外的其他签名节点。
9.根据权利要求1所述的区块链网络,其特征在于,
所述验签节点,具体用于:
对至少两个所述签名节点对应的签名结果中的承诺值进行求和,获得第一求和结果;
对至少两个所述签名节点对应的签名结果中的证明值进行求和,获得第二求和结果;
基于所述第一求和结果和所述第二求和结果,确定所述复合的签名结果。
10.根据权利要求1所述的区块链网络,其特征在于,
所述验签节点,具体用于:
以所述复合的签名结果、针对至少两个所述签名节点的复合公钥,以及所述待签名信息作为输入值,判断是否满足设定的验证条件,得到判断结果;
当所述判断结果表征满足所述验证条件时,确定所述复合的签名结果为有效。
11.根据权利要求10所述的区块链网络,其特征在于,
所述验签节点,具体用于:
将以所述复合的签名结果中的承诺值、第一系数、所述复合公钥,以及挑战值为因子的第一参考值,与以所述复合的签名结果中的证明值和第二系数为因子的第二参考值进行比对;
当比对相同时,确定所述复合的签名结果为有效;
其中,所述挑战值用于表征对应连接的以下信息的摘要:
所述复合的签名结果中的承诺值、所述复合公钥,以及所述待签名信息各自对应的比特串。
12.根据权利要求1所述的区块链网络,其特征在于,
所述签名节点,还用于:
在所述区块链网络中对所述待签名信息执行共识,生成共识后的待签名信息;
所述签名节点,具体用于:对所述共识后的待签名信息进行数字签名。
13.一种区块链网络的签名处理方法,其特征在于,在区块链网络中部署验签节点和至少两个签名节点,所述方法还包括:
通过所述至少两个签名节点分别接收待签名信息,对所述待签名信息进行数字签名,生成各自对应的签名结果,并将所生成的签名结果发送至所述验签节点;
通过所述验签节点对至少两个所述签名结果进行聚合,生成复合的签名结果,并对所述复合的签名结果的有效性进行验证。
14.根据权利要求13所述的方法,其特征在于,在所述接收待签名信息之前,所述方法还包括:
将所述签名节点进行到区块链网络的注册服务;
在所述签名节点进行到所述区块链网络的注册服务之后,基于密钥生成算法,生成对应的公私钥对,其中,所述公私钥对包括:公钥,以及与所述公钥对应的私钥;
确定所述签名节点的公钥的公钥权重值,并将所述签名节点的公钥以及对应的公钥权重值发送至所述验签节点,以供所述验签节点生成复合公钥。
15.根据权利要求14所述的方法,其特征在于,所述基于密钥生成算法,生成对应的公私钥对,包括:
基于所述密钥生成算法,生成所述签名节点对应的设定长度的私钥;
基于所述私钥以及所述私钥的设定长度,确定能够在所述区块链网络通过验证的、与所述私钥对应的公钥。
16.根据权利要求14所述的方法,其特征在于,所述确定所述签名节点的公钥的公钥权重值,包括:
将至少两个所述签名节点的公钥对应的比特串进行连接,生成第一连接结果;
将所述第一连接结果与所述签名节点的公钥各自对应的比特串进行连接,生成第二连接结果;
基于摘要算法对所述第二连接结果提取摘要,将提取得到的所述第二连接结果的摘要,确定为所述签名节点的公钥的公钥权重值。
17.根据权利要求13所述的方法,其特征在于,在所述对至少两个所述签名结果进行聚合之前,所述方法还包括:
通过所述验签节点获取至少两个所述签名节点的公钥以及对应的公钥权重值;
基于至少两个所述签名节点的公钥的公钥权重值,对至少两个所述签名节点的公钥进行复合,生成复合公钥。
18.根据权利要求13所述的方法,其特征在于,所述对所述待签名信息进行数字签名,生成各自对应的签名结果,包括:
对所述待签名信息进行数字签名,生成所述签名节点对应的签名结果中的承诺值和证明值;
基于所述签名节点对应的签名结果中的承诺值和证明值,确定所述签名节点对应的签名结果。
19.根据权利要求18所述的方法,其特征在于,所述对所述待签名信息进行数字签名,生成所述签名节点对应的签名结果中的承诺值和证明值,包括:
基于摘要算法对所述签名节点的私钥提取摘要;
基于提取得到的所述签名节点的私钥的摘要,以及所述待签名信息,生成所述签名节点对应的签名结果中的承诺值;以及,
基于所述签名节点的公钥以及对应的公钥权重值、所述签名节点的私钥、所述待签名信息,生成所述签名节点对应的签名结果中的证明值。
20.根据权利要求18所述的方法,其特征在于,在所述生成所述签名节点对应的签名结果中的承诺值之后,所述方法还包括:
将所述签名节点对应的签名结果中的承诺值广播至目标签名节点;
其中,所述目标签名节点为所述区块链网络中,除广播承诺值的所述签名节点之外的其他签名节点。
21.根据权利要求13所述的方法,其特征在于,所述对至少两个所述签名结果进行聚合,生成复合的签名结果,包括:
对至少两个所述签名节点对应的签名结果中的承诺值进行求和,获得第一求和结果;
对至少两个所述签名节点对应的签名结果中的证明值进行求和,获得第二求和结果;
基于所述第一求和结果和所述第二求和结果,确定所述复合的签名结果。
22.根据权利要求13所述的方法,其特征在于,所述对所述复合的签名结果的有效性进行验证,包括:
以所述复合的签名结果、针对至少两个所述签名节点的复合公钥,以及所述待签名信息作为输入值,判断是否满足设定的验证条件,得到判断结果;
当所述判断结果表征满足所述验证条件时,确定所述复合的签名结果为有效。
23.根据权利要求22所述的方法,其特征在于,所述当所述判断结果表征满足所述验证条件时,确定所述复合的签名结果为有效,包括:
将以所述复合的签名结果中的承诺值、第一系数、所述复合公钥,以及挑战值为因子的第一参考值,与以所述复合的签名结果中的证明值和第二系数为因子的第二参考值进行比对;
当比对相同时,确定所述复合的签名结果为有效;
其中,所述挑战值用于表征对应连接的以下信息的摘要:
所述复合的签名结果中的承诺值、所述复合公钥,以及所述待签名信息各自对应的比特串。
24.根据权利要求13所述的方法,其特征在于,在所述对所述待签名信息进行数字签名之前,所述方法还包括:
在所述区块链网络中对所述待签名信息执行共识,生成共识后的待签名信息;
所述对所述待签名信息进行数字签名,包括:对所述共识后的待签名信息进行数字签名。
25.一种终端,其特征在于,所述终端包括:
接收单元,用于接收待签名信息;
签名生成单元,用于对所述待签名信息进行数字签名,生成对应的签名结果;
发送单元,用于将至少两个所述签名生成单元各自针对所述待签名信息的签名结果发送至验签节点,以使所述验签节点对至少两个所述签名结果进行聚合,生成复合的签名结果,并对所述复合的签名结果的有效性进行验证。
26.一种区块链网络,其特征在于,所述区块链网络包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现如权利要求13至24任一项所述的区块链网络的签名处理方法。
27.一种存储介质,其特征在于,存储有可执行指令,当所述可执行指令被执行时,用于实现如权利要求13至24任一项所述的区块链网络的签名处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811626266.1A CN111385096B (zh) | 2018-12-28 | 2018-12-28 | 一种区块链网络***、签名处理方法、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811626266.1A CN111385096B (zh) | 2018-12-28 | 2018-12-28 | 一种区块链网络***、签名处理方法、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111385096A true CN111385096A (zh) | 2020-07-07 |
CN111385096B CN111385096B (zh) | 2023-08-08 |
Family
ID=71222838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811626266.1A Active CN111385096B (zh) | 2018-12-28 | 2018-12-28 | 一种区块链网络***、签名处理方法、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111385096B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112182612A (zh) * | 2020-09-28 | 2021-01-05 | 平安科技(深圳)有限公司 | 一种随机数生成方法、装置、终端设备及存储介质 |
CN112600671A (zh) * | 2021-03-02 | 2021-04-02 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN113506104A (zh) * | 2021-05-07 | 2021-10-15 | 杭州宇链科技有限公司 | 一种软硬件结合的签名生成、验证方式和*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050262353A1 (en) * | 2004-05-20 | 2005-11-24 | Docomo Communications Laboratories Usa, Inc. | Digital signatures including identity-based aggregate signatures |
WO2014204292A1 (en) * | 2013-06-18 | 2014-12-24 | Mimos Berhad | Non-repudiable collaborative updates of document |
CN107968708A (zh) * | 2017-11-10 | 2018-04-27 | 财付通支付科技有限公司 | 生成签名的方法、装置、终端及服务器 |
CN108650097A (zh) * | 2018-04-28 | 2018-10-12 | 上海扈民区块链科技有限公司 | 一种高效的聚合数字签名方法 |
-
2018
- 2018-12-28 CN CN201811626266.1A patent/CN111385096B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050262353A1 (en) * | 2004-05-20 | 2005-11-24 | Docomo Communications Laboratories Usa, Inc. | Digital signatures including identity-based aggregate signatures |
WO2014204292A1 (en) * | 2013-06-18 | 2014-12-24 | Mimos Berhad | Non-repudiable collaborative updates of document |
CN107968708A (zh) * | 2017-11-10 | 2018-04-27 | 财付通支付科技有限公司 | 生成签名的方法、装置、终端及服务器 |
CN108650097A (zh) * | 2018-04-28 | 2018-10-12 | 上海扈民区块链科技有限公司 | 一种高效的聚合数字签名方法 |
Non-Patent Citations (3)
Title |
---|
D. BONEH: ""A Survey of Two Signature Aggregation Techniques"" * |
李康;孙毅;张;李军;周继华;李忠诚;: "零知识证明应用到区块链中的技术挑战" * |
苑超;徐蜜雪;斯雪明;: "基于聚合签名的共识算法优化方案" * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112182612A (zh) * | 2020-09-28 | 2021-01-05 | 平安科技(深圳)有限公司 | 一种随机数生成方法、装置、终端设备及存储介质 |
CN112600671A (zh) * | 2021-03-02 | 2021-04-02 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN113506104A (zh) * | 2021-05-07 | 2021-10-15 | 杭州宇链科技有限公司 | 一种软硬件结合的签名生成、验证方式和*** |
CN113506104B (zh) * | 2021-05-07 | 2024-03-01 | 杭州宇链科技有限公司 | 一种软硬件结合的签名生成、验证方式和*** |
Also Published As
Publication number | Publication date |
---|---|
CN111385096B (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4120114A1 (en) | Data processing method and apparatus, smart device and storage medium | |
JP7285840B2 (ja) | プルーフ検証に基づいてオフ・チェーン・データを認証するシステム及び方法 | |
CN109889497B (zh) | 一种去信任的数据完整性验证方法 | |
Wei et al. | Security and privacy for storage and computation in cloud computing | |
CN107438002B (zh) | 基于区块链的***以及***中的电子设备和方法 | |
CN115210741B (zh) | 部分有序的区块链 | |
CN111144881A (zh) | 对资产转移数据的选择性访问 | |
US20190287105A1 (en) | Mechanism for efficient validation of finality proof in lightweight distributed ledger clients | |
CN111523890B (zh) | 基于区块链的数据处理方法、装置、存储介质及设备 | |
Ferrer-Gomila et al. | A fair contract signing protocol with blockchain support | |
CN111797159A (zh) | 数据库中的信息管理和访问控制 | |
CN112215608A (zh) | 数据处理方法和装置 | |
Han et al. | A survey on blockchain-based integrity auditing for cloud data | |
CN111294379B (zh) | 区块链网络服务平台及其权限托管方法、存储介质 | |
Liu et al. | Blockchain-cloud transparent data marketing: Consortium management and fairness | |
CN111385096B (zh) | 一种区块链网络***、签名处理方法、终端及存储介质 | |
CN111049806B (zh) | 一种联合权限控制方法、装置、电子设备和存储介质 | |
CN110990790B (zh) | 一种数据处理方法及设备 | |
WO2019142884A1 (ja) | ブロック検証装置、ブロック検証方法、及びプログラム | |
CN114760071B (zh) | 基于零知识证明的跨域数字证书管理方法、***和介质 | |
CN109104444B (zh) | 一种基于区块链的电子签章方法 | |
Lai et al. | Blockchain for achieving accountable outsourcing computations in edge computing | |
CN112163917B (zh) | 基于区块链的票据处理方法、装置、介质及电子设备 | |
Zhou et al. | Fair cloud auditing based on blockchain for resource-constrained IoT devices | |
Jin et al. | A framework with data-centric accountability and auditability for cloud storage |
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 |