CN109617702B - 消息签名的方法、区块链节点及具有存储功能的装置 - Google Patents
消息签名的方法、区块链节点及具有存储功能的装置 Download PDFInfo
- Publication number
- CN109617702B CN109617702B CN201910088244.2A CN201910088244A CN109617702B CN 109617702 B CN109617702 B CN 109617702B CN 201910088244 A CN201910088244 A CN 201910088244A CN 109617702 B CN109617702 B CN 109617702B
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- message
- fragment
- signed
- 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.)
- Active
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/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Mobile Radio Communication Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种消息签名的方法、区块链节点及具有存储功能的装置,该方法包括:节点按照第一组网策略与区块链网络的部分节点组成第一分片,以使区块链网络的节点分为至少两个第一分片;与处于同一第一分片的其他节点共同选取出第一分片的一级代理节点;若自身被选取为一级代理节点,则在接收到待签名消息时对待签名消息进行签名,或者作为对待签名消息进行签名的候选节点,其中,一级代理节点的签名代表对应第一分片中所有节点的签名。本申请能够减小节点进行消息签名时的网络损耗,提高消息签名的效率。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种消息签名的方法、区块链节点及具有存储功能的装置。
背景技术
当前区块链技术中的共识机制研究及实现均是围绕拜占庭将军问题展开的。针对拜占庭将军问题,目前有两个解决方案,其中一个为口头消息,另一个为签名消息。但是当前区块链技术应用上,主要基于口头消息在共识机制设计以及工程实现,但是口头消息最多只能达到1/3容错,如果有大于或等于1/3的节点不诚实,整个网络上的节点将法达成共识。而签名消息理论上可以达到限容错,但是由于其网络消耗太过严重,不适于工程实现。
也就是说,现有技术中区块链网络上的节点在签名消息时,网络消耗较为严重,且效率较低。
发明内容
本申请主要解决的技术问题是提供一种消息签名的方法、区块链节点及具有存储功能的装置,能够减小节点进行消息签名时的网络损耗,提高消息签名的效率。
为解决上述技术问题,本申请采用的第一个技术方案是:提供一种消息签名的方法,所述方法应用于区块链网络中,所述区块链网络包括若干节点,所述方法包括:
所述节点按照第一组网策略与所述区块链网络的部分节点组成第一分片,以使所述区块链网络的节点分为至少两个所述第一分片;
与处于同一所述第一分片的其他节点共同选取出所述第一分片的一级代理节点;
若自身被选取为所述一级代理节点,则在接收到待签名消息时对所述待签名消息进行签名,或者作为对所述待签名消息进行签名的候选节点,其中,所述一级代理节点的签名代表对应所述第一分片中所有节点的签名。
其中,所述与处于同一所述第一分片的其他节点共同选取出一级代理节点的步骤包括:
判断与处于同一所述第一分片中的所有其他节点是否均达成一致性共识;
若是,则判断自身是否符合预设代理条件;
若符合所述预设代理条件,则确定自身为所述第一分片的一级代理节点;
若不符合所述预设代理条件,则接收所述第一分片中满足所述预设代理条件的其他节点发送的代理通知,并响应于所述代理通知确定所述满足所述预设代理条件的其他节点为所述第一分片的一级代理节点。
其中,所述判断与处于同一所述第一分片中的所有其他节点是否均达成一致性共识,包括:
接收所述区块链网络中的发起节点发送的第一验证消息;
接收处于同一所述第一分片中的每个其他节点发送的第二验证消息,其中,所述第二验证消息是所述其他节点基于其接收到的第一验证消息而产生的;
通过比对所述第一验证消息和每个所述其他节点发送的第二验证消息的内容是否均一致,若是,则确定与处于同一所述第一分片中的所有其他节点均达成一致性共识。
其中,所述预设代理条件包括以下至少一个:自身计算得到的哈希值为所述第一分片中最小的,自身为所述第一分片中最早计算出随机数的节点。
其中,所述若自身被选取为所述一级代理节点,则在接收到待签名消息时对所述待签名消息进行签名,或者作为对所述待签名消息进行签名的候选节点的步骤具体包括:
若自身被选取为所述一级代理节点,则判断所述区块链网络中的一级代理节点的数量是否满足预设数量条件;
若满足,则在接收到待签名消息时对所述待签名消息进行签名;
若不满足,则作为对所述待签名消息进行签名的候选节点。
其中,每个所述第一分片均包括n个节点,其中,n为整数,且n不小于2;
所述预设数量条件为所述区块链网络中的一级代理节点的数量不大于n。
其中,所述作为对所述待签名消息进行签名的候选节点,包括:
按照第二组网策略与部分其他一级代理节点组成第二分片,以使所述区块链网络的所述一级代理节点分成至少两个第二分片;
与处于同一所述第二分片的其他一级代理节点共同选取出所述第二分片的二级代理节点;
若自身被选取为所述二级代理节点,则在接收到待签名消息时对所述待签名消息进行签名,或者继续作为对所述待签名消息进行签名的候选节点,其中,所述二级代理节点的签名代表对应所述第二分片中所有节点的签名。
其中,所述第一组网策略为与离自身最近的第一设定数量的节点组成所述第一分片;所述第二组网策略为与离自身最近的第二设定数量的一级代理节点组成所述第二分片。
为解决上述技术问题,本申请采用的第二个技术方案是:提供一种区块链节点,包括存储器、处理器和通信电路,所述处理器分别与所述存储器和通信电路耦接;所述处理器用于运行所述存储器存储的程序数据,以结合所述通信电路实现上述任一项的方法。
为解决上述技术问题,本申请采用的第三个技术方案是:提供一种具有存储功能的装置,具有存储功能的装置存储有程序数据,程序数据能够被执行以实现以上任一项的方法。
本申请的有益效果是:本申请区块链网络中的节点按照第一组网策略与区块链网络的部分节点组成第一分片,以使区块链网络的节点分为至少两个第一分片;与处于同一第一分片的其他节点共同选取出第一分片的一级代理节点;若自身被选取为一级代理节点,则在接收到待签名消息时对待签名消息进行签名,或者作为对待签名消息进行签名的候选节点,其中,一级代理节点的签名代表对应第一分片中所有节点的签名。本申请通过对区块链网络中的节点进行分片,选取出代理节点代表其所处分片所有的节点进行消息签名,避免了全部节点参与消息签名带来的网络消耗,能够减小节点进行消息签名时的网络损耗,提高消息签名的效率。
附图说明
图1是本申请区块链网络一实施方式的结构示意图;
图2是本申请消息签名的方法一实施方式的流程示意图;
图3是图2消息签名的方法一具体实施方式的流程示意图;
图4是图3步骤302中发起节点为非诚实节点时节点进行共识的示意图;
图5是图3步骤302中发起节点为诚实节点时节点进行共识的示意图;
图6是图1区块链网络一具体实施方式的节点组网示意图;
图7是本申请区块链节点一实施方式的结构示意图;
图8是本申请具有存储功能的装置一实施方式的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,均属于本申请保护的范围。
请参见图1,图1是本申请区块链网络一实施方式的结构示意图。
如图1所示,在本实施方式中,区块链网络10包括8个节点,8个节点分别为第一节点11、第二节点12、第三节点13、第四节点14、第五节点15、第六节点16、第一节点17以及第二节点18。8个节点通过网络连接,连接方式可以是无线连接或有线连接。具体的,8个节点通过对等网络动态组网,形成一个“去中心化”的系统,8个节点互为对等节点,即每个节点对于整个网络来说都是一样的。在其他实施方式中,区块链网络10中的节点数量可以为3、4、5、6、7、9或者更多的数量,本申请对此不作限定。本申请仅以8个节点为例进行说明。
本实施方式中,节点可以是智能手机、智能手表、平板电脑以及车载电脑等具有通讯功能的智能终端,本申请对此不作限定。
为了说明本申请消息签名的方法,进一步参阅图2,图2是本申请消息签名的方法一实施方式的流程示意图。
结合图1和图2,本实施方式中,消息签名的方法包括以下步骤:
步骤201:节点按照第一组网策略与区块链网络的部分节点组成第一分片,以使区块链网络的节点分为至少两个第一分片。
本实施方式中,发起节点通过广播向区块链网络10发出一个待签名消息,发起节点19可以为区块链网络10中的任一个节点或者区块链网络10之外的一个节点。
区块链网络10中的节点接收到待签名消息后进行组网。第一节点11按照第一组网策略与区块链网络10的部分节点组成第一分片。与此同时,其他部分节点同第一节点11一样,也同时按照第一组网策略与区块链网络10的部分节点组成第一分片,以使区块链网络的节点分为至少两个第一分片。
本实施方式中,每个第一分片均包括2个节点,8个节点分为4个第一分片。在另一个实施方式中,每个第一分片中的节点数量均为n,其中,n为整数,且n不小于2。在又一个实施方式中,各个第一分片中的节点数量互不相同或部分相同,例如,其中一个第一分片中的节点数为3个,另一个第一分片中的节点为4个。本申请对此不作限定。
在一个具体的实施方式中,第一组网策略为与自身最近的第一设定数量的节点组成第一分片。在其他实施方式中,第一组网策略也可以为和与自身连接速度最快的第一设定数量的节点组成第一分片等,本申请对此不作限定。
在一个具体的实施方式中,第一节点11与第二节点12组网形成一个第一分片,第三节点13与第四点14组网形成一个第一分片,第五节点15与第六节点16组网形成一个第一分片,第七节点17与第八节点18组网形成一个第一分片。在其他实施方式中,8个节点也可以按其他组网方式组网组成4个第一分片,本申请对此不作限定。
步骤202:与处于同一第一分片的其他节点共同选取出第一分片的一级代理节点。
本实施方式中,节点与处于同一第一分片的其他节点共同选取出第一分片的一级代理节点。各个第一分片内的节点同时对待签名消息进行签名后各选取出一个一级代理节点。
在一个具体的实施方式中,第一节点11与第二节点12共同选取出第二节点12为一级代理节点。选取一级代理节点的方式可以是通过组内节点投票的方式选取或者通过随机选取的方式选取等等,本申请对此不作限定。同理,4个第一分片同时进行选取,共选取出4个一级代理节点,分别为第二节点12、第三节点13、第四节点14以及第五节点15。
步骤203:若自身被选取为一级代理节点,则在接收到待签名消息时对待签名消息进行签名,或者作为对待签名消息进行签名的候选节点,其中,一级代理节点的签名代表对应第一分片中所有节点的签名。
本实施方式中,一级代理节点的签名代表对应第一分片中所有节点的签名。若自身被选取为一级代理节点,则需要代表第一分片内的所有节点对待签名消息进行签名,如果没有被选取为一级代理节点,则后续无需对待签名消息进行签名。相对于现有技术中每个节点都需要进行消息签名而言,本申请能够减少消息签名的次数,从而降低网络消耗。
本实施方式中,若自身被选取为一级代理节点,则在接收到待签名消息时对待签名消息进行签名,或者作为对待签名消息进行签名的候选节点。
在一个具体的实施方式中,若自身被选取为一级代理节点,则判断区块链网络10中的一级代理节点的数量是否满足预设数量条件。若区块链网络10中的一级代理节点的数量满足预设数量条件,则在接收到待签名消息时对待签名消息进行签名。若不满足,则作为对待签名消息进行签名的候选节点。显然,如果一级代理节点的数量过多,则需要继续将一级代理节点进行进行分片,则将一级代理节点进行分片并作为对待签名消息进行签名的候选节点,以参加下一轮代理节点的选取。如果一级代理节点的数量较少,一级代理节点无法继续进行分片,则直接对待签名消息进行签名即可。也即,根据区块链网络10中的一级代理节点的数量确定是否进行下一步分片。在其他实施方式中,也可以根据其他方法确定是否进行下一步分片,本申请对此不作限定。
区别于现有技术,本申请提供一种消息签名的方法,该方法包括:节点按照第一组网策略与区块链网络的部分节点组成第一分片,以使区块链网络的节点分为至少两个第一分片;与处于同一第一分片的其他节点共同选取出第一分片的一级代理节点;若自身被选取为一级代理节点,则在接收到待签名消息时对待签名消息进行签名,或者作为对待签名消息进行签名的候选节点,其中,一级代理节点的签名代表对应第一分片中所有节点的签名。本申请通过对区块链网络中的节点进行分片,选取出代理节点代表其所处分片所有的节点进行消息签名,避免了全部节点参与消息签名带来的网络消耗,能够减小节点进行消息签名时的网络损耗,提高消息签名的效率。
参阅图3,图3是图2消息签名的方法一具体实施方式的流程示意图。
进一步结合图3,本实施方式中,消息签名的方法包括如下步骤:
步骤301:按照第一组网策略与区块链网络的部分节点组成第一分片,以使区块链网络的节点分为至少两个第一分片。
本实施方式中,步骤301与图2中的步骤201相同,在此不再赘述。
步骤302:判断与处于同一第一分片中的所有其他节点是否均达成一致性共识。
本实施方式中,节点判断与处于同一第一分片中的所有其他节点是否均达成一致性共识。如果节点与处于同一第一分片中的所有其他节点是否均达成一致性共识,则可选取一级代理节点,则执行步骤303。如果节点与处于同一第一分片中的所有其他节点未达成一致性共识,则无法进行一级代理节点的选取。具体的,如果节点与处于同一第一分片中的所有其他节点未达成一致性共识,此时如果节点为诚实节点,则可直接成为一级代理节点;而如果节点为不诚实节点,则该节点会在一致性共识的过程中被发现并被剔除。
本实施方式中,节点接收区块链网络10中的发起节点19发送的第一验证消息;接收处于同一第一分片中的每个其他节点发送的第二验证消息,其中,第二验证消息是其他节点基于其接收到的第一验证消息而产生的;通过比对第一验证消息和每个其他节点发送的第二验证消息的内容是否均一致,若是,则确定与处于同一第一分片中的所有其他节点均达成一致性共识。
为了说明本申请中消息签名中的共识过程,进一步参阅图4和图5。图4是图3步骤302中发起节点为非诚实节点时节点进行共识的示意图;图5是图3步骤302中发起节点为诚实节点时节点进行共识的示意图。
如图4所示,假设发起节点19为非诚实节点。发起节点19会向第一节点11发送一个内容为“m:9”的第一验证信息,而向第二节点12发送一个内容为“a:9”的第一验证信息。第二节点12接收到内容为“a:9”的第一验证信息后,签名以形成一个内容为“a:9:2”的第二验证信息,并将内容为“a:9:2”的第二验证信息发送给第一节点11。第一节点11比对内容为“a:9:2”的第二验证信息和内容为“m:9”的第一验证信息。由于内容为“a:9:2”的第二验证信息和内容为“m:9”的第一验证信息不一致,则可判定发起节点19为不诚实节点,并标记第二节点12为诚实节点,第一节点11和第二节点12达成共识。同理,第二节点12也可以验证第一节点11是否为诚实节点,以达成共识。同时,由于发起节点19不诚实,则可向第一分片内的所有节点发送广播以结束行动。
如图5所示,假设发起节点19为诚实节点。发起节点19会向第一节点11和第二节点12同时发送一个内容为“m:9”的第一验证信息。由于签名的不可伪造性,第二节点12无法伪造发起节点19的签名,因此,如果第二节点12为诚实节点,则签名形成第二验证信息并转发给第一节点11,第一节点11与第二节点12和发起节点19达成共识。如果第二节点12为非诚实节点,则会不转发第二验证信息,第一节点11可判断发起节点19为诚实节点,并与发起节点19达成共识,同时标记第二节点12为非诚实节点。
需要说明的是,以上仅以一个第一分片内有2个节点的情况进行说明,当一个第一分片中有超过2个的节点的情况时,可根据以上方式进行分组验证,以进行一致性共识。
步骤303:判断自身是否符合预设代理条件。
本实施方式中,节点在所处第一分片与其他节点达成一致性共识后,判断自身是否符合预设代理条件。
在一个具体的实施方式中,预设代理条件包括以下至少一个:自身计算得到的哈希值为第一分片中最小的,自身为第一分片中最早计算出随机数的节点。在其他实施方式中,预设代理条件也可以为其他条件,本申请对此不作限定。
本实施方式中,若符合预设代理条件,执行步骤304;若不符合预设代理条件,执行步骤308。
步骤304:确定自身为第一分片的一级代理节点。
本实施方式中,节点判断自身符合预设代理条件后,向区块链网络10上的其他节点发送广播,以告知其他节点自身为所处第一分片的一级代理节点。根据其他一级代理节点发送的广播即可获取区块链网络10中的一级代理节点的数量。
步骤305:判断区块链网络中的一级代理节点的数量是否满足预设数量条件。
本实施方式中,节点在确定自身为第一分片的一级代理节点之后,判断区块链网络10中的一级代理节点的数量是否满足预设数量条件。如果区块链网络10中的一级代理节点的数量满足预设数量条件,则执行步骤306;如果区块链网络10中的一级代理节点的数量不满足预设数量条件,则执行步骤307。
在一个具体的实施方式中,每个第一分片均包括n个节点,其中,n为整数,且n不小于2。预设数量条件为区块链网络10中的一级代理节点的数量不大于n。即,如果区块链网络10中的一级代理节点的数量不大于n,则表明无法继续分片,则执行步骤306;如果区块链网络10中的一级代理节点的数量大于n,则表明可以继续分片,执行步骤308。
步骤306:在接收到待签名消息时对待签名消息进行签名。
本实施方式中,如果区块链网络10中的一级代理节点的数量满足预设数量条件,不进行进一步的分片。各个第一分片选取出的一级代理节点在接收到待签名消息时对待签名消息进行签名。
步骤307:作为对待签名消息进行签名的候选节点。
本实施方式中,如果区块链网络10中的一级代理节点的数量不满足预设数量条件,需要进行进一步的分片。各个第一分片选取出的一级代理节点作为对待签名消息进行签名的候选节点。
在一个具体的实施方式中,确定自身为一级代理节点的节点按照第二组网策略与部分其他一级代理节点组成第二分片,以使区块链网络10的一级代理节点分成至少两个第二分片。与处于同一第二分片的其他一级代理节点共同选取出第二分片的二级代理节点。若自身被选取为二级代理节点,则在接收到待签名消息时对待签名消息进行签名,或者继续作为对待签名消息进行签名的候选节点,其中,二级代理节点的签名代表对应第二分片中所有节点的签名。选取二级代理节点的步骤与选取一级代理节点的步骤相同,在此不再赘述。第二组网策略为与自身最近的第二设定数量的节点组成第二分片。在其他实施方式中,第一组网策略可以和第二组网策略相同,也可以不相同;第二组网策略也可以为和与自身连接速度最快的第二设定数量的节点组成第二分片等,本申请对此不作限定,只需能够组网形成第二分片即可。需要说明的是,本实施方式中,仅以两级代理节点选取进行说明,根据节点的数量和代理节点的选取方式,可以进行多级代理节点的选取。通过多级代理节点的选取,减小了节点消息签名的次数,减小了网络跳数,从而降低了网络消耗。
步骤308:接收第一分片中满足预设代理条件的其他节点发送的代理通知,并响应于代理通知确定满足预设代理条件的其他节点为第一分片的一级代理节点。
本实施方式中,节点在确定自身不为第一分片的一级代理节点之后,则接收第一分片中满足预设代理条件的其他节点发送的代理通知,并响应于代理通知确定满足预设代理条件的其他节点为第一分片的一级代理节点。即节点在确定自身不为第一分片的一级代理节点之后不参与后续的消息签名,减少了消息签名的次数,降低了网络消耗。
参阅图6,图6是图1区块链网络一具体实施方式的节点组网示意图。需要说明的是,图6为节点都能达成共识时的节点组网示意图。由于节点都能达成共识时,消息签名的网络跳数最大,因此,减小最大网络跳数的数量即可减少消息签名的网路跳数,从而减小网络消耗。
本实施方式中,每个第一分片均包括2个节点,8个节点分为4个第一分片。第一节点11与第二节点12共同选取出第二节点12为一级代理节点。选取一级代理节点的方式可以是通过组内节点投票的方式选取或者通过随机选取的方式选取等等,本申请对此不作限定。同理,4个第一分片同时进行选取,共选取出4个一级代理节点,分别为第二节点12、第三节点13、第四节点14以及第五节点15。
在第一节点11和第二节点12组成的第一分片中,第一节点11不符合预设代理条件,执行步骤307。而第二节点12符合预设代理条件,执行步骤304。同理,区块链网络10中的其他节点根据自身判断执行相应的步骤,从而选取出4个一级代理节点。
第二节点12、第三节点13、第五节点15以及第七节点17被选取为一级代理节点。即,区块链网络10中的一级代理节点的数量为4个。需要进一步进行分片。四个一级代理节点作为对待签名消息进行签名的候选节点以2个节点为一个分片进行分片。第二节点12和第三节点13组成一个第二分片,第五节点15和第七节点17组成一个第二分片。通过进一步选取,第三节点13和第五节点15被选取为二级代理节点。二级代理节点的数量不大于2,无法进行分片,第三节点13和第五节点15相互签名即可得到整个区块链网络10的签名。
进一步的,如果区块链网络10需要与区块链网络10外的其他节点进行消息签名,则从第三节点13和第五节点15中选取出三级代理节点代表8个节点参与与区块链网络10外的其他节点进行消息签名。
当区块链网络10中的节点数为8分片,分片大小n为2时,仅需3跳即可完成数字签名,大大降低了网络消耗。进一步的,当区块链网络10中的节点数为更多时,分片大小n取2时,网络跳数依然为最小。具体的,当节点总数为一千时,分片大小n取2,网络总跳数为10;当节点总数为一万时,分片大小n取2,网络总跳数为14;当节点总数为十万时,分片大小n取2,网络总跳数为17;当节点总数为一百万时,分片大小n取2,网络总跳数为20;当节点总数为一千万时,分片大小n取2,网络总跳数为24;当节点总数为一亿时,分片大小n取2,网络总跳数为27。
区别于现有技术,本申请提供一种消息签名的方法,该方法包括:节点按照第一组网策略与区块链网络的部分节点组成第一分片,以使区块链网络的节点分为至少两个第一分片;与处于同一第一分片的其他节点共同选取出第一分片的一级代理节点;若自身被选取为一级代理节点,则在接收到待签名消息时对待签名消息进行签名,或者作为对待签名消息进行签名的候选节点,其中,一级代理节点的签名代表对应第一分片中所有节点的签名。本申请通过对区块链网络中的节点进行分片,选取出代理节点代表其所处分片所有的节点进行消息签名,避免了全部节点参与消息签名带来的网络消耗,能够减小节点进行消息签名时的网络损耗,提高消息签名的效率。
参阅图7,图7是本申请区块链节点一实施方式的结构示意图。
如图7所示,本实施方式中,区块链节点70可以为图1中的任意一个节点。区块链节点70可以是智能手机、智能手表、平板电脑以及车载电脑等具有通讯功能的智能终端,本申请对此不作限定。区块链节点70包括存储器71、处理器72和通信电路73。处理器72分别与存储器71和通信电路73耦接;处理器72用于运行存储器71存储的程序数据,以结合通信电路73实现以上消息签名的方法。多个区块链节点70组网形成区块链,同时执行程序数据,即可实现图3中的组网工作,并进行代理节点的选取和消息签名。
区别于现有技术,本申请提供一种区块链节点,区块链节点按照第一组网策略与区块链网络的部分节点组成第一分片,以使区块链网络的节点分为至少两个第一分片;与处于同一第一分片的其他节点共同选取出第一分片的一级代理节点;若自身被选取为一级代理节点,则在接收到待签名消息时对待签名消息进行签名,或者作为对待签名消息进行签名的候选节点,其中,一级代理节点的签名代表对应第一分片中所有节点的签名。本申请通过对区块链网络中的节点进行分片,选取出代理节点代表其所处分片所有的节点进行消息签名,避免了全部节点参与消息签名带来的网络消耗,能够减小节点进行消息签名时的网络损耗,提高消息签名的效率。
请参阅图8,图8是本申请具有存储功能的装置一实施方式的结构示意图。具有存储功能的装置80中存储有至少一个程序或指令81,程序或指令81用于实现上述任一方法。在一个实施例中,具有存储功能的装置包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请通过对区块链网络中的节点进行分片,选取出代理节点代表其所处分片所有的节点进行消息签名,避免了全部节点参与消息签名带来的网络消耗,能够减小节点进行消息签名时的网络损耗,提高消息签名的效率。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。
以上仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (7)
1.一种消息签名的方法,其特征在于,所述方法应用于区块链网络中,所述区块链网络包括若干节点,所述方法包括:
所述节点按照第一组网策略与所述区块链网络的部分节点组成第一分片,以使所述区块链网络的节点分为至少两个所述第一分片;每个所述第一分片均包括2个节点;
与处于同一所述第一分片的其他节点共同选取出所述第一分片的一级代理节点;
若自身被选取为所述一级代理节点,则在接收到待签名消息时对所述待签名消息进行签名,或者作为对所述待签名消息进行签名的候选节点,其中,所述一级代理节点的签名代表对应所述第一分片中所有节点的签名;
所述若自身被选取为所述一级代理节点,则在接收到待签名消息时对所述待签名消息进行签名,或者作为对所述待签名消息进行签名的候选节点的步骤具体包括:
若自身被选取为所述一级代理节点,则判断所述区块链网络中的一级代理节点的数量是否满足预设数量条件;所述预设数量条件为所述区块链网络中的一级代理节点的数量不大于2;
若满足,则在接收到待签名消息时对所述待签名消息进行签名;
若不满足,则作为对所述待签名消息进行签名的候选节点;
所述作为对所述待签名消息进行签名的候选节点,包括:
按照第二组网策略与部分其他一级代理节点组成第二分片,以使所述区块链网络的所述一级代理节点分成至少两个所述第二分片;其中,每个所述第二分片均包括2个节点;
与处于同一所述第二分片的其他一级代理节点共同选取出所述第二分片的二级代理节点;
若自身被选取为所述二级代理节点,则在接收到待签名消息时对所述待签名消息进行签名,或者继续作为对所述待签名消息进行签名的候选节点,其中,所述二级代理节点的签名代表对应所述第二分片中所有节点的签名。
2.根据权利要求1所述的方法,其特征在于,所述与处于同一所述第一分片的其他节点共同选取出一级代理节点的步骤包括:
判断与处于同一所述第一分片中的所有其他节点是否均达成一致性共识;
若是,则判断自身是否符合预设代理条件;
若符合所述预设代理条件,则确定自身为所述第一分片的一级代理节点;
若不符合所述预设代理条件,则接收所述第一分片中满足所述预设代理条件的其他节点发送的代理通知,并响应于所述代理通知确定所述满足所述预设代理条件的其他节点为所述第一分片的一级代理节点。
3.根据权利要求2所述的方法,其特征在于,所述判断与处于同一所述第一分片中的所有其他节点是否均达成一致性共识,包括:
接收所述区块链网络中的发起节点发送的第一验证消息;
接收处于同一所述第一分片中的每个其他节点发送的第二验证消息,其中,所述第二验证消息是所述其他节点基于其接收到的第一验证消息而产生的;
通过比对所述第一验证消息和每个所述其他节点发送的第二验证消息的内容是否均一致,若是,则确定与处于同一所述第一分片中的所有其他节点均达成一致性共识。
4.根据权利要求2所述的方法,其特征在于,所述预设代理条件包括以下至少一个:自身计算得到的哈希值为所述第一分片中最小的,自身为所述第一分片中最早计算出随机数的节点。
5.根据权利要求1所述的方法,其特征在于,所述第一组网策略为与离自身最近的第一设定数量的节点组成所述第一分片;所述第二组网策略为与离自身最近的第二设定数量的一级代理节点组成所述第二分片。
6.一种区块链节点,其特征在于,包括存储器、处理器和通信电路,所述处理器分别与所述存储器和通信电路耦接;
所述处理器用于运行所述存储器存储的程序数据,以结合所述通信电路实现权利要求1至5任一项所述的方法。
7.一种具有存储功能的装置,其特征在于,所述具有存储功能的装置存储有程序数据,所述程序数据能够被执行以实现权利要求1-5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910088244.2A CN109617702B (zh) | 2019-01-29 | 2019-01-29 | 消息签名的方法、区块链节点及具有存储功能的装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910088244.2A CN109617702B (zh) | 2019-01-29 | 2019-01-29 | 消息签名的方法、区块链节点及具有存储功能的装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109617702A CN109617702A (zh) | 2019-04-12 |
CN109617702B true CN109617702B (zh) | 2022-03-08 |
Family
ID=66019186
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910088244.2A Active CN109617702B (zh) | 2019-01-29 | 2019-01-29 | 消息签名的方法、区块链节点及具有存储功能的装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109617702B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110474818B (zh) * | 2019-07-11 | 2023-02-28 | 福州博泉网络科技有限公司 | 区块链网络嗅探器、网络嗅探方法和优化方法 |
CN110505305B (zh) * | 2019-08-27 | 2022-04-01 | 深圳市迅雷网络技术有限公司 | 一种区块链分片方法、装置及区块链系统 |
SG11202012848PA (en) * | 2020-02-24 | 2021-01-28 | Alipay Hangzhou Inf Tech Co Ltd | Blockchain-based consensus process |
CN111541733B (zh) * | 2020-03-06 | 2022-09-20 | 杜晓楠 | 在p2p网络中测试消息存储的方法、计算机可读存储介质和p2p网络 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101188569A (zh) * | 2006-11-16 | 2008-05-28 | 饶大平 | 在网络上构建数据量子空间的方法及分布式文件存储系统 |
CN105095794A (zh) * | 2015-07-20 | 2015-11-25 | 武汉科技大学 | 一种基于平衡的梅肯哈希树的动态云数据完整性验证方法 |
CN107464106A (zh) * | 2017-07-25 | 2017-12-12 | 北京果仁宝科技有限公司 | 区块链主链与侧链间交易的方法及系统 |
WO2018140370A1 (en) * | 2017-01-25 | 2018-08-02 | Dow Agrosciences Llc | Methods and systems for selective quantitation and detection of allergens including gly m 7 |
CN108366113A (zh) * | 2018-02-08 | 2018-08-03 | 南京邮电大学 | 一种基于dpos的分组高容错共识机制 |
CN108900321A (zh) * | 2018-06-06 | 2018-11-27 | 广州链块科技有限公司 | 一种区块链分区间进行实时原子交易的方法 |
-
2019
- 2019-01-29 CN CN201910088244.2A patent/CN109617702B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101188569A (zh) * | 2006-11-16 | 2008-05-28 | 饶大平 | 在网络上构建数据量子空间的方法及分布式文件存储系统 |
CN105095794A (zh) * | 2015-07-20 | 2015-11-25 | 武汉科技大学 | 一种基于平衡的梅肯哈希树的动态云数据完整性验证方法 |
WO2018140370A1 (en) * | 2017-01-25 | 2018-08-02 | Dow Agrosciences Llc | Methods and systems for selective quantitation and detection of allergens including gly m 7 |
CN107464106A (zh) * | 2017-07-25 | 2017-12-12 | 北京果仁宝科技有限公司 | 区块链主链与侧链间交易的方法及系统 |
CN108366113A (zh) * | 2018-02-08 | 2018-08-03 | 南京邮电大学 | 一种基于dpos的分组高容错共识机制 |
CN108900321A (zh) * | 2018-06-06 | 2018-11-27 | 广州链块科技有限公司 | 一种区块链分区间进行实时原子交易的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109617702A (zh) | 2019-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109617702B (zh) | 消息签名的方法、区块链节点及具有存储功能的装置 | |
CN109936457B (zh) | 区块链多方见证方法、装置、设备及计算机可读存储介质 | |
CN107332876B (zh) | 区块链状态的同步方法及装置 | |
CN107171810B (zh) | 区块链的验证方法及装置 | |
CN110868441A (zh) | 区块链公链的维护方法、装置、节点及区块链公链 | |
CN110245956B (zh) | 一种基于异步多链的区块链交易确认方法及系统 | |
EP3646570B1 (en) | Probabilistic relay for efficient propagation in a blockchain network | |
CN113347164B (zh) | 基于区块链的分布式共识系统及方法、设备、存储介质 | |
CN108616596A (zh) | 基于动态授权和网络环境感知的区块链自适应共识方法 | |
CN109379343B (zh) | 一种区块链的异构共识方法及终端 | |
CN111698094B (zh) | 一种基于区块链系统的共识方法及区块链系统 | |
CN107147724A (zh) | 一种消息推送方法、服务器及计算机可读存储介质 | |
CN111130790A (zh) | 基于区块链节点网络的共识出块方法 | |
CN110213038B (zh) | 一种区块链形成共识的方法及系统 | |
KR20200081533A (ko) | 사물 인터넷 환경을 위한 동적 블라인드 투표기반의 블록체인 합의방법 | |
CN113157457B (zh) | 区块链分片负载均衡方法及装置 | |
CN114218612A (zh) | 一种适用于联盟链高频交易场景的共识方法 | |
CN113014635A (zh) | 区块链系统的节点类型划分方法、装置及区块链系统 | |
CN114745140B (zh) | 基于聚合加密的城市规划领域区块链共识验证方法及系统 | |
CN110944016A (zh) | DDoS攻击检测方法、装置、网络设备及存储介质 | |
CN113660125A (zh) | 一种基于随机可信委员会的共识方法及装置 | |
CN115633035A (zh) | 一种基于改进的pbft物联网区块链共识算法 | |
CN110149221B (zh) | 一种基于联盟链的自适应网络的构建方法及装置 | |
WO2017097117A1 (zh) | 一种报文调度方法和装置 | |
CN112422302B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |