CN110798308A - 一种区块链的签名方法和系统 - Google Patents
一种区块链的签名方法和系统 Download PDFInfo
- Publication number
- CN110798308A CN110798308A CN201911050859.2A CN201911050859A CN110798308A CN 110798308 A CN110798308 A CN 110798308A CN 201911050859 A CN201911050859 A CN 201911050859A CN 110798308 A CN110798308 A CN 110798308A
- Authority
- CN
- China
- Prior art keywords
- consensus
- signatures
- master node
- proposal
- signature
- 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
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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书公开了一种区块链的签名方法和系统,该方法包括:共识主节点发起针对待共识提议的共识提议;多个共识备份节点对所述待共识提议进行共识;所述共识主节点接收所述多个共识备份节点针对所述待共识提议共识后的多个签名;所述共识主节点基于所述多个共识备份节点对应的多个公钥,对所述多个签名进行校验;若所述共识主节点对所述多个签名校验通过、且所述多个签名的数量大于区块链中所有共识备份节点中失效节点数量的两倍,则所述共识主节点将所述多个签名进行聚合处理,以得到目标签名。
Description
技术领域
本文件涉及计算机技术领域,尤其涉及一种区块链的签名方法和系统。
背景技术
目前,基于拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)共识算法生成的区块,通常至少需要2f+1(f为失效节点的数量)个参与共识的节点对该区块进行签名,才能确定该参与共识的区块的合法性。这就意味着每个参与共识的区块中至少保存有2f+1个签名。
而随着节点数量的增加,参与共识的区块中保存的签名数量也随之线性增加。这就会导致区块中保存的签名占用的空间越多越大。因此,如何改善签名方式,仍然需要进一步地解决方案。
发明内容
本说明书实施例提供了一种区块链的签名方法和系统,以解决现有的参与共识的区块中保存的签名数量会随共识备份节点数量线性增加,从而导致各个参与共识的区块的共识证明占用存储空间较大的问题。
为解决上述技术问题,本说明书实施例是这样实现的:
第一方面,提出了一种区块链的签名方法,包括:
共识主节点发起针对待共识提议的共识提议;
多个共识备份节点对所述待共识提议进行共识;
所述共识主节点接收所述多个共识备份节点针对所述待共识提议共识后的多个签名;
所述共识主节点基于所述多个共识备份节点对应的多个公钥,对所述多个签名进行校验;
若所述共识主节点对所述多个签名校验通过、且所述多个签名的数量大于区块链中所有共识备份节点中失效节点数量的两倍,则所述共识主节点将所述多个签名进行聚合处理,以得到目标签名。
第二方面,提出了一种区块链系统,包括:
共识主节点,发起针对待共识提议的共识提议;
多个共识备份节点,对所述待共识提议进行共识;
所述共识主节点,接收所述多个共识备份节点针对所述待共识提议共识后的多个签名;
所述共识主节点,基于所述多个共识备份节点对应的多个公钥,对所述多个签名进行校验;以及若对所述多个签名校验通过、且所述多个签名的数量大于区块链中所有共识备份节点中失效节点数量的两倍,则将所述多个签名进行聚合处理,以得到目标签名。
本说明书实施例采用上述技术方案至少可以达到下述技术效果:
在共识主节点为共识区块生成共识证明之前,共识主节点发起针对待共识提议的共识提议,多个备份节点对该待共识提议进行共识,共识主节点接收多个共识备份节点针对待共识提议共识后的多个签名,共识主节点基于多个共识备份节点对应的多个公钥,对多个签名进行校验,若共识主节点对多个签名校验通过,且多个签名的数量大于区块链中所有共识备份节点中失效节点数量的两倍,则将多个签名进行聚合处理,得到目标签名,作为基于待共识提议生成的共识区块的共识证明。由于最后保存在基于待共识提议生成的共识区块的签名数量被聚合为一个,这样即使在区块链中共识备份节点数量线性增加的前提下,最终保存在共识区块中的共识证明的签名数量也只有一个,从而能够极大地节省共识区块中的存储空间。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书一个实施例提供的一种区块链的签名方法的实施流程示意图;
图2为本说明书一个实施例提供的区块链的签名方法中聚合签名的示意图;
图3为本说明书一个实施例提供的区块链的签名方法中的两种一种聚合签名的原理示意图;
图4为本说明书一个实施例提供的区块链的签名方法的交互流程示意图;
图5为本说明书一个实施例提供的一种共识主节点的结构示意图;
图6为本说明书一个实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
为解决现有的参与共识的区块中保存的签名数量会随共识备份节点数量线性增加,从而导致各个参与共识的区块的共识证明占用存储空间较大的问题,本说明书实施例提供一种区块链的签名方法,该方法的执行主体可以是区块链中的共识主节点。本说明书实施例提供的区块链的签名方法,在共识主节点为共识区块生成共识证明之前,共识主节点发起针对待共识提议的共识提议,多个备份节点对该待共识提议进行共识,共识主节点接收多个共识备份节点针对待共识提议共识后的多个签名,共识主节点基于多个共识备份节点对应的多个公钥,对多个签名进行校验,若共识主节点对多个签名校验通过,且多个签名的数量大于区块链中所有共识备份节点中失效节点数量的两倍,则将多个签名进行聚合处理,得到目标签名,作为基于待共识提议生成的共识区块的共识证明。
由于最后保存在基于待共识提议生成的共识区块的签名数量被聚合为一个,这样即使在区块链中共识备份节点数量线性增加的前提下,最终保存在共识区块中的共识证明的签名数量也只有一个,从而能够极大地节省共识区块中的存储空间。
具体地,本说明书一个或多个实施例提供的一种区块链的签名方法的实施流程示意图如图1所示,包括:
S110,共识主节点发起针对待共识提议的共识提议;
应理解,当共识主节点想要新生成一个共识区块时,通常需要在区块链中发起针对待共识提议的共识提议,以便区块链中的共识备份节点对该待共识提议进行共识。
S120,多个共识备份节点对待共识提议进行共识;
其中,多个共识备份节点对待共识提议进行共识可以以对待共识提议进行签名的方式来表征。具体地,各个共识备份节点在接收到待共识提议后,若该共识备份节点没有失效,则可以基于该共识备份节点的私钥对该待共识提议进行签名,并将对待共识提议的签名发送给共识主节点,以便共识主节点对该签名进行校验。
S130,共识主节点接收多个共识备份节点针对待共识提议共识后的多个签名;
可选地,为便于共识主节点对待共识提议的多个签名进行验证,本说明书实施例中的共识主节点在接收多个签名的同时,还接收了待共识提议,接收多个共识备份节点对待共识提议的多个签名,包括:
接收多个共识备份节点对待共识提议的多个签名以及待共识提议。
S140,共识主节点基于多个共识备份节点对应的多个公钥,对多个签名进行校验;
可选地,为了提高签名的安全级别以及校验结果的可信度,本说明书一个或多个实施例对签名进行校验具体可以采用配对的公私钥进行校验,具体来说,共识主节点基于多个共识备份节点对应的多个公钥,对多个签名进行校验,包括:
共识主节点基于多个共识备份节点对应的多个公钥,分别对多个签名进行解密,以获取解密后的多个签名;
共识主节点获取待共识提议的摘要;
共识主节点基于待共识提议的摘要和解密后的多个签名,对多个签名进行校验。
假设这多个签名的数量为n,即签名1~签名n,这n个签名由共识备份节点1~共识备份节点n对待共识提议进行签名得到的,共识备份节点1的私钥为sk1、共识备份节点2的私钥为sk2、……、共识备份节点n的私钥为skn,与共识备份节点1的私钥sk1相匹配的公钥为pk1、与共识备份节点2的私钥sk2相匹配的公钥为pk2、……、与共识备份节点n的私钥skn相匹配的公钥为pkn。
具体地,首先,共识主节点基于多个共识备份节点对应的多个公钥,分别对多个签名进行解密,以获取解密后的多个签名,具体可以基于公钥pk1~pk2,分别对签名1~签名n进行解密,即签名1÷pk1=解密后的签名1、签名2÷pk2=解密后的签名2、……、签名n÷pkn=解密后的签名n;
然后,共识主节点获取待共识提议的摘要,即共识主节点获取待共识提议的哈希值;
再,共识主节点基于待共识提议的摘要和解密后的多个签名,对多个签名进行校验,具体分别验证解密后的签名1是否与待共识提议的哈希值一致、解密后的签名2是否与待共识提议的哈希值一致、……、解密后的签名n是否与待共识提议的哈希值一致。当解密后的签名1~解密后的签名n均与待共识提议的哈希值一致时,则可通过对这多个签名的校验。应理解,若存在不一致的情况,则对这多个签名的校验失败,也就不再进行后续步骤。
S150,若共识主节点对多个签名校验通过、且多个签名的数量大于区块链中所有共识备份节点中的失效节点数量的两倍,则共识主节点将多个签名进行聚合处理,以得到目标签名。
应理解,为了能够基于待共识提议生成共识区块,共识主节点具体可以接收到区块链中半数以上的共识备份节点对该待共识提议的签名。在基于PBFT共识算法生成的共识区块中,通常至少需要2f+1(f为区块链中可能的失效节点的数量)个共识备份节点对该区块生成之前的待共识提议进行签名。
如图2所示,为本说明书实施例提供的将多个签名进行聚合处理的示意图,即将签名1~签名n进行聚合签名,得到一个目标签名,以减小共识区块中共识证明占用的存储空间。
其中,聚合签名是一种将任意多个签名聚合成一个签名的变体签名方案,以区块链中包括n个共识备份节点为例,那么对应地,也就存在n个私钥{sk1,sk2,……,skn},n个公钥{pk1,pk2,……,pkn},待共识提议m,以及这n个共识备份节点分别通过对应的私钥{sk1,sk2,……,skn},对待共识提议m的签名{签名1,签名2,……,签名n},共识主节点将{签名1,签名2,……,签名n}进行聚合,得到一个唯一的签名即目标签名,具体可通过公式AggS(pk1,pk2,……,pkn,m,签名1,签名2,……,签名n)=目标签名来实现。
也就是说,在提供目标签名、参与生成目标签名的私钥集合{sk1,sk2,……,skn}及其签名的原始信息{待共识提议m},可以验证得到共识备份节点i对待共识提议m进行了签名并得到签名i,具体可通过公式AggV(pk1,pk2,……,pkn,m,目标签名)的值是否为1来验证,当AggV(pk1,pk2,……,pkn,m,目标签名)=1则验证通过;而当AggV(pk1,pk2,……,pkn,m,目标签名)=0,则验证失败。
具体地,共识主节点将多个签名进行聚合处理,以得到目标签名可以通过Schnorr签名算法、BLS签名算法或者增量聚合的方式来实现。下面将详细介绍Schnorr签名算法、BLS签名算法和增量聚合这三种聚合签名的处理过程,应理解,这三种聚合签名的实现过程只是一种示例性的说明,不应理解为对本说明书实施例中的聚合处理过程的限定。
可选地,上述多个共识备份节点针对待共识提议共识后的多个签名为基于Schnorr签名算法生成的。
那么,共识主节点将多个签名进行聚合处理,以得到目标签名,包括:
共识主节点基于Schnorr签名算法,将多个签名进行聚合处理,以得到目标签名。
如图3(a)所示,为本说明书一个实施例提供的Schnorr签名算法的原理示意图。若对待共识提议m进行签名,首先则需要对待共识提议m进行哈希操作,得到对应的哈希值z=hash(m),并将z看作为一个数字;再查找一个随机数字k,并根据节点i的私钥ski和z,生成签名R和s,其中R为随机点R的x坐标=k×G,s=k+hash(Pi,R,m)·ski,Pi=ski×G为节点i的公钥;最后,通过校验等式s×G=R+hash(Pi,R,m)×P是否成立来校验该签名是否有效。
应理解,若验证区块链中的某个区块是否有效,则需要验证该区块的区块体中保存的共识证明中的所有签名都有效,如果其中一个签名无效,则可认为该区块无效。而如果对每个签名都进行验证,则签名验证的计算量将会很大。而通过Schnorr签名算法得到的多个签名,可以将这些签名验证的方程相加,即将这些签名验证的方程进行聚合处理,从而极大地节省了计算资源和耗费的时间,进而提高验证效率。
假设本说明书实施例中的多个签名的数量为1000个,且这多个签名都是基于Schnorr签名算法得到的,对于这1000个签名进行聚合处理,具体可将这些签名进行相加得到目标签名(s1+s2+…+s1000),那么在验证时,则可以首先获取(s1+s2+…+s1000)×G以及签名(R1+…+R1000),再获取(hash(P1,R1,m)×P1+hash(P2,R2,m)×P2+…+hash(P1000,R1000,m)×P1000),最后,通过验证公式(1)是否成立,来确定目标签名是否有效。
(s1+s2+…+s1000)×G=(R1+…+R1000)+(hash(P1,R1,m)×P1+hash(P2,R2,m)×P2+…+hash(P1000,R1000,m)×P1000)(1)
可选地,上述多个共识备份节点针对待共识提议共识后的多个签名为基于BLS签名算法生成的。
那么,共识主节点将多个签名进行聚合处理,以得到目标签名,包括:
共识主节点基于BLS签名算法,将多个签名进行聚合处理,以得到目标签名。
如图3(b)所示,为本说明书一个实施例提供的BLS签名算法的原理示意图。BLS签名算法具体可以将这多个签名和公钥组合成一个密钥和一个签名,从而提高共识区块的验证效率。
具体来说,首先将待共识提议m哈希到椭圆曲线,具体可以将待共识提议m进行哈希处理,并将得到的哈希值作为椭圆曲线上的两个点的x坐标,这两个点的y坐标不同;再进行曲线配对,即在一条曲线上取点P和Q,并将这两个点通过公式e(P,Q)→n映射为一个数字,且该曲线满足不管用P和Q中的哪个点乘以一个数字x,都应得到相同的结果,即满足e(x×P,Q)=e(P,x×Q)。
在匹配到满足上述条件的曲线之后,再计算关于待共识提议m的签名。首先,可以将待共识提议m哈希到曲线H(m),并将结果乘以节点i的私钥ski得到待共识提议m的签名Si=ski×H(m)。那么基于BLS签名算法生成了节点1~节点n对待共识提议m的n个签名S1~Sn之后,对这n个签名S1~Sn进行聚合处理,具体可以将这些签名进行相加操作,即通过公式S=S1+S2+…+Sn对这n个签名进行相加操作,得到目标签名S。
在获取目标签名S后,若有用户对该目标签名S对应的区块进行验证的需求,则可通过公式e(G,S)=e(P1,H(m1))·e(P2,H(m2))·…·e(P1000,H(m1000))来验证。假设这多个签名的数量为1000,具体可以将e(G,S1+S2+…+S1000)拆分为e(G,S1)·e(G,S2)·…·e(G,S1000);再将e(G,S1)·e(G,S2)·…·e(G,S1000)拆分为e(G,sk1×H(m1))·…·e(G,sk1000×H(m1000)),以及e(G,sk1×H(m1))·…·e(G,sk1000×H(m1000))=e(sk1×G,H(m1))·…·e(sk1000×G,H(m1000));最后确定公式e(sk1×G,H(m1))·…·e(sk1000×G,H(m1000))=e(P1,H(m1))·e(P2,H(m2))·…·e(P1000,H(m1000))是否成立。
可选地,共识主节点将多个签名进行聚合处理,以得到目标签名,包括:
共识主节点将预设数量的签名按照指定顺序进行增量聚合处理,以得到目标签名。
具体地,共识主节点将预设数量的签名按照指定顺序进行增量聚合处理,可以首先将签名1和签名2进行聚合得到一个签名12,再将签名12和签名3继续聚合成签名123,……,以此类推,直到聚合得到签名123…n,即目标签名。
应理解,在共识主节点对多个签名校验通过后,则可基于待共识提议生成对应的共识区块,为了证明该共识区块是经过区块链中的多数共识备份节点共识过的,同时为便于用户或其他节点对生成的共识区块进行验证,可以将聚合处理后生成的目标签名存储在共识区块的区块体中。具体地,若共识主节点对多个签名校验通过,则将多个签名进行聚合处理,以得到目标签名之后,该方法还包括:
共识主节点基于待共识提议,生成目标区块;
共识主节点将目标签名存储到目标区块的区块体中。
其中,共识主节点将目标签名存储到目标区块的区块体中,具体可以是共识主节点基于目标签名生成共识证明,再将该共识证明存储到目标区块的区块体中。
如图4所示为本说明书实施例提供的区块链的签名方法的交互流程示意图,该交互过程涉及共识主节点和共识备份节点,包括:
S41,共识主节点发起针对待共识提议的共识提议;
S42,对待共识提议进行共识;
S43,接收多个共识备份节点针对待共识提议共识后的多个签名;
S44,基于多个共识备份节点对应的多个公钥,对多个签名进行校验;
S45,对多个签名校验通过、且多个签名的数量大于区块链中所有共识备份节点中的失效节点数量的两倍,则共识主节点将多个签名进行聚合处理;
S46,生成共识区块,并将目标签名保存在共识区块的区块体中。
在共识主节点为共识区块生成共识证明之前,共识主节点发起针对待共识提议的共识提议,多个备份节点对该待共识提议进行共识,共识主节点接收多个共识备份节点针对待共识提议共识后的多个签名,共识主节点基于多个共识备份节点对应的多个公钥,对多个签名进行校验,若共识主节点对多个签名校验通过,且多个签名的数量大于区块链中所有共识备份节点中的失效节点数量的两倍,则将多个签名进行聚合处理,得到目标签名,作为基于待共识提议生成的共识区块的共识证明。由于最后保存在基于待共识提议生成的共识区块的签名数量被聚合为一个,这样即使在区块链中共识备份节点数量线性增加的前提下,最终保存在共识区块中的共识证明的签名数量也只有一个,从而能够极大地节省共识区块中的存储空间。
如图5所示,为本说明书的一个实施例提供的一种区块链系统500的结构示意图。请参见图5,在一种软件实施方式中,区块链系统500可包括共识主节点501和多个共识备份节点502,其中:
共识主节点501,发起针对待共识提议的共识提议;
多个共识备份节点502,对所述待共识提议进行共识;
所述共识主节点501,接收所述多个共识备份节点针对所述待共识提议共识后的多个签名;
所述共识主节点501,基于所述多个共识备份节点对应的多个公钥,对所述多个签名进行校验;以及若对所述多个签名校验通过、且所述多个签名的数量大于区块链中所有共识备份节点中失效节点数量的两倍,则将所述多个签名进行聚合处理,以得到目标签名。
在共识主节点为共识区块生成共识证明之前,共识主节点发起针对待共识提议的共识提议,多个备份节点对该待共识提议进行共识,共识主节点接收多个共识备份节点针对待共识提议共识后的多个签名,共识主节点基于多个共识备份节点对应的多个公钥,对多个签名进行校验,若共识主节点对多个签名校验通过,且多个签名的数量大于区块链中所有共识备份节点中的失效节点数量的两倍,则将多个签名进行聚合处理,得到目标签名,作为基于待共识提议生成的共识区块的共识证明。由于最后保存在基于待共识提议生成的共识区块的签名数量被聚合为一个,这样即使在区块链中共识备份节点数量线性增加的前提下,最终保存在共识区块中的共识证明的签名数量也只有一个,从而能够极大地节省共识区块中的存储空间。
可选地,在一种实施方式中,所述多个共识备份节点针对所述待共识提议共识后的多个签名为基于Schnorr签名算法生成的。
可选地,在一种实施方式中,所述共识主节点501,用于:
基于Schnorr签名算法,将所述多个签名进行聚合处理,以得到目标签名。
可选地,在一种实施方式中,所述多个共识备份节点针对所述待共识提议共识后的多个签名为基于BLS签名算法生成的。
可选地,在一种实施方式中,所述共识主节点501,用于:
基于BLS签名算法,将所述多个签名进行聚合处理,以得到目标签名。
可选地,在一种实施方式中,所述共识主节点501,用于:
将所述预设数量的签名按照指定顺序进行增量聚合处理,以得到所述目标签名。
可选地,在一种实施方式中,在所述共识主节点501将所述多个签名进行聚合处理,以得到目标签名之后,所述共识主节点还用于:
基于所述待共识提议,生成目标区块;
将所述目标签名存储到所述目标区块的区块体中。
可选地,在一种实施方式中,所述共识主节点501,用于:
接收多个共识备份节点对待共识提议的多个签名以及所述待共识提议。
可选地,在一种实施方式中,所述共识主节点501,用于:
基于与所述多个共识备份节点的私钥相匹配的公钥,分别对所述多个签名进行解密,以获取解密后的多个签名;
获取所述待共识提议的摘要;
基于所述待共识提议的摘要和所述解密后的多个签名,对所述多个签名进行校验。
区块链系统500能够实现图1~图4的方法实施例的方法,具体可参考图1~图4所示实施例的区块链的签名方法,不再赘述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (10)
1.一种区块链的签名方法,包括:
共识主节点发起针对待共识提议的共识提议;
多个共识备份节点对所述待共识提议进行共识;
所述共识主节点接收所述多个共识备份节点针对所述待共识提议共识后的多个签名;
所述共识主节点基于所述多个共识备份节点对应的多个公钥,对所述多个签名进行校验;
若所述共识主节点对所述多个签名校验通过、且所述多个签名的数量大于区块链中所有共识备份节点中失效节点数量的两倍,则所述共识主节点将所述多个签名进行聚合处理,以得到目标签名。
2.如权利要求1所述的方法,所述多个共识备份节点针对所述待共识提议共识后的多个签名为基于Schnorr签名算法生成的。
3.如权利要求2所述的方法,所述共识主节点将所述多个签名进行聚合处理,以得到目标签名,包括:
所述共识主节点基于Schnorr签名算法,将所述多个签名进行聚合处理,以得到目标签名。
4.如权利要求1所述的方法,所述多个共识备份节点针对所述待共识提议共识后的多个签名为基于BLS签名算法生成的。
5.如权利要求4所述的方法,所述共识主节点将所述多个签名进行聚合处理,以得到目标签名,包括:
所述共识主节点基于BLS签名算法,将所述多个签名进行聚合处理,以得到目标签名。
6.如权利要求1所述的方法,所述共识主节点将所述多个签名进行聚合处理,以得到目标签名,包括:
所述共识主节点将所述预设数量的签名按照指定顺序进行增量聚合处理,以得到所述目标签名。
7.如权利要求1所述的方法,若所述共识主节点对所述多个签名校验通过,则所述共识主节点将所述多个签名进行聚合处理,以得到目标签名之后,所述方法还包括:
所述共识主节点基于所述待共识提议,生成目标区块;
所述共识主节点将所述目标签名存储到所述目标区块的区块体中。
8.如权利要求1所述的方法,所述共识主节点基于所述多个共识备份节点对应的多个公钥,对所述多个签名进行校验,包括:
所述共识主节点基于所述多个共识备份节点对应的多个公钥,分别对所述多个签名进行解密,以获取解密后的多个签名;
获取所述待共识提议的摘要;
基于所述待共识提议的摘要和所述解密后的多个签名,对所述多个签名进行校验。
9.一种区块链系统,包括:
共识主节点,发起针对待共识提议的共识提议;
多个共识备份节点,对所述待共识提议进行共识;
所述共识主节点,接收所述多个共识备份节点针对所述待共识提议共识后的多个签名;
所述共识主节点,基于所述多个共识备份节点对应的多个公钥,对所述多个签名进行校验;以及若对所述多个签名校验通过、且所述多个签名的数量大于区块链中所有共识备份节点中失效节点数量的两倍,则将所述多个签名进行聚合处理,以得到目标签名。
10.如权利要求9所述的系统,所述多个共识备份节点针对所述待共识提议共识后的多个签名为基于Schnorr签名算法生成的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911050859.2A CN110798308A (zh) | 2019-10-31 | 2019-10-31 | 一种区块链的签名方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911050859.2A CN110798308A (zh) | 2019-10-31 | 2019-10-31 | 一种区块链的签名方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110798308A true CN110798308A (zh) | 2020-02-14 |
Family
ID=69442338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911050859.2A Pending CN110798308A (zh) | 2019-10-31 | 2019-10-31 | 一种区块链的签名方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110798308A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111443895A (zh) * | 2020-03-12 | 2020-07-24 | 杭州泛链科技有限公司 | 一种应用于区块链的可验证随机数生成方法 |
CN111445334A (zh) * | 2020-03-30 | 2020-07-24 | 北京数字认证股份有限公司 | 一种区块链系统的聚合签名方法、装置及存储介质 |
CN111444044A (zh) * | 2020-03-27 | 2020-07-24 | 苏州链原信息科技有限公司 | 用于数据冗余备份校验的方法、电子设备及计算机存储介质 |
CN111478775A (zh) * | 2020-06-22 | 2020-07-31 | 杭州趣链科技有限公司 | 一种交互式聚合签名方法、设备及存储介质 |
CN111523899A (zh) * | 2020-07-03 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 联盟链的共识方法、数据校验方法、装置及系统 |
CN111526217A (zh) * | 2020-07-03 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 一种区块链中的共识方法和系统 |
CN111865894A (zh) * | 2020-05-27 | 2020-10-30 | 布比(北京)网络技术有限公司 | 区块有效性的验证方法及装置 |
CN113055188A (zh) * | 2021-03-02 | 2021-06-29 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN113254264A (zh) * | 2021-04-14 | 2021-08-13 | 卓尔智联(武汉)研究院有限公司 | 一种区块链的数据备份方法、装置及存储介质 |
CN113301002A (zh) * | 2020-04-24 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 一种信息处理方法、装置、电子设备以及存储介质 |
CN113347174A (zh) * | 2021-05-31 | 2021-09-03 | 矩阵元技术(深圳)有限公司 | 区块链中的共识方法、装置和电子设备 |
CN113657898A (zh) * | 2020-06-05 | 2021-11-16 | 支付宝(杭州)信息技术有限公司 | 联盟链中的共识方法和系统 |
WO2021244568A1 (zh) * | 2020-06-05 | 2021-12-09 | 支付宝(杭州)信息技术有限公司 | 区块链中的共识方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106789095A (zh) * | 2017-03-30 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 分布式系统及消息处理方法 |
CN110300172A (zh) * | 2019-06-28 | 2019-10-01 | 深圳市网心科技有限公司 | 一种区块链数据的共识方法及相关设备 |
-
2019
- 2019-10-31 CN CN201911050859.2A patent/CN110798308A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106789095A (zh) * | 2017-03-30 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 分布式系统及消息处理方法 |
CN110300172A (zh) * | 2019-06-28 | 2019-10-01 | 深圳市网心科技有限公司 | 一种区块链数据的共识方法及相关设备 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111443895A (zh) * | 2020-03-12 | 2020-07-24 | 杭州泛链科技有限公司 | 一种应用于区块链的可验证随机数生成方法 |
CN111444044A (zh) * | 2020-03-27 | 2020-07-24 | 苏州链原信息科技有限公司 | 用于数据冗余备份校验的方法、电子设备及计算机存储介质 |
CN111445334A (zh) * | 2020-03-30 | 2020-07-24 | 北京数字认证股份有限公司 | 一种区块链系统的聚合签名方法、装置及存储介质 |
CN111445334B (zh) * | 2020-03-30 | 2023-09-05 | 北京数字认证股份有限公司 | 一种区块链系统的聚合签名方法、装置及存储介质 |
CN113301002B (zh) * | 2020-04-24 | 2023-05-09 | 阿里巴巴集团控股有限公司 | 一种信息处理方法、装置、电子设备以及存储介质 |
CN113301002A (zh) * | 2020-04-24 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 一种信息处理方法、装置、电子设备以及存储介质 |
CN111865894A (zh) * | 2020-05-27 | 2020-10-30 | 布比(北京)网络技术有限公司 | 区块有效性的验证方法及装置 |
CN113657898A (zh) * | 2020-06-05 | 2021-11-16 | 支付宝(杭州)信息技术有限公司 | 联盟链中的共识方法和系统 |
WO2021244568A1 (zh) * | 2020-06-05 | 2021-12-09 | 支付宝(杭州)信息技术有限公司 | 区块链中的共识方法和系统 |
CN111478775A (zh) * | 2020-06-22 | 2020-07-31 | 杭州趣链科技有限公司 | 一种交互式聚合签名方法、设备及存储介质 |
WO2021258548A1 (zh) * | 2020-06-22 | 2021-12-30 | 杭州趣链科技有限公司 | 一种交互式聚合签名方法、设备及存储介质 |
CN111526217A (zh) * | 2020-07-03 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 一种区块链中的共识方法和系统 |
CN113888168A (zh) * | 2020-07-03 | 2022-01-04 | 支付宝(杭州)信息技术有限公司 | 联盟链的共识方法、数据校验方法、装置及系统 |
US11265173B2 (en) | 2020-07-03 | 2022-03-01 | Alipay (Hangzhou) Information Technology Co., Ltd. | Methods and systems for consensus in blockchains |
US11366932B2 (en) | 2020-07-03 | 2022-06-21 | Alipay (Hangzhou) Information Technology Co., Ltd. | Consensus method and data verification method, apparatus, and system of consortium blockchain |
CN111526217B (zh) * | 2020-07-03 | 2020-10-09 | 支付宝(杭州)信息技术有限公司 | 一种区块链中的共识方法和系统 |
CN111523899A (zh) * | 2020-07-03 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 联盟链的共识方法、数据校验方法、装置及系统 |
CN113055188A (zh) * | 2021-03-02 | 2021-06-29 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN113254264A (zh) * | 2021-04-14 | 2021-08-13 | 卓尔智联(武汉)研究院有限公司 | 一种区块链的数据备份方法、装置及存储介质 |
CN113347174A (zh) * | 2021-05-31 | 2021-09-03 | 矩阵元技术(深圳)有限公司 | 区块链中的共识方法、装置和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110798308A (zh) | 一种区块链的签名方法和系统 | |
CN107395557B (zh) | 一种业务请求的处理方法及装置 | |
CN110046996B (zh) | 数据处理方法和装置 | |
CN111526217B (zh) | 一种区块链中的共识方法和系统 | |
US10992481B2 (en) | Two-dimensional code generation method, apparatus, data processing method, apparatus, and server | |
CN117544296A (zh) | 受控加密私钥的发布 | |
CN109818730B (zh) | 盲签名的获取方法、装置和服务器 | |
JP6780771B2 (ja) | 検証情報付与装置、検証装置、情報管理システム、方法およびプログラム | |
WO2014112550A1 (ja) | 改ざん検知装置、改ざん検知方法、およびプログラム | |
US11228446B2 (en) | Blockchain-based reconciliation method and apparatus and electronic device | |
JP2022528072A (ja) | 安全な電子制御装置更新のためのローカル台帳ブロックチェーン | |
CN104012036A (zh) | 组合式数字证书 | |
CN113706150B (zh) | 一种区块确认方法及装置 | |
CN111324902A (zh) | 一种基于区块链的数据存取方法、装置及系统 | |
CN114710504A (zh) | 区块链系统中共识节点的轮换方法、节点和区块链系统 | |
CN113312630A (zh) | 实现可信调度的方法及装置 | |
US10979233B2 (en) | Monitoring time certificate generation requests | |
CN110363528B (zh) | 协同地址的生成、交易签名方法及装置、存储介质 | |
CN110008732B (zh) | 数据的关联方法、装置及设备 | |
CN114398651B (zh) | 秘密数据共享方法及分布式系统 | |
CN116522356A (zh) | 数据查询方法及装置 | |
CN116192395A (zh) | 用于分散式数据存储的可信系统 | |
CN111784338A (zh) | 信息处理方法、装置、系统及存储介质 | |
CN115766173A (zh) | 数据的处理方法、系统及装置 | |
CN115412275A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40023137 Country of ref document: HK |
|
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200214 |
|
RJ01 | Rejection of invention patent application after publication |