CN109698750B - 区块链的区块生成方法、装置、设备及可读存储介质 - Google Patents
区块链的区块生成方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN109698750B CN109698750B CN201811326048.6A CN201811326048A CN109698750B CN 109698750 B CN109698750 B CN 109698750B CN 201811326048 A CN201811326048 A CN 201811326048A CN 109698750 B CN109698750 B CN 109698750B
- Authority
- CN
- China
- Prior art keywords
- preset number
- character string
- nodes
- network training
- block
- 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
- 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/3236—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 cryptographic hash functions
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种区块链的区块生成方法、装置、设备及可读存储介质,涉及区块链技术领域,可以通过认领凭证,将哈希算力最好的节点加入到网络训练中,避免节点的哈希计算的算力被浪费,保证生成区块的节点是区块链中哈希算力最好的节点。所述方法包括:采用签名算法,对训练参数进行摘要签名处理,生成训练参数的结果字符串;对结果字符串进行分割,得到预设数目的字符串分段;当接收到预设数目的认领凭证时,启动网络训练,将预设数目的节点加入网络训练;获取预设数目的节点在加入网络训练后传输的预设数目的权重数据,基于预设数目的权重数据、训练参数、结果字符串以及预设数目的认领凭证,生成待写入区块。
Description
技术领域
本发明涉及区块链技术领域,特别是涉及一种区块链的区块生成方法、装置、设备及可读存储介质。
背景技术
区块链技术最早出现在比特币的底层实现机制中,目前广泛应用于共享账本中。共享账本使用由众多节点构成的去中心化分布式网络来记录交易,区块链技术就是共享账本最基础的核心部分。共享账本中不需要中央控制节点,当共享账本创建新增区块时,共享账本中的节点需要进行新增区块的工作量证明,进而确定对哪一个节点进行认证及授予区块生成权限,以便生成区块链中的新区块。
相关技术中,在对共享账本中的节点进行新增区块的工作量证明时,需要确定区块的哈希值,并基于哈希值的前导零的个数来控制节点区块生成的难度,实现对节点的认证,允许节点生成区块。
在实现本发明的过程中,发明人发现相关技术至少存在以下问题:
用于控制节点区块生成难度的前导零的个数取决于网络的难度值,而节点进行哈希计算的算力并没有参与,哈希计算的算力并不会对节点生成的工作量证明造成影响,导致哈希计算的算力被白白浪费了,生成区块的节点可能并不是区块链中哈希算力最好的节点。
发明内容
有鉴于此,本发明提供了一种区块链的区块生成方法、装置、设备及可读存储介质,主要目的在于解决目前哈希计算的算力被白白浪费了的问题。
依据本发明第一方面,提供了一种区块链的区块生成方法,该方法包括:
采用签名算法,对训练参数进行摘要签名处理,生成所述训练参数的结果字符串;
对所述结果字符串进行分割,得到预设数目的字符串分段;
当接收到所述预设数目的认领凭证时,启动网络训练,将预设数目的节点加入所述网络训练,所述预设数目的节点为发送所述预设数目的认领凭证的节点;
获取所述预设数目的节点在加入所述网络训练后传输的预设数目的权重数据,基于所述预设数目的权重数据、所述训练参数、所述结果字符串以及所述预设数目的认领凭证,生成待写入区块。
依据本发明第二方面,提供了一种区块链的区块生成方法,包括:
在预设数目的字符串分段中获取目标字符串分段,所述预设数目的字符串分段为发布端对结果字符串分割生成并发布的,所述结果字符串由所述发布端对训练参数进行摘要签名处理生成,所述目标字符串分段为所述预设数目的字符串分段中的任一字符串分段;
基于哈希算法,对所述目标字符串分段进行计算,生成认领凭证,将所述认领凭证返回至所述发布端;
当检测到加入网络训练时,确定在所述网络训练中的权重数据,将所述权重数据传输至所述发布端,所述网络训练由所述发布端在接收到预设数目的认领凭证后启动的。
依据本发明第三方面,提供了一种区块链的区块生成装置,包括:
处理模块,用于采用签名算法,对训练参数进行摘要签名处理,生成所述训练参数的结果字符串;
分割模块,用于对所述结果字符串进行分割,得到预设数目的字符串分段;
启动模块,用于当接收到所述预设数目的认领凭证时,启动网络训练,将预设数目的节点加入所述网络训练,所述预设数目的节点为发送所述预设数目的认领凭证的节点;
第一生成模块,用于获取所述预设数目的节点在加入所述网络训练后传输的预设数目的权重数据,基于所述预设数目的权重数据、所述训练参数、所述结果字符串以及所述预设数目的认领凭证,生成待写入区块。
依据本发明第四方面,提供了一种区块链的区块生成装置,包括:
获取模块,用于在预设数目的字符串分段中获取目标字符串分段,所述预设数目的字符串分段为发布端对结果字符串分割生成并发布的,所述结果字符串由所述发布端对训练参数进行摘要签名处理生成,所述目标字符串分段为所述预设数目的字符串分段中的任一字符串分段;
计算模块,用于基于哈希算法,对所述目标字符串分段进行计算,生成认领凭证,将所述认领凭证返回至所述发布端;
传输模块,用于当检测到加入网络训练时,确定在所述网络训练中的权重数据,将所述权重数据传输至所述发布端,所述网络训练由所述发布端在接收到预设数目的认领凭证后启动的。
依据本发明第五方面,提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面或第二方面所述方法的步骤。
依据本发明第六方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面或第二方面所述的方法的步骤。
借由上述技术方案,本发明提供的一种区块链的区块生成方法、装置、设备及可读存储介质,与目前前导零的个数取决于网络的难度值的方式相比,本发明采用签名算法,对训练参数进行摘要签名处理,生成训练参数的结果字符串,并对结果字符串进行分割,得到预设数目的字符串分段,以便当接收到预设数目的认领凭证时,启动网络训练,将预设数目的节点加入网络训练,获取预设数目的节点在加入网络训练后传输的预设数目的权重数据,基于预设数目的权重数据、训练参数、结果字符串以及预设数目的认领凭证,生成待写入区块,使得通过认领凭证,将哈希算力最好的节点加入到网络训练中,避免节点的哈希计算的算力被浪费,保证生成区块的节点是区块链中哈希算力最好的节点。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种区块链的区块生成方法流程示意图;
图2示出了本发明实施例提供的一种区块链的区块生成方法流程示意图;
图3A示出了本发明实施例提供的一种区块链的区块生成装置的结构示意图;
图3B示出了本发明实施例提供的一种区块链的区块生成装置的结构示意图;
图3C示出了本发明实施例提供的一种区块链的区块生成装置的结构示意图;
图3D示出了本发明实施例提供的一种区块链的区块生成装置的结构示意图;
图4A示出了本发明实施例提供的一种区块链的区块生成装置的结构示意图;
图4B示出了本发明实施例提供的一种区块链的区块生成装置的结构示意图;
图4C示出了本发明实施例提供的一种区块链的区块生成装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在对本发明进行详细的解释说明之前,先对本发明实施例涉及的数据共享系统进行简单介绍。
数据共享系统是指用于进行节点与节点之间数据共享的系统,该数据共享系统中可以包括N个节点,该N个节点可以是指数据共享系统中各个客户端,其中,N为正整数。每个节点可以在进行正常工作时生成数据,并基于数据维护该数据共享系统内的共享数据。为了保证数据共享系统内的信息互通,数据共享系统中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如,当数据共享系统中的任意节点接收到数据时,数据共享系统中的全部节点便将数据作为共享数据中的数据进行存储,使得数据共享系统中全部节点上存储的数据均一致。其中,数据共享系统可为交易系统,交易系统指用于金融交易的系统。交易系统中可以包括N个节点,每个节点在进行交易时生成账本数据,并基于账本数据维护该交易系统内的共享账本。数据共享系统中的每个节点均存储一条相同的区块链。区块链由多个区块组成,每个区块均存储有不同的数据,区块链上的全部区块存储的数据组成了区块链所在节点的共享数据。
其中,当某一节点请求在数据共享系统内进行数据共享时,由于该节点需要将数据广播给其他节点,以便其他节点生成区块,并将区块添加至自身存储的区块链中,因此,请求进行数据共享的节点即为发布端。在本发明实施例中,数据共享系统中的任一节点均可作为发布端。
本发明实施例提供了一种区块链的区块生成方法,可以通过认领凭证,将哈希算力最好的节点加入到网络训练中,避免节点的哈希计算的算力被浪费,保证生成区块的节点是区块链中哈希算力最好的节点的目的,如图1所示,该方法应用于发布端和节点,该方法包括:
101、发布端采用签名算法,对训练参数进行摘要签名处理,生成训练参数的结果字符串。
在本发明实施例中,为了后续对节点进行验证,并向节点证明发布的网络训练是存在的,发布端采用签名算法,对训练参数进行摘要签名处理,生成训练参数的结果字符串。具体参见下述步骤201中所示内容。
102、发布端对结果字符串进行分割,得到预设数目的字符串分段。
在本发明实施例中,为了使多个节点都可以进行认证,并减轻节点的认证负担,发布端在生成结果字符串后,对结果字符串进行分割,得到预设数目的字符串分段。具体参见下述步骤202中所示内容。
103、节点在预设数目的字符串分段中获取目标字符串分段,预设数目的字符串分段为发布端对结果字符串分割生成并发布的,结果字符串由发布端对训练参数进行摘要签名处理生成,目标字符串分段为预设数目的字符串分段中的任一字符串分段。
在本发明实施例中,当发布端将预设数目的字符串分段发布后,节点便可以在预设数目的字符串分段中获取任一字符串分段作为目标字符串分段。具体参见下述步骤203中所示内容。
104、节点基于哈希算法,对目标字符串分段进行计算,生成认领凭证,将认领凭证返回至发布端。
在本发明实施例中,节点为了加入到发布端发布的网络训练中,需要向发布端证明自身的哈希算力,具体地,基于哈希算法,对目标字符串分段进行计算,生成认领凭证,并将认领凭证返回至发布端。具体参见下述步骤203中所示内容。
105、当发布端接收到预设数目的认领凭证时,启动网络训练,将预设数目的节点加入网络训练,预设数目的节点为发送预设数目的认领凭证的节点。
在本发明实施例中,当发布端将预设数目的节点加入网络训练后,发布端为预设数目的节点分配在网络训练中的位置,根据预设数目的节点在网络训练中的位置,生成预设数目的节点之间的连接关系,并将连接关系传输至预设数目的节点中的每一个节点。具体参见下述步骤204至步骤205中所示内容。
106、节点当检测到加入网络训练时,确定在网络训练中的权重数据,将权重数据传输至发布端,网络训练由发布端在接收到预设数目的认领凭证后启动的。
在本发明实施例中,当节点检测到加入网络训练时,接收发布端传输的连接关系,基于连接关系以及网络训练中包括的节点的节点个数,生成在网络训练中的权重数据,采用节点私钥对权重数据进行签名,生成携带权重数据的权重密文,将权重密文传输至发布端。连接关系为发布端在启动网络训练后根据预设数目的节点在网络训练中的位置生成的。具体参见下述步骤206中所示内容。
另外,节点在将权重数据传输至发布端后,便可以接收发布端广播的待广播区块,待广播区块由发布端生成待写入区块,并对待写入区块进行签名验证得到的,待写入区块由发布端在接收到预设数目的权重数据后,根据预设数目的权重数据、训练参数、结果字符串以及预设数目的认领凭证生成的,将待广播区块添加至节点区块链中。具体参见下述步骤210中所示内容。
107、发布端获取预设数目的节点在加入网络训练后传输的预设数目的权重数据,基于预设数目的权重数据、训练参数、结果字符串以及预设数目的认领凭证,生成待写入区块。
在本发明实施例中,发布端接收预设数目的节点在加入网络训练后传输的预设数目的权重密文,对于预设数目的权重密文中的任一权重密文,确定发送权重密文的目标节点以及目标节点的节点公钥,采用节点公钥对权重密文进行签名,得到目标节点的权重数据。重复执行上述对权重密文进行签名的过程,得到预设数目的权重数据。其中,权重密文由节点采用节点私钥对权重数据签名生成。具体参见下述步骤208中所示内容。
在生成待写入模块后,发布端采用发布端私钥对待写入区块进行签名验证,得到待广播区块,将待广播区块广播至预设数目的节点。具体参见下述步骤209中所示内容。
本发明实施例提供的方法,采用签名算法,对训练参数进行摘要签名处理,生成训练参数的结果字符串,并对结果字符串进行分割,得到预设数目的字符串分段,以便当接收到预设数目的认领凭证时,启动网络训练,将预设数目的节点加入网络训练,获取预设数目的节点在加入网络训练后传输的预设数目的权重数据,基于预设数目的权重数据、训练参数、结果字符串以及预设数目的认领凭证,生成待写入区块,使得通过认领凭证,将哈希算力最好的节点加入到网络训练中,避免节点的哈希计算的算力被浪费,保证生成区块的节点是区块链中哈希算力最好的节点。
本发明实施例提供了一种区块链的区块生成方法,可以通过对节点基于自身哈希算力产生的认领凭证选取加入网络训练的节点,达到利用节点哈希算力生成区块的目的,保证生成区块的节点是区块链中算力最好的节点的目的,如图2所示,该方法包括:
201、发布端采用签名算法,对训练参数进行摘要签名处理,生成训练参数的结果字符串。
在本发明实施例中,训练参数为网络训练的发布端按照待训练网络定义的待训练网络的网络参数以及样本地址。具体地,网络参数可为待训练网络的网络类型以及网络层次;样本地址为待训练网络的样本数据的样本地址。为了使节点确定发布端发布的任务是确实存在的,以便节点自愿参与到网络训练的过程中来,实现区块的生成,发布端在区块链中发布任务以后,需要将任务相关的参数,也即训练参数提供给多个节点,以便多个节点通过对训练参数进行哈希计算来认领任务,并检测节点的哈希算力,使得哈希算力较优的节点可以加入到网络训练的过程中。
在实际应用的过程中,由于训练参数中涉及的内容较多,如果让节点通过对训练参数的计算来加入网络训练,则节点中涉及的计算量较大,且计算得到的数据仅是用来对节点的哈希算力进行检测,并没有涉及到真正的任务,不具有实际的意义,浪费了大量的计算资源。因此,发布端在选择加入到网络训练中的节点之前,先采用签名算法对训练参数进行摘要签名处理,生成该训练参数的结果字符串,以便后续通过对结果字符串的计算来确定哪一个节点加入到网络训练中。其中,签名算法可为SHA(Secure Hash Algorithm,安全哈希算法)摘要算法,本发明实施例对生成结果字符串的方式不进行具体限定。
202、发布端对结果字符串进行分割,得到预设数目的字符串分段。
在本发明实施例中,考虑到生成的结果字符串可能较长,如果后续每一个节点均基于生成的结果字符串进行计算来认证,则每个节点均需要耗费大量的时间,节点认证的时间过长,因此,在生成结果字符串后,对结果字符串进行分割,以便后续可以基于结果字符串中的某一段进行认证,缩短节点的认证时间。
其中,在对结果字符串进行分割时,可以设置预设数目,并将结果字符串平均分成预设数目的字符串分段。预设数据可以由发布端设置,发布端可以根据网络训练的实际情况确定想要多少节点加入到网络训练中,从而将预设数目设置为多少,避免浪费节点的资源,其他未加入网络训练的节点可以完成其他的工作。另外,如果发布端没有自行设置预设数目,则可以将区块链中节点的总个数默认为预设数目,这样,如果区块链中节点较多,设置的预设数目便较大,分割得到的每个字符串分段较短,节点的认证过程便会较快;如果区块链中节点较少,设置的预设数目便越小,分割得到的字符串分段越少,越少的节点完成网络训练,达到节省节点资源的目的。
需要说明的是,当完成了对结果字符串的分割得到预设数目的字符串分段后,为了使区块链中的节点可以获取到字符串分段,发布端会将预设数目的字符串分段发布出去,使得区块链中的每个节点均可以基于字符串分段请求加入到网络训练中。
203、节点在预设数目的字符串分段中获取目标字符串分段,基于哈希算法,对目标字符串分段进行计算,生成认领凭证,将认领凭证返回至发布端。
在本发明实施例中,当发布端将预设数目的字符串分段发布以后,节点如果想要进行认证,从而加入到发布端的网络训练中,节点可以在预设数目的字符串分段中获取目标字符串分段,并基于该目标字符串分段进行认证。其中,目标字符串分段为预设数目的字符串分段中的任一字符串分段,节点可以在预设数目的字符串分段中任一选取字符串分段作为目标字符串分段。
当获取到目标字符串分段后,节点便可以基于哈希算法,对目标字符串分段进行计算,生成对该目标字符串的认领凭证,并将该认领凭证返回至发布端,从而使发布端来判定能够将该节点加入到网络训练中。其中,哈希算法可为MD5(Message Digest Algorithm5,消息摘要算法)算法,生成的认领凭证可为哈希前导零形式的,本发明实施例对节点基于目标字符串分段生成认领凭证的方式以及认领凭证的形式不进行具体限定。
需要说明的是,由于发布端在同一时间可能接收到多个节点传输的多个认领凭证,为了使发布端可以根据认领凭证来区分是由哪些节点发送的,节点在向发布端发送认领凭证时,可以在认领凭证中携带节点标识,以便发布端可以基于该认领凭证追溯到发送该认领凭证的节点。
204、当接收到预设数目的认领凭证时,发布端启动网络训练,将预设数目的节点加入网络训练。
在本发明实施例中,由于预设数目的字符串分段均会被节点认领,且每个节点在对字符串分段认领成功后,均会向发布端返回认领凭证,因此,发布端会接收到多个认领凭证,这样,当发布端接收到对预设数目的节点进行认领的预设数目的认领凭证后,则确定每一个字符串分段均被节点认领了,此时,便可以将认领预设数目的字符串分段的节点加入到网络训练中来,也即发布端启动网络训练,将预设数目的节点加入到网络训练中来。
需要说明的是,由于预设数目的字符串分段为结果字符串的分段,每个字符串分段均是不同的,因此,根据不同的字符串分段生成的认领凭证便会是不同的,这样,发布端在接收到认领凭证时,便可以根据认领凭证来识别哪一个字符串分段被认领了。
在实际应用的过程中,可能会有多个节点对同一个字符串节点进行认领,为了使加入到网络训练中的节点是哈希算力最优的节点,发布端可以将最先接收到的认领凭证对应的节点作为认领该字符串分段的节点,并将该节点加入到网络训练中。
205、发布端为预设数目的节点分配在网络训练中的位置,根据预设数目的节点在网络训练中的位置,生成预设数目的节点之间的连接关系,将连接关系传输至预设数目的节点中的每一个节点。
在本发明实施例中,当发布端将预设数目的节点加入到网络训练中后,由于训练参数中包括了网络层次,因此,根据网络层次的划分,可以为预设数目的节点在网络训练中分配位置,这样,每个节点在网络训练中便会存在相邻的节点,使得根据每个节点的相邻节点可以生成预设数目的节点之间的连接关系。
为了使后续节点可以根据其在网络训练中的位置以及与其他节点之间的连接关系生成自身的权重数据,从而完成网络训练,发布端在生成了预设数目的节点之间的连接关系后,将连接关系传输至预设数目的节点中的每一个节点,以使每一个节点都可以根据连接关系确定自身在网络训练中的权重数据。需要说明的是,由于在确定自身的权重数据时,节点还需要结合网络训练中全部节点的个数,因此,发布端在将连接关系传输至节点时,还可以统计网络训练中包括的节点的节点个数,将该节点个数一同发送给节点,以便节点可以直接利用连接关系确定权重数据,无需再统计网络训练中包括的节点的个数。
206、节点接收发布端传输的连接关系,基于连接关系以及网络训练中包括的节点的节点个数,生成在网络训练中的权重数据,采用节点私钥对权重数据进行签名,生成携带权重数据的权重密文,将权重密文传输至发布端。
在本发明实施例中,当节点接收到发布端传输的连接关系后,便可以确定与自己相邻的节点,并根据连接关系统计到网络训练中包括了哪些节点,根据网络关系确定自己在网络训练中占据以及管理的部分,从而确定自身的权重数据。具体地,首先,节点可以统计连接关系中涉及的节点的节点个数,根据节点个数确定网络训练中的总工作量;随后,根据自身的工作能力,确定自身的子工作量;最后,计算子工作量在网络训练的总工作量中的占比,将该占比作为自身的权重数据。
当生成了自身的权重数据后,考虑到区块链中可能存在恶意节点,也即不法分子用来盗取数据的节点,为了避免权重数据在传输的过程中被恶意节点拦截利用,节点可以对权重数据进行加密,生成携带权重数据的权重密文,并将该权重密文传输至发布端,以便发布端在接收到权重密文后,通过对权重密文的解密来获取该节点的权重数据。由于区块链中的每个节点均存在包括公钥和私钥的公私钥对,其中,公钥被区块链中的全部节点知晓,而私钥只有自身知晓,采用私钥加密的数据可以采用公钥解密,因此,节点在对权重数据进行加密时,可以采用自身的节点私钥对权重数据进行签名,进而生成携带权重数据的权重密文,将该权重密文传输给发布端,以便发布端可以采用该节点的节点公钥对该权重密文进行解密,获取到该节点的权重数据。
207、发布端接收预设数目的节点在加入网络训练后传输的预设数目的权重密文,在预设数目的权重密文中提取预设数目的权重数据。
在本发明实施例中,由于加入到网络训练中的预设数目的节点中的每个节点均会将自身权重数据加密后的权重密文传输给发布端,因此,发布端会接收到预设数目的权重密文,这样,发布端便需要在预设数目的权重密文中提取预设数目的权重数据。
其中,对于预设数目的权重密文中的任一权重密文,由于该权重密文是由发送该权重密文的节点采用自身的节点私钥进行签名后生成的,只有基于该节点的节点公钥才能对权重密文进行解密,因此,首先,需要确定发送权重密文的目标节点以及目标节点的节点公钥;随后,采用节点公钥对权重密文进行签名,达到对权重密文解密的目的,从而得到该权重密文中包括的权重数据。由于发布端接收到预设数目的节点发送的权重密文,因此,重复执行上述对权重密文进行签名的过程,发布端便可以得到预设数目的节点的权重数据。
208、发布端基于预设数目的权重数据、训练参数、结果字符串以及预设数目的认领凭证,生成待写入区块,将待写入区块添加至发布端区块链中。
在本发明实施例中,当发布端得到了整个网络训练中每个节点的权重数据后,便可以生成待写入区块,基于待写入区块记录整个网络训练的权重数据。其中,为了使待写入数据中包括的数据更加完整且具体,在生成待写入区块时,还可以将训练参数、结果字符串以及预设数目的认领凭证一起写入待写入区块中。其中,预设数目的认领凭证可以以凭证列表的形式写入,也即生成包括预设数目的认领凭证以及节点之间对应关系的凭证列表,将凭证列表写入待写入区块。当生成了待写入区块后,发布端便可以将该待写入区块添加至自身的发布端区块链中。
在实际应用的过程中,发布端发布的网络训练的内容通常是关乎业务的,而业务中会涉及到账本内容,这样,在生成待写入区块时,还可以将业务中的账本内容一同写入待写入区块中。本发明实施例对待写入区块包括的内容不进行具体限定。
209、发布端采用发布端私钥对待写入区块进行签名验证,得到待广播区块,将待广播区块广播至预设数目的节点。
在本发明实施例中,当生成了待写入区块后,为了使网络训练涉及到的全部节点的区块链中均可以添加该待写入区块,从而保证每个节点的区块链中的数据一致,发布端需要将待写入区块广播给每一个节点,以使每一个节点均将该待写入区块添加至区块链中。其中,在将待写入区块广播至每一个节点时,为了防止恶意节点盗取待写入模块中的数据,发布端可以采用自身的发布端私钥对待写入区块进行签名验证,得到待广播区块,并将该待广播区块广播至网络训练中的预设数目的节点中,以使每一个节点均可以将该待广播区块添加到自身的节点区块链中,同时还避免待写入区块中的数据被盗取。
210、节点接收发布端广播的待广播区块,将待广播区块添加至节点区块链中。
在本发明实施例中,当节点接收到发布端广播的待广播区块后,便可以将该待广播区块添加至自身的节点区块链中,从而保证与发布端的发布端区块链中的数据保持一致。
本发明实施例提供的方法,采用签名算法,对训练参数进行摘要签名处理,生成训练参数的结果字符串,并对结果字符串进行分割,得到预设数目的字符串分段,以便当接收到预设数目的认领凭证时,启动网络训练,将预设数目的节点加入网络训练,获取预设数目的节点在加入网络训练后传输的预设数目的权重数据,基于预设数目的权重数据、训练参数、结果字符串以及预设数目的认领凭证,生成待写入区块,使得通过认领凭证,将哈希算力最好的节点加入到网络训练中,避免节点的哈希计算的算力被浪费,保证生成区块的节点是区块链中哈希算力最好的节点。
进一步地,作为图1方法的具体实现,本发明实施例提供了一种区块链的区块生成装置,如图3A所示,装置包括:处理模块301,分割模块302,启动模块303和第一生成模块304。
该处理模块301,用于采用签名算法,对训练参数进行摘要签名处理,生成训练参数的结果字符串;
该分割模块302,用于对结果字符串进行分割,得到预设数目的字符串分段;
该启动模块303,用于当接收到预设数目的认领凭证时,启动网络训练,将预设数目的节点加入网络训练,预设数目的节点为发送预设数目的认领凭证的节点;
该第一生成模块304,用于获取预设数目的节点在加入网络训练后传输的预设数目的权重数据,基于预设数目的权重数据、训练参数、结果字符串以及预设数目的认领凭证,生成待写入区块。
在具体的应用场景中,如图3B所示,该装置还包括:分配模块305,第二生成模块306和传输模块307。
该分配模块305,用于为预设数目的节点分配在网络训练中的位置;
该第二生成模块306,用于根据预设数目的节点在网络训练中的位置,生成预设数目的节点之间的连接关系;
该传输模块307,用于将连接关系传输至预设数目的节点中的每一个节点。
在具体的应用场景中,如图3C所示,该第一生成模块304,包括接收子模块3041,确定子模块3042和签名子模块3043。
该接收子模块3041,用于接收预设数目的节点在加入网络训练后传输的预设数目的权重密文,权重密文由节点采用节点私钥对权重数据签名生成;
该确定子模块3042,用于对于预设数目的权重密文中的任一权重密文,确定发送权重密文的目标节点以及目标节点的节点公钥;
该签名子模块3043,用于采用节点公钥对权重密文进行签名,得到目标节点的权重数据;
该确定子模块3042,还用于重复执行上述对权重密文进行签名的过程,得到预设数目的权重数据。
在具体的应用场景中,如图3D所示,该装置还包括广播模块308。
该广播模块308,用于采用发布端私钥对待写入区块进行签名验证,得到待广播区块,将待广播区块广播至预设数目的节点。
本发明实施例提供的区块链的区块生成装置,可以采用签名算法,对训练参数进行摘要签名处理,生成训练参数的结果字符串,并对结果字符串进行分割,得到预设数目的字符串分段,以便当接收到预设数目的认领凭证时,启动网络训练,将预设数目的节点加入网络训练,获取预设数目的节点在加入网络训练后传输的预设数目的权重数据,基于预设数目的权重数据、训练参数、结果字符串以及预设数目的认领凭证,生成待写入区块,使得通过认领凭证,将哈希算力最好的节点加入到网络训练中,避免节点的哈希计算的算力被浪费,保证生成区块的节点是区块链中哈希算力最好的节点。
进一步地,作为图1方法的具体实现,本发明实施例提供了一种区块链的区块生成装置,如图4A所示,装置包括:获取模块401,计算模块402和传输模块403。
该获取模块401,用于在预设数目的字符串分段中获取目标字符串分段,预设数目的字符串分段为发布端对结果字符串分割生成并发布的,结果字符串由发布端对训练参数进行摘要签名处理生成,目标字符串分段为预设数目的字符串分段中的任一字符串分段;
该计算模块402,用于基于哈希算法,对目标字符串分段进行计算,生成认领凭证,将认领凭证返回至发布端;
该传输模块403,用于当检测到加入网络训练时,确定在网络训练中的权重数据,将权重数据传输至发布端,网络训练由发布端在接收到预设数目的认领凭证后启动的。
在具体的应用场景中,如图4B所示,该传输模块403,包括接收子模块4031,生成子模块4032和传输子模块4033。
该接收子模块4031,用于当检测到加入网络训练时,接收发布端传输的连接关系,连接关系为发布端在启动网络训练后根据预设数目的节点在网络训练中的位置生成的;
该生成子模块4032,用于基于连接关系以及网络训练中包括的节点的节点个数,生成在网络训练中的权重数据;
该传输子模块4033,用于采用节点私钥对权重数据进行签名,生成携带权重数据的权重密文,将权重密文传输至发布端。
在具体的应用场景中,如图4C所示,该装置还包括接收模块404和添加模块405。
该接收模块404,用于接收发布端广播的待广播区块,待广播区块由发布端生成待写入区块,并对待写入区块进行签名验证得到的,待写入区块由发布端在接收到预设数目的权重数据后,根据预设数目的权重数据、训练参数、结果字符串以及预设数目的认领凭证生成的;
该添加模块405,用于将待广播区块添加至节点区块链中。
本发明实施例提供的区块链的区块生成装置,可以在预设数目的字符串分段中获取目标字符串分段,基于哈希算法,对所述目标字符串分段进行计算,生成认领凭证,将所述认领凭证返回至所述发布端,并当检测到加入网络训练时,确定在所述网络训练中的权重数据,将所述权重数据传输至所述发布端,使得通过认领凭证,将哈希算力最好的节点加入到网络训练中,避免节点的哈希计算的算力被浪费,保证生成区块的节点是区块链中哈希算力最好的节点。
需要说明的是,本发明实施例提供的一种区块链的区块生成装置所涉及各功能单元的其他相应描述,可以参考图1和图2中的对应描述,在此不再赘述。
在示例性实施例中,还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现所述区块链的区块生成方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的区块链的区块生成方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (10)
1.一种区块链的区块生成方法,其特征在于,包括:
采用签名算法,对训练参数进行摘要签名处理,生成所述训练参数的结果字符串;
对所述结果字符串进行分割,得到预设数目的字符串分段;
当接收到所述预设数目的认领凭证时,启动网络训练,将预设数目的节点加入所述网络训练,所述预设数目的节点为发送所述预设数目的认领凭证的节点,所述认领凭证是节点在所述预设数目的字符串分段中获取目标字符串分段并基于哈希算法对所述目标字符串分段进行计算后生成并返回的;
获取所述预设数目的节点在加入所述网络训练后传输的预设数目的权重数据,基于所述预设数目的权重数据、所述训练参数、所述结果字符串以及所述预设数目的认领凭证,生成待写入区块。
2.根据权利要求1所述的方法,其特征在于,所述当接收到所述预设数目的认领凭证时,启动网络训练,将预设数目的节点加入所述网络训练之后,所述方法还包括:
为所述预设数目的节点分配在所述网络训练中的位置;
根据所述预设数目的节点在所述网络训练中的位置,生成所述预设数目的节点之间的连接关系;
将所述连接关系传输至所述预设数目的节点中的每一个节点。
3.根据权利要求1所述的方法,其特征在于,所述获取所述预设数目的节点在加入所述网络训练后传输的预设数目的权重数据,包括:
接收所述预设数目的节点在加入所述网络训练后传输的预设数目的权重密文,所述权重密文由节点采用节点私钥对权重数据签名生成;
对于所述预设数目的权重密文中的任一权重密文,确定发送所述权重密文的目标节点以及所述目标节点的节点公钥;
采用所述节点公钥对所述权重密文进行签名,得到所述目标节点的权重数据;
重复执行上述对权重密文进行签名的过程,得到所述预设数目的权重数据。
4.根据权利要求1所述的方法,其特征在于,所述获取所述预设数目的节点在加入所述网络训练后传输的预设数目的权重数据,基于所述预设数目的权重数据、所述训练参数、所述结果字符串以及所述预设数目的认领凭证,生成待写入区块之后,所述方法还包括:
采用发布端私钥对所述待写入区块进行签名验证,得到待广播区块,将所述待广播区块广播至所述预设数目的节点。
5.一种区块链的区块生成方法,其特征在于,包括:
在预设数目的字符串分段中获取目标字符串分段,所述预设数目的字符串分段为发布端对结果字符串分割生成并发布的,所述结果字符串由所述发布端对训练参数进行摘要签名处理生成,所述目标字符串分段为所述预设数目的字符串分段中的任一字符串分段;
基于哈希算法,对所述目标字符串分段进行计算,生成认领凭证,将所述认领凭证返回至所述发布端;
当检测到加入网络训练时,确定在所述网络训练中的权重数据,将所述权重数据传输至所述发布端,所述网络训练由所述发布端在接收到预设数目的认领凭证后启动的。
6.根据权利要求5所述的方法,其特征在于,所述当检测到加入网络训练时,确定在所述网络训练中的权重数据,将所述权重数据传输至所述发布端,包括:
当检测到加入所述网络训练时,接收所述发布端传输的连接关系,所述连接关系为所述发布端在启动网络训练后根据预设数目的节点在所述网络训练中的位置生成的;
基于所述连接关系以及所述网络训练中包括的节点的节点个数,生成在所述网络训练中的权重数据;
采用节点私钥对所述权重数据进行签名,生成携带所述权重数据的权重密文,将所述权重密文传输至所述发布端。
7.根据权利要求5所述的方法,其特征在于,所述当检测到加入网络训练时,确定在所述网络训练中的权重数据,将所述权重数据传输至所述发布端之后,所述方法还包括:
接收所述发布端广播的待广播区块,所述待广播区块由所述发布端生成待写入区块,并对所述待写入区块进行签名验证得到的,所述待写入区块由所述发布端在接收到预设数目的权重数据后,根据所述预设数目的权重数据、所述训练参数、所述结果字符串以及所述预设数目的认领凭证生成的;
将所述待广播区块添加至节点区块链中。
8.一种区块链的区块生成装置,其特征在于,包括:
处理模块,用于采用签名算法,对训练参数进行摘要签名处理,生成所述训练参数的结果字符串;
分割模块,用于对所述结果字符串进行分割,得到预设数目的字符串分段;
启动模块,用于当接收到所述预设数目的认领凭证时,启动网络训练,将预设数目的节点加入所述网络训练,所述预设数目的节点为发送所述预设数目的认领凭证的节点,所述认领凭证是节点在所述预设数目的字符串分段中获取目标字符串分段并基于哈希算法对所述目标字符串分段进行计算后生成并返回的;
第一生成模块,用于获取所述预设数目的节点在加入所述网络训练后传输的预设数目的权重数据,基于所述预设数目的权重数据、所述训练参数、所述结果字符串以及所述预设数目的认领凭证,生成待写入区块。
9.一种区块链的区块生成装置,其特征在于,包括:
获取模块,用于在预设数目的字符串分段中获取目标字符串分段,所述预设数目的字符串分段为发布端对结果字符串分割生成并发布的,所述结果字符串由所述发布端对训练参数进行摘要签名处理生成,所述目标字符串分段为所述预设数目的字符串分段中的任一字符串分段;
计算模块,用于基于哈希算法,对所述目标字符串分段进行计算,生成认领凭证,将所述认领凭证返回至所述发布端;
传输模块,用于当检测到加入网络训练时,确定在所述网络训练中的权重数据,将所述权重数据传输至所述发布端,所述网络训练由所述发布端在接收到预设数目的认领凭证后启动的。
10.一种区块链的区块生成设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4或5至7中任一项所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811326048.6A CN109698750B (zh) | 2018-11-08 | 2018-11-08 | 区块链的区块生成方法、装置、设备及可读存储介质 |
PCT/CN2019/073298 WO2020093609A1 (zh) | 2018-11-08 | 2019-01-27 | 区块链的区块生成方法、装置、设备及非易失性可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811326048.6A CN109698750B (zh) | 2018-11-08 | 2018-11-08 | 区块链的区块生成方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109698750A CN109698750A (zh) | 2019-04-30 |
CN109698750B true CN109698750B (zh) | 2021-06-11 |
Family
ID=66229784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811326048.6A Active CN109698750B (zh) | 2018-11-08 | 2018-11-08 | 区块链的区块生成方法、装置、设备及可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109698750B (zh) |
WO (1) | WO2020093609A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112531891A (zh) * | 2020-11-19 | 2021-03-19 | 辽宁东科电力有限公司 | 一种基于区块链的输电线路在线监测系统参数数据处理与定位方法 |
CN114760157B (zh) * | 2022-06-16 | 2022-09-16 | 天津市城市规划设计研究总院有限公司 | 城市规划领域区块链节点合法性验证方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630609A (zh) * | 2016-02-24 | 2016-06-01 | 杭州复杂美科技有限公司 | 区块链的打包存储方法 |
CN108255590A (zh) * | 2017-12-07 | 2018-07-06 | 深圳比特微电子科技有限公司 | 一种数据流控制方法和装置 |
CN108428136A (zh) * | 2018-02-28 | 2018-08-21 | 武汉康慧然信息技术咨询有限公司 | 电动汽车信息认证方法 |
CN108712486A (zh) * | 2018-05-11 | 2018-10-26 | 北京奇虎科技有限公司 | 工作量证明方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9973341B2 (en) * | 2015-01-23 | 2018-05-15 | Daniel Robert Ferrin | Method and apparatus for the limitation of the mining of blocks on a block chain |
CN105719185B (zh) * | 2016-01-22 | 2019-02-15 | 杭州复杂美科技有限公司 | 区块链的数据对比及共识方法 |
CN106682984B (zh) * | 2016-10-27 | 2019-09-10 | 深圳壹账通智能科技有限公司 | 基于区块链的交易事务处理方法及系统 |
CN108241968B (zh) * | 2017-03-26 | 2020-08-14 | 杭州复杂美科技有限公司 | 前置机参与区块链共识的方法 |
CN107330581B (zh) * | 2017-06-08 | 2021-01-08 | 上海交通大学 | 基于区块链的农产品质量信息系统 |
-
2018
- 2018-11-08 CN CN201811326048.6A patent/CN109698750B/zh active Active
-
2019
- 2019-01-27 WO PCT/CN2019/073298 patent/WO2020093609A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630609A (zh) * | 2016-02-24 | 2016-06-01 | 杭州复杂美科技有限公司 | 区块链的打包存储方法 |
CN108255590A (zh) * | 2017-12-07 | 2018-07-06 | 深圳比特微电子科技有限公司 | 一种数据流控制方法和装置 |
CN108428136A (zh) * | 2018-02-28 | 2018-08-21 | 武汉康慧然信息技术咨询有限公司 | 电动汽车信息认证方法 |
CN108712486A (zh) * | 2018-05-11 | 2018-10-26 | 北京奇虎科技有限公司 | 工作量证明方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109698750A (zh) | 2019-04-30 |
WO2020093609A1 (zh) | 2020-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7544357B2 (ja) | セキュア・ダイナミック閾値署名スキームのための方法、記憶媒体及び電子デバイス | |
WO2020192743A1 (zh) | 权限管理方法、权限验证方法和相关装置 | |
US10644879B2 (en) | Private key decryption system and method of use | |
CN111556120B (zh) | 基于区块链的数据处理方法、装置、存储介质及设备 | |
WO2018112940A1 (zh) | 区块链节点的业务执行方法、装置及节点设备 | |
JP2023109981A (ja) | 低エントロピーパスワードを用いてブロックチェーントランザクションを許可するためのコンピュータ実装されたシステム及び方法 | |
CN110999204A (zh) | 区块链实施的事件锁加密的方法和系统 | |
CN108769230B (zh) | 交易数据存储方法、装置、服务器及存储介质 | |
CN110800250A (zh) | 受控加密私钥的发布 | |
JP2023054359A (ja) | ブロックチェーンネットワークのためのクレデンシャル生成及び分配方法 | |
WO2019110018A1 (zh) | 通信网络系统的消息验证方法、通信方法和通信网络系统 | |
CN115176441A (zh) | 基于身份的公钥生成协议 | |
CN110910110B (zh) | 一种数据处理方法、装置及计算机存储介质 | |
CN111314066B (zh) | 基于区块链的数据转移方法、终端及计算机可读存储介质 | |
CN109698750B (zh) | 区块链的区块生成方法、装置、设备及可读存储介质 | |
CN110276693B (zh) | 保险理赔方法及系统 | |
KR102269753B1 (ko) | 컨소시엄 블록체인 네트워크에서의 프라이빗 키를 백업 및 복원하는 방법 및 장치 | |
Tabassum et al. | Securely Transfer Information with RSA and Digital Signature by using the concept of Fog Computing and Blockchain | |
CN114172668B (zh) | 一种基于数字证书的群成员管理方法和系统 | |
CN110709875B (zh) | 在区块链网络中节点间建立可信点对点通信的方法和系统 | |
CN110709874B (zh) | 用于区块链网络的凭证生成与分发方法和系统 | |
Yun et al. | The biometric signature delegation scheme to balance the load of digital signing in hybrid P2P networks | |
KR20120077214A (ko) | 피투피 네트워크에 있어서 컨텐츠 서비스 제공 방법 |
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 |