CN109558517B - 一种基于区块链的多方安全选举系统 - Google Patents

一种基于区块链的多方安全选举系统 Download PDF

Info

Publication number
CN109558517B
CN109558517B CN201811244613.4A CN201811244613A CN109558517B CN 109558517 B CN109558517 B CN 109558517B CN 201811244613 A CN201811244613 A CN 201811244613A CN 109558517 B CN109558517 B CN 109558517B
Authority
CN
China
Prior art keywords
election
block chain
peer
voter
protocol
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811244613.4A
Other languages
English (en)
Other versions
CN109558517A (zh
Inventor
郑子彬
肖小粤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN201811244613.4A priority Critical patent/CN109558517B/zh
Publication of CN109558517A publication Critical patent/CN109558517A/zh
Application granted granted Critical
Publication of CN109558517B publication Critical patent/CN109558517B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C13/00Voting apparatus

Abstract

本发明公开一种基于区块链的多方安全选举系统,本系统选择了以太坊,提供了一个内置成熟的区块链,使用语言创建分布式对等互联选举协议来编码实现任意的状态转换功能或定制的逻辑,该方法采用分布式对等互联选举协议,分布式对等互联选举协议是基于安全多方求和协议的、去中心化的、自计票的选举协议,其能满足更高的安全性需求,并与区块链契合,其包括注册阶段、发送加数阶段、发送和阶段和计票阶段,为一种基于安全多方求和协议的、去中心化的、自计票的、安全可靠的协议。本发明的具备分布式对等互联选举协议的区块链可以为本选举系统提供去中心化、不可篡改、安全可靠、可编程性等特性。

Description

一种基于区块链的多方安全选举系统
技术领域
本发明涉及区块链技术领域,特别涉及一种基于区块链的多方安全选举系统。
背景技术
区块链是一种去中心化的技术,这就让基于区块链技术的选举能够在很好地保护选民身份不被泄露的同时,用最快的速度统计出投票结果,让整个选举过程能在一种低成本、高效率的环境下运行。到目前为止,区块链已经不再是那个在神坛上高高在上的技术,而是变得非常“接地气”,许多实际应用中都有对它的使用,但是需求与区块链技术紧密契合的选举应用领域的相关研究与发明严重滞后、亟待跟进。因此,对于选举领域中区块链技术的应用研究与发明,不但具备了极为广阔的应用前景,同时也具有很重要的理论意义。
安全多方计算的研究旨在无可信第三方的情况之下,怎样安全地计算一个契约函数的问题,在电子拍卖、电子选举、门限签名及秘密共享等应用场景中起着重要的作用。而区块链基础架构所提出的场景恰恰是一个无可信第三方的场景。对于基于区块链的选举领域,若将安全多方计算结合起来,将在公开、客观的选举过程的前提下,极大的保护了选民的隐私。因此,结合安全多方计算的相关研究与发明具有十分重要的现实意义。
目前投票系统主要包含两种,分别是非区块链的投票系统和基于区块链的投票系统。
在非区块链的投票系统中,一种比较典型的架构设计是Helios投票系统的架构设计。Helios是Ben Adida提出的一个基于网络的开放式审计的投票平台。Helios为了支持可验证性,其使用一个Web服务器作为公开公告板,用来记录投票过程中产生的信息,为所有选民提供一致的视图。而这个Web服务器是需要被所有选民所信任的,于是这便产生了一个信任假设,即一个中心化的角色。
在基于区块链的投票系统中,常常采取了这样一种解决方案:使用区块链作为投票箱。但是这些解决方案需要第三方权威机构的参与,以保护选民隐私。这样的投票系统包括FollowMyVote、TIVI等投票系统。在FollowMyVote中,权威机构混淆选民的真实世界身份和他们的投票密钥之间的对应关系。然后,选民以明文投票。在TIVI中,权威机构在解密和计票之前打乱加密的投票。这些解决方案的局限性在于需要依赖于一个第三方权威机构,并且仅仅使用区块链作为一个不可篡改、仅支持添加的全局数据库。
发明内容
本发明的提出一种基于区块链的多方安全选举系统,旨在克服以上问题。
为实现上述目的,本发明提出的一种基于区块链的多方安全选举方法,其特征在于,具体步骤为:
S10设置阶段:在以太坊系统的服务层制定分布式对等互联选举协议,设置选举管理员和选民,选举管理员设制选举的初始化问题,其包括参与人白名单、选举问题、候选人选项;
S20注册阶段:允许参与人白名单中的选民注册合法身份,且仅具有合法身份的选民获取选举的初始化问题;
S30发送加数阶段:选民将自己回复的选举的初始化问题以加密加数形式发送至以太坊区块链;
S40发送和阶段:选民从区块链中取出所有的加密加数,把这些加密加数求和;
S50计票阶段:选举管理员或具有合法身份的选民调用分布式对等互联选举协议进行票数统计。
优选地,S60选民验证票数,通过Web单页浏览选举结果。
优选地,所述分布式对等互联选举协议,具体为:
S10初始阶段:选取以太坊系统,生成公钥
Figure GDA0003895766950000031
私钥xi及电子选票aj(j∈{1,…,m}),制定分布式对等互联选举协议,构建用于选举的以太坊区块链;
S20选民注册:在太坊区块链广播公钥,以供n个选民获取,分配私钥xi给选民,选民根据私钥xi计算出一个非交互式的零知识证明ZKP(xi)发送以太坊区块链进行身份验证,若验证成功,选民为具有选民身份的选民Pi(i∈{1,...,n});
S30发送加数阶段:具有选民身份的选民Pi(i∈{1,...,n})在电子选票aj(j∈{1,…,m})上对m个候选人(C1,C2,…,Cm),若支持该候选人Cj(j∈{1,...,m}),则选票aj=1,反对,则aj=0,由此生成选票,采用椭圆曲线加密算法对选票进行加密获得加密加数aji,且将其发送至以太坊区块链;
S40计票阶段:以太坊区块链将所有选民发送来的和的加密加数aji的值进行求和:
Figure GDA0003895766950000032
以得到所有候选人Cj(j∈{1,…,m})的得票数。
优选地,所述分布式对等互联选举协议,具体为:
S10初始阶段:选取以太坊系统,生成公钥
Figure GDA0003895766950000033
私钥xi及电子选票aj(j∈{1,…,m}),制定分布式对等互联选举协议,构建用于选举的以太坊区块链;
S20选民注册:在太坊区块链广播公钥,以供n个选民获取,分配私钥xi给选民,选民根据私钥xi计算出一个非交互式的零知识证明ZKP(xi)发送以太坊区块链进行身份验证,若验证成功,选民为具有选民身份的选民Pi(i∈{1,...,n});
S30发送加数阶段:具有选民身份的选民Pi(i∈{1,...,n})在电子选票aj(j∈{1,…,m})上对m个候选人(C1,C2,…,Cm),若支持该候选人Cj(j∈{1,...,m}),则选票aj=1,反对,则aj=0,由此生成选票,采用椭圆曲线加密算法对选票进行加密获得加密加数aji,且将其发送至以太坊区块链;
S40发送和阶段:通过以太坊区块链,每位选民Pi(i∈{1,...,n})通过自己持有的私有密钥xi对发送给自己的加密加数aji(j,i∈{1,...,n})进行解密:
vji=decipher(aji),其中j,i∈{1,...,n},从而得到vji
然后对解密得到的所有的加数vji进行求和:
Figure GDA0003895766950000041
其中j,i∈{1,...,n},并将计算得到的和发送给以太坊区块链;
S50计票阶段:以太坊区块链将所有选民发送来的和的值进行求和:
Figure GDA0003895766950000042
其中i∈{1,...,n},然后将S值由十进制数转化成二进制数,再每
Figure GDA0003895766950000043
位对S进行截取,即可得到所有候选人Cj(j∈{1,...,m})的得票数。
优选地,所述选民根据私钥xi计算出一个非交互式的零知识证明ZKP(xi)的方法为:所述以太坊系统将零知识证明实现为Schnorr证明,使用Fiat-Shamir启发式的方法保证其非交互性。
优选地,所述S10中以太坊系统的选取步骤包括:
(1)假设所有选民承认一个事实(G,g),其中G表示素数阶q的一个有限循环群,g表示G的生成元;
(2)假设现有n个选民(P1,P2,...,Pn)参与投票,共有m个候选人(C1,C2,...,Cm);
(3)设计电子选票结构:每列由k位构成
Figure GDA0003895766950000044
其中前k-1位为0,最后1位ai值取决于选民,若选民对候选人Ci投赞成票,则ai=1,否则ai=1,因此选票总位数为m*k。
优选地,所述S30中采用椭圆曲线加密算法对选票进行加密获得加密加数aji的方法为:
每位选民Pi(i∈{1,...,n})将自己的选票vi(十进制数)执行拆分操作,随机地拆分为n个小整数vij,此时满足:
Figure GDA0003895766950000051
然后通过椭圆曲线加密算法使用持有的n个选民的公有密钥对这n个整数进行加密:
aji=encipher(vji),
其中j,i∈{1,...,n})。
本发明还公开了一种基于区块链的多方安全选举系统,其用于实现如权利要求1-7所述的基于区块链的多方安全选举方法,其包括:
用户:用于通过服务器请求Web单页应用,进而与Web单页应用交互,可选地跨域访问其计算机上的以太坊节点,达到其参与选举的目的,用户类型包括选民和选举管理员;
Web单页应用:用于将以太坊区块链的分布式对等互联选举协议提供的服务接口前端可视化,及通过jQuery框架维护用户本地的状态,及与以太坊节点通过JSON-RPC进行交互;
以太坊节点:包括用户本地的以太坊节点和服务器上的以太坊节点,选举系统默认跨域访问用户本地安装的以太坊节点,若用户本地未安装以太坊节点,则与服务器上的以太坊节点进行交互;
以太坊虚拟机:包括用户本地的以太坊虚拟机和服务器上的以太坊虚拟机,选举系统默认通过用户本地的以太坊虚拟机执行分布式对等互联选举协议代码,若用户本地为安装以太坊节点和以太坊虚拟机,则使用服务器上的以太坊虚拟机进行分布式对等互联选举协议代码的执行;
区块链:用于接收以太坊虚拟机提供的运算结果,进行写入操作,每个以太坊节点通过特定的哈希算法和Merkle树数据结构,将一段时间内接收到的交易数据和代码封装到一个带有时间戳的区块中,并链接到当前最长的主区块链上,形成最新的区块。
优选地,所述选民根据私钥xi计算出一个非交互式的零知识证明ZKP(xi)的方法为:所述以太坊系统将零知识证明实现为Schnorr证明,使用Fiat-Shamir启发式的方法保证其非交互性。
所述的一种基于区块链的多方安全选举系统,其特征在于,其分层架构为:
呈现层:用于用户与所述选举系统之间的交互,采用Web单页技术,通过jQuery框架维护前端用户状态,Web单页通过以json为协议的远程调用服务与下层服务层进行交互;
服务层:其用于构建分布式的对等网络,由多个以太坊节点组成,对等网络中的以太坊节点为上层呈现层提供以太坊区块链的分布式对等互联选举协议服务,为下层操作层指定执行代码;
操作层:用于通过分布式对等网络中的以太坊虚拟机接收服务层中以太坊节点下达的代码执行指令,执行代码来计算结果,在计算完结果后进行验证,若验证成功,则将运算结果交由下层数据层;
数据层:用于接收上层操作层提供的运算结果,进行区块链写入操作,
根据共识机制,主动的维护合法数据。
优选地,所述服务器为云服务器。
本发明技术方案通过建立基于以太坊区块链的选举系统,使选民得以构建分布式的对等网络,进而消除中心化权威机构带来的信任假设问题;为了满足了投票的匿名性、选票的秘密性、计票的完整性、选举结果的普遍验证性和系统的健壮性等基本安全性,同时也满足选票的完全保密性、无收据性、健壮性、公平性、无争议性等高级安全性的要求,本发明采用了定制的安全多方计算技术。本选举系统选择了以太坊,为其提供了一个内置成熟的图灵完备的编程语言的区块链,使用这种语言可以创建分布式对等互联选举协议来编码实现任意的状态转换功能或者定制的逻辑。以太坊如同一台全球性的计算机,任何人都可以在其上创建去中心化应用,并在其中设立他们自由定义的所有权规则、交易方式。而这种具备分布式对等互联选举协议平台的区块链可以为本选举系统提供去中心化、不可篡改、安全可靠、可编程性等特性。
对于安全多方计算技术,本选举系统改进了简单高效的安全多方求和协议,进而实现了分布式对等互联选举协议。分布式对等互联选举协议是基于安全多方求和协议的、去中心化的、自计票的选举协议,其能满足更高的安全性需求,并且与区块链契合。该分布式对等互联选举协议是区块链智能合约的上层抽象,区块链智能合约的实现以该分布式对等互联选举协议为依据。
本发明将这两种技术结合,充分发挥它们各自的优势,不仅可以提升安全性,而且还能降低由于第三方权威机构所带来的风险、同时也降低了人力、物力和各方各面的维护成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明分布式对等互联选举协议一实施例的方法流程图;
图2为所述电子选票结构图;
图3为本发明基于区块链的多方安全选举系统的功能分层架构示意图;
图4为本发明基于区块链的多方安全选举的系统架构示意图;
图5为本发明基于区块链的多方安全选举方法的方法流程图,
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
另外,若本发明实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
如图1-5所示,一种基于区块链的多方安全选举系统,旨在克服以上问题。
为实现上述目的,本发明提出的一种基于区块链的多方安全选举方法,其特征在于,具体步骤为:
S10设置阶段:在以太坊系统的服务层制定分布式对等互联选举协议,设置选举管理员和选民,选举管理员设制选举的初始化问题,其包括参与人白名单、选举问题、候选人选项;
S20注册阶段:允许参与人白名单中的选民注册合法身份,且仅具有合法身份的选民获取选举的初始化问题;
S30发送加数阶段:选民将自己回复的选举的初始化问题以加密加数形式发送至以太坊区块链;
S40发送和阶段:选民从区块链中取出所有的加密加数,把这些加密加数求和;
S50计票阶段:选举管理员或具有合法身份的选民调用分布式对等互联选举协议进行票数统计。
优选地,S60选民验证票数,通过Web单页浏览选举结果。
优选地,所述分布式对等互联选举协议,具体为:
S10初始阶段:选取以太坊系统,生成公钥
Figure GDA0003895766950000081
私钥xi及电子选票aj(j∈{1,…,m}),制定分布式对等互联选举协议,构建用于选举的以太坊区块链;
S20选民注册:在太坊区块链广播公钥,以供n个选民获取,分配私钥xi给选民,选民根据私钥xi计算出一个非交互式的零知识证明ZKP(xi)发送以太坊区块链进行身份验证,若验证成功,选民为具有选民身份的选民Pi(i∈{1,...,n});
S30发送加数阶段:具有选民身份的选民Pi(i∈{1,...,n})在电子选票aj(j∈{1,…,m})上对m个候选人(C1,C2,…,Cm),若支持该候选人Cj(j∈{1,...,m}),则选票aj=1,反对,则aj=0,由此生成选票,采用椭圆曲线加密算法对选票进行加密获得加密加数aji,且将其发送至以太坊区块链;
S40计票阶段:以太坊区块链将所有选民发送来的和的加密加数aji的值进行求和:
Figure GDA0003895766950000091
以得到所有候选人Cj(j∈{1,…,m})的得票数。
优选地,所述分布式对等互联选举协议,具体为:
S10初始阶段:选取以太坊系统,生成公钥
Figure GDA0003895766950000092
私钥xi及电子选票aj(j∈{1,…,m}),制定分布式对等互联选举协议,构建用于选举的以太坊区块链;
S20选民注册:在太坊区块链广播公钥,以供n个选民获取,分配私钥xi给选民,选民根据私钥xi计算出一个非交互式的零知识证明ZKP(xi)发送以太坊区块链进行身份验证,若验证成功,选民为具有选民身份的选民Pi(i∈{1,...,n});
S30发送加数阶段:具有选民身份的选民Pi(i∈{1,...,n})在电子选票aj(j∈{1,…,m})上对m个候选人(C1,C2,…,Cm),若支持该候选人Cj(j∈{1,...,m}),则选票aj=1,反对,则aj=0,由此生成选票,采用椭圆曲线加密算法对选票进行加密获得加密加数aji,且将其发送至以太坊区块链;
S40发送和阶段:通过以太坊区块链,每位选民Pi(i∈{1,...,n})通过自己持有的私有密钥xi对发送给自己的加密加数aji(j,i∈{1,...,n})进行解密:
vji=decipher(aji),其中j,i∈{1,...,n},从而得到vji
然后对解密得到的所有的加数vji进行求和:
Figure GDA0003895766950000101
其中j,i∈{1,...,n},并将计算得到的和发送给以太坊区块链;
S50计票阶段:以太坊区块链将所有选民发送来的和的值进行求和:
Figure GDA0003895766950000102
其中i∈{1,...,n},然后将S值由十进制数转化成二进制数,再每
Figure GDA0003895766950000106
位对S进行截取,即可得到所有候选人Cj(j∈{1,...,m})的得票数。
优选地,所述选民根据私钥xi计算出一个非交互式的零知识证明ZKP(xi)的方法为:所述以太坊系统将零知识证明实现为Schnorr证明,使用Fiat-Shamir启发式的方法保证其非交互性。
优选地,所述S10中以太坊系统的选取步骤包括:
(1)假设所有选民承认一个事实(G,g),其中G表示素数阶q的一个有限循环群,g表示G的生成元;
(2)假设现有n个选民(P1,P2,...,Pn)参与投票,共有m个候选人(C1,C2,...,Cm);
(3)设计电子选票结构:每列由k位构成
Figure GDA0003895766950000104
其中前k-1位为0,最后1位ai值取决于选民,若选民对候选人Ci投赞成票,则ai=1,否则ai=1,因此选票总位数为m*k。
优选地,所述S30中采用椭圆曲线加密算法对选票进行加密获得加密加数aji的方法为:
每位选民Pi(i∈{1,...,n})将自己的选票vi(十进制数)执行拆分操作,随机地拆分为n个小整数vij,此时满足:
Figure GDA0003895766950000105
然后通过椭圆曲线加密算法使用持有的n个选民的公有密钥对这n个整数进行加密:
aji=encipher(vji),
其中j,i∈{1,...,n}。
本发明还公开了一种基于区块链的多方安全选举系统,其用于实现如权利要求1-7所述的基于区块链的多方安全选举方法,其包括:
用户:用于通过服务器请求Web单页应用,进而与Web单页应用交互,可选地跨域访问其计算机上的以太坊节点,达到其参与选举的目的,用户类型包括选民和选举管理员;
Web单页应用:用于将以太坊区块链的分布式对等互联选举协议提供的服务接口前端可视化,及通过jQuery框架维护用户本地的状态,及与以太坊节点通过JSON-RPC进行交互;
以太坊节点:包括用户本地的以太坊节点和服务器上的以太坊节点,选举系统默认跨域访问用户本地安装的以太坊节点,若用户本地未安装以太坊节点,则与服务器上的以太坊节点进行交互;
以太坊虚拟机:包括用户本地的以太坊虚拟机和服务器上的以太坊虚拟机,选举系统默认通过用户本地的以太坊虚拟机执行分布式对等互联选举协议代码,若用户本地为安装以太坊节点和以太坊虚拟机,则使用服务器上的以太坊虚拟机进行分布式对等互联选举协议代码的执行;
区块链:用于接收以太坊虚拟机提供的运算结果,进行写入操作,每个以太坊节点通过特定的哈希算法和Merkle树数据结构,将一段时间内接收到的交易数据和代码封装到一个带有时间戳的区块中,并链接到当前最长的主区块链上,形成最新的区块。
优选地,所述选民根据私钥xi计算出一个非交互式的零知识证明ZKP(xi)的方法为:所述以太坊系统将零知识证明实现为Schnorr证明,使用Fiat-Shamir启发式的方法保证其非交互性。
所述的一种基于区块链的多方安全选举系统,其特征在于,其分层架构为:
呈现层:用于用户与所述选举系统之间的交互,采用Web单页技术,通过jQuery框架维护前端用户状态,Web单页通过以json为协议的远程调用服务与下层服务层进行交互;
服务层:其用于构建分布式的对等网络,由多个以太坊节点组成,对等网络中的以太坊节点为上层呈现层提供以太坊区块链的分布式对等互联选举协议服务,为下层操作层指定执行代码;
操作层:用于通过分布式对等网络中的以太坊虚拟机接收服务层中以太坊节点下达的代码执行指令,执行代码来计算结果,在计算完结果后进行验证,若验证成功,则将运算结果交由下层数据层;
数据层:用于接收上层操作层提供的运算结果,进行区块链写入操作,
根据共识机制,主动的维护合法数据。
优选地,所述服务器为云服务器。
本发明技术方案通过建立基于以太坊区块链的选举系统,使选民得以构建分布式的对等网络,进而消除中心化权威机构带来的信任假设问题;为了满足了投票的匿名性、选票的秘密性、计票的完整性、选举结果的普遍验证性和系统的健壮性等基本安全性,同时也满足选票的完全保密性、无收据性、健壮性、公平性、无争议性等高级安全性的要求,本发明采用了定制的安全多方计算技术。本选举系统选择了以太坊,为其提供了一个内置成熟的图灵完备的编程语言的区块链,使用这种语言可以创建分布式对等互联选举协议来编码实现任意的状态转换功能或者定制的逻辑。以太坊如同一台全球性的计算机,任何人都可以在其上创建去中心化应用,并在其中设立他们自由定义的所有权规则、交易方式。而这种具备分布式对等互联选举协议平台的区块链可以为本选举系统提供去中心化、不可篡改、安全可靠、可编程性等特性。
对于安全多方计算技术,本选举系统改进了简单高效的安全多方求和协议,进而实现了分布式对等互联选举协议。分布式对等互联选举协议是基于安全多方求和协议的、去中心化的、自计票的选举协议,其能满足更高的安全性需求,并且与区块链契合。该分布式对等互联选举协议是区块链智能合约的上层抽象,区块链智能合约的实现以该分布式对等互联选举协议为依据。
本发明将这两种技术结合,充分发挥它们各自的优势,不仅可以提升安全性,而且还能降低由于第三方权威机构所带来的风险、同时也降低了人力、物力和各方各面的维护成本。
在本发明实施例中,本发明的分布式对等互联选举协议应该理解为一个基于安全多方求和协议的、去中心化的、自计票的、安全可靠的协议,其包含4个阶段:注册阶段、发送加数阶段、发送和阶段、计票阶段。
首先,整个选举系统包括所有选民承认一个事实(G,g)。其中G表示素数阶q的一个有限循环群,并且在G上的判定Diffie-Hellman(DDH)问题是困难的;g表示G的生成元。
其次,建立一个有资格的选民集合(P1,P2,…,Pn),并且每个选民Pi挑选一个随机值xi作为自己的私有密钥并唯独自己持有。
假设现有n个选民(P1,P2,…,Pn)参与投票,共有m个候选人(C1,C2,…,Cm),我们设计的选票结构如图2所示,
每列由k位构成
Figure GDA0003895766950000131
其中前k-1位为0,最后1位ai值取决于选民。若选民对候选人Ci投赞成票,则ai=1,否则ai=1,因此选票总位数为m*k。
1.注册阶段
每位选民Pi(i∈{1,…,n})将他们的公有密钥
Figure GDA0003895766950000132
和一个非交互式的零知识证明ZKP(xi)广播出去,以此证明自己持有私钥xi。本选举系统将这个零知识证明实现为一个Schnorr证明,使用Fiat-Shamir启发式的方法保证其非交互性。当以太坊区块链验证了选民的零知识证明的有效性之后,该选民则注册成功,即证明了选民身份的合法性。与此同时,每位选民都拥有所有选民的公有密钥。
2.发送加数阶段
每位选民Pi(i∈{1,…,n})在电子选票上对候选人Cj(j∈{1,…,m})进行表决。支持时aj(j∈{1,…,m})取值为1,反对时取值为0,于是生成一个二进制数,将该数转换成十进制数。与此同时,本地验证该选票的合法性。
每位选民Pi(i∈{1,…,n})将自己的选票vi(十进制数)执行拆分操作,随机地拆分为n个小整数vij,此时满足:
Figure GDA0003895766950000141
然后通过椭圆曲线加密算法使用持有的n个选民的公有密钥对这n个整数进行加密:
aji=encipher(vji),
其中j,i∈{1,…,n}。并将加密后的加数值aji发送给以太坊区块链。通过以太坊区块链,所有选民可以获取到加密加数,但是只有拥有相应私有密钥的选民才能获取到相应的加数值。也就是说,选民Pi才能通过自己持有的私有密钥xi对加密加数aji进行解密,从而得到vji
3.发送和阶段
通过以太坊区块链,每位选民Pi(i∈{1,…,n})通过自己持有的私有密钥xi对发送给自己的加密加数aji(j,i∈{1,…,n})进行解密:
vji=decipher(aji),
其中j,i∈{1,…,n},从而得到vji,然后对解密得到的所有的加数vji进行求和:
Figure GDA0003895766950000142
其中j,i∈{1,…,n}。并将计算得到的和发送给以太坊区块链。
4.计票阶段
当以太坊收到所有选民发送来的和之后,以太坊将所有得到的和的值进行求和:
Figure GDA0003895766950000143
其中i∈{1,…,n}。然后将S值由十进制数转化成二进制数,然后每
Figure GDA0003895766950000144
位对s进行截取,即可得到所有候选人Cj(j∈{1,…,m})的得票数。
在本发明实施例中,本发明结合了区块链技术和安全多方计算技术,专注于选举领域,构建分布式对等互联的选举系统。图4展示了本选举系统的选举流程。在以太坊底层系统中构建分布式对等互联选举协议时,构建者默认成员本选举系统的选举管理员,其间他可以将选举管理员的角色转移给其他外部账户。此选举管理员负责设立参与人白名单、选举问题、候选人选项等初始化问题,同时确保选举能够在各个阶段顺利进行下去。本选举系统只允许参与人白名单中的外部账户注册合法身份,并且也只允许注册了的选民参与接下来的选举阶段。
1.设置阶段
该阶段只对选举管理员开放,不对选民开放。选举管理员在该阶段设立参与人白名单、选举问题和候选人选项等选举初始化问题。只有参与人白名单中的外部用户才拥有注册合法选民身份的资格。
2.注册阶段
该阶段对选举管理员和参与人白名单中的外部用户开放。对于参与人白名单中的外部用户,其可在查看选举问题和候选人选项后,决定是否参与本次选举。若其决定参与,则注册合法选民身份,同时将自己的公有密钥提交给以太坊区块链;若其决定不参与,则退出平台即可。对于选举管理员,其可以观测到外部用户注册合法选民身份的实时情况,决定是否开始下一阶段进行。
3.发送加数阶段
该阶段对选举管理员和已注册的选民开放。对于已注册的选民,其选择其意向的候选人,并将特定格式的选票,拆分成多个随机加数,并使用相应选民的公有密钥进行加密,提交给以太坊区块链;对于选举管理员,其可以观测到已注册的选民发送加数的实时情况,决定是否开始下一阶段的进行。
4.发送和阶段
该阶段对选举管理员和已注册的选民开放。对于已注册的选民,其使用自己持有的私有密钥对其他选民发送来的随机加数进行解密,并对其求和,将和的值提交给以太坊区块链;对于选举管理员,其可以观测到已注册的选民发送和的实时情况,决定是否开始下一阶段的进行。
5.计票阶段
该阶段对选举管理员和已注册的选民开放。对于已注册的选民,任何一位选民都可以调用以太坊的分布式对等互联选举协议代码,进行票数的统计,在统计票数之后,所有的选民都可以验证票数,并且浏览选举结果;对于选举管理员,其也可以调用以太坊的分布式对等互联选举协议代码,进行票数的统计,其还拥有开启新一轮选举的权利。
在本发明实施例中,用户角色分为选民和选举管理员。用户通过云服务器请求Web单页应用,云服务器通过HTTP响应返回给用户其角色对应的Web单页应用。用户进而与Web单页应用交互,可选地跨域访问其计算机上的以太坊节点,达到其参与选举的目的。
Web单页应用主要负责将以太坊区块链的分布式对等互联选举协议提供的服务接口前端可视化,提高用户体验度;其次通过jQuery等框架维护用户本地的状态,与以太坊节点通过JSON-RPC实现交互目的,实现分布式对等互联选举协议的调用,此处的选择有两:一、是跨域访问本地的以太坊节点;二、若本地没有安装以太坊节点,则通过与云服务器上的以太坊节点的交互,进而达到调用分布式对等互联选举协议的目的。
以太坊节点分为两类:用户本地的以太坊节点;云服务器上的以太坊节点。选举系统默认跨域访问用户本地安装的以太坊节点,若用户本地未安装以太坊节点,则与云服务器上的以太坊节点进行交互。
以太坊虚拟机也分为两类:用户本地的以太坊虚拟机;云服务器上的以太坊虚拟机。选举系统默认通过用户本地的以太坊虚拟机执行分布式对等互联选举协议代码,若用户本地为安装以太坊节点和以太坊虚拟机,则使用云服务器上的以太坊虚拟机进行分布式对等互联选举协议代码的执行。
区块链接收以太坊虚拟机提供的运算结果,进行写入操作,每个分布式节点都可以通过特定的哈希算法和Merkle树数据结构,将一段时间内接收到的交易数据和代码封装到一个带有时间戳的区块中,并链接到当前最长的主区块链上,形成最新的区块。
在本发明实施例中,呈现层主要负责用户与系统之间的交互,将抽象、专业型的接口调用转为前端可视化,提高用户体验度;其次负责前端用户状态的维护,呈现层选用Web单页技术,通过jQuery等框架维护前端用户状态,不再以页面为单位,更多的采用组件化思想,使得代码结构和组织方式更加规范化。呈现层的Web单页应用通过JSON-RPC(是一种以json为协议的远程调用服务)与下层服务层进行交互,使用服务层提供的分布式对等互联选举协议的调用。
服务层只要是构建分布式的对等网络,由多个以太坊节点组成。对等网络中的以太坊节点为上层呈现层提供以太坊区块链的分布式对等互联选举协议服务,为下层操作层指定执行代码。正是由于服务层构建的分布式对等网络,本选举系统才可消除第三方权威机构的存在,进而避免了其带来的资源的浪费和安全性风险。
操作层接收服务层中以太坊节点下达的代码执行指令,执行代码,计算结果。分布式对等网络中的以太坊虚拟机在计算完结果后,需要相互验证,若验证成功,则将运算结果交由下层数据层进行区块链写入操作。
数据层接收上层操作层提供的运算结果,进行区块链写入操作。数据层根据共识机制,主动的维护合法数据。以太坊采用的共识机制是工作量证明机制,通过计算来猜测一个数值,得以解决规定的散列问题。保证在一段时间内,系统只能出现少数合法提案。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

Claims (7)

1.一种基于区块链的多方安全选举方法,其特征在于,具体步骤为:
S10设置阶段:在以太坊系统的服务层制定分布式对等互联选举协议,设置选举管理员和选民,选举管理员设制选举的初始化问题,其包括参与人白名单、选举问题、候选人选项;具体为:
选取以太坊系统,生成公钥
Figure FDA0003884998140000011
私钥xi及电子选票aj(j∈{1,...,m}),制定分布式对等互联选举协议,构建用于选举的以太坊区块链;
以太坊系统的选取步骤包括:
(1)假设所有选民承认一个事实(G,g),其中G表示素数阶q的一个有限循环群,g表示G的生成元;
(2)假设现有n个选民(P1,P2,...,Pn)参与投票,共有m个候选人(C1,C2,...,Cm);
(3)设计电子选票结构:每列由k位构成,其中,
Figure FDA0003884998140000012
前k-1位为0,最后1位aj值取决于选民,若选民对候选人Cj投赞成票,则aj=1,否则aj=0,因此选票总位数为m*k;
S20注册阶段:允许参与人白名单中的选民注册合法身份,且仅具有合法身份的选民获取选举的初始化问题;具体为:
在以太坊区块链广播公钥,以供n个选民获取,分配私钥xi给选民,选民根据私钥xi计算出一个非交互式的零知识证明ZKP(xi)发送以太坊区块链进行身份验证,若验证成功,选民为具有选民身份的选民Pi(i∈{1,...,n});
所述选民根据私钥xi计算出一个非交互式的零知识证明ZKP(xi)的方法为:所述以太坊系统将零知识证明实现为Schnorr证明,使用Fiat-Shamir启发式的方法保证其非交互性;
S30发送加数阶段:选民将自己回复的选举的初始化问题以加密加数形式发送至以太坊区块链;具体为:
具有选民身份的选民Pi在电子选票aj上对m个候选人(C1,C2,...,Cm),若支持该候选人Cj(j∈{1,...,m}),则选票aj=1,反对,则aj=0,由此生成选票,采用椭圆曲线加密算法对选票进行加密获得加密加数aki,且将其发送至以太坊区块链;
S40发送和阶段:选民从区块链中取出所有的加密加数,把这些加密加数求和;
S50计票阶段:选举管理员或具有合法身份的选民调用分布式对等互联选举协议进行票数统计;具体为:
以太坊区块链将所有选民发送来的和的加密加数aki的值进行求和:
Figure FDA0003884998140000021
以得到所有候选人Cj的得票数。
2.如权利要求1所述的基于区块链的多方安全选举方法,其特征在于,还包括:S60选民验证票数,通过Web单页浏览选举结果。
3.如权利要求1所述的基于区块链的多方安全选举方法,其特征在于,所述分布式对等互联选举协议在S40和S50时,还包括以下方式:
S40发送和阶段:通过以太坊区块链,每位选民Pi通过自己持有的私有密钥xi对发送给自己的加密加数aki(i,k∈{1,...,n})进行解密:
vki=decipher(aki)
从而得到vki
然后对解密得到的所有的加数vki进行求和:
Figure FDA0003884998140000022
并将计算得到的和发送给以太坊区块链;
S50计票阶段:以太坊区块链将所有选民发送来的和的值进行求和:
Figure FDA0003884998140000023
然后将S值由十进制数转化成二进制数,再每k位对S进行截取,即可得到所有候选人Cj的得票数。
4.如权利要求1或3所述的基于区块链的多方安全选举方法,其特征在于,所述S30中采用椭圆曲线加密算法对选票进行加密获得加密加数aki的方法为:
每位选民Pi将自己的选票vi执行拆分操作,所述vi为十进制数;随机地拆分为n个小整数vki,此时满足:
Figure FDA0003884998140000031
然后通过椭圆曲线加密算法使用持有的n个选民的公有密钥对这n个整数进行加密:
aki=encipher(vki)
其中k,i∈{1,...,n}。
5.一种基于区块链的多方安全选举系统,其特征在于,其用于实现如权利要求1-4所述的基于区块链的多方安全选举方法,其包括:
用户:用于通过服务器请求Web单页应用,进而与Web单页应用交互,可选地跨域访问其计算机上的以太坊节点,达到其参与选举的目的,用户类型包括选民和选举管理员;
Web单页应用:用于将以太坊区块链的分布式对等互联选举协议提供的服务接口前端可视化,及通过jQuery框架维护用户本地的状态,及与以太坊节点通过JSON-RPC进行交互;
以太坊节点:包括用户本地的以太坊节点和服务器上的以太坊节点,选举系统默认跨域访问用户本地安装的以太坊节点,若用户本地未安装以太坊节点,则与服务器上的以太坊节点进行交互;
以太坊虚拟机:包括用户本地的以太坊虚拟机和服务器上的以太坊虚拟机,选举系统默认通过用户本地的以太坊虚拟机执行分布式对等互联选举协议代码,若用户本地为安装以太坊节点和以太坊虚拟机,则使用服务器上的以太坊虚拟机进行分布式对等互联选举协议代码的执行;
区块链:用于接收以太坊虚拟机提供的运算结果,进行写入操作,每个以太坊节点通过特定的哈希算法和Merkle树数据结构,将一段时间内接收到的交易数据和代码封装到一个带有时间戳的区块中,并链接到当前最长的主区块链上,形成最新的区块。
6.如权利要求5所述的一种基于区块链的多方安全选举系统,其特征在于,其分层架构为:
呈现层:用于用户与所述选举系统之间的交互,采用Web单页技术,通过jQuery框架维护前端用户状态,Web单页通过以json为协议的远程调用服务与下层服务层进行交互;
服务层:其用于构建分布式的对等网络,由多个以太坊节点组成,对等网络中的以太坊节点为上层呈现层提供以太坊区块链的分布式对等互联选举协议服务,为下层操作层指定执行代码;
操作层:用于通过分布式对等网络中的以太坊虚拟机接收服务层中以太坊节点下达的代码执行指令,执行代码来计算结果,在计算完结果后进行验证,若验证成功,则将运算结果交由下层数据层;
数据层:用于接收上层操作层提供的运算结果,进行区块链写入操作,根据共识机制,主动的维护合法数据。
7.如权利要求5所述的基于区块链的多方安全选举系统,其特征在于,所述服务器为云服务器。
CN201811244613.4A 2018-10-24 2018-10-24 一种基于区块链的多方安全选举系统 Active CN109558517B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811244613.4A CN109558517B (zh) 2018-10-24 2018-10-24 一种基于区块链的多方安全选举系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811244613.4A CN109558517B (zh) 2018-10-24 2018-10-24 一种基于区块链的多方安全选举系统

Publications (2)

Publication Number Publication Date
CN109558517A CN109558517A (zh) 2019-04-02
CN109558517B true CN109558517B (zh) 2023-02-03

Family

ID=65865195

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811244613.4A Active CN109558517B (zh) 2018-10-24 2018-10-24 一种基于区块链的多方安全选举系统

Country Status (1)

Country Link
CN (1) CN109558517B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110245183A (zh) * 2019-05-05 2019-09-17 上海链度科技有限公司 一种基于联盟区块链技术的加密电子投票选举系统及方法
CN110247960B (zh) * 2019-05-27 2021-12-07 矩阵元技术(深圳)有限公司 安全多方计算的实现方法、装置、计算机设备和存储介质
CN110505046B (zh) * 2019-07-29 2020-11-24 深圳壹账通智能科技有限公司 多数据提供方加密数据跨平台零知识校验方法、装置及介质
CN110474779A (zh) * 2019-08-09 2019-11-19 深圳前海微众银行股份有限公司 基于区块链的投票存证方法、装置、设备及可读存储介质
EP3794773B1 (en) 2020-02-03 2022-09-07 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable guarantees
SG11202013137TA (en) 2020-02-03 2021-01-28 Alipay Hangzhou Inf Tech Co Ltd Blockchain-based trustable guarantees
WO2020098837A2 (en) 2020-02-03 2020-05-22 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable guarantees
SG11202013145YA (en) 2020-02-03 2021-01-28 Alipay Hangzhou Inf Tech Co Ltd Blockchain-based trustable guarantees
SG11202012851YA (en) 2020-02-03 2021-01-28 Alipay Hangzhou Inf Tech Co Ltd Blockchain-based trustable guarantees
CN111417945B (zh) 2020-02-03 2022-06-17 支付宝(杭州)信息技术有限公司 基于区块链的可信保函
CN114299655B (zh) * 2020-09-23 2023-09-05 成都中科信息技术有限公司 一种电子投票系统及其工作方法
CN112489283B (zh) * 2020-11-24 2022-06-21 杭州链城数字科技有限公司 一种基于区块链和安全多方计算的电子投票选举统计方法
CN112565412B (zh) * 2020-12-03 2022-11-04 重庆新致金服信息技术有限公司 基于区块链的数据交易方法、系统以及设备
CN112787810A (zh) * 2021-01-07 2021-05-11 杭州链城数字科技有限公司 基于区块链和安全多方计算的电子投票选举方法及装置
CN112884968B (zh) * 2021-01-26 2022-05-17 浙江工商大学 基于区块链和同态时间锁谜题的电子投票方法
CN115457695A (zh) * 2022-09-06 2022-12-09 重庆智网科技有限公司信息通信分公司 基于电力虚拟专用网络的匿名投票系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103903325A (zh) * 2013-07-08 2014-07-02 苏州大学 一种基于身份签名的安全电子投票系统
CN106060036A (zh) * 2016-05-26 2016-10-26 布比(北京)网络技术有限公司 去中心化共识方法及装置
CN106850536A (zh) * 2016-11-30 2017-06-13 北京瑞卓喜投科技发展有限公司 区块链共识方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170109955A1 (en) * 2015-10-20 2017-04-20 Follow My Vote, Inc. Blockchain electronic voting system and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103903325A (zh) * 2013-07-08 2014-07-02 苏州大学 一种基于身份签名的安全电子投票系统
CN106060036A (zh) * 2016-05-26 2016-10-26 布比(北京)网络技术有限公司 去中心化共识方法及装置
CN106850536A (zh) * 2016-11-30 2017-06-13 北京瑞卓喜投科技发展有限公司 区块链共识方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
An overview of blockchain technology:architecture,consensus and future trends;Zheng Zibin等;《IEEE 6th International Congress on Big Data》;20170625;557-564 *

Also Published As

Publication number Publication date
CN109558517A (zh) 2019-04-02

Similar Documents

Publication Publication Date Title
CN109558517B (zh) 一种基于区块链的多方安全选举系统
Zhao et al. Secure pub-sub: Blockchain-based fair payment with reputation for reliable cyber physical systems
Wang et al. Large-scale election based on blockchain
Huang et al. Blockchain-based multiple groups data sharing with anonymity and traceability
Khan et al. An efficient and provably secure certificateless key-encapsulated signcryption scheme for flying ad-hoc network
Joaquim et al. REVS–a robust electronic voting system
Chaieb et al. Verify-your-vote: A verifiable blockchain-based online voting protocol
Dreier et al. Formal verification of e-auction protocols
CN113127910B (zh) 基于区块链和去中心可追踪属性签名的可控匿名投票系统
Fuchsbauer et al. Anonymous proxy signatures
Li et al. Toward decentralized fair data trading based on blockchain
Saqib et al. Anonymous and formally verified dual signature based online e-voting protocol
CN114255034A (zh) 一种基于区块链的可验证公平性的电子投票方法
Pan et al. RE-NOTE: An E-voting scheme based on ring signature and clash attack protection
Li et al. LaT-Voting: Traceable anonymous E-voting on blockchain
García A flexible e-voting scheme for debate tools
Russo et al. Chirotonia: A scalable and secure e-voting framework based on blockchains and linkable ring signatures
Li et al. Accountable attribute-based authentication with fine-grained access control and its application to crowdsourcing
Ye et al. A Coercion-Resistant E-Voting System Based on Blockchain Technology
Killer et al. Æternum: A decentralized voting system with unconditional privacy
Lu et al. BEvote: Bitcoin-enabled E-voting scheme with anonymity and robustness
Kajal et al. A Review of Online Voting System Security based on Cryptography
Zhang et al. Privacy‐friendly weighted‐reputation aggregation protocols against malicious adversaries in cloud services
Lu et al. ZebraLancer: Decentralized crowdsourcing of human knowledge atop open blockchain
Haghighat et al. An efficient and provably-secure coercion-resistant e-voting protocol

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant