于天嬌 曹春杰 王隆娟 許蕾
摘 ? 要:針對(duì)電子投票中脅迫選票、重復(fù)投票、投票人隱私泄露等安全性問題,文章基于聯(lián)盟鏈提出了一種全匿名電子投票方案。該方案利用區(qū)塊鏈技術(shù)中的智能合約完成計(jì)票過程,避免了傳統(tǒng)可信第三方的約束,確保投票的公平性。方案采用可鏈接環(huán)簽名實(shí)現(xiàn)對(duì)投票者身份的無條件匿名。理論分析的結(jié)果表明:該方案具有保密性、匿名性、公平性等性質(zhì),可以廣泛應(yīng)用于特定團(tuán)體內(nèi)的電子投票。
關(guān)鍵詞:匿名投票;聯(lián)盟鏈;可鏈接環(huán)簽名;智能合約
中圖分類號(hào):TP309 ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼: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 引言
電子投票是一種基于密碼學(xué)技術(shù)構(gòu)建的新型在線投票系統(tǒng),相對(duì)于傳統(tǒng)的投票方式,電子投票方式提供了更高的透明度和公平性。愛沙尼亞[1]、瑞士、澳大利亞、美國(guó)等多個(gè)國(guó)家已經(jīng)開始使用電子投票方式進(jìn)行地方和國(guó)家選舉。
環(huán)簽名是由Shamir[2]提出,即將簽名者的公鑰和另外一個(gè)公鑰集合進(jìn)行混合,然后再對(duì)消息進(jìn)行簽名,任何人都可以驗(yàn)證簽名,但是無法區(qū)分集合中哪一個(gè)是真正的簽名者。2004年,Liu等人[3]提出了一個(gè)可鏈接環(huán)簽名,簽名者的身份在環(huán)中依舊保持匿名,但是可以驗(yàn)證兩個(gè)簽名是否來源于統(tǒng)一用戶。隨后多位學(xué)者對(duì)可鏈接環(huán)簽名方案提出了改進(jìn)方案,但是大多數(shù)方案都是基于計(jì)算實(shí)現(xiàn)的用戶身份匿名。2014年,Liu等人[4]提出了可實(shí)現(xiàn)無條件匿名的可鏈接環(huán)簽名,可以對(duì)用戶身份提供更強(qiáng)的匿名保護(hù),其可鏈接性在電子投票中可以有效地避免投票者雙重投票問題。
區(qū)塊鏈具有不可篡改、公開透明等特性。區(qū)塊鏈按照對(duì)節(jié)點(diǎn)開放程度分為公有鏈、私有鏈和聯(lián)盟鏈。公有鏈:所有節(jié)點(diǎn)都可以隨時(shí)加入和退出;私有鏈:只針對(duì)某組織內(nèi)部成員開放;聯(lián)盟鏈:由多機(jī)構(gòu)或組織構(gòu)成的聯(lián)盟,只有聯(lián)盟內(nèi)部成員有權(quán)加入。本文利用聯(lián)盟鏈可以對(duì)用戶身份進(jìn)行驗(yàn)證的特性和可鏈接環(huán)簽名的無條件匿名、可鏈接特性,提出一種適用于特定團(tuán)體下的電子投票方案。
1.1 相關(guān)工作
1981年,Chaum[5]首次給出電子投票的概念,將公鑰密碼體制和Mix機(jī)制結(jié)合實(shí)現(xiàn)了匿名通信,使用匿名通道實(shí)現(xiàn)匿名電子投票,同時(shí)也保證了投票者可驗(yàn)證其投票已被正確計(jì)票。1994年,Benaloh[6]首次提出了電子投票“無收據(jù)性”的安全需求,即投票者不能向其他人證明他提交了某特定投票。隨后研究學(xué)者提出了很多不同密碼體制的電子投票方案?,F(xiàn)有電子投票方案主要分為三類。
(1)基于盲簽名/環(huán)簽名的電子投票方案:Fujioka提出了一個(gè)適用于大規(guī)模選舉的秘密電子投票協(xié)議(FOO協(xié)議)[7],其使用盲簽名和比特承諾技術(shù),保障了選民的隱私和投票的公平性。Seminar等人[8]提出了不可追蹤可驗(yàn)證的電子投票方案,利用盲簽名的保密性來保障選民的隱私,實(shí)現(xiàn)選票的不可追蹤;
(2)基于同態(tài)加密的電子投票:M.Hirt和K.Sako[9]利用ElGamal同態(tài)加密技術(shù)提出了一種具有無收據(jù)性的電子投票協(xié)議。陳曉峰等人[10]采用ELGamal加密和門限加密算法,實(shí)現(xiàn)了電子投票的選票隱私性、無收據(jù)性,該方案中投票者需要與投票中心機(jī)構(gòu)進(jìn)行多次交互,導(dǎo)致通信量較大,不適用于大規(guī)模選舉;
(3)基于混合網(wǎng)絡(luò)的電子投票方案:Ohkubo等人[11]提出了對(duì)FOO計(jì)劃的改進(jìn)方案,通過使用閾值加密協(xié)議和混合網(wǎng)絡(luò)通信通道,保證了選民的隱私。高虎明等人[12]提出了基于混合網(wǎng)絡(luò)的電子投票方案,該方案滿足大規(guī)模的投票場(chǎng)景。Buchmann等人[13]提出了一種基于可公開驗(yàn)證的混合網(wǎng)絡(luò)的電子投票方案,實(shí)現(xiàn)了對(duì)投票者和投票信息的無條件匿名保護(hù)。
隨著比特幣[14]等加密貨幣的發(fā)展,其底層區(qū)塊鏈技術(shù)也受到學(xué)術(shù)界和工業(yè)界的高度關(guān)注。區(qū)塊鏈?zhǔn)菍⒚艽a學(xué)、計(jì)算機(jī)科學(xué)等多個(gè)跨領(lǐng)域?qū)W科整合到一起,形成的一種分布式存儲(chǔ)技術(shù)[15]。由于區(qū)塊鏈具有去中心化、不可篡改等特性,很多學(xué)者也開始提出一系列基于區(qū)塊鏈技術(shù)的電子投票系統(tǒng)。2015年,Zhao等人[16]首次將區(qū)塊鏈技術(shù)運(yùn)用到電子投票場(chǎng)景。2017年,McCorry等人提出了Open Vote Network[17],使用基于Ethererum的智能合約實(shí)現(xiàn)計(jì)票,是第一次不依賴任何可信機(jī)構(gòu)來完成計(jì)票過程。Bistarelli等人[18]提出了一種基于比特幣協(xié)議的端對(duì)端的投票系統(tǒng),使用匿名Kerberos認(rèn)證協(xié)議保證選民的身份隱私,選民通過向鏈上候選者地址進(jìn)行代幣轉(zhuǎn)移實(shí)現(xiàn)投票。Yifan Wu[19]提出了一種基于區(qū)塊鏈和環(huán)簽名的電子投票系統(tǒng),滿足了投票隱私和個(gè)人可驗(yàn)證性,使用比特幣中的OP_RETURN腳本來寫入投票信息,從而實(shí)現(xiàn)投票過程。2018年,Hardwick等人[20]提出使用CA對(duì)投票者公鑰和數(shù)字承諾的盲簽名來獲取投票權(quán),所有選票經(jīng)其它節(jié)點(diǎn)驗(yàn)證后記入?yún)^(qū)塊鏈。Koc等人[21]提出了一種在Ethereum平臺(tái)上實(shí)現(xiàn)的電子投票方案。投票組織者為選舉創(chuàng)建了智能合約,并添加了有權(quán)投票的錢包地址。選民將候選人的編號(hào)作為參數(shù)調(diào)用智能合約的函數(shù)完成投票。2019年,Kirillov等人[22]提出基于Hyperledger Fabric區(qū)塊鏈的電子投票方案,使用身份混合器(Identity Mixer)實(shí)現(xiàn)選民身份的隱私。
1.2 本文貢獻(xiàn)
本文針對(duì)目前電子投票存在的投票者身份信息泄露、重復(fù)投票等問題,提出了一種基于聯(lián)盟鏈的全匿名電子投票方案。使用可鏈接環(huán)簽名和單向散列函數(shù)實(shí)現(xiàn)投票者身份和選票的匿名性;通過智能合約來自動(dòng)計(jì)票并將結(jié)果上傳至聯(lián)盟鏈,實(shí)現(xiàn)投票的透明性和公平性。
1.3 本文組織
第二章介紹了本文方案所需的基礎(chǔ)知識(shí)。第三章介紹了基于聯(lián)盟鏈的電子投票方案的具體構(gòu)造。第四章給出了本文所提方案的安全性分析。第五章總結(jié)全文的內(nèi)容。
2 基本知識(shí)
2.1 預(yù)備知識(shí)
離散對(duì)數(shù)問題(Discrete Logarithm Problem,DLP):已知G是的一個(gè)q階循環(huán)群,p,q是大素?cái)?shù),且q|p-1。選取生成元g,給定y,計(jì)算,使得是困難的。
單向散列函數(shù):?jiǎn)蜗蛏⒘泻瘮?shù)也稱為單向哈希函數(shù),可以將任意長(zhǎng)度的輸入消息串生成固定長(zhǎng)度的消息散列值。它具有三個(gè)性質(zhì):
(1)單向性,若已知消息,很容易計(jì)算出其散列值,若已知H(m)=h,不能推算出其對(duì)應(yīng)的輸入消息串m;
(2)抗碰撞性,很難找到兩個(gè)消息,使得H(x)=H(x');
(3)抗第二原象性,已知消息,求出且,使得H(x)=H(x')是困難的。
2.2 可鏈接環(huán)簽名(Linkable Ring Signature,LRS)[4]
可鏈接環(huán)簽名由五個(gè)算法構(gòu)成(Setup,KeyGen,Sign,Verify,Linkability):
(1)初始化Setup:Param←Setup(λ),輸入一個(gè)安全參數(shù)λ,輸出系統(tǒng)安全參數(shù)Param;
(2)生成密鑰Keygen:(ski,pki) ←keyGen(Param),輸入系統(tǒng)安全參數(shù),輸出一對(duì)公私鑰對(duì)(ski,pki),其中私鑰是ski,公鑰是 pki;
(3)簽名Sign:σ←Sign(sk,L,M),輸入私鑰sk,公鑰集合L以及待簽名的信息M,輸出有效的環(huán)簽名σ;
(4)驗(yàn)證簽名Verify:accept/reject←Verify(σ,L,M),輸入簽名σ,公鑰集合L,簽名信息M,驗(yàn)證簽名是否有效,如簽名有效輸出accept;
(5)驗(yàn)證可鏈接性Linkability:1/0←Linkability(σ1,σ2),輸入兩個(gè)有效簽名,若輸出1,則代表兩個(gè)簽名由同一投票者簽署。
2.3 FISCO BCOS和智能合約
目前,常見的聯(lián)盟鏈有Linux基金會(huì)的Hyperledger Fabric[23]和金融區(qū)塊鏈合作聯(lián)盟(金鏈盟)的FISCO BCOS。BCOS平臺(tái)[24]是由金鏈盟在2017年推出,它是國(guó)內(nèi)首個(gè)安全可控、可商用的開源區(qū)塊鏈技術(shù)平臺(tái)。平臺(tái)提出的群組架構(gòu)中,可以根據(jù)業(yè)務(wù)場(chǎng)景的不同,存在多個(gè)不同的賬本,節(jié)點(diǎn)可以根據(jù)業(yè)務(wù)需求選擇加入群組,參與到對(duì)應(yīng)賬本的共識(shí)過程。
Nick Szabo在1995年提出智能合約(Smart contract)的概念,他將其定義為 “一組以數(shù)字形式指定的承諾,包括各方在其他承諾下履行的協(xié)議”,而不使用人工智能[25]。隨著區(qū)塊鏈技術(shù)的出現(xiàn),智能合約被重新定義為部署在區(qū)塊鏈上的一段去中心化、可自動(dòng)執(zhí)行的程序代碼[26]。在以太坊[27]中,虛擬機(jī)(EVM)把合約編譯成操作碼存放在區(qū)塊鏈上,一旦合約部署完成,即使是創(chuàng)建者也不可以對(duì)合約進(jìn)行修改。當(dāng)合約滿足條件時(shí),就會(huì)發(fā)送一筆交易到合約地址,全網(wǎng)節(jié)點(diǎn)都會(huì)執(zhí)行合約腳本編譯生成的操作碼,最后將結(jié)果寫入?yún)^(qū)塊鏈。在這個(gè)過程中,智能合約模擬具有共享狀態(tài)的可信第三方[28]。
運(yùn)行BCOS上的智能合約,可以實(shí)現(xiàn)對(duì)選票解密、統(tǒng)計(jì)等業(yè)務(wù)需求,從而代替?zhèn)鹘y(tǒng)的第三方可信平臺(tái)(TTP);BCOS實(shí)現(xiàn)了預(yù)編譯合約框架,加快了合約調(diào)用響應(yīng)速度,大幅度提升了交易處理的吞吐量,從而提高了系統(tǒng)效率;此外,BCOS提出基于區(qū)塊鏈網(wǎng)絡(luò)的消息通信協(xié)議(AMOP),提升了機(jī)構(gòu)之間的互操作性和通信安全性。智能合約的部署和調(diào)用,如圖1所示。
3 基于聯(lián)盟鏈的全匿名電子投票方案
3.1 系統(tǒng)模型
本文針對(duì)多候選者投票場(chǎng)景,提出一種基于聯(lián)盟鏈的全匿名電子投票方案。該方案包括四個(gè)實(shí)體:授權(quán)中心CA、投票者V、聯(lián)盟機(jī)構(gòu)UI、鏈管理者M(jìn)anager(s)。系統(tǒng)模型如圖2所示。
(1)授權(quán)中心CA:用于驗(yàn)證投票者身份的合法性,為有權(quán)投票的投票者頒發(fā)實(shí)名證書,為合約發(fā)送公私鑰對(duì)。
(2)投票者V:有投票權(quán)的投票者,可通過客戶端進(jìn)行投票和驗(yàn)證投票。
(3)鏈管理者M(jìn)anager(s):由多個(gè)聯(lián)盟機(jī)構(gòu)共同選出,可以是一個(gè)或者多個(gè)節(jié)點(diǎn)構(gòu)成,負(fù)責(zé)對(duì)聯(lián)盟機(jī)構(gòu)的權(quán)限分配。
(4)聯(lián)盟機(jī)構(gòu)UI:部署智能合約,負(fù)責(zé)投票者的選票上鏈,共同維護(hù)區(qū)塊鏈上數(shù)據(jù)。
3.2 方案的具體構(gòu)造
3.2.1 方案的形式化定義
本方案包括系統(tǒng)初始化、注冊(cè)、投票和計(jì)票。記作ES={SyInit,VoterRegiser,Voting,Tally}。
(1)系統(tǒng)初始化SyInit(λ)→(Param):輸入安全系數(shù)λ,輸出系統(tǒng)參數(shù)Param。
(2)注冊(cè)VoterRegiser(IDi,σ)→certi:輸入投票者身份IDi和對(duì)身份IDi的σ,輸出實(shí)名認(rèn)證證書certi。
(3)投票Voting(k,M,pkL)→(σ',vote,cvk):輸入隨機(jī)數(shù)k,選票明文M,簽名的公鑰集合簽名pkL,輸出投票者的選票vote=H(k||M)、環(huán)簽名σ'和隨機(jī)數(shù)k的密文cvk。
(4)計(jì)票Tally(cvk,vote)→:輸入選票vote,隨機(jī)數(shù)k的密文cv_k,輸出計(jì)票集合。
3.2.2 方案的具體構(gòu)造
假設(shè)本方案有n個(gè)投票者(U1,U2,…,Un),他們信任同一個(gè)聯(lián)盟機(jī)構(gòu)UI1,其投票方案詳細(xì)步驟為:
(1)系統(tǒng)初始化SyInit
如圖3所示,聯(lián)盟鏈管理者(Manager)設(shè)置投票問題(Question),投票選項(xiàng),令,…,以及可參與投票的聯(lián)盟機(jī)構(gòu)UIName,將該信息寫入?yún)^(qū)塊鏈。智能合約初始化,聯(lián)盟鏈管理者設(shè)置注冊(cè)和投票的開始/截止時(shí)間Date={tregisterBegin/tregisterDeadline,tvoteBegin/tvoteDeadline},聯(lián)盟機(jī)構(gòu)協(xié)商選取滿足安全需求的大素?cái)?shù)p,群一個(gè)p階群,且在中求解離散對(duì)數(shù)是困難的。假設(shè),是兩個(gè)單向散列函數(shù),隨機(jī)選取兩個(gè)生成元,并將公共參數(shù)Param=(,g,h,p,H_1 )公布上鏈。
由授權(quán)機(jī)構(gòu)(CA)生成RSA公私鑰對(duì)(e',n',d),并通過安全通道發(fā)送給智能合約,其中智能合約公鑰pkc=(e',n'),私鑰skc=d。
(2)注冊(cè)VoterRegiser
投票者先在授權(quán)機(jī)構(gòu)CA注冊(cè)身份,CA給通過身份驗(yàn)證的投票者分發(fā)身份證書Cert。如圖4所示,注冊(cè)VoterRegiser具體步驟為:
1)投票者Ui隨機(jī)選擇。其中ski=(x,y)作為簽名私鑰,pki=Pi作為簽名公鑰;
2)投票者Ui使用自己私鑰對(duì)身份證號(hào)IDi簽名σi=Sign(IDi,ski),將(σi,pki)發(fā)送給認(rèn)證機(jī)構(gòu)(CA)驗(yàn)證身份的合法性。若簽名有效,則向投票者Ui發(fā)送實(shí)名證書certi;
3)并將智能合約公鑰pkc以及各聯(lián)盟機(jī)構(gòu)所含投票者的公鑰集L={pk1,pk2,…,pkn}分別發(fā)送給各聯(lián)盟機(jī)構(gòu)。
系統(tǒng)注冊(cè)階段需在tregisterDeadline時(shí)間內(nèi)完成。
(3)投票Voting
有投票權(quán)的投票者根據(jù)自己的意愿進(jìn)行投票,對(duì)投票信息進(jìn)行簽名發(fā)送給自己信任的聯(lián)盟機(jī)構(gòu)。具體步驟為:
1)投票者向聯(lián)盟機(jī)構(gòu)發(fā)送自己的身份證書和投票請(qǐng)求,聯(lián)盟機(jī)構(gòu)返回給投票者投票選項(xiàng)編號(hào)Options={b1,b2,...,b〗_m}、投票者公鑰集L={pk1,pk2,…,pkn }、合約公鑰pkc以及系統(tǒng)安全公共參數(shù)Param;
2)投票者在投票前隨機(jī)選擇,根據(jù)自己的意愿生成投票信息M=bj,j∈{1,2,...m},用合約公鑰pkc=(e',n' )加密隨機(jī)數(shù)k,cvk=k(e') ?mod n',計(jì)算選票的哈希值hv=Hash(k||bj);
3)投票者對(duì)hv進(jìn)行環(huán)簽名。
①計(jì)算w=H1 (event),t=wx,其中event是對(duì)事件的描述,t作為投票者簽名的唯一標(biāo)簽。
②投票者隨機(jī)生成rx, ry, c1,…,cπ-1,cπ+1,…,cn,計(jì)算,。
③令求解得到cπ。計(jì)算,。
④輸出可鏈接環(huán)簽名。
4)投票者將交易tx= (σ,hv,cvk)發(fā)送給信任的聯(lián)盟機(jī)構(gòu)。
①聯(lián)盟機(jī)構(gòu)接收到事務(wù)時(shí),先驗(yàn)證投票者簽名的有效性,計(jì)算,判斷如果等式成立,則投票者簽名有效。
②驗(yàn)證簽名是否已存在于鏈上,并查看區(qū)塊鏈上可鏈接環(huán)簽名是否有相同的標(biāo)簽t,若已存在,則該選票作廢,不進(jìn)行上鏈。
③將事務(wù)tx廣播給其它節(jié)點(diǎn),節(jié)點(diǎn)驗(yàn)證交易通過,將事務(wù)tx放入本地交易池,利用實(shí)用拜占庭容錯(cuò)(PBFT)共識(shí)算法實(shí)現(xiàn)鏈上數(shù)據(jù)的一致性。
系統(tǒng)投票階段應(yīng)在時(shí)間tvoteDeadline之內(nèi)完成。投票過程如圖5所示。
(4)計(jì)票Tally
智能合約在截止日期后對(duì)所有選票進(jìn)行統(tǒng)計(jì),如圖6所示。設(shè)選項(xiàng)投票結(jié)果為集合Π={Sum1,Sum2,...Summ},初始化Sumi=0,i∈{1,2,...,m},其中Sum1代表選項(xiàng)1的投票結(jié)果。在計(jì)票過程中,智能合約調(diào)用解密函數(shù),使用自身私鑰d解密cvk獲得隨機(jī)數(shù)k=cvkd ?mod n',依次比較H(k||bz)?=H(k||bj),z∈1,2,…m,若H(k||b3)==H(k||bj),則表示投票者投給選項(xiàng)3,計(jì)算Sum3=Sum3+1。循環(huán)調(diào)用解密函數(shù)和比較函數(shù),直到所有選票都進(jìn)行計(jì)票。最后投票結(jié)果Π公開發(fā)布至區(qū)塊鏈。計(jì)票流程如圖7所示。
(5)驗(yàn)證
投票者客戶端可向任意參加投票的聯(lián)盟機(jī)構(gòu)發(fā)出查詢區(qū)塊鏈相關(guān)信息的請(qǐng)求,聯(lián)盟機(jī)構(gòu)調(diào)用賬本獲取相關(guān)數(shù)據(jù),并將相應(yīng)返回給投票者客戶端,投票者可以驗(yàn)證其它簽名的有效性,其次可以驗(yàn)證投票總數(shù)與注冊(cè)投票者數(shù)量是否一致。
4 安全分析
本文基于聯(lián)盟鏈的全匿名電子投票方案,投票者可以通過可鏈接環(huán)簽名實(shí)現(xiàn)對(duì)自己身份的隱私,在投票過程中使用智能合約公鑰進(jìn)行加密,并將其提交給聯(lián)盟機(jī)構(gòu),由聯(lián)盟機(jī)構(gòu)驗(yàn)證簽名后,將傳播交易至其他節(jié)點(diǎn),投票系統(tǒng)通過智能合約完成自動(dòng)計(jì)票并公布投票結(jié)果。本方案具有良好的合法性、選票保密性、不可重用性、抗脅迫性等特點(diǎn)。
(1)合法性
投票者在加入聯(lián)盟鏈時(shí),需要先向CA進(jìn)行身份驗(yàn)證,獲得有效地實(shí)名認(rèn)證證書才有權(quán)利向聯(lián)盟機(jī)構(gòu)請(qǐng)求投票,從而獲得簽名的參數(shù),確保了只有通過認(rèn)證的投票者才可參與后續(xù)的投票過程,故本文方案滿足投票的合法性。
(2)選票內(nèi)容的保密性
本文中,每一位投票者投出的選票內(nèi)容(k||bj)都是經(jīng)過哈希,投票密鑰k是一個(gè)隨機(jī)數(shù),所以攻擊者無法確定,而哈希的單向性很好的保證了選票內(nèi)容的匿名性;投票者會(huì)對(duì)選票進(jìn)行環(huán)簽名,環(huán)簽名的無條件匿名性使得任何人都無法判斷出投票者和簽名、選票之間的聯(lián)系,所以該方案具有良好的選票內(nèi)容保密性。
(3)不可重用性
本方案使用的環(huán)簽名具有可鏈接性,在投票階段聯(lián)盟機(jī)構(gòu)收到投票者簽名時(shí),根據(jù)可鏈接環(huán)簽名的標(biāo)簽t可以快速驗(yàn)證簽名是否已存在于區(qū)塊鏈上,由于標(biāo)簽t是由投票者私鑰唯一確定的,若鏈上已存在時(shí),則當(dāng)前選票視為作廢,不予以上鏈處理。從而可以有效避免同一投票者的多次投票行為,故每一位合格的投票者只有一次投票機(jī)會(huì)。因此,該系統(tǒng)方案可以實(shí)現(xiàn)良好的不可重用性。
(4)抗脅迫選票
只要認(rèn)證機(jī)構(gòu)CA是誠(chéng)實(shí)的,則本文方案滿足抗脅迫選票。假設(shè)某惡意攻擊者強(qiáng)迫誠(chéng)實(shí)投票者Vβ提交選票M,而投票者先選擇一個(gè)隨機(jī)數(shù)k,并使用智能合約公鑰對(duì)隨機(jī)數(shù)k加密,然后計(jì)算隨機(jī)數(shù)k和選票M'的哈希值Hash(k||M'),對(duì)選票哈希值進(jìn)行可鏈接環(huán)簽名,并通過可信聯(lián)盟機(jī)構(gòu)將簽名信息和投票寫到鏈上,惡意攻擊者只可驗(yàn)證鏈上簽名有效性,無法獲知鏈上投票M'?=M,因此投票者依舊可以按照自己的意愿進(jìn)行投票。
(5)可驗(yàn)證性
在投票截止之前,任何合法的投票者都可以通過客戶端向聯(lián)盟機(jī)構(gòu)發(fā)送投票驗(yàn)證請(qǐng)求。聯(lián)盟機(jī)構(gòu)獲取鏈上賬本數(shù)據(jù),并打包返回給投票者客戶端,投票者可以驗(yàn)證投票簽名的有效性以及自己的投票信息是否在上鏈前被修改。鏈上的智能合約狀態(tài)和內(nèi)容具有公開透明性,任何人都能夠通過審核智能合約所實(shí)現(xiàn)功能的正確性。因此,該方案具有可驗(yàn)證性。
(6)公平性
本方案利用智能合約的可自動(dòng)執(zhí)行性來實(shí)現(xiàn)對(duì)選票結(jié)果的計(jì)票過程。智能合約在到達(dá)投票截止時(shí)間后開始自動(dòng)執(zhí)行,并只對(duì)在截止時(shí)間前的所有有效地投票進(jìn)行統(tǒng)計(jì),投票結(jié)果無法被預(yù)先計(jì)算。因此,本文方案滿足公平性。
5 結(jié)束語
本文提出了一個(gè)基于聯(lián)盟鏈的全匿名電子投票方案,通過具有特定業(yè)務(wù)邏輯的智能合約來進(jìn)行計(jì)票使得計(jì)票過程不再受可信第三方的約束,從而保證了選票結(jié)果的公平性,通過可鏈接環(huán)簽名保護(hù)了投票人的身份隱私。通過對(duì)方案的安全性分析,表明文中提出的方案滿足電子投票系統(tǒng)的安全需求。
基金項(xiàng)目:
1.海南省自然科學(xué)基金面上項(xiàng)目(項(xiàng)目編號(hào):617079);
2.國(guó)家自然科學(xué)基金(項(xiàng)目編號(hào):61661019);
3.國(guó)家自然科學(xué)基金聯(lián)合基金重點(diǎn)項(xiàng)目(項(xiàng)目編號(hào):U19B2044);
4.海南省高等學(xué)校教育教學(xué)改革研究重點(diǎn)資助項(xiàng)目(項(xiàng)目編號(hào):Hnjg2017ZD-1)。
參考文獻(xiàn)
[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ù)的電子投票[J]. 計(jì)算機(jī)學(xué)報(bào), 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] 高虎明, 王繼林, 王育民. 一個(gè)基于 Mix net 的電子投票方案[J]. 電子學(xué)報(bào), 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. 區(qū)塊鏈技術(shù)與應(yīng)用前瞻綜述[J]. 計(jì)算機(jī)科學(xué), 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] 金融區(qū)塊鏈底層平臺(tái)FISCO BCOS白皮書[EB/OL]. https://github.com/FISCO-BCOS/whitepaper.
[25] Szabo N. The idea of smart contracts[J], 1996.
[26] 沈鑫, 裴慶祺, 劉雪峰. 區(qū)塊鏈技術(shù)綜述[J]. 網(wǎng)絡(luò)與信息安全學(xué)報(bào), 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.