一种基于区块链的分布式电子投票方法及系统技术方案

技术编号:23561772 阅读:21 留言:0更新日期:2020-03-25 06:30
本发明专利技术公开了一种基于区块链的分布式电子投票方法及系统,利用了同态签密算法对选票进行隐藏,同态签密的同态属性和聚合属性可以使选民在不泄露选票内容的情况下实现分配投票和分布式计票,同时签密属性能保障选票的机密性与可验证性。本发明专利技术基于区块链平台,选票的收集、计票过程和结果公开均在区块链系统上进行,并在投票和计票阶段增加了两轮验证,防止不诚实选民的恶意行为。此外,该投票方法可以保证投票过程高度透明、选票不可伪造篡改、不需要第三方等特性。

A distributed electronic voting method and system based on blockchain

【技术实现步骤摘要】
一种基于区块链的分布式电子投票方法及系统
本专利技术涉及分布式电子投票
,尤其涉及一种基于区块链的分布式电子投票方法及系统。
技术介绍
本部分的陈述仅仅是提供了与本专利技术相关的
技术介绍
信息,不必然构成在先技术。电子投票逐渐成为主流的投票方式,但是电子投票也存在很多挑战,对电子投票也有很多的属性要求如:安全性、匿名性、合法性、公平性和可验证性等。大多数电子投票机制并不能完全满足上述所有要求,而且很少能够在满足基本属性的前提下实现高效的多候选者投票。现有技术中,许多的电子投票方案需要第三方来监督投票和计票,将会导致投票者隐私泄露,增大投票作弊的风险,存在一定的安全性问题。
技术实现思路
为了解决上述问题,本专利技术提出了一种基于区块链的分布式电子投票方法及系统,将区块链和同态签密应用到分布式电子投票中,利用区块链来实现不需要第三方辅助的批量计票和批量验证。在一些实施方式中,采用如下技术方案:一种基于区块链的分布式电子投票方法,包括:区块链生成公共参数,针对每一个投票者,生成唯一的密钥对;根据接收到的投票者发出的投票指令,利用盲化因子对投票指令对应的选票进行盲化,再对盲化因子进行同态签密,将盲化的选票和签密结果以交易的形式提交给区块链,区块链对选票进行验证并公布;对密签的选票执行解签密和计票操作,并将计票结果提交给区块链;区块链对计票结果进行验证;区块链对有效的计票结果进行汇总,计算出每位候选者的得票并公布结果。在另一些实施方式中,采用如下技术方案:一种终端设备,其包括处理器和计算机可读存储介质,处理器用于实现各指令;计算机可读存储介质用于存储多条指令,所述指令适于由处理器加载并执行上述的基于区块链的分布式电子投票方法。与现有技术相比,本专利技术的有益效果是:(1)本专利技术的一种基于区块链的分布式电子投票方法,其中的分布式电子投票的核心思想是分配投票和分布计票,可以很好的实现隐私保护,避免泄露投票者的投票意向,同时可以对投票和计票进行公开验证和纠正,避免不诚实投票以及错误的、不完整的计票的存在。(2)本专利技术的一种基于区块链的分布式电子投票方法,采用了同态签密技术对选票进行签名和加密。由于同态签密可在一个合理的逻辑步骤内同时完成签名和公钥加密,从而降低了计算和通信成本,是实现保密地传输选票的有效方法。同态签密方案应用到电子投票中能够更好的满足安全的电子投票协议的安全性要求。(3)本专利技术的一种基于区块链的分布式电子投票方法,利用区块链解决了同态签名方案对第三方的依赖问题,实现了在区块链网络中不需要可信任的第三方的情况下进行电子投票,既保留了端到端的隐私,又实现了投票过程的公开化以及投票的公开可验证。附图说明图1是本专利技术实施例一中投票的系统结构图;图2是本专利技术实施例一中投票的流程示意图;图3是本专利技术实施例一中对等点、智能合约以及区块链分类帐之间的整体通信流程。具体实施方式应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本专利技术使用的所有技术和科学术语具有与本申请所属
的普通技术人员通常理解的相同含义。需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。实施例一同态签密方案包括签密算法、聚合算法、解签密算法和验证算法,通过对明文进行签密生成密文和消息验证码,对密文聚合并解签密实现密文状态下对明文的聚合运算,并且可以用消息验证码对聚合结果进行验证。它在功能上等价于先同态签名后同态加密,并且还可以验证计算结果的正确性。区块链是一种链式的以时间顺序对数据区块组合的特定数据结构,使用密码学技术保证数据不可篡改、不可伪造。区块链上的交易由链上的节点共同完成,并由共识机制保证其一致性,区块链上维护一个去中心化的对任何节点可见的公共账本,从而保证交易不可伪造和篡改。智能合约是一段代码,它类似于一份基于密码学的数字化合同,它可以部署在区块链节点中,一旦某个事件触发合约中的条款,代码就会自动执行。基于此,为了解决
技术介绍
中存在的问题,在一个或多个实施例中,公开了一种基于区块链的分布式电子投票方法包括以下过程:区块链生成公共参数,针对每一个投票者,生成唯一的密钥对;根据接收到的投票者发出的投票指令,利用盲化因子对投票指令对应的选票进行盲化,再对盲化因子进行同态签密,将盲化的选票和签密结果以交易的形式提交给区块链,区块链对选票进行验证并公布;对密签的选票执行解签密和计票操作,并将计票结果提交给区块链;区块链对计票结果进行验证;区块链对有效的计票结果进行汇总,计算出每位候选者的得票并公布结果。在本专利技术实施方式中,投票发起者发起投票活动,将投票以智能合约的形式部署在区块链节点上,参与方在客户端向该合约发送交易参与投票,如图1所示。基于区块链和同态签密的分布式电子投票包含四个阶段分别为初始化阶段、投票阶段、计票阶段和汇总阶段,如图2所示,在投票阶段和计票阶段增加了验证部分,验证不合格的被标记“无效”的选票可以重新投。区块链中的具体操作均由智能合约执行,智能合约可以强制投票进程的执行,实现与投票者之间的交流。假设投票有候选者w个,有m个投票人参与投票,每个投票者有K张选票。投票人限制为公共区块链网络的矿工和联盟区块链上的对等参与者。投票发起者将投票部署在承载智能合约的节点中,并定义候选者人数和每个投票者的选票数。投票者的初始状态为“诚实”,投票余额为选票数,每张选票的初始状态为“有效”。客户端和区块链节点都配置了相关参数和密码学原语,对等点、智能合约以及区块链之间的通信流程如图3所示,投票分为初始化阶段、投票阶段、计票阶段和汇总阶段,每个阶段都设置一个时间戳,当时间截止时会进入下一阶段,防止恶意的投票者拖延时间,降低投票服务质量。具体投票过程如下:(1)初始化阶段区块链调用算法Setup(),生成并公布公共参数[q(x),p,q,g,H]。投票者Pi调用算法KeyGen(),生成自己的公私钥对(pki,ski)。每个投票者的初始选票余额为1,状态为“诚实”。其中,区块链生成投票所用的公共参数分别为有限域Zq上的n次不可约多项式q(x)、p为一个大素数、p-1的一个大素数因子q、中的q阶生成元g、单向的哈希函数投票者的私钥ski为随机选择的的一个生成元,公钥为(2)投票阶段投票者投票并用盲化因子对选票加密,在对盲化因子进行同态签密,将加密得选票和签密结果发送给区块链,区块链对选票进行验证和公布。选民投出的选择候选者j的选票格式为v(i,k)=mj(1≤j≤本文档来自技高网
...

【技术保护点】
1.一种基于区块链的分布式电子投票方法,其特征在于,包括:/n区块链生成公共参数,针对每一个投票者,生成唯一的密钥对;/n根据接收到的投票者发出的投票指令,利用盲化因子对投票指令对应的选票进行盲化,再对盲化因子进行同态签密,将盲化的选票和签密结果以交易的形式提交给区块链,区块链对选票进行验证并公布;/n对密签的选票执行解签密和计票操作,并将计票结果提交给区块链;/n区块链对计票结果进行验证;/n区块链对有效的计票结果进行汇总,计算出每位候选者的得票并公布结果。/n

【技术特征摘要】
1.一种基于区块链的分布式电子投票方法,其特征在于,包括:
区块链生成公共参数,针对每一个投票者,生成唯一的密钥对;
根据接收到的投票者发出的投票指令,利用盲化因子对投票指令对应的选票进行盲化,再对盲化因子进行同态签密,将盲化的选票和签密结果以交易的形式提交给区块链,区块链对选票进行验证并公布;
对密签的选票执行解签密和计票操作,并将计票结果提交给区块链;
区块链对计票结果进行验证;
区块链对有效的计票结果进行汇总,计算出每位候选者的得票并公布结果。


2.如权利要求1所述的一种基于区块链的分布式电子投票方法,其特征在于,区块链生成公共参数,针对每一个投票者,生成唯一的密钥对,具体为:
区块链执行Setup()算法,输出公共参数[q(x),p,q,g,H];其中,定义多项式q(x)为有限域Zq上的n次不可约多项式,p为一个大素数,q为p-1的大素数因子,g是中的q阶生成元,定义单向的哈希函数H:
执行KeyGen()算法生成投票指令的公私钥对(pki,ski),其中,ski为私钥,为随机选择的的一个生成元;pki为公钥,且


3.如权利要求1所述的一种基于区块链的分布式电子投票方法,其特征在于,利用盲化因子对选票进行盲化,具体为:
盲化因子为任意选择的随机数b(i,k),盲化操作为:
V(i,k)=(v(i,k)+b(i,k))modp;
其中,v(i,k)为选票格式。


4.如权利要求1所述的一种基于区块链的分布式电子投票方法,其特征在于,所述区块链对选票进行验证并公布,具体为:
检验发出投票指令的投票者是否还有投票余额,然后检验投票指令对应的选票是否合法。

【专利技术属性】
技术研发人员:吴磊曲文蕾
申请(专利权)人:山东师范大学
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1