[发明专利]一种基于区块链和安全多方计算的电子投票选举统计方法有效
申请号: | 202011329543.X | 申请日: | 2020-11-24 |
公开(公告)号: | CN112489283B | 公开(公告)日: | 2022-06-21 |
发明(设计)人: | 尹可挺;方雯璟;汤泉;张德辉;盛峰松;马振军 | 申请(专利权)人: | 杭州链城数字科技有限公司 |
主分类号: | G07C13/00 | 分类号: | G07C13/00;H04L67/1097;H04L67/56;H04L9/08;G06F21/60;G06F21/62 |
代理公司: | 上海正旦专利代理有限公司 31200 | 代理人: | 陆飞;陆尤 |
地址: | 310053 浙江省杭州市滨江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 区块 安全 多方 计算 电子 投票 选举 统计 方法 | ||
1.一种基于区块链和安全多方计算的电子投票选举方法,其特征在于,首先,设置投票代理节点,代理节点数量不少于3个;投票代理节点为可信赖的机构或者个人,或者为运行于区块链上的智能合约程序;代理节点的选择方式为事先约定,或者在每次投票时临时采用可验证随机算法确定;然后,每个选民投票前将选票内容构造为整数,将之按照投票代理节点的数量,随机拆分为多个选票因子整数,并分别用私钥签名再分别以各个投票代理节点的公钥加密后写入链上;最后,当投票截止时,由各投票代理节点采用私钥解密并验证每个选票因子,并将选票因子之和写入链上共识,各参与方则通过各代理节点发布的选票因子及对应明文,汇总统计出最终投票结果;具体步骤为:
(1)建立选举模型,具体包括以下子步骤:
(1.1)确定选民,标记为Bi(i=1…N);
(1.2)确定候选人,标记为Cj(j=1…M);
(1.3)确定选举代理节点,标记为Rk(k=1…K);
(1.4)投票结果以二进制数表示,每个候选人都会以长度l的二进制数表示,投票结构就是M个二进制数的拼接;其中,l由选民数量上限N决定,计算公式为:
l=ceiling(log2N,1)
(1.5)采用非对称加密算法为每个选举代理节点生成非对称密钥对(Pk,Sk);
(2)开始投票,具体包括以下子步骤:
(2.1)选民Bi在投票软件选择若干个候选人Cj,每个候选人选票由l长度的二进制数ej(j=1…M)表示;
(2.2)投票软件将选民Bi的多个候选人的投票结果二进制数ej(j=1…M)拼接为一个长度为l×M的二进制数串Ei(i=1…N);
(2.3)投票软件将Ei(i=1…N)转换为十进制数Vi(i=1…N);
(2.4)投票软件根据投票代理节点的数量K,将Vi随机拆分为K个非零整数(选票因子){Vi1,Vi2,...,Vik}(k=1…K);
(2.5)选民使用投票软件用其私钥对每个Vik签名,分别使用第k代理节点的公钥Pk对Vik(i=1…N)加密得到SVik,然后以交易的形式写入链上;
(3)投票结果统计,具体包括以下子步骤:
(3.1)当智能合约判断出所有选民的选票因子已入链完毕,或投票截止时间已到达,则关闭投票通道,系统进入选票统计阶段;
(3.2)进入选票统计阶段,首先智能合约统计有效选票数量和选民名单并在链上公布,然后每个代理节点Rk获取链上发给本节点的选票因子加密数据SVik,解密并验证签名,与链上有效选票数量和选民名单校验,同时将解出的所有选票因子和Vi经私钥签名写入链上共识;
(3.3)选票统计智能合约对各个代理节点上的Vi求和得到Q,并将Q转换为二进制数,按长度l将其划分为Q1,Q2,…,Qm,将Qj转化为十进制即可得到每个候选人的得票数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州链城数字科技有限公司,未经杭州链城数字科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011329543.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种装皮带轮定位工装的结构
- 下一篇:一种机电设备安装设备