基于区块链和安全多方计算的电子投票选举方法及装置与流程

文档序号:25032624发布日期:2021-05-11 17:03阅读:216来源:国知局
基于区块链和安全多方计算的电子投票选举方法及装置与流程

本发明涉及区块链技术领域,尤其涉及一种基于区块链和安全多方计算的电子投票选举方法及装置。



背景技术:

现有的网络选举方法主要采用中心化系统和传统密码学方式实现,选举的过程对各方不公开,存在隐私泄露风险和暗箱操作的问题,导致电子投票选举可信度低。

为了解决上述问题,目前常见的思路是综合运用各种现代密码技术提高选票的安全性,包括基于mix-net的方法、基于同态加密的方法、基于密码共享的方法以及基于盲签名的方法等等,比如微软公司开发的electionguard方案,该方案使用微软内部开发的同态加密实现在保持选票加密的同时计票,然后选民可选举网站上的跟踪代码来验证他们的选票是否已被统计和未被更改。

然而,这些密码学方法都是基于中心化的系统设计,存在不同程度的可被攻击者利用的安全漏洞并且攻击一旦发生无法进行有效追溯,同时也无法从根本上杜绝投票举办机构本身的暗箱操作。



技术实现要素:

本发明实施例的目的是提供一种基于区块链和安全多方计算的电子投票选举方法及装置,以解决相关技术中存在的投票信息安全性较低的问题。

根据本发明实施例的第一方面,提供一种基于区块链和安全多方计算的电子投票选举方法,该方法包括:

接收选民节点的选票;

将所述选票进行随机拆分,获得选票因子;

通过选民节点的私钥签名和选举代理节点的公钥对所述选票因子进行加密,得到选票因子加密数据,将所述选票因子加密数据上链共识;

每个选举代理节点获取链上发给本节点的所述选票因子加密数据,对所述选票因子加密数据进行解密并验证签名,获得选票因子,再对该选票因子经选举代理节点的私钥签名后写入链上共识;

将解密获得的选票因子输入选票统计智能合约,获得候选人的票数。

进一步地,还包括:通过非对称加密算法,对所述选举代理节点生成公钥和私钥。

进一步地,所述加密采用椭圆曲线加密算法。

进一步地,所述选民节点的选票以二进制序列表示。

进一步地,将所述选票进行随机拆分,获得选票因子,包括:

将所述选票的二进制数串转换为十进制数值;

将所述十进制数值随机拆分为若干个非零整数,作为选票因子。

进一步地,将所述选票因子加密数据上链共识后,还包括:

当智能合约判断出所有选民节点的选票因子已上链完毕或投票截止时间已到达,则关闭投票通道,进入选票统计阶段。

进一步地,进入选票统计阶段后,还包括:

对所述选票因子加密数据进行解密并验证签名后。

进一步地,将解密获得的选票因子输入选票统计智能合约,获得候选人的票数,包括:

根据解密获得的选票因子,将选票因子对应的十进制数值输入选票统计智能合约,选票统计智能合约对各个选举代理节点上的十进制数值进行求和,再转换为二进制数,根据候选人节点的数量,对二进制数进行划分,划分后转化为十进制,即可得到每个候选人的票数。

根据本发明实施例的第二方面,提供一种基于区块链和安全多方计算的电子投票选举装置,该方法包括:

接收模块,用于接收选民节点的选票;

随机拆分模块,用于将所述选票进行随机拆分,获得选票因子;

加密模块,用于通过选民节点的私钥签名和选举代理节点的公钥对所述选票因子进行加密,得到选票因子加密数据,将所述选票因子加密数据上链共识;

解密模块,用于每个选举代理节点获取链上发给本节点的所述选票因子加密数据,对所述选票因子加密数据进行解密并验证签名,获得选票因子,再对该选票因子经选举代理节点的私钥签名后写入链上共识;

统计模块,用于将解密获得的选票因子输入选票统计智能合约,获得候选人的票数。

根据本发明实施例的第三方面,提供一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的方法。

本发明的实施例提供的技术方案可以包括以下有益效果:本发明实施例提出了一种基于区块链和安全多方计算的电子投票选举方法,通过密算法和随机分布式存储,将选票加密和分散处理后写入链上,再由多个代理节点进行安全多方计算统计投票结果,实现了选举全过程的安全可信和公开透明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是根据一示例性实施例示出的一种基于区块链和安全多方计算的电子投票选举方法的流程图。

图2是根据一示例性实施例示出的一种基于区块链和安全多方计算的电子投票选举装置的结构框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

图1是根据一示例性实施例示出的一种基于区块链和安全多方计算的电子投票选举方法的流程图,如图1所示,该方法涉及由选民节点、候选人节点以及选举代理节点组成的区块链投票网络,可以包括以下步骤:

步骤s101,接收选民节点的选票;

在本实例的区块链投票网络中,将选民节点标记为bi(i=1…n),候选人节点标记为cj(j=1…m),选举代理节点标记为rk(k=1…k,m<k<n)。在设置投票代理节点时,可以选择可信赖的机构或者个人,也可以选择运行于区块链上的智能合约程序。选举代理节点的选择方式可以事先约定,也可以在每次投票时临时采用可验证随机算法(vrf)确定。选举代理节点数量不少于3个,且彼此隔离以免发生信息串通,对选票内容的隐私性和安全性造成威胁。

候选人节点cj的投票结果由长度l的二进制位ej表示,即如果cj被选中,则ej的前l-1位为0,第l位为1;其中,l由选民节点数量上限n决定,计算公式为:

l=ceiling(log2n,1)

一个选民节点bi的选票由长度为m×l的二进制数串e1e2…ej(j=1…m)表示。

在开始投票开始前,可以通过非对称加密算法,对所述选举代理节点生成公钥和私钥,进一步地,可以采用椭圆曲线加密算法,选择椭圆曲线{a,b,gx,gy,n,p},为每个选举代理节点rk生成非对称密钥对(pk,sk),更优选国密算法sm2。

步骤s102,将所述选票进行随机拆分,获得选票因子;

具体地,选民bi(i=1…n)选择若干个候选人cj(j=1…m)后,生成二进制数串e1e2…ej(j=1…m),将二进制数e1e2…ej转换为十进制数值vi,将十进制数值vi随机拆分为k个非零整数vik(i=1…n,k=1…k),作为选票因子。随机拆分后将选票数据进行了混淆,以免被投票代理人获取原始投票数据。

步骤s103,通过选民节点的私钥签名和选举代理节点的公钥对所述选票因子进行加密,得到选票因子加密数据,将所述选票因子加密数据上链共识;

具体地,采用椭圆曲线加密算法,选民节点使用自己私钥签名和选举代理节点rk的公钥pk,对vik加密,得到选票因子加密数据svik(i=1…n,k=1…k),选票因子加密数据svik(i=1…n,k=1…k)以交易的形式投票区块链网络进行共识。将选票数据加密后上链进行可信化处理。

步骤s104,每个选举代理节点获取链上发给本节点的所述选票因子加密数据,对所述选票因子加密数据进行解密并验证签名,获得选票因子,再对该选票因子经选举代理节点的私钥签名后写入链上共识;

具体地,每个代理节点rk获取链上发给本节点的选票因子加密数据svik(i=1…n,k=1…k),对所述选票因子加密数据svik(i=1…n,k=1…k)进行解密并验证签名,获得选票因子以及对应的十进制数值vi,再对选票因子以及对应的十进制数值vi经私钥签名写入链上共识。每个代理只负责本节点的选票因子数据混淆和链上存储。

步骤s105,将解密获得的选票因子输入选票统计智能合约,获得候选人的票数。

具体地,根据解密获得的选票因子,将选票因子对应的十进制数值vik输入选票统计智能合约,选票统计智能合约对各个选举代理节点k上的十进制数值vik进行求和,得到qi,再将qi转换为二进制数,根据候选人节点的数量,对二进制数qi按长度l将其划分为qi1,qi2,…,qim,分别统计每个候选人m的每个选民的选票qij,得到某个候选人的选票总和qj,将其转化为十进制数,即可得到每个候选人的票数。

在将所述选票因子加密数据上链共识后,还可包括:当智能合约判断出所有选民节点的选票因子已上链完毕或投票截止时间已到达,则关闭投票通道,进入选票统计阶段。

当进入选票统计阶段后,还可包括:智能合约在对所述选票因子加密数据进行解密并验证签名后,统计各个代理节点上的有效选票数量。

本发明实施例针对基于传统中心化系统的投票选举方法中存在的投票信息安全性较低的问题,本发明实施例提出了一种基于区块链和安全多方计算的电子投票选举方法,通过密算法和随机分布式存储,保证了电子选举过程的真实性、保密性、无据性和透明性,将选票加密和分散处理后写入链上,再由多个代理节点进行安全多方计算统计投票结果,实现了选举全过程的安全可信和公开透明。基于区块链技术实现了选票数据的分布式加密存储,保证了选票数据不可篡改,可追溯,实现各方对选举过程的全程监督。每个代理节点只负责选票数据的片段加密存储,使得各个代理单点无法整合或知晓真实的投票数据,有效解决传统选举数据安全和隐私保护问题。基于二进制选票数据分散矩阵技术,实现在安全多方计算框架下对选票进行编码和解码,实现选票数据的私密性,保证了选举结果的可信性和准确性。有效解决了传统方法难以解决的投票信息安全性较低的问题,从而避免了隐私泄露、贿选、暗箱操作和恶意投票,可实现安全、灵活、高效的投票选举。

本发明实施的方法可在各种基层管理或治理领域发挥重要作用,如社区、村(居)委会等换届选举过程中,利用区块链的电子投票选举方法,既能实现监督机构充分发挥监督作用,又能保证选举全流程合规。本发明实施例方法还可以充分保护选民隐私,即使系统运营方也无法获取选票信息,进一步保证罢免流程的有效实施,也可解决被选举方只看重选举结果而不重视行使职权过程的问题,选民可以真正地行使选举权和罢免权,无需担心隐私泄露,为建设公平、公正、公开的选举环境奠定坚实基础。

与前述的一种基于区块链和安全多方计算的电子投票选举方法的实施例相对应,本发明还提供了一种基于区块链和安全多方计算的电子投票选举装置的实施例。

图2是根据一示例性实施例示出的一种基于区块链和安全多方计算的电子投票选举换装置框图。参照图2,该装置包括:

接收模块21,用于接收选民节点的选票;

随机拆分模块22,用于将所述选票进行随机拆分,获得选票因子;

加密模块23,用于通过选民节点的私钥签名和选举代理节点的公钥对所述选票因子进行加密,得到选票因子加密数据,将所述选票因子加密数据上链共识;

解密模块24,用于每个选举代理节点获取链上发给本节点的所述选票因子加密数据,对所述选票因子加密数据进行解密并验证签名,获得选票因子,再对该选票因子经选举代理节点的私钥签名后写入链上共识;

统计模块25,用于将解密获得的选票因子输入选票统计智能合约,获得候选人的票数。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

对应地,本发明实施例还提供一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述的方法。

本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1