Processing

Please wait...

Settings

Settings

Goto Application

1. CN109558517 - Multi-party secure election system based on block chain

Note: Text based on automatic Optical Character Recognition processes. Please use the PDF version for legal matters

[ ZH ]

权利要求书

1.一种基于区块链的多方安全选举方法,其特征在于,具体步骤为:
S10设置阶段:在以太坊系统的服务层制定分布式对等互联选举协议,设置选举管理员和选民,选举管理员设制选举的初始化问题,其包括参与人白名单、选举问题、候选人选项;
S20注册阶段:允许参与人白名单中的选民注册合法身份,且仅具有合法身份的选民获取选举的初始化问题;
S30发送加数阶段:选民将自己回复的选举的初始化问题以加密加数形式发送至以太坊区块链;
S40发送和阶段:选民从区块链中取出所有的加密加数,把这些加密加数求和;
S50计票阶段:选举管理员或具有合法身份的选民调用分布式对等互联选举协议进行票数统计。

2.如权利要求1所述的基于区块链的多方安全选举方法,其特征在于,还包括:S60选民验证票数,通过Web单页浏览选举结果。

3.如权利要求1所述的基于区块链的多方安全选举方法,其特征在于,所述分布式对等互联选举协议,具体为:
S10初始阶段:选取以太坊系统,生成公钥私钥x i 及电子选票a j (j∈{1,…,m}),制定分布式对等互联选举协议,构建用于选举的以太坊区块链;
S20选民注册:在太坊区块链广播公钥,以供n个选民获取,分配私钥x i 给选民,选民根据私钥x i 计算出一个非交互式的零知识证明ZKP(x i )发送以太坊区块链进行身份验证,若验证成功,选民为具有选民身份的选民P i (i∈{1,...,n});
S30发送加数阶段:具有选民身份的选民P i (i∈{1,...,n})在电子选票a j (j∈{1,…,m})上对m个候选人(C 1 ,C 2 ,…,C m ),若支持该候选人C j (j∈{1,...,m}),则选票a j =1,反对,则a j =0,由此生成选票,采用椭圆曲线加密算法对选票进行加密获得加密加数a ji ,且将其发送至以太坊区块链;
S40计票阶段:以太坊区块链将所有选民发送来的和的加密加数a ji 的值进行求和:以得到所有候选人C j (j∈{1,...,m})的得票数。

4.如权利要求1所述的基于区块链的多方安全选举方法,其特征在于,所述分布式对等互联选举协议,具体为:
S10初始阶段:选取以太坊系统,生成公钥私钥x i 及电子选票a j (j∈{1,…,m}),制定分布式对等互联选举协议,构建用于选举的以太坊区块链;
S20选民注册:在太坊区块链广播公钥,以供n个选民获取,分配私钥x i 给选民,选民根据私钥x i 计算出一个非交互式的零知识证明ZKP(x i )发送以太坊区块链进行身份验证,若验证成功,选民为具有选民身份的选民P i (i∈{1,...,n});
S30发送加数阶段:具有选民身份的选民P i (i∈{1,...,n})在电子选票a j (j∈{1,…,m})上对m个候选人(C 1 ,C 2 ,...,C m ),若支持该候选人C j (j∈{1,...,m}),则选票a j =1,反对,则a j =0,由此生成选票,采用椭圆曲线加密算法对选票进行加密获得加密加数a ji ,且将其发送至以太坊区块链;
S40发送和阶段:通过以太坊区块链,每位选民P i (i∈{1,...,n})通过自己持有的私有密钥x i 对发送给自己的加密加数a ji (j,i∈{1,...,n})进行解密:
v ji =decipher(a ji ),其中j,i∈{1,...,n},从而得到v ji
然后对解密得到的所有的加数v ji 进行求和:
其中j,i∈{1,...,n},并将计算得到的和发送给以太坊区块链;
S50计票阶段:以太坊区块链将所有选民发送来的和的值进行求和:
其中i∈{1,...,n},然后将S值由十进制数转化成二进制数,
再每k(k=[log 2 2*n]+1)位对S进行截取,即可得到所有候选人C j (j∈{1,...,m})的得票数。

5.如权利要求3或4所述的基于区块链的多方安全选举方法,其特征在于,所述选民根据私钥x i 计算出一个非交互式的零知识证明ZKP(x i )的方法为:所述以太坊系统将零知识证明实现为Schnorr证明,使用Fiat-Shamir启发式的方法保证其非交互性。

6.如权利要求3或4所述的基于区块链的多方安全选举方法,其特征在于,所述S10中以太坊系统的选取步骤包括:
(1)假设所有选民承认一个事实(G,g),其中G表示素数阶q的一个有限循环群,g表示G的生成元;
(2)假设现有n个选民(P 1 ,P 2 ,...,P n )参与投票,共有m个候选人(C 1 ,C 2 ,...,C m );
(3)设计电子选票结构:每列由k位构成其中
前k-1位为0,最后1位a i 值取决于选民,若选民对候选人C i 投赞成票,
则a i =1,否则a i =1,因此选票总位数为m*k。

7.如权利要求3或4所述的基于区块链的多方安全选举方法,其特征在于,所述S30中采用椭圆曲线加密算法对选票进行加密获得加密加数a ji 的方法为:
每位选民P i (i∈{1,...,n})将自己的选票v i (十进制数)执行拆分操作,随机地拆分为n个小整数v ij ,此时满足:然后通过椭圆曲线加密算法使用持有的n个选民的公有密钥对这n个整数进行加密:
a ji =encipher(v ji ),
其中j,i∈{1,…,n}。

8.一种基于区块链的多方安全选举系统,其特征在于,其用于实现如权利要求1-7所述的基于区块链的多方安全选举方法,其包括:
用户:用于通过服务器请求Web单页应用,进而与Web单页应用交互,可选地跨域访问其计算机上的以太坊节点,达到其参与选举的目的,用户类型包括选民和选举管理员;
Web单页应用:用于将以太坊区块链的分布式对等互联选举协议提供的服务接口前端可视化,及通过jQuery框架维护用户本地的状态,及与以太坊节点通过JSON-RPC进行交互;
以太坊节点:包括用户本地的以太坊节点和服务器上的以太坊节点,选举系统默认跨域访问用户本地安装的以太坊节点,若用户本地未安装以太坊节点,则与服务器上的以太坊节点进行交互;服务器上的以太坊节点还用于挖矿;
以太坊虚拟机:包括用户本地的以太坊虚拟机和服务器上的以太坊虚拟机,选举系统默认通过用户本地的以太坊虚拟机执行分布式对等互联选举协议代码,若用户本地为安装以太坊节点和以太坊虚拟机,则使用服务器上的以太坊虚拟机进行分布式对等互联选举协议代码的执行;
区块链:用于接收以太坊虚拟机提供的运算结果,进行写入操作,每个以太坊节点通过特定的哈希算法和Merk l e树数据结构,将一段时间内接收到的交易数据和代码封装到一个带有时间戳的区块中,并链接到当前最长的主区块链上,形成最新的区块。

9.如权利要求8所述的一种基于区块链的多方安全选举系统,其特征在于,其分层架构为:
呈现层:用于用户与所述选举系统之间的交互,采用Web单页技术,通过jQuery框架维护前端用户状态,Web单页通过以json为协议的远程调用服务与下层服务层进行交互;
服务层:其用于构建分布式的对等网络,由多个以太坊节点组成,对等网络中的以太坊节点为上层呈现层提供以太坊区块链的分布式对等互联选举协议服务,为下层操作层指定执行代码;
操作层:用于通过分布式对等网络中的以太坊虚拟机接收服务层中以太坊节点下达的代码执行指令,执行代码来计算结果,在计算完结果后进行验证,若验证成功,则将运算结果交由下层数据层;
数据层:用于接收上层操作层提供的运算结果,进行区块链写入操作,根据共识机制,主动的维护合法数据。

10.如权利要求8所述的基于区块链的多方安全选举的系统,其特征在于,所述服务器为云服务器。