基于联盟链的匿名电子投票方案

2019-03-18 01:14于天娇曹春杰王隆娟许蕾
网络空间安全 2019年12期
关键词:智能合约

于天娇 曹春杰 王隆娟 许蕾

摘   要:针对电子投票中胁迫选票、重复投票、投票人隐私泄露等安全性问题,文章基于联盟链提出了一种全匿名电子投票方案。该方案利用区块链技术中的智能合约完成计票过程,避免了传统可信第三方的约束,确保投票的公平性。方案采用可链接环签名实现对投票者身份的无条件匿名。理论分析的结果表明:该方案具有保密性、匿名性、公平性等性质,可以广泛应用于特定团体内的电子投票。

关键词:匿名投票;联盟链;可链接环签名;智能合约

中图分类号:TP309          文献标识码:A

Abstract: An anonymous electronic voting scheme based on alliance chain was proposed to solve the security problems such as intimidation of votes, repetition of votes and disclosure of voters' privacy in electronic voting. The smart contract in blockchain technology is applied to complete the counting process, avoiding the constraints of the traditional trusted third party, and ensuring the fairness of voting. For purpose of realizing unconditional anonymity of the user's identity, a linkable ring signature is adopted in this scheme. The theoretical analysis results show that the scheme has the characteristics of confidentiality, anonymity, fairness, and can be widely used in electronic voting in specific groups.

Key words: anonymous voting; alliance chain; linkable ring signature; smart contract

1 引言

電子投票是一种基于密码学技术构建的新型在线投票系统,相对于传统的投票方式,电子投票方式提供了更高的透明度和公平性。爱沙尼亚[1]、瑞士、澳大利亚、美国等多个国家已经开始使用电子投票方式进行地方和国家选举。

环签名是由Shamir[2]提出,即将签名者的公钥和另外一个公钥集合进行混合,然后再对消息进行签名,任何人都可以验证签名,但是无法区分集合中哪一个是真正的签名者。2004年,Liu等人[3]提出了一个可链接环签名,签名者的身份在环中依旧保持匿名,但是可以验证两个签名是否来源于统一用户。随后多位学者对可链接环签名方案提出了改进方案,但是大多数方案都是基于计算实现的用户身份匿名。2014年,Liu等人[4]提出了可实现无条件匿名的可链接环签名,可以对用户身份提供更强的匿名保护,其可链接性在电子投票中可以有效地避免投票者双重投票问题。

区块链具有不可篡改、公开透明等特性。区块链按照对节点开放程度分为公有链、私有链和联盟链。公有链:所有节点都可以随时加入和退出;私有链:只针对某组织内部成员开放;联盟链:由多机构或组织构成的联盟,只有联盟内部成员有权加入。本文利用联盟链可以对用户身份进行验证的特性和可链接环签名的无条件匿名、可链接特性,提出一种适用于特定团体下的电子投票方案。

1.1 相关工作

1981年,Chaum[5]首次给出电子投票的概念,将公钥密码体制和Mix机制结合实现了匿名通信,使用匿名通道实现匿名电子投票,同时也保证了投票者可验证其投票已被正确计票。1994年,Benaloh[6]首次提出了电子投票“无收据性”的安全需求,即投票者不能向其他人证明他提交了某特定投票。随后研究学者提出了很多不同密码体制的电子投票方案。现有电子投票方案主要分为三类。

(1)基于盲签名/环签名的电子投票方案:Fujioka提出了一个适用于大规模选举的秘密电子投票协议(FOO协议)[7],其使用盲签名和比特承诺技术,保障了选民的隐私和投票的公平性。Seminar等人[8]提出了不可追踪可验证的电子投票方案,利用盲签名的保密性来保障选民的隐私,实现选票的不可追踪;

(2)基于同态加密的电子投票:M.Hirt和K.Sako[9]利用ElGamal同态加密技术提出了一种具有无收据性的电子投票协议。陈晓峰等人[10]采用ELGamal加密和门限加密算法,实现了电子投票的选票隐私性、无收据性,该方案中投票者需要与投票中心机构进行多次交互,导致通信量较大,不适用于大规模选举;

(3)基于混合网络的电子投票方案:Ohkubo等人[11]提出了对FOO计划的改进方案,通过使用阈值加密协议和混合网络通信通道,保证了选民的隐私。高虎明等人[12]提出了基于混合网络的电子投票方案,该方案满足大规模的投票场景。Buchmann等人[13]提出了一种基于可公开验证的混合网络的电子投票方案,实现了对投票者和投票信息的无条件匿名保护。

随着比特币[14]等加密货币的发展,其底层区块链技术也受到学术界和工业界的高度关注。区块链是将密码学、计算机科学等多个跨领域学科整合到一起,形成的一种分布式存储技术[15]。由于区块链具有去中心化、不可篡改等特性,很多学者也开始提出一系列基于区块链技术的电子投票系统。2015年,Zhao等人[16]首次将区块链技术运用到电子投票场景。2017年,McCorry等人提出了Open Vote Network[17],使用基于Ethererum的智能合约实现计票,是第一次不依赖任何可信机构来完成计票过程。Bistarelli等人[18]提出了一种基于比特币协议的端对端的投票系统,使用匿名Kerberos认证协议保证选民的身份隐私,选民通过向链上候选者地址进行代币转移实现投票。Yifan Wu[19]提出了一种基于区块链和环签名的电子投票系统,满足了投票隐私和个人可验证性,使用比特币中的OP_RETURN脚本来写入投票信息,从而实现投票过程。2018年,Hardwick等人[20]提出使用CA对投票者公钥和数字承诺的盲签名来获取投票权,所有选票经其它节点验证后记入区块链。Koc等人[21]提出了一种在Ethereum平台上实现的电子投票方案。投票组织者为选举创建了智能合约,并添加了有权投票的钱包地址。选民将候选人的编号作为参数调用智能合约的函数完成投票。2019年,Kirillov等人[22]提出基于Hyperledger Fabric区块链的电子投票方案,使用身份混合器(Identity Mixer)实现选民身份的隐私。

1.2 本文贡献

本文针对目前电子投票存在的投票者身份信息泄露、重复投票等问题,提出了一种基于联盟链的全匿名电子投票方案。使用可链接环签名和单向散列函数实现投票者身份和选票的匿名性;通过智能合约来自动计票并将结果上传至联盟链,实现投票的透明性和公平性。

1.3 本文组织

第二章介绍了本文方案所需的基础知识。第三章介绍了基于联盟链的电子投票方案的具体构造。第四章给出了本文所提方案的安全性分析。第五章总结全文的内容。

2 基本知识

2.1 预备知识

离散对数问题(Discrete Logarithm Problem,DLP):已知G是的一个q阶循环群,p,q是大素数,且q|p-1。选取生成元g,给定y,计算,使得是困难的。

单向散列函数:单向散列函数也称为单向哈希函数,可以将任意长度的输入消息串生成固定长度的消息散列值。它具有三个性质:

(1)单向性,若已知消息,很容易计算出其散列值,若已知H(m)=h,不能推算出其对应的输入消息串m;

(2)抗碰撞性,很难找到两个消息,使得H(x)=H(x');

(3)抗第二原象性,已知消息,求出且,使得H(x)=H(x')是困难的。

2.2 可链接环签名(Linkable Ring Signature,LRS)[4]

可链接环签名由五个算法构成(Setup,KeyGen,Sign,Verify,Linkability):

(1)初始化Setup:Param←Setup(λ),輸入一个安全参数λ,输出系统安全参数Param;

(2)生成密钥Keygen:(ski,pki) ←keyGen(Param),输入系统安全参数,输出一对公私钥对(ski,pki),其中私钥是ski,公钥是 pki;

(3)签名Sign:σ←Sign(sk,L,M),输入私钥sk,公钥集合L以及待签名的信息M,输出有效的环签名σ;

(4)验证签名Verify:accept/reject←Verify(σ,L,M),输入签名σ,公钥集合L,签名信息M,验证签名是否有效,如签名有效输出accept;

(5)验证可链接性Linkability:1/0←Linkability(σ1,σ2),输入两个有效签名,若输出1,则代表两个签名由同一投票者签署。

2.3 FISCO BCOS和智能合约

目前,常见的联盟链有Linux基金会的Hyperledger Fabric[23]和金融区块链合作联盟(金链盟)的FISCO BCOS。BCOS平台[24]是由金链盟在2017年推出,它是国内首个安全可控、可商用的开源区块链技术平台。平台提出的群组架构中,可以根据业务场景的不同,存在多个不同的账本,节点可以根据业务需求选择加入群组,参与到对应账本的共识过程。

Nick Szabo在1995年提出智能合约(Smart contract)的概念,他将其定义为 “一组以数字形式指定的承诺,包括各方在其他承诺下履行的协议”,而不使用人工智能[25]。随着区块链技术的出现,智能合约被重新定义为部署在区块链上的一段去中心化、可自动执行的程序代码[26]。在以太坊[27]中,虚拟机(EVM)把合约编译成操作码存放在区块链上,一旦合约部署完成,即使是创建者也不可以对合约进行修改。当合约满足条件时,就会发送一笔交易到合约地址,全网节点都会执行合约脚本编译生成的操作码,最后将结果写入区块链。在这个过程中,智能合约模拟具有共享状态的可信第三方[28]。

运行BCOS上的智能合约,可以实现对选票解密、统计等业务需求,从而代替传统的第三方可信平台(TTP);BCOS实现了预编译合约框架,加快了合约调用响应速度,大幅度提升了交易处理的吞吐量,从而提高了系统效率;此外,BCOS提出基于区块链网络的消息通信协议(AMOP),提升了机构之间的互操作性和通信安全性。智能合约的部署和调用,如图1所示。

3 基于联盟链的全匿名电子投票方案

3.1 系统模型

本文针对多候选者投票场景,提出一种基于联盟链的全匿名电子投票方案。该方案包括四个实体:授权中心CA、投票者V、联盟机构UI、链管理者Manager(s)。系统模型如图2所示。

(1)授权中心CA:用于验证投票者身份的合法性,为有权投票的投票者颁发实名证书,为合约发送公私钥对。

(2)投票者V:有投票权的投票者,可通过客户端进行投票和验证投票。

(3)链管理者Manager(s):由多个联盟机构共同选出,可以是一个或者多个节点构成,负责对联盟机构的权限分配。

(4)联盟机构UI:部署智能合约,负责投票者的选票上链,共同维护区块链上数据。

3.2 方案的具体构造

3.2.1 方案的形式化定义

本方案包括系统初始化、注册、投票和计票。记作ES={SyInit,VoterRegiser,Voting,Tally}。

(1)系统初始化SyInit(λ)→(Param):输入安全系数λ,输出系统参数Param。

(2)注册VoterRegiser(IDi,σ)→certi:输入投票者身份IDi和对身份IDi的σ,输出实名认证证书certi。

(3)投票Voting(k,M,pkL)→(σ',vote,cvk):输入随机数k,选票明文M,签名的公钥集合签名pkL,输出投票者的选票vote=H(k||M)、环签名σ'和随机数k的密文cvk。

(4)计票Tally(cvk,vote)→:输入选票vote,随机数k的密文cv_k,输出计票集合。

3.2.2 方案的具体构造

假设本方案有n个投票者(U1,U2,…,Un),他们信任同一个联盟机构UI1,其投票方案详细步骤为:

(1)系统初始化SyInit

如图3所示,联盟链管理者(Manager)设置投票问题(Question),投票选项,令,…,以及可参与投票的联盟机构UIName,将该信息写入区块链。智能合约初始化,联盟链管理者设置注册和投票的开始/截止时间Date={tregisterBegin/tregisterDeadline,tvoteBegin/tvoteDeadline},联盟机构协商选取满足安全需求的大素数p,群一个p阶群,且在中求解离散对数是困难的。假设,是两个单向散列函数,随机选取两个生成元,并将公共参数Param=(,g,h,p,H_1 )公布上链。

由授权机构(CA)生成RSA公私钥对(e',n',d),并通过安全通道发送给智能合约,其中智能合约公钥pkc=(e',n'),私钥skc=d。

(2)注册VoterRegiser

投票者先在授权机构CA注册身份,CA给通过身份验证的投票者分发身份证书Cert。如图4所示,注册VoterRegiser具体步骤为:

1)投票者Ui随机选择。其中ski=(x,y)作为签名私钥,pki=Pi作为签名公钥;

2)投票者Ui使用自己私钥对身份证号IDi签名σi=Sign(IDi,ski),将(σi,pki)发送给认证机构(CA)验证身份的合法性。若签名有效,则向投票者Ui发送实名证书certi;

3)并将智能合约公钥pkc以及各联盟机构所含投票者的公钥集L={pk1,pk2,…,pkn}分别发送给各联盟机构。

系统注册阶段需在tregisterDeadline时间内完成。

(3)投票Voting

有投票权的投票者根据自己的意愿进行投票,对投票信息进行签名发送给自己信任的联盟机构。具体步骤为:

1)投票者向联盟机构发送自己的身份证书和投票请求,联盟机构返回给投票者投票选项编号Options={b1,b2,...,b〗_m}、投票者公钥集L={pk1,pk2,…,pkn }、合约公钥pkc以及系统安全公共参数Param;

2)投票者在投票前随机选择,根据自己的意愿生成投票信息M=bj,j∈{1,2,...m},用合约公钥pkc=(e',n' )加密随机数k,cvk=k(e')  mod n',计算选票的哈希值hv=Hash(k||bj);

3)投票者对hv进行环签名。

①计算w=H1 (event),t=wx,其中event是对事件的描述,t作为投票者签名的唯一标签。

②投票者随机生成rx, ry, c1,…,cπ-1,cπ+1,…,cn,计算,。

③令求解得到cπ。计算,。

④输出可链接环签名。

4)投票者将交易tx= (σ,hv,cvk)发送给信任的联盟机构。

①联盟机构接收到事务时,先验证投票者签名的有效性,计算,判断如果等式成立,则投票者签名有效。

②验证签名是否已存在于链上,并查看区块链上可链接环签名是否有相同的标签t,若已存在,则该选票作废,不进行上链。

③将事务tx广播给其它节点,节点验证交易通过,将事务tx放入本地交易池,利用实用拜占庭容错(PBFT)共识算法实现链上数据的一致性。

系統投票阶段应在时间tvoteDeadline之内完成。投票过程如图5所示。

(4)计票Tally

智能合约在截止日期后对所有选票进行统计,如图6所示。设选项投票结果为集合Π={Sum1,Sum2,...Summ},初始化Sumi=0,i∈{1,2,...,m},其中Sum1代表选项1的投票结果。在计票过程中,智能合约调用解密函数,使用自身私钥d解密cvk获得随机数k=cvkd  mod n',依次比较H(k||bz)?=H(k||bj),z∈1,2,…m,若H(k||b3)==H(k||bj),则表示投票者投给选项3,计算Sum3=Sum3+1。循环调用解密函数和比较函数,直到所有选票都进行计票。最后投票结果Π公开发布至区块链。计票流程如图7所示。

(5)验证

投票者客户端可向任意参加投票的联盟机构发出查询区块链相关信息的请求,联盟机构调用账本获取相关数据,并将相应返回给投票者客户端,投票者可以验证其它签名的有效性,其次可以验证投票总数与注册投票者数量是否一致。

4 安全分析

本文基于联盟链的全匿名电子投票方案,投票者可以通过可链接环签名实现对自己身份的隐私,在投票过程中使用智能合约公钥进行加密,并将其提交给联盟机构,由联盟机构验证签名后,将传播交易至其他节点,投票系统通过智能合约完成自动计票并公布投票结果。本方案具有良好的合法性、选票保密性、不可重用性、抗胁迫性等特点。

(1)合法性

投票者在加入联盟链时,需要先向CA进行身份验证,获得有效地实名认证证书才有权利向联盟机构请求投票,从而获得签名的参数,确保了只有通过认证的投票者才可参与后续的投票过程,故本文方案满足投票的合法性。

(2)选票内容的保密性

本文中,每一位投票者投出的选票内容(k||bj)都是经过哈希,投票密钥k是一个随机数,所以攻击者无法确定,而哈希的单向性很好的保证了选票内容的匿名性;投票者会对选票进行环签名,环签名的无条件匿名性使得任何人都无法判断出投票者和签名、选票之间的联系,所以该方案具有良好的选票内容保密性。

(3)不可重用性

本方案使用的環签名具有可链接性,在投票阶段联盟机构收到投票者签名时,根据可链接环签名的标签t可以快速验证签名是否已存在于区块链上,由于标签t是由投票者私钥唯一确定的,若链上已存在时,则当前选票视为作废,不予以上链处理。从而可以有效避免同一投票者的多次投票行为,故每一位合格的投票者只有一次投票机会。因此,该系统方案可以实现良好的不可重用性。

(4)抗胁迫选票

只要认证机构CA是诚实的,则本文方案满足抗胁迫选票。假设某恶意攻击者强迫诚实投票者Vβ提交选票M,而投票者先选择一个随机数k,并使用智能合约公钥对随机数k加密,然后计算随机数k和选票M'的哈希值Hash(k||M'),对选票哈希值进行可链接环签名,并通过可信联盟机构将签名信息和投票写到链上,恶意攻击者只可验证链上签名有效性,无法获知链上投票M'?=M,因此投票者依旧可以按照自己的意愿进行投票。

(5)可验证性

在投票截止之前,任何合法的投票者都可以通过客户端向联盟机构发送投票验证请求。联盟机构获取链上账本数据,并打包返回给投票者客户端,投票者可以验证投票签名的有效性以及自己的投票信息是否在上链前被修改。链上的智能合约状态和内容具有公开透明性,任何人都能够通过审核智能合约所实现功能的正确性。因此,该方案具有可验证性。

(6)公平性

本方案利用智能合约的可自动执行性来实现对选票结果的计票过程。智能合约在到达投票截止时间后开始自动执行,并只对在截止时间前的所有有效地投票进行统计,投票结果无法被预先计算。因此,本文方案满足公平性。

5 结束语

本文提出了一个基于联盟链的全匿名电子投票方案,通过具有特定业务逻辑的智能合约来进行计票使得计票过程不再受可信第三方的约束,从而保证了选票结果的公平性,通过可链接环签名保护了投票人的身份隐私。通过对方案的安全性分析,表明文中提出的方案满足电子投票系统的安全需求。

基金项目:

1.海南省自然科学基金面上项目(项目编号:617079);

2.国家自然科学基金(项目编号:61661019);

3.国家自然科学基金联合基金重点项目(项目编号:U19B2044);

4.海南省高等学校教育教学改革研究重点资助项目(项目编号:Hnjg2017ZD-1)。

参考文献

[1] Madise ?, Martens T. E-voting in Estonia 2005. The first Practice of Country-wide binding Internet Voting in the World[C]. Electronic Voting: International Workshop, 2006.

[2] Rivest R L, Shamir A, Tauman Y. How to leak a secret[C]. International Conference on the Theory and Application of Cryptology and Information Security, 2001: 552-565.

[3] Liu J K, Wei V K, Wong D S. Linkable spontaneous anonymous group signature for ad hoc groups[C]. Australasian Conference on Information Security and Privacy, 2004: 325-335.

[4] Liu J K, Au M H, Susilo W, et al. Linkable ring signature with unconditional anonymity[J], 2014, 26(1): 157-165.

[5] Chaum D L. Untraceable electronic mail, return addresses, and digital pseudonyms[J]. Communications of the ACM, 1981, 24(2): 84-90.

[6] Benaloh J, Tuinstra D. Receipt-free secret-ballot elections[C]. Conference Proceedings of the Annual ACM Symposium on Theory of Computing(STOC), 1994: 544-553.

[7] Fujioka A, Okamoto T, Ohta K. A practical secret voting scheme for large scale elections[C]. International Workshop on the Theory and Application of Cryptographic Techniques, 1992: 244-251.

[8] Radwin M J, Klein P. An untraceable, universally verifiable voting scheme[C]. Seminar in Cryptology, 1995: 829-834.

[9] Hirt M, Sako K. Efficient receipt-free voting based on homomorphic encryption[C]. International Conference on the Theory and Applications of Cryptographic Techniques, 2000: 539-556.

[10] 陳晓峰, 王继林, 王育民. 基于半信任模型的无收据的电子投票[J]. 计算机学报, 2003, 26(5): 557-562.

[11] Ohkubo M, Miura F, Abe M, et al. An improvement on a practical secret voting scheme[C]. International Workshop on Information Security, 1999: 225-234.

[12] 高虎明, 王继林, 王育民. 一个基于 Mix net 的电子投票方案[J]. 电子学报, 2004, 32(6): 1047-1049.

[13] Buchmann J, Demirel D, Van De Graaf J. Towards a publicly-verifiable mix-net providing everlasting privacy[C]. International Conference on Financial Cryptography and Data Security, 2013: 197-204.

[14] Bitcoin: a peer-to-peer electronic cash system[EB/OL]. https://bitcoin.org/bitcoin.pdf.

[15] 何蒲, 于戈, 张岩峰, et al. 区块链技术与应用前瞻综述[J]. 计算机科学, 2017, 44(04): 1-7+15.

[16] Zhao Z, Chan T-H H. How to vote privately using bitcoin[C]. International Conference on Information and Communications Security, 2015: 82-96.

[17] Mccorry P, Shahandashti S F, Hao F. A smart contract for boardroom voting with maximum voter privacy[C]. International Conference on Financial Cryptography and Data Security, 2017: 357-375.

[18] Bistarelli S, Mantilacci M, Santancini P, et al. An end-to-end voting-system based on bitcoin[C]. Proceedings of the Symposium on Applied Computing, 2017: 1836-1841.

[19] Wu Y. An e-voting system based on blockchain and ring signature[J]. Master. University of Birmingham, 2017.

[20] Hardwick F S, Gioulis A, Akram R N, et al. E-Voting with blockchain: an E-Voting protocol with decentralisation and voter privacy[C]. 2018 IEEE International Conference on Internet of Things (iThings) and IEEE Green Computing and Communications (GreenCom) and IEEE Cyber, Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData), 2018: 1561-1567.

[21] Yavuz E, Koc A K, ?abuk U C, et al. Towards secure e-voting using ethereum blockchain[C]. 2018 6th International Symposium on Digital Forensic and Security (ISDFS), 2018: 1-7.

[22] Kirillov D, Korkhov V, Petrunin V, et al. Implementation of an E-Voting Scheme Using Hyperledger Fabric Permissioned Blockchain[C]. International Conference on Computational Science and Its Applications, 2019: 509-521.

[23] About the hyperledger project[EB/OL]. https://www.hyperledger.org/about.

[24] 金融区块链底层平台FISCO BCOS白皮书[EB/OL]. https://github.com/FISCO-BCOS/whitepaper.

[25] Szabo N. The idea of smart contracts[J], 1996.

[26] 沈鑫, 裴庆祺, 刘雪峰. 区块链技术综述[J]. 网络与信息安全学报, 2016, 2(11).

[27] Ethereum White Paper. A next-generation smart contract and decentralized application platform[EB/OL]. https://github.com/ethereum/wiki/wiki/WhitePaper.

[28] Kosba A, Miller A, Shi E, et al. Hawk: The Blockchain Model of Cryptography and Privacy-Preserving Smart Contracts[C]. Security and Privacy, 2016: 839-858.

猜你喜欢
智能合约
知产联盟链成果转移平台:知识产权成果转移的未来
知产联盟链成果转移平台:知识产权成果转移的未来
区块链智能合约法律问题研究
基于区块链的微电网系统
基于Hyperledger的自交易共享平台解决方案
区块链信息技术对会计监督的影响研究
基于智能合约的公钥证书发放方案
农产品供应链金融信用体系框架设计
基于区块链技术的去中心化数字出版平台研究
区块链技术在互联网保险行业的应用探讨