一种基于区块链和安全多方计算的电子投票选举统计方法与流程

    专利2022-07-08  122


    本发明属于电子投票选举统计技术领域,具体涉及基于区块链和安全多方计算的电子投票选举统计方法。



    背景技术:

    目前,我国的基层选举主要有现场选举和网络选举两种方式,分别使用纸质选票和电子选票作为载体进行统计,现场选举因为受各种客观条件制约,网络选举逐渐成为各类基层选举的首选。现有的网络选举方法主要采用中心化系统和传统密码学方式实现,选举的过程对各方不公开,存在隐私泄露风险和暗箱操作的问题,导致电子投票选举可信度低,极大地损害了选民的选举权和相关机构的公信力。

    为了解决上述问题,目前常见的思路是综合运用各种现代密码技术提高选票的安全性,包括基于mix-net的方法、基于同态加密的方法、基于密码共享的方法以及基于盲签名的方法等等,比如微软公司开发的electionguard方案,该方案使用微软内部开发的同态加密实现在保持选票加密的同时计票,然后选民可根据选举网站上的跟踪代码来验证他们的选票是否已被统计和未被更改。然而,这些密码学方法都是基于中心化的系统设计,存在不同程度的可被攻击者利用的安全漏洞,并且攻击一旦发生无法进行有效追溯,同时也无法从根本上杜绝投票举办机构本身的暗箱操作。

    本发明提出了一种基于区块链和安全多方计算的电子投票选举方法,通过非对称加密算法和随机分布式存储,将选票加密和分散处理后写入链上,再由多个代理节点进行安全多方计算统计投票结果,实现了选举全过程的安全可信和公开透明。



    技术实现要素:

    本发明的目的在于提供一种基于区块链和安全多方计算的电子投票选举统计方法,为参与选举的各方构建一个可信的协作网络,使得选举过程安全透明,选举结果真实可信。

    本发明提供的基于区块链和安全多方计算的电子投票选举统计方法,首先,设置投票代理节点,在设置投票代理节点时,可以选择可信赖的机构或者个人,也可以选择运行于区块链上的智能合约程序;代理节点的选择方式可以事先约定,也可以在每次投票时临时采用可验证随机算法(vrf)确定;代理节点数量不少于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(2n,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代理节点的公钥pkvik(i=1…n)加密得到svik,然后以交易的形式写入链上;

    (3)投票结果统计,具体包括以下子步骤:

    (3.1)当智能合约判断出所有选民的选票因子已入链完毕,或投票截止时间已到达,则关闭投票通道,系统进入选票统计阶段;

    (3.2)进入选票统计阶段,首先智能合约统计有效选票数量和选民名单并在链上公布,然后每个代理节点rk获取链上发给本节点的选票因子加密数据svik,解密并验证签名,与链上有效选票数量和选民名单校验,同时将解出的所有选票因子和vi经私钥签名写入链上共识;

    (3.3)选票统计智能合约对各个代理节点上的vi求和得到q,并将q转换为二进制数,按长度l将其划分为q1q2,…,qm,将qj转化为十进制即可得到每个候选人的得票数。

    本发明的有益效果:

    1、基于区块链技术实现了选票数据的分布式加密存储,保证了选票数据不可篡改,可追溯,实现各方对选举过程的全程监督;

    2、每个代理节点只负责选票数据的片段加密存储,使得各个代理单点无法整合或知晓真实的投票数据,有效解决传统选举数据安全和隐私保护问题;

    3、基于二进制选票数据分散矩阵技术,实现在安全多方计算框架下对选票进行编码和解码,实现选票数据的私密性,保证了选举结果的可信性和准确性。

    附图说明

    图1为基于区块链和安全多方计算的电子投票选举方法流程图。

    具体实施方式

    下面结合附图对本发明作进一步详细说明。

    本发明提供的基于区块链和安全多方计算的电子投票选举统计方法,首先,设置投票代理节点,在设置投票代理节点时,可以选择可信赖的机构或者个人,也可以选择运行于区块链上的智能合约程序。代理节点的选择方式可以事先约定,也可以在每次投票时临时采用可验证随机算法(vrf)确定。代理节点数量不少于3个,且彼此隔离以免发生信息串通,对选票内容的隐私性和安全性造成威胁;然后,每个选民投票前将选票内容构造为整数,将之按照投票代理节点的数量,随机拆分为多个选票因子整数,并分别用私钥签名再分别以各个投票代理节点的公钥加密后写入链上;最后,当投票截止时,由各投票代理节点采用私钥解密并验证每个选票因子,并将选票因子之和写入链上共识,各参与方则通过各代理节点发布的选票因子及对应明文,汇总统计出最终投票结果。

    具体包括以下步骤:

    (1)网络与基础信息构建,具体包括如下信息:

    (1.1)确定选民标记为bi(i=1…n);

    (1.2)确定候选人标记为cj(j=1…m);

    (1.3)确定选举代理节点标记为rk(k=1…km<k<n),以代理节点、监督节点等组成一个区块链投票网络;

    (1.4)采用椭圆曲线加密算法,选择椭圆曲线{a,b,gx,gy,n,p},为每个选举代理节点rk生成非对称密钥对(pk,sk),优选国密算法sm2;

    (2)建立选举模型,具体包括如下步骤:

    (2.1)候选人cj的投票结果由长度l的二进制位ej表示,即如果cj被选中,则ej的前l-1位为0,第l位为1;其中,l由选民数量上限n决定,计算公式为:

    l=ceiling(2n,1)

    (2.2)一个选民bi的选票由长度为m×l的二进制数串e1e2…ej(j=1…m)表示;

    (3)开始投票,具体包括如下步骤:

    (3.1)选民bi(i=1…n)在投票软件选择若干个候选人cj(j=1…m),投票软件生成二进制数串e1||e2||…||ej(j=1…m);

    (3.2)将二进制数e1||e2||…||ej转换为十进制数值vi

    (3.3)将vi随机拆分为k个非零整数vik(i=1…n,k=1…k),作为选票因子;

    (3.4)选民通过投票软件,采用椭圆曲线加密算法,使用自己私钥签名并通过代理节点rk的公钥pkvik加密得到svik(i=1…n,k=1…k);

    (3.5)svik(i=1…n,k=1…k)以交易的形式投票区块链网络进行共识;

    (4)投票结果统计,具体包括如下步骤:

    (4.1)当智能合约判断出所有选民的选票因子已入链完毕,或投票截止时间已到达,则关闭投票通道,系统进入选票统计阶段;

    (4.2)进入选票统计阶段,首先智能合约统计有效选票数量和选民名单并在链上公布;

    (4.3)每个代理节点rk获取链上发给本节点的选票因子加密数据svik(i=1…n,k=1…k),解密并验证签名,与链上有效选票数量和选民名单校验,同时将解出的所有选票因子和vi经私钥签名写入链上共识;

    (4.4)选票统计智能合约对各个代理节点上的vi求和得到q,并将q转换为二进制数,按长度l将其划分为q1q2,…,qm,将qj转化为十进制即可得到每个候选人的得票数。

    本发明针对基于传统中心化系统的投票选举方法中存在的投票信息安全性较低,过程不公开透明等问题,构建了一个基于区块链的去中心化投票选举系统,有效解决了传统方法难以解决的数据安全和信任问题,可实现安全、灵活、高效的投票选举,广泛适用于政务管理与社会治理等各类投票场景。

    本发明提出基于区块链和安全多方计算技术,对选票数据进行加密处理和分布式存储,保证电子选举过程的真实性、保密性、无据性和透明性,从而解决了传统电子投票选举中易出现的的隐私泄露、贿选、暗箱操作和恶意投票等问题。本发明提出的安全可信、公开透明的选举统计方法可在各种基层管理或治理领域发挥重要作用,如社区、村(居)委会等换届选举过程中,利用区块链的电子投票选举方法,既能实现监督机构充分发挥监督作用,又能保证选举全流程合规。本发明方法可以充分保护选民隐私,即使系统运营方也无法获取选票信息,保证罢免流程的有效实施,解决了被选举方只看重选举结果而不重视行使职权过程的问题,选民可以真正地行使选举权和罢免权,无需担心隐私泄露,为建设公平、公正、公开的选举环境奠定坚实基础。


    技术特征:

    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(2n,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代理节点的公钥pkvik(i=1…n)加密得到svik,然后以交易的形式写入链上;

    (3)投票结果统计,具体包括以下子步骤:

    (3.1)当智能合约判断出所有选民的选票因子已入链完毕,或投票截止时间已到达,则关闭投票通道,系统进入选票统计阶段;

    (3.2)进入选票统计阶段,首先智能合约统计有效选票数量和选民名单并在链上公布,然后每个代理节点rk获取链上发给本节点的选票因子加密数据svik,解密并验证签名,与链上有效选票数量和选民名单校验,同时将解出的所有选票因子和vi经私钥签名写入链上共识;

    (3.3)选票统计智能合约对各个代理节点上的vi求和得到q,并将q转换为二进制数,按长度l将其划分为q1q2,…,qm,将qj转化为十进制即可得到每个候选人的得票数。

    技术总结
    本发明属于电子投票选举统计技术领域,具体涉及基于区块链和安全多方计算的电子投票选举统计方法。本发明方法包括,设置投票代理节点;选民投票前将选票内容构造为整数,按照投票代理节点的数量,随机拆分为多个选票因子,并用私钥签名再以各投票代理节点的公钥加密后写入链上;投票截止时,各投票代理节点采用私钥解密并验证每个选票因子,并将选票因子之和写入链上共识,各参与方通过各代理节点发布的选票因子及对应明文,汇总统计出最终投票结果。本发明方法可确保电子选举过程的真实性、保密性和透明性,解决了传统电子投票选举中易出现的隐私泄露、贿选、暗箱操作和恶意投票等问题;为建设公平、公正、公开的选举环境奠定坚实基础。

    技术研发人员:张德辉;韦一冰;盛峰松;尹可挺;马振军;汤泉
    受保护的技术使用者:杭州链城数字科技有限公司
    技术研发日:2020.11.24
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-15679.html

    最新回复(0)