基于可链接环签名的高效秘密选举方法及装置

文档序号:32436054发布日期:2022-12-06 19:00阅读:43来源:国知局
基于可链接环签名的高效秘密选举方法及装置

1.本技术涉及区块链技术领域,特别涉及一种基于可链接环签名的高效秘密选举方法及装置。


背景技术:

2.共识机制作为区块链的核心技术之一,以使得去中心化网络能够同步。常见的共识机制可以分为三类,分别是经典分布式共识机制、pox共识机制和混合共识机制。经典分布式共识机制是指在授权网络中,一组节点实现状态机复制,常见的方案有pbft、hotstuff 等。pox共识机制是一种专门用于区块链的共识机制,通过工作量、抵押等证明来争夺出块的权利,常见的方案有pos、pow等。混合共识是为将pox共识机制与经典分布式共识机制相结合,通常采用pox共识机制或其他算法选举委员会。委员会内部运行经典分布式共识达成一致,大部分的混合共识同时在委员会中选举出块人,常见的方案有polkadot、 byzcoin等。
3.在共识机制当中,具有的出块权利的节点通常被称为领导者。领导者的合理选择对于区块链系统的安全性和可用性具有重要的影响。
4.现有的区块链系统中,领导者选举的方法通常有以下几种。
5.(1)按照节点编号顺序替换
6.在经典的pbft共识机制中,一个节点作为领导者的时期称为一个视图(view),从一个视图更新到另一个视图的过程称为视图切换(viewchange)它的领导者选举规则是第 1个视图由1号节点担任领导者,第2个视图由2号节点担任领导者,
……
,第n+1个视图由1号节点担任领导者,依此类推(其中n是节点的总数)。
7.然而,该方案具有以下技术缺点:
8.a:领导者身份提前暴露,恶意节点可能会对于接下来的领导者节点进行拒绝服务攻击,造成频繁的viewchange;
9.b:预知领导者之后,可以进行贿赂攻击,即通过贿赂领导者来使出块的结果有利于自己,破坏系统的公平性。
10.c:viewchange的通信复杂度高达o(n3)。
11.(2)将选举融合到的共识的主流程中
12.hotstuff共识协议中,通过把viewchange的过程融合到达成共识的过程中,并使用多组共识链式进行的方法,将系统的viewchange的复杂度降低到o(n)。但是这种方式依然会有区块链出块之前领导者身份暴露导致的拒绝服务攻击和贿赂攻击问题。
13.其中,拒绝服务攻击是在对于pbft类按编号轮换领导者的共识中,敌手可以提前知道领导节点及候选节点的身份信息,进而可以针对性地对领导者及候选人发起拒绝服务攻击,使得系统始终无法达成共识,导致区块链网络停滞。
14.贿赂攻击则是领导者的身份在出块之前暴露,恶意节点可能通过贿赂领导者来使得区块的内容对自己有利,破坏区块链网络的公平性。
15.(3)pow领导者选举
16.pow共识机制中,将最早找到使区块哈希值符合要求的临时值(nonce)的节点作为当前的领导者,然而,区块链带中领导者身份证明的共识机制会产生能源消耗以及分叉问题,而且概率性产生领导者可能会出现同一轮中存在多个领导者的问题。这导致区块的内容需要等待一定的时间才可以被确认,导致区块链系统的高延迟。
17.其中,消耗能源具体指通过穷举的方式遍历nonce的过程中需要进行大量的哈希运算,而这些的无意义的运算的会消耗大量的能源;
18.分叉具体指可能出现有多个节点在相近的时间内找到nonce的情况,此时多个节点可能都会出块,导致区块链的分叉问题。分叉问题导致区块中的数据需要等待一定的区块数目才可以被确认,增加了区块链的延迟。
19.(4)利用可验证随机函数(verifiable random functions,vrf)的领导者选举
20.algorand算法使用vrf进行。计算出的vrf小于指定的阈值的节点被选举为领导者。利用这种方法来选举领导者可能会出现在一轮中有不止一个节点产生计算出的vrf符合要求,从而一轮存在多个领导者,产生了多个区块的问题。而此时需要是运行多轮的区块选择协议,会导致系统在一段时间内无法工作。
21.综上所述,相关技术还存在着区块链出块之前领导者身份暴露导致的拒绝服务攻击问题;区块链出块之前领导者身份暴露导致的贿赂攻击问题以及区块链带中领导者身份证明的共识机制所产生的能源消耗以及分叉问题,由此,不但增加了区块链的延迟,也破坏了区块链网络的公平性,亟待解决。


技术实现要素:

22.本技术提供一种基于可链接环签名的高效秘密选举方法及装置,以解决区块链出块之前领导者身份暴露导致的拒绝服务攻击和贿赂攻击问题,以及区块附带领导者身份证明的共识机制所产生的能源消耗以及分叉等问题。
23.本技术第一方面实施例提供一种基于可链接环签名的高效秘密选举方法,包括以下步骤:接收多个请求节点的抵押请求,根据所述抵押请求中的节点抵押金额得到多个待选举节点;根据所述多个待选举节点的公钥生成公钥环,根据所述待选举节点的私钥、节点标识和所述公钥环计算每个待选举节点的可链接环签名,并根据所述可链接环签名和所述节点标识生成所述每个待选举节点的选票,验证所述选票的有效性,根据验证结果将所述选票加入区块;根据预设随机数和所述选票计算选票排序,并将所述选票排序结果加入所述区块,根据预设节点选取规则在所述选票排序中选择领导节点,并利用所述领导节点发送所述区块。
24.可选地,在本技术的一个实施例中,所述根据所述抵押请求中的节点抵押金额得到多个待选举节点,包括:检测所述请求节点是否已缴纳抵押金,若未缴纳,则验证所述请求节点的余额是否大于等于所述节点抵押金额,且所述节点抵押金额大于等于预设抵押金额阈值,若是,则将所述请求节点加入所述待选举节点。
25.可选地,在本技术的一个实施例中,在根据所述待选举节点的节点标识、私钥和所述公钥环计算每个待选举节点的可链接环签名,之前还包括:生成所述待选举节点的一次性密钥k,利用对称加密算法计算所述待选举节点的标识id=ek(pk),pk为待选举节点的公
钥,e为对称加密算法。
26.可选地,在本技术的一个实施例中,所述验证所述选票的有效性,根据验证结果将所述选票加入区块,包括:验证所述可链接环签名中的公钥映像是否存在于当前选举阶段,和所述公钥环中的公钥是否全部缴纳节点抵押金,以及所述可链接环签名中的签名是否有效;若所述可链接环签名中的公钥映像不存在于当前选举阶段,且所述公钥环中的公钥已全部缴纳节点抵押金,且所述可链接环签名中的签名有效,则所述验证通过,所述选票有效,反之,所述选票无效;将所述选票加入所述区块,并对无效的选票标记无效。
27.可选地,在本技术的一个实施例中,在根据预设随机数和所述选票计算选票排序之前还包括:利用哈希函数、随机数生成器,序列密码算法、可验证随机函数中的至少一种生成所述预设随机数。
28.可选地,在本技术的一个实施例中,所述根据预设节点选取规则在所述选票排序中选择领导节点,包括:若存在位置j使得所述选票排序的第j个位置为所述请求节点i的选票,则所述请求节点i为第j个时隙的领导节点。
29.可选地,在本技术的一个实施例中,在利用所述领导节点发送所述区块之后,还包括:提取所述区块中领导节点的公钥和一次性密钥,利用所述公钥和所述一次性密钥计算所述领导节点的节点标识,验证所述领导节点的节点标识是否等于所述选票排序的第j个位置的节点标识,若相等,则所述领导节点身份合法,反之,所述领导节点身份不合法。
30.本技术第二方面实施例提供一种基于可链接环签名的高效秘密选举装置,包括:接收模块,用于接收多个请求节点的抵押请求,根据所述抵押请求中的节点抵押金额得到多个待选举节点;第一计算模块,用于根据所述多个待选举节点的公钥生成公钥环,根据所述待选举节点的私钥、节点标识和所述公钥环计算每个待选举节点的可链接环签名,并根据所述可链接环签名和所述节点标识生成所述每个待选举节点的选票,验证所述选票的有效性,根据验证结果将所述选票加入区块;选择模块,用于根据预设随机数和所述选票计算选票排序,并将所述选票排序结果加入所述区块,根据预设节点选取规则在所述选票排序中选择领导节点,并利用所述领导节点发送所述区块。
31.可选地,在本技术的一个实施例中,所述接收模块具体用于,检测所述请求节点是否已缴纳抵押金,若未缴纳,则验证所述请求节点的余额是否大于等于所述节点抵押金额,且所述节点抵押金额大于等于预设抵押金额阈值,若是,则将所述请求节点加入所述待选举节点。
32.可选地,在本技术的一个实施例中,还包括:第二计算模块,用于在根据所述待选举节点的节点标识、私钥和所述公钥环计算每个待选举节点的可链接环签名之前生成所述待选举节点的一次性密钥k,利用对称加密算法计算所述待选举节点的标识id=ek(pk),pk 为待选举节点的公钥,e为对称加密算法。
33.由此,本技术的实施例具有以下有益效果:
34.本技术的实施例通过接收多个请求节点的抵押请求,根据抵押请求中的节点抵押金额得到多个待选举节点;根据多个待选举节点的公钥生成公钥环,根据待选举节点的私钥、节点标识和公钥环计算每个待选举节点的可链接环签名,并根据可链接环签名和节点标识生成每个待选举节点的选票,验证选票的有效性,根据验证结果将选票加入区块;根据预设随机数和选票计算选票排序,并将选票排序结果加入区块,根据预设节点选取规则在
选票排序中选择领导节点,并利用领导节点发送区块,从而降低区块链的延迟,节约能源,实现了选举过程中的公平性。由此,解决了区块链出块之前领导者身份暴露导致的拒绝服务攻击和贿赂攻击问题,以及区块附带领导者身份证明的共识机制所产生的能源消耗以及分叉等问题。
35.本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
36.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
37.图1为根据本技术实施例提供的一种基于可链接环签名的高效秘密选举方法的流程图;
38.图2为根据本技术的一个实施例提供的一种基于可链接环签名的高效秘密选举方法的逻辑架构示意图;
39.图3为根据本技术的一个实施例提供的一种基于可链接环签名的高效秘密选举方法的执行逻辑示意图;
40.图4为根据本技术实施例的基于可链接环签名的高效秘密选举装置的示例图;
41.图5为申请实施例提供的电子设备的结构示意图。
42.附图标记说明:接收模块-100、第一计算模块-200、选择模块-300、存储器-501、处理器-502、通信接口-503。
具体实施方式
43.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
44.下面参考附图描述本技术实施例的基于可链接环签名的高效秘密选举方法及装置。针对上述背景技术中提到的问题,本技术提供了一种基于可链接环签名的高效秘密选举方法,在该方法中,通过接收多个请求节点的抵押请求,根据抵押请求中的节点抵押金额得到多个待选举节点;根据多个待选举节点的公钥生成公钥环,根据待选举节点的私钥、节点标识和公钥环计算每个待选举节点的可链接环签名,并根据可链接环签名和节点标识生成每个待选举节点的选票,验证选票的有效性,根据验证结果将选票加入区块;根据预设随机数和选票计算选票排序,并将选票排序结果加入区块,根据预设节点选取规则在选票排序中选择领导节点,并利用领导节点发送区块,从而解决了领导者身份的隐蔽和区块链的确定性出块不分叉之间的矛盾。在领导者出块之前,其他节点无法确定领导者的身份,而且同时可以保证领导者的身份的唯一性,不会在同一轮中出现2个或以上的领导者,从而保证了区块链不分叉的性质。由此,解决了区块链出块之前领导者身份暴露导致的拒绝服务攻击和贿赂攻击问题,以及区块附带领导者身份证明的共识机制所产生的能源消耗以及分叉等问题。
45.为了使描述更为准确,便于理解,本技术的实施例假设系统的运行分时代(epoch)
进行,epoch具有从0开始的唯一的编号,使用ei表示第i个epoch。一个时代中存在s个时隙 (slot),每个时隙中的存在一个领导者,出一个块。使用ski,pki分别表示第i个节点的私钥和公钥,在本区块链中假设使用公钥来标识节点。需要说明的是,在本技术的实施例中,每个slot中存在一个领导者,出一个块,此处也可以为slot中有一个领导者,出k(k≥1)个块,不做具体限定。
46.具体而言,图1为本技术实施例所提供的一种基于可链接环签名的高效秘密选举方法的流程图。
47.如图1所示,该基于可链接环签名的高效秘密选举方法包括以下步骤:
48.在步骤s101中,接收多个请求节点的抵押请求,根据抵押请求中的节点抵押金额得到多个待选举节点。
49.本技术的实施例所要实现的基于可链接环签名的高效秘密选举,其实质为对em中的各个slot的领导者进行选取。在时代e
m-2
之前,节点为了争夺出块权,需要抵押一定金额的代币,因此,本技术的实施例可首先通过对节点进行抵押与资格确认,以获取多个待选举节点。
50.可选地,在本技术的一个实施例中,根据抵押请求中的节点抵押金额得到多个待选举节点,包括:检测请求节点是否已缴纳抵押金,若未缴纳,则验证请求节点的余额是否大于等于节点抵押金额,且节点抵押金额大于等于预设抵押金额阈值,若是,则将请求节点加入待选举节点。
51.本技术的实施例在抵押与资格确认过程中,首先初始化一个空表,当收到一个抵押的请求时,进行以下操作:
52.1)验证节点是否在抵押表中,如是,则不需要再抵押,将请求标记为失败;
53.2)验证抵押金额是否高于节点的余额,如果抵押的金额高于节点的余额,则将请求标记为失败;
54.3)验证抵押金额是否低于的设定的最低抵押阈值,如果低于,说明抵押金额过少,将请求标记为失败;
55.4)在节点的余额中扣除抵押金额,将节点和抵押金额写入表中,将请求标记为成功。
56.当收到一个撤回抵押的请求时,进行以下操作:
57.1)判断节点是否在表中,如不在,说明节点没有抵押,将请求标记为失败;
58.2)读取节点的抵押的金额,从表中删除节点和对应的抵押金额,给节点的余额中加上抵押的金额,将请求标记为成功。
59.在步骤s102中,根据多个待选举节点的公钥生成公钥环,根据待选举节点的私钥、节点标识和公钥环计算每个待选举节点的可链接环签名,并根据可链接环签名和节点标识生成每个待选举节点的选票,验证选票的有效性,根据验证结果将选票加入区块。
60.在获取到多个待选举节点后,为了完成秘密选举使用的选票的生成工作,进一步地,本技术的实施例还需获取待选举节点的一次性密钥,其获取过程如下所述。
61.可选地,在本技术的一个实施例中,在根据待选举节点的节点标识、私钥和公钥环计算每个待选举节点的可链接环签名,之前还包括:生成待选举节点的一次性密钥k,利用对称加密算法计算待选举节点的标识id=ek(pk),pk为待选举节点的公钥,e为对称加密算
法。
62.具体地,在获取到多个待选举节点后,首先验证本节点是否在抵押表中,如不在,则说明不能进行竞选,流程结束;继而,从抵押表中读取除自己外的n-1个公钥,连同自己的公钥构成可链接环签名使用的公钥环ring;之后,生成一次性密钥k,计算id=ek(pk),其中e表示aes算法,pk表示节点的公钥,可链接环签名σ=ringsig(id,ring,sk),其中 ringsig表示cryptonote中的可链接环签名算法,sk表示节点的私钥。σ中至少应该包括签名s,公钥映像i,以及环签名使用的环ring;最后,对选票(id,σ)进行广播。
63.需要说明的是,在本技术的实施例中,上述e不限于使用aes算法,可以是任意一种对称密码算法。ringsig不一定是cryptonote中的可链接环签名算法,可以是任意一种可链接环签名算法,于此不做具体限定。
64.可选地,在本技术的一个实施例中,验证选票的有效性,根据验证结果将选票加入区块,包括:验证可链接环签名中的公钥映像是否存在于当前选举阶段,和公钥环中的公钥是否全部缴纳节点抵押金,以及可链接环签名中的签名是否有效;若可链接环签名中的公钥映像不存在于当前选举阶段,且公钥环中的公钥已全部缴纳节点抵押金,且可链接环签名中的签名有效,则验证通过,选票有效,反之,选票无效;将选票加入区块,并对无效的选票标记无效。
65.在获取选票并将其进行广播后,进一步地,本技术的实施例对于选票进行以下验证:
66.1)取出签名σ中的公钥映像i,判断公钥映像i是否在当前epoch已经出现过,若出现过,返回无效。
67.2)取出签名σ中的公钥环ring,判断是否其中的每一个公钥都在抵押表中,若不是,返回无效。
68.3)取出签名σ中的签名部分s,调用可链接环签名验证算法验证签名是否有效,若有效返回有效,否则返回无效。
69.在步骤s103中,根据预设随机数和选票计算选票排序,并将选票排序结果加入区块,根据预设节点选取规则在选票排序中选择领导节点,并利用领导节点发送区块。
70.通过上述对选票的有效性进行验证后,根据验证结果将选票加入区块,本技术的实施例可以根据一定的规则生成随机数,以便实现领导节点的选择,并利用领导节点发送区块。
71.可选地,在本技术的一个实施例中,在根据预设随机数和选票计算选票排序之前还包括:利用哈希函数、随机数生成器,序列密码算法、可验证随机函数中的至少一种生成预设随机数。
72.具体地,在本技术的实施例中,时代e
m-1
的随机数r
m-1
可以定义为r
m-1
=h(m
‑ꢀ
1,pk
m-2,0
,pk
m-2,1


,pk
m-2,s-1
),其中,pk
m-2,j
是e
m-2
中第j个slot的领导者的公钥,如果该slot中没有节点生成区块,pk
m-2,j
使用一个全0串代替。
73.时代e
m-1
中第一个出块的节点利用时代e
m-1
的时代随机数r
m-1
和所有的选票计算 orderi=h(σi,idi,rm),其中h是密码学哈希函数,并按照order从小到大的顺序对于所有的 (order,σi,idi)进行排序,将排序的结果上链,此处排序结果的前s项(s为一个epoch中的 slot的数量)就是em中的s个领导者。
74.需要说明的是,上述时代随机数r
m-1
的生成不一定使用哈希函数,也可以使用随机数生成器,序列密码算法或者可验证随机函数等可验证的随机数生成方法。此外,对于order的排序不一定是从小到大,也可以是从大到小或者任何一种确定性的排序方法,本领域技术人员可以根据实际情况进行设定,于此不做具体限定。
75.可选地,在本技术的一个实施例中,根据预设节点选取规则在选票排序中选择领导节点,包括:若存在位置j使得选票排序的第j个位置为请求节点i的选票,则请求节点i为第j个时隙的领导节点。
76.需要说明的是,本技术的实施例在普通的区块链区块生成的基础上增加三项功能,分别是选票收集与验证、选票排序和领导者身份证明。选票收集与验证功能首先收集的其他节点发送的选票,对于其中验证有效的选票直接加入区块中,无效的选票加入区块并标记为无效。选票排序功能仅在该领导者是epoch中的第一个出块人时调用,对选票进行排序,将排序结果附加到区块中。领导者身份证明功能将节点使用的一次性密钥k和公钥pk附加在区块中,作为领导者的身份证明。
77.在时代em中,对于节点i来说,如果存在一个位置j使得排序结果的第j个位置是自己产生的选票σi,说明自己被选为第j个slot的领导者。此时,节点i在em的slotj中可以生成一个区块b
m,j
,并在其中包含自己使用在第a步中使用的一次性密钥k和自己的公钥pki作为领导者的身份证明。领导者在出块之后赎回自己抵押的代币,如果需要的再次竞选领导者,需要更换自己的公私钥对。
78.可选地,在本技术的一个实施例中,在利用领导节点发送区块之后,还包括:提取区块中领导节点的公钥和一次性密钥,利用公钥和一次性密钥计算领导节点的节点标识,验证领导节点的节点标识是否等于选票排序的第j个位置的节点标识,若相等,则领导节点身份合法,反之,领导节点身份不合法。
79.具体地,在本技术的实施例中,对于epoch em中收到第j个区块b
m,j
,区块验证的工作流程如下:
80.1)从区块中取出k和pk,根据epoche
m-1
中的第一个区块中的排序结果的第j位中的id,验证ek(pk)是否等于id,若不等,说明出块人不是该slot的领导者,抛弃区块。
81.2)对于区块中包含的每个选票,验证选票是否有效,若存在无效选票,抛弃区块。
82.3)如果此区块是em中的第一个区块,若其中不包含对于e
m-1
中的选票的排序,则抛弃区块。否则取出排序结果,对结果中的每个(order,σ,id),验证order是否等于 h(σ,id,rm),如存在不等的,则抛弃区块,否则验证order是否递增排序,若不是,说明排序有误,抛弃区块。
83.4)使用原有的区块验证模块验证区块内容是否有效,若无效,抛弃区块,否则区块有效,执行区块内容。
84.下面通过一个具体实施例对本技术的一种基于可链接环签名的高效秘密选举方法进行详细说明。
85.图2展示了本技术的实施例在实现基于可链接环签名的高效秘密选举的逻辑架构,如图2所示,上述逻辑架构中主要包含有五个模块,分别是抵押模块、竞选模块、选票验证模块、区块生成模块和区块验证模块;此外,图3展示了基于可链接环签名的高效秘密选举方法的执行逻辑,如图3所示,该具体实施例对em中的各个slot的领导者进行选取的过程
如下所述:
86.a、抵押与资格确认
87.在时代e
m-2
之前,节点为了争夺出块权,需要抵押一定金额的代币,将e
m-2
之前进行了抵押且没有赎回的节点集合表示为stake
m-2

88.b、选票生成与上链
89.在时代e
m-2
中,节点i生成一次性密钥k,计算idi=ek(pki),其中e是一个对称加密算法,节点自行选择公钥列表ringi={pk|pk∈stake
m-2
}∪{pki},计算可链接环签名,σi=ringsig(idi,ringi,ski),σi中至少应该包括签名si,公钥映像ii,以及环签名使用的环ringi,节点匿名公布选票(σi,idi),领导者收到选票之后,验证:
90.1)si是对于idi的有效的签名;
91.2)ringi中的每一个pk都在stakem中;
92.3)ii之前没有被上链过。
93.如果验证通过,则将直接选票上链,否则将选票上链,并标记为无效。
94.c、随机数生成与选票排序
95.时代e
m-1
的随机数r
m-1
定义为r
m-1
=h(m-1,pk
m-2,0
,pk
m-2,1


,pk
m-2,s-1
),其中, pk
m-2,j
是e
m-2
中第j个slot的领导者的公钥,如果该slot中没有节点生成区块,pk
m-2,j
使用一个全0串代替。
96.时代e
m-1
中第一个出块的节点利用时代e
m-1
的时代随机数r
m-1
和所有的选票计算 orderi=h(σi,idi,rm),其中h是密码学哈希函数,并按照order从小到大的顺序对于所有的(order,σi,idi)进行排序,将排序的结果上链,此处排序结果的前s项(s为一个epoch中的 slot的数量)就是em中的s个领导者。
97.d、领导者出块与身份证明
98.在时代em中,对于节点i来说,如果存在一个位置j使得排序结果的第j个位置是自己产生的选票σi,说明自己被选为第j个slot的领导者。此时,节点i在em的slotj中可以生成一个区块b
m,j
,并在其中包含自己使用在第a步中使用的一次性密钥k和自己的公钥pki作为领导者的身份证明。领导者在出块之后赎回自己抵押的代币,如果需要的再次竞选领导者,需要更换自己的公私钥对。
99.e、出块人身份合法性的验证。
100.其他节点收到区块b
m,j
后,从区块中提取一次性密钥k和公钥pk,并验证ek(pki)是否等于排序结果中的第j个位置的id,如果相等,说明领导者身份合法,否则说明领导者身份不合法,丢弃区块。
101.根据本技术实施例提出的基于可链接环签名的高效秘密选举方法,接收多个请求节点的抵押请求,根据抵押请求中的节点抵押金额得到多个待选举节点;根据多个待选举节点的公钥生成公钥环,根据待选举节点的私钥、节点标识和公钥环计算每个待选举节点的可链接环签名,并根据可链接环签名和节点标识生成每个待选举节点的选票,验证选票的有效性,根据验证结果将选票加入区块;根据预设随机数和选票计算选票排序,并将选票排序结果加入区块,根据预设节点选取规则在选票排序中选择领导节点,并利用领导节点发送区块,由此,本技术的实施例可以解决区块链在出块之前领导者的身份隐藏和区块链确定性出块不分叉之间的矛盾,并利用代币抵押解决了区块链中的女巫攻击问题,利用可
链接环签名技术解决了竞选中的重复票问题,利用时代随机数和哈希函数实现了选举过程中的公平性。
102.其次参照附图描述根据本技术实施例提出的基于可链接环签名的高效秘密选举装置。
103.图4是本技术实施例的基于可链接环签名的高效秘密选举装置的方框示意图。
104.如图4所示,该基于可链接环签名的高效秘密选举装置10包括:接收模块100、生成模块200以及选择模块300。
105.其中,接收模块100,用于接收多个请求节点的抵押请求,根据抵押请求中的节点抵押金额得到多个待选举节点;第一计算模块200,用于根据多个待选举节点的公钥生成公钥环,根据待选举节点的私钥、节点标识和公钥环计算每个待选举节点的可链接环签名,并根据可链接环签名和节点标识生成每个待选举节点的选票,验证选票的有效性,根据验证结果将选票加入区块;选择模块300,用于根据预设随机数和选票计算选票排序,并将选票排序结果加入区块,根据预设节点选取规则在选票排序中选择领导节点,并利用领导节点发送区块。
106.可选地,在本技术的一个实施例中,接收模块100具体用于,检测请求节点是否已缴纳抵押金,若未缴纳,则验证请求节点的余额是否大于等于节点抵押金额,且节点抵押金额大于等于预设抵押金额阈值,若是,则将请求节点加入待选举节点。
107.可选地,在本技术的一个实施例中,还包括:第二计算模块,用于在根据待选举节点的节点标识、私钥和公钥环计算每个待选举节点的可链接环签名之前生成待选举节点的一次性密钥k,利用对称加密算法计算待选举节点的标识id=ek(pk),pk为待选举节点的公钥,e为对称加密算法。
108.可选地,在本技术的一个实施例中,第一计算模块200,包括:验证单元,验证可链接环签名中的公钥映像是否存在于当前选举阶段,和公钥环中的公钥是否全部缴纳节点抵押金,以及可链接环签名中的签名是否有效;若可链接环签名中的公钥映像不存在于当前选举阶段,且公钥环中的公钥已全部缴纳节点抵押金,且可链接环签名中的签名有效,则验证通过,选票有效,反之,选票无效;处理单元,用于将选票加入区块,并对无效的选票标记无效。
109.可选地,在本技术的一个实施例中,还包括:构造模块,用于在选择模块300之前利用哈希函数、随机数生成器,序列密码算法、可验证随机函数中的至少一种生成预设随机数。
110.可选地,在本技术的一个实施例中,根据预设节点选取规则在选票排序中选择领导节点,包括:若存在位置j使得选票排序的第j个位置为请求节点i的选票,则请求节点i为第j个时隙的领导节点。
111.可选地,在本技术的一个实施例中,还包括:判断模块,用于在选择模块300之后提取区块中领导节点的公钥和一次性密钥,利用公钥和一次性密钥计算领导节点的节点标识,验证领导节点的节点标识是否等于选票排序的第j个位置的节点标识,若相等,则领导节点身份合法,反之,领导节点身份不合法。
112.需要说明的是,前述对基于可链接环签名的高效秘密选举方法实施例的解释说明也适用于该实施例的基于可链接环签名的高效秘密选举装置,此处不再赘述。
113.根据本技术实施例提出的基于可链接环签名的高效秘密选举装置,接收多个请求节点的抵押请求,根据抵押请求中的节点抵押金额得到多个待选举节点;根据多个待选举节点的公钥生成公钥环,根据待选举节点的私钥、节点标识和公钥环计算每个待选举节点的可链接环签名,并根据可链接环签名和节点标识生成每个待选举节点的选票,验证选票的有效性,根据验证结果将选票加入区块;根据预设随机数和选票计算选票排序,并将选票排序结果加入区块,根据预设节点选取规则在选票排序中选择领导节点,并利用领导节点发送区块,将本技术的实施例应用于区块链系统中,可以安全高效地实现区块链领导者的迭代,其安全性体现在隐藏在领导者出块之前隐藏领导者的身份,避免由于领导者身份过早暴露出现的拒绝服务攻击和贿赂攻击,其高效性体现在不需要使用工作量证明机制,节约能源,以及确定性出块,不会分叉,交易确认延迟小。
114.图5为本技术实施例提供的电子设备的结构示意图。该电子设备可以包括:
115.存储器501、处理器502及存储在存储器501上并可在处理器502上运行的计算机程序。
116.处理器502执行程序时实现上述实施例中提供的基于可链接环签名的高效秘密选举方法。
117.进一步地,电子设备还包括:
118.通信接口503,用于存储器501和处理器502之间的通信。
119.存储器501,用于存放可在处理器502上运行的计算机程序。
120.存储器501可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
121.如果存储器501、处理器502和通信接口503独立实现,则通信接口503、存储器501 和处理器502可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构 (industry standard architecture,简称为isa)总线、外部设备互连(peripheral component,简称为pci)总线或扩展工业标准体系结构(extended industry standard architecture,简称为eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
122.可选的,在具体实现上,如果存储器501、处理器502及通信接口503,集成在一块芯片上实现,则存储器501、处理器502及通信接口503可以通过内部接口完成相互间的通信。
123.处理器502可能是一个中央处理器(central processing unit,简称为cpu),或者是特定集成电路(application specific integrated circuit,简称为asic),或者是被配置成实施本技术实施例的一个或多个集成电路。
124.本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上的基于可链接环签名的高效秘密选举方法。
125.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或n个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结
合和组合。
126.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“n个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
127.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更n个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
128.应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,n个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
129.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1