CN109617702A - 消息签名的方法、区块链节点及具有存储功能的装置 - Google Patents

消息签名的方法、区块链节点及具有存储功能的装置 Download PDF

Info

Publication number
CN109617702A
CN109617702A CN201910088244.2A CN201910088244A CN109617702A CN 109617702 A CN109617702 A CN 109617702A CN 201910088244 A CN201910088244 A CN 201910088244A CN 109617702 A CN109617702 A CN 109617702A
Authority
CN
China
Prior art keywords
node
fragment
nodes
signed
block chain
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
CN201910088244.2A
Other languages
English (en)
Other versions
CN109617702B (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.)
SHENZHEN ADVANCED RIVER SYSTEM TECHNOLOGY Co Ltd
Original Assignee
SHENZHEN ADVANCED RIVER SYSTEM TECHNOLOGY 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 SHENZHEN ADVANCED RIVER SYSTEM TECHNOLOGY Co Ltd filed Critical SHENZHEN ADVANCED RIVER SYSTEM TECHNOLOGY Co Ltd
Priority to CN201910088244.2A priority Critical patent/CN109617702B/zh
Publication of CN109617702A publication Critical patent/CN109617702A/zh
Application granted granted Critical
Publication of CN109617702B publication Critical patent/CN109617702B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

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 (10)

1.一种消息签名的方法,其特征在于,所述方法应用于区块链网络中,所述区块链网络包括若干节点,所述方法包括:
所述节点按照第一组网策略与所述区块链网络的部分节点组成第一分片,以使所述区块链网络的节点分为至少两个所述第一分片;
与处于同一所述第一分片的其他节点共同选取出所述第一分片的一级代理节点;
若自身被选取为所述一级代理节点,则在接收到待签名消息时对所述待签名消息进行签名,或者作为对所述待签名消息进行签名的候选节点,其中,所述一级代理节点的签名代表对应所述第一分片中所有节点的签名。
2.根据权利要求1所述的方法,其特征在于,所述与处于同一所述第一分片的其他节点共同选取出一级代理节点的步骤包括:
判断与处于同一所述第一分片中的所有其他节点是否均达成一致性共识;
若是,则判断自身是否符合预设代理条件;
若符合所述预设代理条件,则确定自身为所述第一分片的一级代理节点;
若不符合所述预设代理条件,则接收所述第一分片中满足所述预设代理条件的其他节点发送的代理通知,并响应于所述代理通知确定所述满足所述预设代理条件的其他节点为所述第一分片的一级代理节点。
3.根据权利要求2所述的方法,其特征在于,所述判断与处于同一所述第一分片中的所有其他节点是否均达成一致性共识,包括:
接收所述区块链网络中的发起节点发送的第一验证消息;
接收处于同一所述第一分片中的每个其他节点发送的第二验证消息,其中,所述第二验证消息是所述其他节点基于其接收到的第一验证消息而产生的;
通过比对所述第一验证消息和每个所述其他节点发送的第二验证消息的内容是否均一致,若是,则确定与处于同一所述第一分片中的所有其他节点均达成一致性共识。
4.根据权利要求2所述的方法,其特征在于,所述预设代理条件包括以下至少一个:自身计算得到的哈希值为所述第一分片中最小的,自身为所述第一分片中最早计算出随机数的节点。
5.根据权利要求1所述的方法,其特征在于,所述若自身被选取为所述一级代理节点,则在接收到待签名消息时对所述待签名消息进行签名,或者作为对所述待签名消息进行签名的候选节点的步骤具体包括:
若自身被选取为所述一级代理节点,则判断所述区块链网络中的一级代理节点的数量是否满足预设数量条件;
若满足,则在接收到待签名消息时对所述待签名消息进行签名;
若不满足,则作为对所述待签名消息进行签名的候选节点。
6.根据权利要求5所述的方法,其特征在于,每个所述第一分片均包括n个节点,其中,n为整数,且n不小于2;
所述预设数量条件为所述区块链网络中的一级代理节点的数量不大于n。
7.根据权利要求1或6所述的方法,其特征在于,所述作为对所述待签名消息进行签名的候选节点,包括:
按照第二组网策略与部分其他一级代理节点组成第二分片,以使所述区块链网络的所述一级代理节点分成至少两个第二分片;
与处于同一所述第二分片的其他一级代理节点共同选取出所述第二分片的二级代理节点;
若自身被选取为所述二级代理节点,则在接收到待签名消息时对所述待签名消息进行签名,或者继续作为对所述待签名消息进行签名的候选节点,其中,所述二级代理节点的签名代表对应所述第二分片中所有节点的签名。
8.根据权利要求7所述的方法,其特征在于,所述第一组网策略为与离自身最近的第一设定数量的节点组成所述第一分片;所述第二组网策略为与离自身最近的第二设定数量的一级代理节点组成所述第二分片。
9.一种区块链节点,其特征在于,包括存储器、处理器和通信电路,所述处理器分别与所述存储器和通信电路耦接;
所述处理器用于运行所述存储器存储的程序数据,以结合所述通信电路实现权利要求1至8任一项所述的方法。
10.一种具有存储功能的装置,其特征在于,所述具有存储功能的装置存储有程序数据,所述程序数据能够被执行以实现权利要求1-8任一项所述的方法。
CN201910088244.2A 2019-01-29 2019-01-29 消息签名的方法、区块链节点及具有存储功能的装置 Active CN109617702B (zh)

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 true CN109617702A (zh) 2019-04-12
CN109617702B 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)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110474818A (zh) * 2019-07-11 2019-11-19 福州博泉网络科技有限公司 区块链网络嗅探器、网络嗅探方法和优化方法
CN110505305A (zh) * 2019-08-27 2019-11-26 深圳市网心科技有限公司 一种区块链分片方法、装置及区块链系统
CN111417946A (zh) * 2020-02-24 2020-07-14 支付宝(杭州)信息技术有限公司 基于区块链的共识处理
CN111541733A (zh) * 2020-03-06 2020-08-14 杜晓楠 在p2p网络中测试消息存储的方法、计算机可读存储介质和p2p网络

Citations (6)

* Cited by examiner, † Cited by third party
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 广州链块科技有限公司 一种区块链分区间进行实时原子交易的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
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 广州链块科技有限公司 一种区块链分区间进行实时原子交易的方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110474818A (zh) * 2019-07-11 2019-11-19 福州博泉网络科技有限公司 区块链网络嗅探器、网络嗅探方法和优化方法
CN110474818B (zh) * 2019-07-11 2023-02-28 福州博泉网络科技有限公司 区块链网络嗅探器、网络嗅探方法和优化方法
CN110505305A (zh) * 2019-08-27 2019-11-26 深圳市网心科技有限公司 一种区块链分片方法、装置及区块链系统
CN110505305B (zh) * 2019-08-27 2022-04-01 深圳市迅雷网络技术有限公司 一种区块链分片方法、装置及区块链系统
CN111417946A (zh) * 2020-02-24 2020-07-14 支付宝(杭州)信息技术有限公司 基于区块链的共识处理
CN111417946B (zh) * 2020-02-24 2023-08-04 支付宝(杭州)信息技术有限公司 基于区块链的共识处理
CN111541733A (zh) * 2020-03-06 2020-08-14 杜晓楠 在p2p网络中测试消息存储的方法、计算机可读存储介质和p2p网络
CN111541733B (zh) * 2020-03-06 2022-09-20 杜晓楠 在p2p网络中测试消息存储的方法、计算机可读存储介质和p2p网络

Also Published As

Publication number Publication date
CN109617702B (zh) 2022-03-08

Similar Documents

Publication Publication Date Title
CN109617702A (zh) 消息签名的方法、区块链节点及具有存储功能的装置
CN110288345A (zh) 跨链通信方法、装置、主链节点及存储介质
CN109618373A (zh) 链路选取方法及相关装置
CN106682984A (zh) 基于区块链的交易事务处理方法及系统
CN107480990A (zh) 区块链记账方法及装置
CN107294729A (zh) 区块链中不同节点之间的通信方法及装置
CN105488665A (zh) 一种去中心化的交易方法
CN107231239A (zh) 创世区块防伪方法及装置
CN107171810A (zh) 区块链的验证方法及装置
CN109684798A (zh) 一种基于公有区块链的共识算法、设备及存储介质
CN110298657A (zh) 一种区块链共识方法、相关装置及系统
CN110519711A (zh) 一种消息推送方法、装置、存储介质和服务器
CN103595623B (zh) 基于移动社交网络节点社会特性的机会路由行为建模方法
CN106549878A (zh) 一种业务分流方法和装置
CN108965469A (zh) 区块链网络成员动态管理方法、装置、设备及存储介质
CN111130790A (zh) 基于区块链节点网络的共识出块方法
CN109166040A (zh) 基于区块链的交易审计方法、装置、设备及存储介质
CN105303410A (zh) 虚拟物品分享方法和装置
CN111047439A (zh) 一种基于区块链的交易处理方法
CN109889312A (zh) 多链路数据传输方法、装置及计算机可读存储介质
Cai et al. A survey on routing algorithms for opportunistic mobile social networks
CN113645278B (zh) 一种区块链的跨链消息传输方法、设备、存储介质
CN109150981A (zh) 区块链网络组网方法、装置、设备及计算机可读存储介质
CN104009943B (zh) Lldp报文传输方法及dcb设备
CN109391643A (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