一种基于联盟区块链技术的加密电子投票选举系统及方法与流程

文档序号:18704277发布日期:2019-09-17 23:25阅读:377来源:国知局
一种基于联盟区块链技术的加密电子投票选举系统及方法与流程

本发明涉及电子投票技术领域,具体为一种基于联盟区块链技术的加密电子投票选举系统及方法。



背景技术:

投票制度是指根据投票人的选择以选出结果的方法。最常见的投票莫过于选出公职的选举。投票其他用途包括授奖、选出行动计划、或由电脑程式决定复杂问题的解决方案。与投票相对的是共识决策法。

大部分投票制度以少数服从多数的理念为基础,通常是某一方案若获逾半数选民支持则会通过。然而,当可供选择的方案多于两个,可能没有一个选项获过半数支持,采用不同的投票制度便会产生不同的结果,所以,采用哪一种投票制度对选举结果有重要影响。

随着区块链技术的兴起,其去中心化的核心理念逐渐引起人们的关注,而在电子化投票领域。但是现有的电子投票系统在选票的秘密性、投票的匿名性等方面存在不足,系统过度依赖第三方计票中心和权威发布中心导致投票结果的正确性和公平性受到公众质疑。



技术实现要素:

针对现有技术的不足,本发明提供了一种基于联盟区块链技术的加密电子投票选举系统及方法,解决了现有的电子投票系统在选票的秘密性、投票的匿名性等方面存在不足,以及过度依赖第三方计票中心和权威发布中心导致投票结果的正确性和公平性受到公众质疑的问题。

为实现上述目的,本发明提供如下技术方案:

一种基于联盟区块链技术的加密电子投票选举系统,包括成员权限控制管理模块、投票智能合约模块和分布式账本存储模块。

所述选民和投票发起方通过成员权限控制管理模块注册其实体身份来加入联盟链网络,所述投票智能合约模块用于实现具体的加密投票过程自动化实现,且投票智能合约模块包括投票方合约、投票发布方合约、投票结果统计与公布合约,所述投票发起方利用投票发布方合约在联盟链上发布投票内容并进行数字签名,所述选民通过背书实体的数字证书对投票内容的合法性进行验证,将选票信息、签名信息和密文发送给投票结果统计和公布合约,所述投票方合约获取链上指定的投票内容,所述投票结果统计与公布合约获取选民的选票信息,所述投票结果统计与公布合约获取投票内容所指定的选民来过滤和验证选票,将选票结果发送给所有投票发起方和选民。

所述分布式账本由区块链网络中的节点维护,采用raft共识算法记账,并对投票方和投票发起方公开透明,可以对投票结果进行追溯验证。

优选的,所述选民将自己的选票信息经过投票方合约进行paillier同态加密运算,所述选民需要使用自己的私钥对同态运算的加密结果生成一份签名信息。

优选的,所述成员权限控制与管理模块是通过raft投票共识算法来控制节点或者账户的加入,防止恶意节点参与共。

优选的,所述投票智能合约模块用于构建许可制区块链投票系统的自动化实现,减少人工参与。

优选的,所述paillier同态加密算法是非对称性加密,每次生成一对公钥和私钥。

一种基于联盟区块链技术的加密电子投票选举系统及方法,包括以下步骤:

s1:成员身份注册,选民、投票发起方以及其他实体注册相应的身份到联盟区块链网络,成为节点或者账户。

s2:投票内容投放,投票发起方制作投票内容以及投票相关规则,并在区块链上投放投票内容。

s3:投票活动通知,投票发起方通过渠道通知选民填写选票内容。

s4:选票内容填写,选民填写自己的选票内容,通过同态加密运算后发送给投票结果统计与公布合约。

s5:计票与结果公布,当投票活动达到终止条件时,自动将选票内容通过同态加密运算统计最终选票内容,结果通过分布式共识存储到区块链上。

优选的,所述成员身份注册步骤,具体为,在任意时间内,选民、投票发起方或者其他实体以账户、节点的身份注册网络时,临近节点将注册信息广播到所有其他节点,节点对注册信息进行投票签名,获得半数以上投票之后,通过raft共识算法将注册信息写入分布式账本。

优选的,所述raft共识算法支持最大的容错故障节点是(n-1)/2,其中n为集群中总的节点数量。

优选的,所述投票相关规则包括合法选民规则、投票内容终止规则,所述投票内容包括本次投票活动背书认证的投票发起方以及具有高信用值的节点或者账户、指定参与选票的选民、所有候选人信息。

本发明具备以下有益效果:

本发明通过设置成员权限控制管理模块、投票智能合约模块和分布式账本存储模块,使电子投票时更加公平和私密,并采用了同态加密算法,其密钥对是每次随机生成,公钥对合法选民公开,私钥由计票与结果公布合约持有,保证了每一个选民的选票内容的秘密性,将选票结果存放到联盟区块链网络上,通过raft一致性共识算法保证账本的透明性、可信性与可靠性,通过选民的身份私钥对其进行数字签名,保证了选民选票的唯一不可重复性,解决了现有的电子投票系统在选票的秘密性、投票的匿名性等方面存在不足,系统过度依赖第三方计票中心和权威发布中心导致投票结果的正确性和公平性受到公众质疑的问题。

附图说明

图1为本发明电子投票选举方法示意图。

图2为本发明电子投票选举系统组成结构示意图。

图3为本发明电子投票选举系统工作原理示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明的具体实施以下步骤来实现:

s1:成员身份注册,选民、投票发起方以及其他实体注册相应的身份到联盟区块链网络,成为节点或者账户,成员身份注册步骤,具体为,在任意时间内,选民、投票发起方或者其他实体以账户、节点的身份注册网络时,临近节点将注册信息广播到所有其他节点,节点对注册信息进行投票签名,获得半数以上投票之后,通过raft共识算法将注册信息写入分布式账本,raft共识算法支持最大的容错故障节点是(n-1)/2,其中n为集群中总的节点数量,普通选民在联盟区块链网络中将以账户的身份注册,具有高信用值的选民个人、投票发起组织以及其他机构在联盟区块链网络中将注册为节点身份,节点在网络中参与共识记账,并且维护全账本。

s2:投票内容投放,投票发起方制作投票内容以及投票相关规则,并在区块链上投放投票内容,投票相关规则包括合法选民规则、投票内容终止规则,投票内容包括本次投票活动背书认证的投票发起方以及具有高信用值的节点或者账户、指定参与选票的选民、所有候选人信息。

s3:投票活动通知,投票发起方通过渠道通知选民填写选票内容。

s4:选票内容填写,选民填写自己的选票内容,通过同态加密运算后发送给投票结果统计与公布合约,同态加密算法采用的是paillier同态加密算法,即选民填写选票内容后,使用paillier算法的公钥pkf加密选票内容,该密钥还有另外一份私钥skf,只有获取私钥skf才能查看选票内容,从而实现投票过程中选民信息的隐私保护。

s5:计票与结果公布,当投票活动达到终止条件时,自动将选票内容通过同态加密运算统计最终选票内容,结果通过分布式共识存储到区块链上。

综上所述,首先选民、投票发起方以及其他实体注册相应的身份到联盟区块链网络,成为节点或者账户,其次,投票发起方根据需要设计并制作投票内容以及投票相关规则,并在区块链上投放投票内容,接着,投票发起方通过渠道通知选民填写选票内容,接到通知后,选民填写自己的选票内容,通过同态加密运算加密选票内容,将其发送给投票结果统计与公布合约,最后,当投票活动根据预设的投票终止规则达到终止条件时,计票和结果公布模块自动将选票内容通过同态加密运算统计最终选票内容,投票结果通过分布式共识存储到区块链上。

本发明提供了一种基于联盟区块链技术的加密电子投票选举方法,与之相对应的,本发明还提出了一种基于联盟区块链技术的加密电子投票选举系统。本系统的实施例类似于方法实施例。下面所描述的系统实施例仅用于说明系统的运行原理。

如图2-3所示,本发明包括成员权限控制管理模块、投票智能合约模块和分布式账本存储模块。选民和投票发起方通过成员权限控制管理模块注册其实体身份来加入联盟链网络,投票智能合约模块用于实现具体的加密投票过程自动化实现,且投票智能合约模块包括投票方合约、投票发布方合约、投票结果统计与公布合约,投票智能合约模块用于构建许可制区块链投票系统的自动化实现,减少人工参与,投票发起方利用投票发布方合约在联盟链上发布投票内容并进行数字签名,选民通过背书实体的数字证书对投票内容的合法性进行验证,将选票信息、签名信息和密文发送给投票结果统计和公布合约,选民将自己的选票信息经过投票方合约进行paillier同态加密运算,选民需要使用自己的私钥对同态运算的加密结果生成一份签名信息,paillier同态加密算法是非对称性加密,每次生成一对公钥和私钥,paillier同态加密密钥生成模块,针对每次投票活动,其用于生成加密密钥一对(pkf,skf),pkf发给合法选民,skf由计票与结果统计合约持有,对外不可见。

同态加密与解密是根据面向对象思想创建一个paillier类,该类中包含generatekey()、encrypt()、decrypt()、add()四个主要的方法,generatekey()函数用于生成一对密钥key,key中包含一个privatekey和publickey;encrypt()用于加密选票内容m,获得密文c;decrypt()用于解密密文c,add()用于统计加密结果。

同态加密与解密过程为,计票与结果公布合约创建一个paillier对象,调用generatekey()方法生产一对privatekey和publickey,其中的privatekey由合约自身保存,不对外公布。

任意选民接收到投票通知后,下载相应的选票内容模块以及publickey,同样创建一个paillier对象并调用encrypt()方法传入publickey来加密自己的选票内容,将密文发给计票与统计合约,投票终止规则满足后触发合约自动使用paillier算法的add()函数对所有选票内容进行计票,最后调用decrypt()传入privatekey对计算结果进行解密,之后将计票结果发送给合法选民。

成员权限控制与管理模块是通过raft投票共识算法来控制节点或者账户的加入,防止恶意节点参与共,投票方合约获取链上指定的投票内容,投票结果统计与公布合约获取选民的选票信息,投票结果统计与公布合约获取投票内容所指定的选民来过滤和验证选票,将选票结果发送给所有投票发起方和选民,分布式账本由区块链网络中的节点维护,采用raft共识算法记账,并对投票方和投票发起方公开透明,可以对投票结果进行追溯验证。

图3是本发明系统工作原理图,具体为:选民和投票发起方通过成员权限控制管理模块注册其实体身份来加入联盟链网络,选民或者其他个人以账户的身份注册,需要将个人数字证书和公钥发往任意节点,由该节点将广播新账户的注册信息到所有节点进行投票验证,只有获得半数以上节点的签名即可成功加入网络,并由该节点将注册信息写入分布式账本。

投票发起方、其他组织机构以节点的身份注册网络,同样时将注册信息发送到任意节点,由该节点广播注册信息到所有其他节点通过raft共识将注册信息写入分布式账本。

投票发起方利用自己的私钥签名将要发布的投票内容,利用投票发布方合约将其广播到所有节点进行背书,收集到半数以上的节点的背书之后,再将投票内容和背书信息发送到投票统计与公布模块。

其中的投票内容具体包括为本次投票活动背书认证的投票发起方以及具有高信用值的节点或者账户、指定参与选票的选民、所有候选人信息、投票活动有效期限。

投票结果统计与公布模块接收到投票内容和背书信息后,首先验证投票发起方的签名信息和背书签名信息。验证所有信息后,投票结果统计和公布模块利用paillier同态加密算法的密钥生成函数generatekey()生成用于本次投票的一对公钥pk和私钥sk,私钥对任何人都不可见,再将公钥pk和所有接收到的消息取哈希值,以哈希值为索引,通过节点共识存到分布式账本中,并将该哈希值返回给该投票发起方。

投票发起方将本次投票活动的哈希值通知给选民,选民收到投票发起方的投票活动通知之后,利用投票方合约根据哈希值获取链上指定的投票内容,根据背书实体的数字证书对投票内容的合法性进行验证,之后选民利用的公钥pk将自己的选票信息通过paillier加密算法的enc()函数进行加密,同时,选民需要使用自己的私钥对同态运算的加密结果生成一份签名信息,最后将签名信息和加密后的密文发送给投票结果统计和公布合约。

投票结果统计与公布合约获取链上的投票内容,根据背书实体的数字证书对投票内容的合法性进行验证,之后根据投票内容指定的选民来过滤和验证选票,利用paillier同态加密算法的add()函数对选票进行统计,最后利用对应的私钥sk将选票结果解密,分发给所有投票发起方和选民。

分布式账本用于存储投票内容、选票密文,多方维护以保证不可窜改。

该系统包括投票方合约、投票发布方合约、投票结果统计与公布合约,用于构建许可制区块链投票系统的自动化实现,减少人工参与。

该系统成员权限控制与管理模块通过节点投票认证来控制节点或者账户的加入,每次新节点或新账户的加入都需要所有节点参与投票,获取半数以上节点的同意票之后才能成功加入网络,防止恶意节点参与共识。

成员权限控制与管理模块,只有节点身份才能参与联盟区块链的共识,账户身份无法参与共识。

分布式账本存储模块是通过系统内注册的多节点进行维护,并对投票发起方和投票方公开透明,可以对投票结果进行追溯验证。

paillier同态加密算法是非对称性加密,实现选民投票匿名化。

投票结果统计和公布合约对每次投票内容自动生成一对(pk,sk),并将pk公开到联盟区块链上,本次投票的选民获取链上pk对选票结果进行加密;sk不对任何实体公开,用于对本次选票统计结果的解密。

选民对私有选票内容的加密结果进行数字签名,保证每一选票来自合法有效的选民,并且选民的选票唯一不可重复。

综上所述,通过设置成员权限控制管理模块、投票智能合约模块和分布式账本存储模块,使电子投票时更加公平和私密,并采用了同态加密算法,其密钥对是每次随机生成,公钥对合法选民公开,私钥由计票与结果公布合约持有,保证了每一个选民的选票内容的秘密性,将选票结果存放到联盟区块链网络上,通过raft一致性共识算法保证账本的透明性、可信性与可靠性,通过选民的身份私钥对其进行数字签名,保证了选民选票的唯一不可重复性,解决了现有的电子投票系统在选票的秘密性、投票的匿名性等方面存在不足,系统过度依赖第三方计票中心和权威发布中心导致投票结果的正确性和公平性受到公众质疑的问题

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

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