【技术实现步骤摘要】
一种基于区块链技术的不记名电子投票方法
本专利技术涉及区块链技术,尤其涉及一种基于区块链技术的不记名电子投票方法。
技术介绍
不记名投票是一种运用在选举中的投票形式。投票者在投票时,不用在选票上写下自己的名字或者身份识别,从而在投票的同时,避免非自愿让他人知道自己的投票内容。这种形式的投票可以确保投票者更多地出于个人意愿做出选择,是世界上普遍采用的选举方法。从投票结果上看,不记名投票可以分为单一获胜者与多重获胜者两种情况,单一获胜者可以看作多重获胜者的一个特例。多重获胜者的另一种特殊情况是全部选项均为获胜者,对应选举行为中的比例制与其他场景下的调查问卷。在要求获胜者的场景下,往往还需要设计多轮投票,常见的有决赛投票制与随机投票制。从选票形式上看,不记名投票可以分为二元投票制、排序投票制和计分投票制等,其中,二元投票制,即选票由“是/否”、“同意/反对”之类的二元选项构成的投票方式,应用最为广泛。本方法使用基于二元投票制的选票形式。从投票者的来源上看,可以分为开放投票制与封闭投票制,后者即事先指定投票者范围的投票方式。传统的投票方式存在高成本、低效率等缺点,并且投票 ...
【技术保护点】
1.一种基于区块链技术的不记名电子投票方法,其特征在于,所述的区块链包括客户端与区块链节点,投票承载于部署在区块链节点上的智能合约。区块链节点与客户端均配置相关的密码学原语与公共参数;投票发生在客户端,收计票以及结果公布发生在区块链节点;所述的不记名电子投票方法包括如下步骤:步骤一:综述完整的投票流程包括组织方和参与方;组织方将投票以智能合约的形式部署在区块链节点上,参与方向该合约发送交易参与投票;定义候选人个数k,胜出人数m,投票人数p,选票vote,编码算法Encode(),编码后的选票votep,投票密钥对(pkv,skv),加密算法Enc(),解密算法Dec(),密 ...
【技术特征摘要】
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的二进制长度=kVote介于[0,2k]Hamming(vote,0)≤mvote转码到GF(p)上的结果为votepvotep加密后的结果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写入合...
【专利技术属性】
技术研发人员:李伟,梁秀波,邱炜伟,李启雷,尹可挺,宗志恒,
申请(专利权)人:杭州趣链科技有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。