[发明专利]一种基于区块链技术的不记名电子投票方法有效
申请号: | 201811635980.7 | 申请日: | 2018-12-29 |
公开(公告)号: | CN109523683B | 公开(公告)日: | 2021-05-04 |
发明(设计)人: | 李伟;梁秀波;邱炜伟;李启雷;尹可挺;宗志恒 | 申请(专利权)人: | 杭州趣链科技有限公司 |
主分类号: | G07C13/00 | 分类号: | G07C13/00;H04L9/00 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 邱启旺 |
地址: | 310012 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 区块 技术 记名 电子 投票 方法 | ||
1.一种基于区块链技术的不记名电子投票方法,其特征在于,所述的区块链包括客户端与区块链节点,投票承载于部署在区块链节点上的智能合约;区块链节点与客户端均配置相关的密码学原语与公共参数;投票发生在客户端,收计票以及结果公布发生在区块链节点;
所述的不记名电子投票方法包括如下步骤:
步骤一:综述
完整的投票流程包括组织方和参与方;组织方将投票以智能合约的形式部署在区块链节点上,参与方向该合约发送交易参与投票;定义候选人个数k,胜出人数m,投票人数p,选票vote,编码算法Encode(),编码后的选票votep,投票密钥对(pkv,skv),加密算法Enc(),解密算法Dec(),密文的同态加法Add(),加密后的选票ct,投票随机数r;
其中,选票vote为编码在GF(2)上的数组,长度为候选人个数k;编码后的选票votep为定义在GF(p)上的数组,长度同样为候选人个数k,加密后的选票ct=Enc(pkv,votep);
组织方和参与方按照如下方式生成证明参数与验证公钥:定义如下函数proof=Prove(m,p,k,pkv,vote,votep,r,ct),其中(m,p,ct,k,pkv)为公开参数,(r,vote,votep)为隐私参数;定义函数Hamming(),获取两个等长二进制数的Hamming距离;Prove()函数将执行以下判断:
vote的二进制长度=k
Vote介于[0,2k]
Hamming(vote,0)≤m
vote转码到GF(p)上的结果为votep
votep加密后的结果Enc(pkv,votep,r)=ct
定义公共参数crs,验证密钥vk;定义验证函数Verify(crs,vk,ct,proof),如果Verify()返回真值,则验证通过,选票合法;否则验证失败;
双方使用Prove()函数,基于零知识证明技术生成公共参数crs和验证密钥vk;
步骤二:准备阶段
组织方部署投票合约,指定候选人个数k,胜出人数m,投票人数p,有效票数q,投票的起止时间与获胜条件;对于开放投票制,p可以为一个足够大的数;对于封闭投票制,合约需列出参与人的区块链公钥地址,p为参与人的总数;同时,组织方生成同态的公私钥对(pkv,skv),将pkv写入合约公布,在部署时将skv传入可信计算环境中,并提供调用接口给智能合约;
此外,组织方根据胜出条件,在合约中实现多轮投票的判断逻辑;
步骤三:投票
参与方填写选票vote,随机生成r,votep=Encode(vote),ct=Enc(pkv,r,votep),proof=Prove(m,p,k,pkv,vote,votep,r,ct),将选票(ct,proof)发送到区块链上;对于封闭投票制,只有合约公开的地址可以参与投票;
步骤四:收计票
采用封闭投票制时,投票合约验证投票是否来自参与人名单,对于来自参与人名单之外的地址或已经提交投票的参与方地址的选票,直接拒收;公开投票制则只需判断地址是否已经参与过投票;
对于收到的选票,合约首先判断选票是否合法,调用Verify(crs,vk,ct,proof),验证通过后记录该选票;
根据投票的起止时间和有效票数,判断是否可以进入到计票阶段;如果在投票截止时间收集到足够的选票n,n≥q,合约将选票进行统计,统计方法为Add(pkv,ct1,ct2,...,ctn),将结果ctr公布;
步骤五:结果公布
调用可信计算环境中的私钥skv解密结果ctr;得到投票结果在GF(p)上的编码,解码得到投票结果明文;
根据投票结果和获胜条件,公开获胜者;对于多重获胜者中的比例制或调查问卷场景,即不存在获胜者的情况,公开投票结果即可。
2.根据权利要求1所述的基于区块链技术的不记名电子投票方法,其特征在于,方法适用于不记名的二元制投票的多种投票方式,包括单一投票制、多重投票制、公开投票制、封闭投票制、单轮投票制、多轮投票制、单一获胜者以及多重获胜者。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州趣链科技有限公司,未经杭州趣链科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811635980.7/1.html,转载请声明来源钻瓜专利网。