CN110401541A - 基于EC-Schnoor签名算法的门限投票方法、系统及相关设备 - Google Patents

基于EC-Schnoor签名算法的门限投票方法、系统及相关设备 Download PDF

Info

Publication number
CN110401541A
CN110401541A CN201910683715.4A CN201910683715A CN110401541A CN 110401541 A CN110401541 A CN 110401541A CN 201910683715 A CN201910683715 A CN 201910683715A CN 110401541 A CN110401541 A CN 110401541A
Authority
CN
China
Prior art keywords
node
ballot
polling cycle
public key
preferred
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.)
Withdrawn
Application number
CN201910683715.4A
Other languages
English (en)
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 Onething Technology Co Ltd
Shenzhen Xunlei Network Technology Co Ltd
Original Assignee
Shenzhen Onething 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 Onething Technology Co Ltd filed Critical Shenzhen Onething Technology Co Ltd
Priority to CN201910683715.4A priority Critical patent/CN110401541A/zh
Publication of CN110401541A publication Critical patent/CN110401541A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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
    • H04L9/3252Cryptographic 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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting

Abstract

本发明公开了基于EC‑Schnoor签名算法的门限投票方法、系统及相关设备。获取当前投票周期内有效投票节点发送的签名数据;若有效投票节点的数目N与所有投票节点的总数目M的比值超过第一阈值T,则确认投票通过,并采用模拟退火算法从有效投票节点中选出第一预设数目A个优选节点;采用EC‑Schnoor签名算法对所有的优选节点发送的签名数据进行聚合,生成对应的聚合签名数据;将聚合签名数据及对应的优选节点的身份信息发送给验证节点设备。

Description

基于EC-Schnoor签名算法的门限投票方法、系统及相关设备
技术领域
本发明涉及信息安全领域,尤其涉及基于EC-Schnoor签名算法的门限投票方法、系统及相关设备。
背景技术
随着网络的迅速发展,基于网络的投票方式已大范围取代了原始的纸面投票方式。
现有的网络投票方式,往往是基于数字签名技术,由每个投票节点自身的私钥对投票信息进行数字签名,并将签名信息发送给统计节点,最后将所有投票节点的数字签名发送给验证节点进行验证。
现有方案中需要聚合节点发送所有投票节点的数字签名数据给验证节点,尤其是运用于区块链网络时,还需要区块链网络存储所有投票节点的数字签名,浪费带宽及存储资源。
发明内容
本发明实施例提供了一种基于EC-Schnoor签名算法的提供门限投票方法、系统及相关设备,用于节约网络系统资源。
本发明实施例第一方面提供了一种基于EC-Schnoor签名算法的门限投票方法,其特征在于,运用于聚合节点设备,所述方法包括:
获取当前投票周期内有效投票节点发送的签名数据;
若有效投票节点的数目N与所有投票节点的总数目M的比值超过第一阈值T,则确认投票通过,并采用模拟退火算法从当前投票周期内有效投票节点中选出第一预设数目A个优选节点,所述A不大于N且不小于M与T的乘积;
采用EC-Schnoor签名算法对当前投票周期内所有的优选节点发送的签名数据进行聚合,生成对应的聚合签名数据;
将所述聚合签名数据及对应的优选节点的身份信息发送给验证节点设备,以使得验证节点设备验证所述聚合签名数据。
可选的,作为一种可能的实施方式,本发明实施例中所述采用模拟退火算法从当前投票周期内有效投票节点中选出第一预设数目A个优选节点包括:
从当前投票周期内有效投票节点中选出最近W个历史投票周期内有效投票次数最多的前A个优选节点。
可选的,作为一种可能的实施方式,本发明实施例中,所述从当前投票周期内有效投票节点中选出最近W个历史投票周期内有效投票次数最多的前A个优选节点包括:
根据接收到的当前投票周期内有效投票节点的身份信息构造第一类投票结果向量,其中每一个投票周期对应一个第一类投票结果向量,每一个投票节点在第一类投票结果向量中对应一个维度值用以指示投票节点是否投票,所有有效投票节点对应的维度值相同,其余投票节点对应的维度值相同;
聚合节点设备中保存有最近W个历史投票周期对应的投票结果向量,形成M×W的矩阵,mi,j为第i个投票节点在第j次投票周期内对应的维度值,根据公式计算每个有效投票节点对应的权重,其中当前投票周期内所有有效投票节点形成集合R,i∈R;
根据每个有效投票节点对应的权重确定权重值排名靠前的第一预设数目A个优选节点。
可选的,作为一种可能的实施方式,本发明实施例中当验证节点设备与所述聚合节点设备中存储有W个相同的历史投票周期,每个历史投票周期对应A个优选节点时,所述采用模拟退火算法从当前投票周期内有效投票节点中选出第一预设数目A个优选节点包括:
判断所述W个历史投票周期中是否存在第一目标投票周期,所述第一目标投票周期内所有优选节点形成的集合其中集合Q为当前投票周期内有效投票节点的集合;
若存在所述第一目标投票周期,则确定所述第一目标投票周期对应的优选节点为当前投票周期对应的优选节点;
若不存在所述第一目标投票周期,则判断所述W个历史投票周期中是否存在第二目标投票周期,所述第二目标投票周期中存在A-1个优选节点形成的集合
若存在多个所述第二目标投票周期,则计算各个所述第二目标投票周期的权重并根据各个所述第二目标投票周期的权重选择出优选投票周期,其中与当前投票周期时间间隔越短的投票周期对应的编号k越小;
选择所述集合Q中的一个目标节点及所述优选投票周期对应的集合R2中的节点作为当前投票周期对应的A个优选节点,其中所述目标节点与集合R2中各个节点不同。
可选的,作为一种可能的实施方式,本发明实施例中的基于EC-Schnoor签名算法的门限投票方法还可以包括:
获取所有投票节点的最新公钥数据,并判断是否最新公钥数据是否有更新,若有更新,则将最新公钥数据同步至所有的验证节点设备,并确定不存在的公钥对应的投票节点作为离开节点;
若所述W个历史投票周期中存在第一历史投票周期,所述第一历史投票周期内的所述离开节点是有效投票节点或所述优选节点,则删除所述聚合节点设备中存储的所述第一历史投票周期内所有的优选节点的身份信息或所有的有效投票节点的身份信息。
本发明实施例第二方面提供了一种基于EC-Schnoor签名算法的门限投票方法,其特征在于,运用于验证节点设备,所述验证节点设备中存储有W个历史投票周期对应的聚合公钥,所述方法包括:
接收聚合节点设备发送的当前投票周期的聚合签名数据及对应的优选节点的身份信息;
从最近W个历史投票周期对应的聚合公钥中,确定与所述聚合签名数据对应的节点公钥集合最相似的聚合公钥作为最优聚合公钥;
在所述最优聚合公钥的基础上进行椭圆曲线点加和/或点减运算得到当前投票周期内有效投票节点对应的最新聚合公钥,并根据所述最新聚合公钥验证所述聚合签名数据。
可选的,作为一种可能的实施方式,本发明实施例中,所述从最近W个历史投票周期对应的聚合公钥中,确定与所述聚合签名数据对应的节点公钥集合最相似的聚合公钥作为最优聚合公钥包括:
根据当前投票周期的优选投票节点的身份信息构造当前投票周期对应的第二类投票结果向量VR,其中每一个投票周期对应一个第二类投票结果向量,每一个投票节点在第二类投票结果向量中对应一个维度值,所有优选投票节点对应的维度值相同,其余投票节点对应的维度值相同;
计算本地存储的W个历史投票周期对应的W个第二类投票结果向量Vk与所述VR的汉明距离,其中1≤k≤W,并确定与所述VR的汉明距离最小的Vk对应的历史投票周期内的聚合公钥作为最优聚合公钥。可选的,作为一种可能的实施方式,本发明实施例中的基于EC-Schnoor签名算法的门限投票方法还可以包括:
同步所有投票节点的最新公钥数据,并判断所述最新公钥数据是否有更新,若有更新,则并确定不存在的公钥对应的投票节点作为离开节点;
若所述W个历史投票周期中存在第一历史投票周期,所述第一历史投票周期内的所述离开节点是有效投票节点或所述优选节点,则删除所述验证节点设备中存储的所述第一历史投票周期内所有的优选节点的身份信息及聚合公钥。
本发明实施例第三方面提供了一种区块链系统,其特征在于,所述区块链系统包括聚合节点设备和验证节点设备,其中,
所述聚合节点设备用于执行如第一方面任一项所EC-Schnoor签名算法的门限投票方法实施例中的步骤;
所述验证节点设备用于执行如第二方面任一项所述EC-Schnoor签名算法的门限投票方法实施例中的步骤。
本发明实施例第四方面提供了一种终端设备,其特征在于,所述终端设备包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如如权利要求第一方面及第二方面中任一项所述的基于EC-Schnoor签名算法的门限投票方法实施例中的步骤。
可选的,作为一种可能的实施方式,本发明实施例中的终端设备为组成CDN网络或者区块链网络的节点。
本发明实施例第五方面提供了一种基于EC-Schnoor签名算法的门限投票系统,其特征在于,包括:
接收单元,用于获取当前投票周期内有效投票节点发送的签名数据;
选择单元,若有效投票节点的数目N与所有投票节点的总数目M的比值超过第一阈值T,则确认投票通过,则采用模拟退火算法从当前投票周期内有效投票节点中选出第一预设数目A个优选节点,所述A不大于N且不小于M与T的乘积;
聚合单元,采用EC-Schnoor签名算法对当前投票周期内所有的优选节点发送的签名数据进行聚合,生成对应的聚合签名数据;
发送单元,用于将所述聚合签名数据及对应的优选节点的身份信息发送给验证节点设备,以使得验证节点设备验证所述聚合签名数据。
本发明实施例第六方面提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序可被一个或者多个处理器执行,以实现如权利要求第一方面及第二方面中任一项所述的基于EC-Schnoor签名算法的门限投票方法实施例中的步骤。
本发明实施例第七方面提供了一种计算机程序产品,其特征在于,包括计算机指令,当其在计算机上运行时,使得计算机可以执行上述第一方面及第二方面中任一项所述的基于EC-Schnoor签名算法的门限投票方法实施例中的步骤。
由以上可知:
本发明实施例中,聚合节点设备确定当前投票周期内的投票通过之后,可以从当前投票周期内有效投票节点中选出第一预设数目的优选节点,并采用EC-Schnoor签名算法对当前投票周期内所有的优选节点发送的签名数据进行聚合,生成对应的聚合签名数据,由于聚合签名数据所占用的存储空间小于组成聚合签名的所有签名数据所占用的存储空间之和,因而可以节约数据传输占用的带宽及存储空间。其次,选取优选节点的过程中采用了模拟退火算法,该算法可以选择全局最优的优选节点组合,节省了最优聚合公钥与最新聚合公钥相同组成成员的公钥聚合运算,进而减小验证节点设备计算当前投票周期对应的聚合公钥的计算量。
附图说明
图1为本发明实施例中一种基于EC-Schnoor签名算法的门限投票方法一个实施例示意图;
图2为本发明实施例中一种基于EC-Schnoor签名算法的门限投票方法另一个实施例示意图;
图3为本发明实施例中一种基于EC-Schnoor签名算法的门限投票系统的一个实施例示意图;
图4为本发明实施例中一种终端设备的一个实施例示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
多重签名是一种特殊的数字签名算法。在一般数字签名的基础上,多重签名额外要求不同用户对于同一个信息的签名可以聚合。聚合后的签名大小应该小于所有不同用户签名聚合前的总和,同时验证聚合后的签名可以使验证者相信签名群体确实进行了签名。在一个多重签名系统中,存在三种角色,签名者,聚合者,验证者。签名者包括多个用户节点,他们有各自不同的公钥、私钥,并且对一个共享的信息进行签名。聚合者往往由某一个用户节点承担,它收集来自签名者的签名后进行聚合。验证者可以包括任意数量的用户节点。验证者通过验证聚合后的签名来确定是否所有参与的签名者都对该信息进行了签名。
申请人注意到可以将多重签名算法运用于网络投票过程中,例如可以将所有投票者的签名数据进行聚合生成聚合签名数据,验证过程中需要将所有投票者的公钥进行聚合并根据该聚合公钥验证聚合签名数据。然而这种方式虽然可以减少签名数据所占用的网络资源,但仍然有进一步优化的空间。例如,采用EC-Schnoor签名算法进行签名聚合,当有N个投票节点时,对应的每个验证节点为了验证聚合签名,每一次验证计算都需要进行大约N次点加运算(有限域上的椭圆曲线两个点的加法运算)以获得聚合公钥,当N的取值巨大,每一次验证过程中计算聚合公钥都会耗费大量的计算资源及时间,对于多次验证则资源浪费更加严重。
其中,本发明实施例中的EC-Schnoor签名算法是指基于椭圆曲线算法构造的Schnoor签名算法,每个用户的公钥为椭圆曲线上的一个点,每个验证节点对公钥进行聚合,等同于计算所有公钥对应椭圆曲线上点的点加运算,该EC-Schnoor算法与用户的交互过程可以抽象为四个步骤:1,签名节点发送承诺信息(Commitment)给聚合节点;2,聚合节点发送挑战信息(Challenge)给签名节点;3,签名节点根据挑战生成回应信息(Response);4,聚合节点根据签名节点的承诺及回应生成聚合签名,并且广播聚合签名给所有的签名验证节点。步骤1到步骤3的过程中,聚合节点与签名节点之间的多次交互是为了确保每个签名节点是签名所对应公钥的拥有者,防止签名节点作恶。
为便于理解,下面对本发明实施例中的具体流程进行描述,请参阅图1,本发明实施例中基于EC-Schnoor签名算法门限投票方法一个实施例包括:
101、获取当前投票周期内有效投票节点发送的签名数据;
本发明实施例中,网络投票过程中当投票节点对投票数据对应的提议信息赞成时,可以发送承诺信息给聚合节点设备。为了确保每个投票节点是签名所对应公钥的拥有者,防止投票节点作恶,当接收到投票节点发送的承诺信息并向对应的投票节点回复挑战信息,以进一步确认签名的有效性。若接收到挑战信息对应的回应信息,则确认回应信息对应的投票节点为有效投票节点,根据有效投票节点发送的承诺信息及对应的回应信息生成对应的签名数据;
本发明实施例中,若接收到同一个投票节点发送的承诺信息及对应的回应信息,则确认对应的投票节点为有效投票节点,聚合节点设备可以根据有效投票节点发送的承诺信息及对应的回应信息生成对应的签名数据。
102、若有效投票节点的数目N与所有投票节点的总数目M的比值超过第一阈值T,则采用模拟退火算法从当前投票周期内有效投票节点中选出第一预设数目A个优选节点;
在投票完成之后,聚合节点设备可以统计计算有效投票节点的数目N与所有投票节点的总数目M的比值,若该比值没有超过预设的第一阈值T,则说明投票未通过无需进行签名数据聚合,若该比值超过预设的第一阈值T,则说明投票通过,需要进行签名数据聚合。实际运用中有效投票节点的数目可能大于M与T的乘积,然而申请人注意到确认投票通过只需要验证至少M*T个有效投票节点的签名的真实性即可。例如1000个投票节点中设置T为0.5,当前投票周期内有效投票节点的数目为800个,则最少只需要验证500个有效投票节点的签名的真实性即可,无需对所有的800个投票节点的签名数据聚合。有鉴于此,本申请实施例中可以采用模拟退火算法从当前投票周期内有效投票节点中选出第一预设数目A个优选节点,A不大于N且不小于M与T的乘积。
其次,申请人注意到,多次投票过程中的每一个投票周期内的有效投票节点并不是完全不同的,即每一次投票过程中形成的有效投票节点集合,多个历史投票周期对应的有效投票节点集合之间存在重叠区间,多个历史投票周期对应的聚合公钥的组成成员之间也存在重叠。有鉴于此,本申请实施例中可以采用模拟退火算法从当前投票周期内的有效投票节点中选择投票概率较高的第一预设数目A个优选节点,并将A个优选节点对应的签名数据进行聚合,使得当前投票周期的聚合签名数据对应的聚合公钥与历史投票周期的聚合公钥的组成成员重叠度较高。
具体的,模拟退火算法用于计算难以准确求出最优解的问题。当求出一个解后,这个解越接近最优解,则接受这个解的概率越大。同时,即使一个解远离最优解,依然有小概率接受这个解,用于防止我们的计算陷入局部最优解。在本发明实施例中,我们不仅要保证聚合后的聚合签名数据对应的聚合公钥与验证节点保存的历史投票周期的聚合公钥的组成成员的重叠度,同时要保证选择的优选节点与下一轮参与投票的优选节点尽量接近。这是因为每个验证节点计算、存储能力有限,只会保留最近的若干次聚合结果,若每次选择的优选节点集合差异过大,则可以预见每轮验证节点均要进行大量计算。与此同时,下一轮哪些节点参与投票又是不可预测的。因而,我们认为越接近本轮的投票,约接近最优解,并用这个思路计算每个节点的权重,然后选出最优解。聚合节电设备可以采用模拟退火算法从当前投票周期内有效投票节点中选出最近W个历史投票周期内有效投票次数最多的前A个优选节点。
可选的,作为一种可能的实施方式,本发明实施例中采用模拟退火算法从当前投票周期内有效投票节点中选出最近W个历史投票周期内有效投票次数最多的前A个优选节点包括:根据接收到的当前投票周期内有效投票节点的身份信息构造第一类投票结果向量,其中每一个投票周期对应一个第一类投票结果向量,每一个投票节点在第一类投票结果向量中对应一个维度值,所有有效投票节点对应的维度值相同,其余投票节点对应的维度值相同;
聚合节点设备中保存有最近W个历史投票周期对应的投票结果向量,形成M×W的矩阵,mi,j为第i个投票节点在第j次投票周期内对应的维度值,根据公式计算每个有效投票节点对应的权重,其中当前投票周期内所有有效投票节点形成集合R,i∈R;
根据每个有效投票节点对应的权重确定权重值排名靠前的第一预设数目A个优选节点。
需要说明的是,对于聚合节点设备中保存有最近W个历史投票周期对应的编号是根据距离当前投票周期的时间间隔确定的,距离当前投票周期的时间间隔越小对应的编号越小。其次,具体的W数值可以根据实际需求进行合理的设置,此处不做限定。的计算过程是指,产生一个随机数r,若成立,则对应的mi,j的概率值P为1,反之若成立,则对应的mi,j的概率值P为0。可以理解的是上述实施例中的权重值仅仅是示例性的,可以根据实际需求进行合理的设置,只需要符合模拟退火原理即可。
可选的,作为一种可能的实施方式,当验证节点设备中存储有W个相同的历史投票周期,每个历史投票周期对应A个优选节点时,本发明实施例中采用模拟退火算法从当前投票周期内有效投票节点中选出第一预设数目A个优选节点包括:
判断W个历史投票周期中是否存在第一目标投票周期,第一目标投票周期内所有优选节点形成的集合其中集合Q为当前投票周期内有效投票节点的集合;
若存在第一目标投票周期,则确定第一目标投票周期对应的优选节点为当前投票周期对应的优选节点;
若不存在第一目标投票周期,则判断W个历史投票周期中是否存在第二目标投票周期,第二目标投票周期中存在A-1个优选节点形成的集合
若存在多个第二目标投票周期,则计算各个第二目标投票周期的权重并根据各个第二目标投票周期的权重选择出优选投票周期,其中与当前投票周期时间间隔越短的投票周期对应的编号k越小;
集合Q中的一个目标节点及优选投票周期对应的集合R2中的节点作为当前投票周期对应的A个优选节点,其中目标节点与集合R2中各个节点不同。
具体的,若存在多个第二目标投票周期,则可以根据各个第二目标投票周期的权重计算总权重生成随机数r∈[0,weight],根据r所处的区间确定优选投票周期,例如成立,则选择k=1的优选投票周期;成立,则选择k=2的优选投票周期,以此类推,每个k被选择的权重恰好为其权重在总权重中的百分比。
若不存在上述的第二目标投票周期,还可以进一步寻找第三目标投票周期,该第三目标投票周期中存在A-2个优选节点形成的集合以此类推最终可以寻找出优选投票周期。
可以理解的是,验证节点设备中的保存的W个历史投票周期的数据与聚合节点设备中保存的W个历史投票周期的数据,虽然都采用同一字母标识历史投票周期的数目,但可以根据实际需求设置不同数量的历史投票周期的数据,即这两个W的取值可以是不同的,具体可以根据实际需求及硬件资源进行合理的设置,此处不做限定。
可选的,本发明实施例中为了提高投票的可信度,可以选择多个验证节点设备,例如可选多个处于区块链网络中的节点设备作为验证节点设备,具体此处不做限定。
103、采用EC-Schnoor签名算法对当前投票周期内所有的优选节点发送的签名数据进行聚合,生成对应的聚合签名数据;
在确定当前投票周期内所有的优选节点之后,聚合节点设备可以采用EC-Schnoor签名算法对当前投票周期内所有的优选节点发送的签名数据进行聚合,生成对应的聚合签名数据。
104、将聚合签名数据及对应的优选节点的身份信息发送给验证节点设备。
聚合节点设备可以将聚合签名数据及对应的优选节点的身份信息发送给验证节点设备,以使得验证节点设备验证聚合签名数据。
可以理解的是,本发明实施例中的优选节点的身份信息可以是对应的投票节点设备的唯一编号也可以是投票节点设备对应的公钥,具体此处不做限定。
本发明实施例中,聚合节点设备确定当前投票周期内的投票通过之后,可以从当前投票周期内有效投票节点中选出第一预设数目的优选节点,并采用EC-Schnoor签名算法对当前投票周期内所有的优选节点发送的签名数据进行聚合,生成对应的聚合签名数据,由于聚合签名数据所占用的存储空间小于组成聚合签名的所有签名数据所占用的存储空间之和,因而可以节约数据传输占用的带宽及存储空间。其次,选取优选节点的过程中采用了模拟退火算法,该算法可以选择全局最优的优选节点组合,节省了最优聚合公钥与最新聚合公钥相同组成成员的公钥聚合运算,进而减小验证节点设备计算当前投票周期对应的聚合公钥的计算量。
可选的,作为一种可能的实施方式,在上述图1所示的实施例的基础上,在进行每一次的投票数据统计之前,并判断是否最新公钥数据是否有更新,若有更新,则将最新公钥数据同步至所有的验证节点设备,并确定不存在的公钥对应的投票节点作为离开节点;
若W个历史投票周期中存在第一历史投票周期,该第一历史投票周期内的离开节点是有效投票节点或优选节点,则删除聚合节点设备中存储的第一历史投票周期内所有的优选节点的身份信息或所有的有效投票节点的身份信息。
下面将结合具体流程对本发明实施例中的验证节点设备侧的验证流程进行说明。其中验证节点设备中存储有W个历史投票周期对应的聚合公钥,请参阅图2,本发明实施例中一种基于EC-Schnoor签名算法的门限投票方法的另一个实施例可包括:
201、接收聚合节点设备发送的当前投票周期的聚合签名数据及对应的优选节点的身份信息;
202、从最近W个历史投票周期对应的聚合公钥中,确定与聚合签名数据对应的节点公钥集合最相似的聚合公钥作为最优聚合公钥;
验证节点设备从最近W个历史投票周期对应的聚合公钥中,确定与聚合签名数据对应的节点公钥集合最相似的聚合公钥作为最优聚合公钥。具体识别聚合签名数据对应的节点公钥集合最相似的聚合公钥的方法此处不做限定,例如可以根据参与聚会的公钥重叠度进行计算相识度,重叠度越高,相识度越高。
示例性的,验证节点设备可以根据当前投票周期的优选投票节点的身份信息构造当前投票周期对应的第二类投票结果向量VR;计算本地存储的W个历史投票周期对应的W个第二类投票结果向量Vk与VR的汉明距离,并确定与VR的汉明距离最小的Vk对应的历史投票周期内的聚合公钥作为最优聚合公钥。
具体的,当验证节点设备接收到当前投票周期对应的聚合签名数据及对应的优选节点的身份信息之后,本发明实施例中的验证节点设备可以根据当前投票周期的优选投票节点的身份信息构造当前投票周期对应的第二类投票结果向量VR,其中每一个投票周期对应一个第二类投票结果向量,每一个投票节点在第二类投票结果向量中对应一个维度值,所有优选投票节点对应的维度值相同,其余投票节点对应的维度值相同。示例性的,假设整个系统共有M个投票节点,不失一般性的假设,每个节点均可用一个序号来表示,每个第二类投票结果向量具有M个维度值分别与M个投票节点一一对应,其中优选节点对应的维度值均为1,其余节点的维度值均为0,则每个投票周期对应一个M维的第二类投票结果向量。其中,当前投票周期对应的第二类投票结果向量用VR表示,其它历史投票周期对应的第二类投票结果向量用Vk表示,其中1≤k≤W。
当验证节点设备接收到当前投票周期对应的聚合签名数据及对应的优选节点的身份信息之后,只需要在自身存储的数据中找出一个最优历史投票周期,该最优历史投票周期优选节点集合与当前投票周期的优选节点集合的相似度极大,基于该历史投票周期对应的聚合公钥可以进行椭圆曲线点加和/或点减运算得到当前投票周期对应的最新聚合公钥,可以进一步降低了计算当前投票周期内签名数据验证过程中的计算量。例如当前投票周期的优选节点编号分别为1、3、5、7、9,验证节点设备中存储有历史投票周期对应的聚合公钥E,该聚合公钥E对应的优选节点编号为1、3、5、7、8,则只需要对聚合公钥E进行一次离散对数除法(除以优选节点8对应的公钥),再进行一次离散对数乘法(乘以优选节点9对应的公钥)即可得到当前投票周期对应的最新聚合公钥。
为了从W个历史投票周期中选择一个最优历史投票周期,本发明实施例中的验证节点设备可以计算本地存储的W个历史投票周期对应的W个第二类投票结果向量Vk与最新投票结果向量的汉明距离,并确定与VR的汉明距离最小的Vk对应的历史投票周期内的聚合公钥作为最优聚合公钥。
203、在最优聚合公钥的基础上进行椭圆曲线点加和/或点减运算得到当前投票周期内有效投票节点对应的最新聚合公钥,并根据最新聚合公钥验证聚合签名数据。
本发明实施例中,验证节点设备计算本地存储的W个历史投票周期对应的W个第二类投票结果向量Vk与最新投票结果向量的汉明距离,并确定与VR的汉明距离最小的Vk对应的历史投票周期内的聚合公钥作为最优聚合公钥;在最优聚合公钥的基础上进行椭圆曲线点加和/或点减运算得到当前投票周期对应的最新聚合公钥,节省了最优聚合公钥与最新聚合公钥相同组成成员的公钥聚合运算,减小了验证节点设备计算当前投票周期对应的聚合公钥的计算量。
为了便于理解,下面将结合具体的运用实例对本发明实施例中的门限投票方法进行描述。
假设整个系统共有M个投票节点,每个节点都有全局可知的公钥。当有任意节点改变公钥时,会全网同步最新的公钥。不失一般性的假设,每个节点均可用一个序号来表示。每个验证节点维护最近W次各不相同的公钥聚合的结果。W的大小取决于验证节点的存储和计算能力,例如,5到10之间,由各个验证节点自己决定,各个节点可以不同。每次结果都使用一个M比特的0、1向量v来表示。公钥聚合的结果中存在某个公钥,则向量在该公钥对应位置上为1,否则为0。
聚合节点维护距离当前时间最近W次各个节点投票的结果。每次投票的结果使用一个M比特的0、1向量来表示,若该节点投票,则向量在该节点对应位置上为1,否则为0。该W个向量一起组成一个M×W的矩阵。矩阵中的元素mij表示序号为i的投票节点在之前的第j次有效投票中是否投票。
聚合节点在每次收到投票时,首先检查公钥是否最新。如果公钥不是最新,说明有节点动态加入、离开网络。应该清空离开节点的投票历史,并将其编号分配给新加入网络的节点。然后判断投票数N是否大于tM。如果小于tM,说明投票数不足,退出本轮投票。如果N大于等于tM,使用如下模拟退火算法从N个投票节点中选择出tM个节点进行聚合。
模拟退火算法用于计算难以准确求出最优解的问题。当求出一个解后,这个解越接近最优解,则接受这个解的概率越大。同时,即使一个解远离最优解,依然有小概率接受这个解,用于防止我们的计算陷入局部最优解。在我们的问题中,我们不仅要保证聚合后的结果对于验证结果来说容易计算,同时要保证选择的节点与下一轮参与投票的节点尽量接近。这是因为每个验证节点计算、存储能力有限,只会保留最近的若干次聚合结果,若每次R差异过大,则可以预见每轮验证节点均要进行大量计算。与此同时,下一轮哪些节点参与投票又是不可预测的。因而,我们认为越接近本轮的投票,约接近最优解,并用这个思路计算每个节点的权重,然后选出最优解。
我们用R来表示有效投票节点的集合,r为[0,1]范围内均匀分布的随机数,e为数学常数,则可选的模拟退火算法实现方式可以为:
计算过程是:当i为定值时,计算每个节点的概率和 其中则对应的概率P为1,反之对应的概率P为0,选择其中排名靠前的tM个节点的公钥进行签名聚合运算。最终,聚合节点聚合后将多重签名及签名中涉及到的节点编号或公钥广播到所有验证节点。
当验证节点收到聚合后的签名后,首先根据收到的节点编号或者公钥列表提取出一个当前聚合结果对应的M比特的向量,然后依次计算该向量与之前保存的向量的汉明距离(Hamming Distance)。汉明距离的计算方法如下:
两个M比特的向量可以视为两个M维向量,向量中的每个元素为0或者1。从第1维开始到第M维,若两个向量对应位置元素不同,则汉明距离+1。
验证节点设备计算当前聚合结果的向量与之前保存的向量的汉明距离后,挑选汉明距离最小的向量对应的公钥聚合,则该公钥的聚合计算成为当前公钥聚合的计算量最小。
请参阅图3,本发明实施例还提供了一种基于EC-Schnoor签名算法的门限投票系统,其包括:
接收单元301,用于获取当前投票周期内有效投票节点发送的签名数据;
选择单元302,若有效投票节点的数目N与所有投票节点的总数目M的比值超过第一阈值T,则确认投票通过,则采用模拟退火算法从当前投票周期内有效投票节点中选出第一预设数目A个优选节点,A不大于N且不小于M与T的乘积;
聚合单元303,采用EC-Schnoor签名算法对当前投票周期内所有的优选节点发送的签名数据进行聚合,生成对应的聚合签名数据;
发送单元304,用于将聚合签名数据及对应的优选节点的身份信息发送给验证节点设备,以使得验证节点设备验证聚合签名数据。
本发明实施例中,聚合节点设备确定当前投票周期内的投票通过之后,可以从当前投票周期内有效投票节点中选出第一预设数目的优选节点,并采用EC-Schnoor签名算法对当前投票周期内所有的优选节点发送的签名数据进行聚合,生成对应的聚合签名数据,由于聚合签名数据所占用的存储空间小于组成聚合签名的所有签名数据所占用的存储空间之和,因而可以节约数据传输占用的带宽及存储空间。其次,选取优选节点的过程中采用了模拟退火算法,该算法可以选择全局最优的优选节点组合,节省了最优聚合公钥与最新聚合公钥相同组成成员的公钥聚合运算,进而减小验证节点设备计算当前投票周期对应的聚合公钥的计算量。
可选的,作为一种可能的实施方式,本发明实施例中的选择单元可以进一步包括:
构建模块,根据接收到的当前投票周期内有效投票节点的身份信息构造第一类投票结果向量,其中每一个投票周期对应一个第一类投票结果向量,每一个投票节点在第一类投票结果向量中对应一个维度值,所有有效投票节点对应的维度值相同,其余投票节点对应的维度值相同;
计算模块,聚合节点设备中保存有最近W个历史投票周期对应的投票结果向量,形成M×W的矩阵,mi,j为第i个投票节点在第j次投票周期内对应的维度值,根据公式计算每个有效投票节点对应的权重,其中当前投票周期内所有有效投票节点形成集合R,i∈R;
选择模块,根据每个有效投票节点对应的权重确定权重值排名靠前的第一预设数目A个优选节点。
可选的,作为一种可能的实施方式,当验证节点设备中存储有相同的W个历史投票周期对应的优选节点时,本发明实施例中的选择单元可以进一步包括:
第一判断模块,用于判断W个历史投票周期中是否存在第一目标投票周期,第一目标投票周期内所有优选节点形成的集合其中集合Q为当前投票周期内有效投票节点的集合;
第一确定模块,若存在第一目标投票周期,则确定第一目标投票周期对应的优选节点为当前投票周期对应的优选节点;
第二判断模块,若不存在第一目标投票周期,则判断W个历史投票周期中是否存在第二目标投票周期,第二目标投票周期中存在A-1个优选节点形成的集合
第二确认模块,若存在多个第二目标投票周期,则计算各个第二目标投票周期的权重并根据各个第二目标投票周期的权重选择出优选投票周期,其中与当前投票周期时间间隔越短的投票周期对应的编号k越小;
第三确认模块,选择集合Q中的一个目标节点及优选投票周期对应的集合R2中的节点作为当前投票周期对应的A个优选节点,其中目标节点与集合R2中各个节点不同。
可选的,作为一种可能的实施方式,本发明实施例中的门限投票系统还可以包括:
更新单元,用于获取所有投票节点的最新公钥数据,并判断是否最新公钥数据是否有更新,若有更新,则将最新公钥数据同步至所有的验证节点设备,并删除不存在的公钥对应的历史投票数据。
可选的,作为一种可能的实施方式,本发明实施例中门限投票系统还可以包括:
第二接收单元,用于接收聚合节点设备发送的当前投票周期的聚合签名数据及对应的优选节点的身份信息;
第二构建单元,用于根据当前投票周期的优选投票节点的身份信息构造当前投票周期对应的第二类投票结果向量VR,其中每一个投票周期对应一个第二类投票结果向量,每一个投票节点在第二类投票结果向量中对应一个维度值,所有优选投票节点对应的维度值相同,其余投票节点对应的维度值相同;
第二计算单元,计算本地存储的W个历史投票周期对应的W个第二类投票结果向量Vk与最新投票结果向量的汉明距离,其中1≤k≤W,并确定与VR的汉明距离最小的Vk对应的历史投票周期内的聚合公钥作为最优聚合公钥;
第二聚合单元,在最优聚合公钥的基础上进行椭圆曲线点加和/或点减运算得到当前投票周期内有效投票节点对应的最新聚合公钥。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,本发明实施例中描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
请参阅图4,在本实施例中还提供了一种终端设备,终端设备1可以是PC(PersonalComputer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机、智能路由器、矿机、网络存储设备终端设备。
该终端设备1可以是组成CDN网络或者区块链网络的节点。
该终端设备1可以包括存储器11、处理器12和总线13。处理器11执行计算机程序时实现上述图1所示的门限投票方法实施例中的步骤,例如图1所示的步骤101至104。或者,处理器执行计算机程序时实现上述各装置实施例中各模块或单元的功能。
本发明的一些实施例中,处理器具体用于实现如下步骤:
获取当前投票周期内有效投票节点发送的签名数据;
若有效投票节点的数目N与所有投票节点的总数目M的比值超过第一阈值T,则确认投票通过,并采用模拟退火算法从当前投票周期内有效投票节点中选出第一预设数目A个优选节点,A不大于N且不小于M与T的乘积;
采用EC-Schnoor签名算法对当前投票周期内所有的优选节点发送的签名数据进行聚合,生成对应的聚合签名数据;
将聚合签名数据及对应的优选节点的身份信息发送给验证节点设备,以使得验证节点设备验证聚合签名数据。
可选的,本发明的一些实施例中,处理器还可以用于实现如下步骤:
从当前投票周期内有效投票节点中选出最近W个历史投票周期内有效投票次数最多的前A个优选节点。
可选的,本发明的一些实施例中,处理器还可以用于实现如下步骤:
根据接收到的当前投票周期内有效投票节点的身份信息构造第一类投票结果向量,其中每一个投票周期对应一个第一类投票结果向量,每一个投票节点在第一类投票结果向量中对应一个维度值,所有有效投票节点对应的维度值相同,其余投票节点对应的维度值相同;
聚合节点设备中保存有最近W个历史投票周期对应的投票结果向量,形成M×W的矩阵,mi,j为第i个投票节点在第j次投票周期内对应的维度值,根据公式计算每个有效投票节点对应的权重,其中当前投票周期内所有有效投票节点形成集合R,i∈R;
根据每个有效投票节点对应的权重确定权重值排名靠前的第一预设数目A个优选节点。
当验证节点设备中存储有相同的W个历史投票周期对应的优选节点时,可选的,本发明的一些实施例中,处理器还可以用于实现如下步骤:
判断W个历史投票周期中是否存在第一目标投票周期,第一目标投票周期内所有优选节点形成的集合其中集合Q为当前投票周期内有效投票节点的集合;
若存在第一目标投票周期,则确定第一目标投票周期对应的优选节点为当前投票周期对应的优选节点;
若不存在第一目标投票周期,则判断W个历史投票周期中是否存在第二目标投票周期,第二目标投票周期中存在A-1个优选节点形成的集合
若存在多个第二目标投票周期,则计算各个第二目标投票周期的权重并根据各个第二目标投票周期的权重选择出优选投票周期,其中与当前投票周期时间间隔越短的投票周期对应的编号k越小;
选择集合Q中的一个目标节点及优选投票周期对应的集合R2中的节点作为当前投票周期对应的A个优选节点,其中目标节点与集合R2中各个节点不同。
可选的,本发明的一些实施例中,处理器还可以用于实现如下步骤:
获取所有投票节点的最新公钥数据,并判断是否最新公钥数据是否有更新,若有更新,则将最新公钥数据同步至所有的验证节点设备,并确定不存在的公钥对应的投票节点作为离开节点;
若W个历史投票周期中存在第一历史投票周期,第一历史投票周期内的离开节点是有效投票节点或优选节点,则删除聚合节点设备中存储的第一历史投票周期内所有的优选节点的身份信息或所有的有效投票节点的身份信息。
可选的,本发明的一些实施例中,处理器还可以用于实现如下步骤:
接收聚合节点设备发送的当前投票周期的聚合签名数据及对应的优选节点的身份信息;
从最近W个历史投票周期对应的聚合公钥中,确定与所述聚合签名数据对应的节点公钥集合最相似的聚合公钥作为最优聚合公钥;
在最优聚合公钥的基础上进行椭圆曲线点加和/或点减运算得到当前投票周期内有效投票节点对应的最新聚合公钥,并根据最新聚合公钥验证聚合签名数据。
可选的,本发明的一些实施例中,处理器还可以用于实现如下步骤:
根据当前投票周期的优选投票节点的身份信息构造当前投票周期对应的第二类投票结果向量VR,其中每一个投票周期对应一个第二类投票结果向量,每一个投票节点在第二类投票结果向量中对应一个维度值,所有优选投票节点对应的维度值相同,其余投票节点对应的维度值相同;
计算本地存储的W个历史投票周期对应的W个第二类投票结果向量Vk与最新投票结果向量的汉明距离,其中1≤k≤W,并确定与VR的汉明距离最小的Vk对应的历史投票周期内的聚合公钥作为最优聚合公钥。
可选的,本发明的一些实施例中,处理器还可以用于实现如下步骤:
同步所有投票节点的最新公钥数据,并判断最新公钥数据是否有更新,若有更新,则并确定不存在的公钥对应的投票节点作为离开节点;
若W个历史投票周期中存在第一历史投票周期,第一历史投票周期内的离开节点是有效投票节点或优选节点,则删除验证节点设备中存储的第一历史投票周期内所有的优选节点的身份信息及聚合公钥。
其中,存储器11至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是终端设备1的内部存储单元,例如该终端设备1的硬盘。存储器11在另一些实施例中也可以是终端设备1的外部存储设备,例如终端设备1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。进一步地,存储器11还可以既包括终端设备1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于终端设备1的应用软件及各类数据,例如**程序01的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行计算机程序01等。
该总线13可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,终端设备还可以包括网络接口14,网络接口14可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该终端设备1与其他电子设备之间建立通信连接。
可选地,该终端设备1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在终端设备1中处理的信息以及用于显示可视化的用户界面。
图4仅示出了具有组件11-14以及计算机程序01的终端设备1,本领域技术人员可以理解的是,图4示出的结构并不构成对终端设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,可以实现如下步骤:
获取当前投票周期内有效投票节点发送的签名数据;
若有效投票节点的数目N与所有投票节点的总数目M的比值超过第一阈值T,则确认投票通过,并采用模拟退火算法从当前投票周期内有效投票节点中选出第一预设数目A个优选节点,A不大于N且不小于M与T的乘积;
采用EC-Schnoor签名算法对当前投票周期内所有的优选节点发送的签名数据进行聚合,生成对应的聚合签名数据;
将聚合签名数据及对应的优选节点的身份信息发送给验证节点设备,以使得验证节点设备验证聚合签名数据。
可选的,本发明的一些实施例中,处理器还可以用于实现如下步骤:
从当前投票周期内有效投票节点中选出最近W个历史投票周期内有效投票次数最多的前A个优选节点。
可选的,本发明的一些实施例中,处理器还可以用于实现如下步骤:
根据接收到的当前投票周期内有效投票节点的身份信息构造第一类投票结果向量,其中每一个投票周期对应一个第一类投票结果向量,每一个投票节点在第一类投票结果向量中对应一个维度值,所有有效投票节点对应的维度值相同,其余投票节点对应的维度值相同;
聚合节点设备中保存有最近W个历史投票周期对应的投票结果向量,形成M×W的矩阵,mi,j为第i个投票节点在第j次投票周期内对应的维度值,根据公式计算每个有效投票节点对应的权重,其中当前投票周期内所有有效投票节点形成集合R,i∈R;
根据每个有效投票节点对应的权重确定权重值排名靠前的第一预设数目A个优选节点。
当验证节点设备中存储有相同的W个历史投票周期对应的优选节点时,可选的,本发明的一些实施例中,处理器还可以用于实现如下步骤:
判断W个历史投票周期中是否存在第一目标投票周期,第一目标投票周期内所有优选节点形成的集合其中集合Q为当前投票周期内有效投票节点的集合;
若存在第一目标投票周期,则确定第一目标投票周期对应的优选节点为当前投票周期对应的优选节点;
若不存在第一目标投票周期,则判断W个历史投票周期中是否存在第二目标投票周期,第二目标投票周期中存在A-1个优选节点形成的集合
若存在多个第二目标投票周期,则计算各个第二目标投票周期的权重并根据各个第二目标投票周期的权重选择出优选投票周期,其中与当前投票周期时间间隔越短的投票周期对应的编号k越小;
选择集合Q中的一个目标节点及优选投票周期对应的集合R2中的节点作为当前投票周期对应的A个优选节点,其中目标节点与集合R2中各个节点不同。
可选的,本发明的一些实施例中,处理器还可以用于实现如下步骤:
获取所有投票节点的最新公钥数据,并判断是否最新公钥数据是否有更新,若有更新,则将最新公钥数据同步至所有的验证节点设备,并确定不存在的公钥对应的投票节点作为离开节点;
若W个历史投票周期中存在第一历史投票周期,第一历史投票周期内的离开节点是有效投票节点或优选节点,则删除聚合节点设备中存储的第一历史投票周期内所有的优选节点的身份信息或所有的有效投票节点的身份信息。
可选的,本发明的一些实施例中,处理器还可以用于实现如下步骤:
接收聚合节点设备发送的当前投票周期的聚合签名数据及对应的优选节点的身份信息;
从最近W个历史投票周期对应的聚合公钥中,确定与所述聚合签名数据对应的节点公钥集合最相似的聚合公钥作为最优聚合公钥;
在最优聚合公钥的基础上进行椭圆曲线点加和/或点减运算得到当前投票周期内有效投票节点对应的最新聚合公钥,并根据最新聚合公钥验证聚合签名数据。
可选的,本发明的一些实施例中,处理器还可以用于实现如下步骤:
根据当前投票周期的优选投票节点的身份信息构造当前投票周期对应的第二类投票结果向量VR,其中每一个投票周期对应一个第二类投票结果向量,每一个投票节点在第二类投票结果向量中对应一个维度值,所有优选投票节点对应的维度值相同,其余投票节点对应的维度值相同;
计算本地存储的W个历史投票周期对应的W个第二类投票结果向量Vk与最新投票结果向量的汉明距离,其中1≤k≤W,并确定与VR的汉明距离最小的Vk对应的历史投票周期内的聚合公钥作为最优聚合公钥。
可选的,本发明的一些实施例中,处理器还可以用于实现如下步骤:
同步所有投票节点的最新公钥数据,并判断最新公钥数据是否有更新,若有更新,则并确定不存在的公钥对应的投票节点作为离开节点;
若W个历史投票周期中存在第一历史投票周期,第一历史投票周期内的离开节点是有效投票节点或优选节点,则删除验证节点设备中存储的第一历史投票周期内所有的优选节点的身份信息及聚合公钥。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (13)

1.一种基于EC-Schnoor签名算法的门限投票方法,其特征在于,运用于聚合节点设备,所述方法包括:
获取当前投票周期内有效投票节点发送的签名数据;
若有效投票节点的数目N与所有投票节点的总数目M的比值超过第一阈值T,则确认投票通过,并采用模拟退火算法从当前投票周期内有效投票节点中选出第一预设数目A个优选节点,所述A不大于N且不小于M与T的乘积;
采用EC-Schnoor签名算法对当前投票周期内所有的优选节点发送的签名数据进行聚合,生成对应的聚合签名数据;
将所述聚合签名数据及对应的优选节点的身份信息发送给验证节点设备,以使得验证节点设备验证所述聚合签名数据。
2.如权利要求1所述的方法,其特征在于,所述采用模拟退火算法从当前投票周期内有效投票节点中选出第一预设数目A个优选节点包括:
从当前投票周期内有效投票节点中选出最近W个历史投票周期内有效投票次数最多的前A个优选节点。
3.如权利要求2所述的方法,其特征在于,所述从当前投票周期内有效投票节点中选出最近W个历史投票周期内有效投票次数最多的前A个优选节点包括:
根据接收到的当前投票周期内有效投票节点的身份信息构造第一类投票结果向量,其中每一个投票周期对应一个第一类投票结果向量,每一个投票节点在第一类投票结果向量中对应一个维度值用以指示投票节点是否投票,所有有效投票节点对应的维度值相同,其余投票节点对应的维度值相同;
聚合节点设备中保存有最近W个历史投票周期对应的投票结果向量,形成M×W的矩阵,mi,j为第i个投票节点在第j次投票周期内对应的维度值,根据公式计算每个有效投票节点对应的权重,其中当前投票周期内所有有效投票节点形成集合R,i∈R;
根据每个有效投票节点对应的权重确定权重值排名靠前的第一预设数目A个优选节点。
4.如权利要求1所述的方法,其特征在于,当验证节点设备与所述聚合节点设备中存储有W个相同的历史投票周期,每个历史投票周期对应A个优选节点的身份信息时,所述采用模拟退火算法从当前投票周期内有效投票节点中选出第一预设数目A个优选节点包括:
判断所述W个历史投票周期中是否存在第一目标投票周期,所述第一目标投票周期内所有优选节点形成的集合其中集合Q为当前投票周期内有效投票节点的集合;
若存在所述第一目标投票周期,则确定所述第一目标投票周期对应的优选节点为当前投票周期对应的优选节点;
若不存在所述第一目标投票周期,则判断所述W个历史投票周期中是否存在第二目标投票周期,所述第二目标投票周期中存在A-1个优选节点形成的集合
若存在多个所述第二目标投票周期,则计算各个所述第二目标投票周期的权重并根据各个所述第二目标投票周期的权重选择出优选投票周期,其中与当前投票周期时间间隔越短的投票周期对应的编号k越小;
选择所述集合Q中的一个目标节点及所述优选投票周期对应的集合R2中的节点作为当前投票周期对应的A个优选节点,其中所述目标节点与集合R2中各个节点不同。
5.如权利要求1-4中任一项所述的方法,其特征在于,还包括:
获取所有投票节点的最新公钥数据,并判断是否最新公钥数据是否有更新,若有更新,则将最新公钥数据同步至所有的验证节点设备,并确定不存在的公钥对应的投票节点作为离开节点;
若所述W个历史投票周期中存在第一历史投票周期,所述第一历史投票周期内的所述离开节点是有效投票节点或所述优选节点,则删除所述聚合节点设备中存储的所述第一历史投票周期内所有的优选节点的身份信息或所有的有效投票节点的身份信息。
6.一种基于EC-Schnoor签名算法的门限投票方法,其特征在于,运用于验证节点设备,所述验证节点设备中存储有W个历史投票周期对应的聚合公钥,所述方法包括:
接收聚合节点设备发送的当前投票周期的聚合签名数据及对应的优选节点的身份信息;
从最近W个历史投票周期对应的聚合公钥中,确定与所述聚合签名数据对应的节点公钥集合最相似的聚合公钥作为最优聚合公钥;
在所述最优聚合公钥的基础上进行椭圆曲线点加和/或点减运算得到当前投票周期内有效投票节点对应的最新聚合公钥,并根据所述最新聚合公钥验证所述聚合签名数据。
7.根据权利要求6所述的方法,其特征在于,所述从最近W个历史投票周期对应的聚合公钥中,确定与所述聚合签名数据对应的节点公钥集合最相似的聚合公钥作为最优聚合公钥包括:
根据当前投票周期的优选投票节点的身份信息构造当前投票周期对应的第二类投票结果向量VR,其中每一个投票周期对应一个第二类投票结果向量,每一个投票节点在第二类投票结果向量中对应一个维度值,所有优选投票节点对应的维度值相同,其余投票节点对应的维度值相同;
计算本地存储的W个历史投票周期对应的W个第二类投票结果向量Vk与所述VR的汉明距离,其中1≤k≤W,并确定与所述VR的汉明距离最小的Vk对应的历史投票周期内的聚合公钥作为最优聚合公钥。
8.如权利要求7所述的方法,其特征在于,还包括:
同步所有投票节点的最新公钥数据,并判断所述最新公钥数据是否有更新,若有更新,则并确定不存在的公钥对应的投票节点作为离开节点;
若所述W个历史投票周期中存在第一历史投票周期,所述第一历史投票周期内的所述离开节点是有效投票节点或所述优选节点,则删除所述验证节点设备中存储的所述第一历史投票周期内所有的优选节点的身份信息及聚合公钥。
9.一种区块链系统,其特征在于,所述区块链系统包括聚合节点设备和验证节点设备,其中,
所述聚合节点设备用于执行如权利要求1至5中任一项所述的基于EC-Schnoor签名算法的门限投票方法中的步骤;
所述验证节点设备用于执行如权利要求6至8中任一项所述的基于EC-Schnoor签名算法的门限投票方法中的步骤。
10.一种终端设备,其特征在于,所述终端设备包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-8任一项所述门限投票方法中的步骤。
11.一种基于EC-Schnoor签名算法的门限投票系统,其特征在于,包括:
接收单元,用于在当前投票周期内接收投票节点发送的承诺信息并向对应的投票节点回复挑战信息;
生成单元,若接收到同一个投票节点发送的承诺信息及对应的回应信息,则确认对应的投票节点为有效投票节点,根据有效投票节点发送的承诺信息及对应的回应信息生成对应的签名数据;
选择单元,若有效投票节点的数目N与所有投票节点的总数目M的比值超过第一阈值T,则确认投票通过,则采用模拟退火算法从当前投票周期内有效投票节点中选出第一预设数目A个优选节点,所述A不大于N且不小于M与T的乘积;
聚合单元,采用EC-Schnoor签名算法对当前投票周期内所有的优选节点发送的签名数据进行聚合,生成对应的聚合签名数据;
发送单元,用于将所述聚合签名数据及对应的优选节点的身份信息发送给验证节点设备,以使得验证节点设备验证所述聚合签名数据。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序可被一个或者多个处理器执行,以实现如权利要求1至8中任一项所述的基于EC-Schnoor签名算法的门限投票方法中的步骤。
13.一种计算机程序产品,其特征在于,包括计算机指令,当其在计算机上运行时,使得计算机可以执行上述权利要求1至8中任一项所述的基于EC-Schnoor签名算法的门限投票方法中的步骤。
CN201910683715.4A 2019-07-26 2019-07-26 基于EC-Schnoor签名算法的门限投票方法、系统及相关设备 Withdrawn CN110401541A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910683715.4A CN110401541A (zh) 2019-07-26 2019-07-26 基于EC-Schnoor签名算法的门限投票方法、系统及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910683715.4A CN110401541A (zh) 2019-07-26 2019-07-26 基于EC-Schnoor签名算法的门限投票方法、系统及相关设备

Publications (1)

Publication Number Publication Date
CN110401541A true CN110401541A (zh) 2019-11-01

Family

ID=68326254

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910683715.4A Withdrawn CN110401541A (zh) 2019-07-26 2019-07-26 基于EC-Schnoor签名算法的门限投票方法、系统及相关设备

Country Status (1)

Country Link
CN (1) CN110401541A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111478775A (zh) * 2020-06-22 2020-07-31 杭州趣链科技有限公司 一种交互式聚合签名方法、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080156862A1 (en) * 2006-12-27 2008-07-03 Pitney Bowes Incorporated Vote by mail envelope that protects privacy of voter's signature
WO2011077826A1 (ja) * 2009-12-22 2011-06-30 クオード株式会社 電子投票システム
CN107968708A (zh) * 2017-11-10 2018-04-27 财付通支付科技有限公司 生成签名的方法、装置、终端及服务器
CN109165945A (zh) * 2018-09-07 2019-01-08 腾讯科技(深圳)有限公司 代表节点设备选举方法、装置、计算机设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080156862A1 (en) * 2006-12-27 2008-07-03 Pitney Bowes Incorporated Vote by mail envelope that protects privacy of voter's signature
WO2011077826A1 (ja) * 2009-12-22 2011-06-30 クオード株式会社 電子投票システム
CN107968708A (zh) * 2017-11-10 2018-04-27 财付通支付科技有限公司 生成签名的方法、装置、终端及服务器
CN109165945A (zh) * 2018-09-07 2019-01-08 腾讯科技(深圳)有限公司 代表节点设备选举方法、装置、计算机设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111478775A (zh) * 2020-06-22 2020-07-31 杭州趣链科技有限公司 一种交互式聚合签名方法、设备及存储介质

Similar Documents

Publication Publication Date Title
CN110505064A (zh) 基于EC-Schnoor签名算法的门限投票方法、系统及相关设备
Baza et al. B-ride: Ride sharing with privacy-preservation, trust and fair payment atop public blockchain
CN111629039B (zh) 一种区块链共识方法及客户端、背书节点、排序节点
CN109862041A (zh) 一种数字身份认证方法、设备、装置、系统及存储介质
CN110300172A (zh) 一种区块链数据的共识方法及相关设备
CN110247774A (zh) 一种区块链数据的共识方法及相关设备
CN110505305A (zh) 一种区块链分片方法、装置及区块链系统
CN108428132A (zh) 欺诈交易识别方法、装置、服务器及存储介质
CN110322246A (zh) 一种区块链交易信息的优化方法及相关设备
US20160358164A1 (en) Method and system for digital currency transaction signature and digital currency transaction device thereof
CN110365479A (zh) 基于区块链的随机数生成方法及装置
CN114338666A (zh) 对Fabric区块链跨链交易的验证方法、装置、设备及介质
CN110401537A (zh) 基于bls签名算法的门限投票方法、系统及相关设备
CN110120928A (zh) 一种身份认证的方法、装置、服务器及计算机可读介质
CN106657062A (zh) 用户识别的方法和装置
CN110399739A (zh) 一种基于区块链共识的门限投票方法及相关装置
Jameel et al. Optimizing blockchain networks with artificial intelligence: Towards efficient and reliable IoT applications
CN113890739B (zh) 跨区块链的认证方法、装置、电子设备及介质
CN110401541A (zh) 基于EC-Schnoor签名算法的门限投票方法、系统及相关设备
CN109840766A (zh) 一种设备控制方法及其相关设备
CN113645278B (zh) 一种区块链的跨链消息传输方法、设备、存储介质
CN110458507A (zh) 一种公众号业务托管的授权方法和装置
CN110400409A (zh) 基于bls签名算法的门限投票方法、系统及相关设备
Yan et al. Reputation consensus-based scheme for information sharing in internet of vehicles
CN112667753A (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
TA01 Transfer of patent application right

Effective date of registration: 20210915

Address after: 518000 21 / f-23 / F, block B, building 12, Shenzhen Bay science and technology ecological park, No. 18, South Keji Road, high tech community, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province

Applicant after: Xunlei Networking Technologies, Ltd.

Applicant after: SHENZHEN ONETHING TECHNOLOGIES Co.,Ltd.

Address before: 518052 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Applicant before: SHENZHEN ONETHING TECHNOLOGIES Co.,Ltd.

TA01 Transfer of patent application right
WW01 Invention patent application withdrawn after publication

Application publication date: 20191101

WW01 Invention patent application withdrawn after publication