《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于區(qū)塊鏈的電子投票選舉系統(tǒng)研究分析
基于區(qū)塊鏈的電子投票選舉系統(tǒng)研究分析
2017年電子技術(shù)應(yīng)用第11期
張昕偉1,張 華2,郭肖旺1,張 雯3
1.中國電子信息產(chǎn)業(yè)集團有限公司第六研究所,北京100083; 2.北京航天飛行控制中心,北京102206;3.IThinking Inc,北京100083
摘要: 區(qū)塊鏈通過分布式公式算法實現(xiàn)去中心化信任,其核心是一個開放的、可編程的分布式數(shù)據(jù)庫,該數(shù)據(jù)庫是全球性的。區(qū)塊鏈技術(shù)不僅是用在金融交易上,還可以用于記錄所有有價值的東西,如財務(wù)賬目、醫(yī)療過程、出生證明、保險理賠、投票等任何可用代碼來表示的東西。分析了區(qū)塊鏈技術(shù)應(yīng)用于電子投票系統(tǒng)的可能性,分析采用區(qū)塊鏈技術(shù)來構(gòu)建新型電子投票選舉系統(tǒng)的優(yōu)缺點,在此基礎(chǔ)上,給出了基于區(qū)塊鏈技術(shù)的投票選舉系統(tǒng)的框架需求分析,并提出了系統(tǒng)架構(gòu)和設(shè)計方案,解決了電子投票選舉系統(tǒng)中有關(guān)欺詐、欺騙選票的問題,最后給出了區(qū)塊鏈在電子投票選舉系統(tǒng)中的研究可行性結(jié)論,為基于區(qū)塊鏈的系統(tǒng)設(shè)計與應(yīng)用提供了新思路。
中圖分類號: TP309.2
文獻標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.173731
中文引用格式: 張昕偉,張華,郭肖旺,等. 基于區(qū)塊鏈的電子投票選舉系統(tǒng)研究分析[J].電子技術(shù)應(yīng)用,2017,43(11):132-135.
英文引用格式: Zhang Xinwei,Zhang Hua,Guo Xiaowang,et al. Research and analysis of electronic voting system based on block-
chain[J].Application of Electronic Technique,2017,43(11):132-135.
Research and analysis of electronic voting system based on blockchain
Zhang Xinwei1,Zhang Hua2,Guo Xiaowang1,Zhang Wen3
1.The 6th Research Institute of China Electronics Corporation,Beijing 100083,China; 2.Beijing Aerospace Control Center,Beijing 102206,China;3.IThinking Inc,Beijing 100083,China
Abstract: The blockchain is distributed through a distributed algorithm, to realize decentralized trust. The core is an open, programmable, distributed database which is global. Blockchain technology is not only used in financial transactions, it can also be used to record all valuable things which can be represented in code, such as financial accounts, medical procedures, birth certificate, insurance claims, vote and so on. This paper analyzes the possibility of the application of blockchain technology to electronic voting, and the advantages and disadvantages of using blockchain technology to construct new electronic voting system. The system architecture and design scheme are presented. This paper solves the problem of fraudulent ballot in electronic voting system. Finally, the feasibility of blockchain in electronic voting system is given. This paper provides a new idea for system design and application based on blockchain.
Key words : electronic voting;blockchain;decentralization

0 引言

    在電子投票選舉系統(tǒng)的安全實用性研究方面,基于密碼技術(shù)的投票方案是最常見的。CHAUM D提出了第一個密碼學(xué)意義上的電子投票選舉方案[1],提出了在公鑰密碼體制結(jié)合 Mix機制來實現(xiàn)匿名通信的方案,但是該方案要求所有投票者必須合作,其協(xié)議效率和可行性較低。在此方案的基礎(chǔ)上,一系列采用Mix-net機制的電子投票系統(tǒng)[2-3]研究出現(xiàn)了,在協(xié)議的安全性以及可靠性方面有所提高[4]。這類方案要求所有Mix服務(wù)器在處理選票過程中無法篡改選票,其無法篡改的證明依賴于大量的證明計算,協(xié)議運行效率較低。

    區(qū)塊鏈技術(shù)最先在比特幣白皮書中,以“工作量證明鏈(Proof-of-work Chain)”的形式提出。區(qū)塊鏈本質(zhì)上是一個去中心化的數(shù)據(jù)庫,作為比特幣的底層技術(shù),區(qū)塊鏈通過分布式公式算法實現(xiàn)去中心化,其核心是一個開放的、可編程的分布式數(shù)據(jù)庫,該數(shù)據(jù)庫是全球性的。區(qū)塊鏈技術(shù)不僅是用在金融交易上,還可以用于記錄所有有價值的東西,應(yīng)用領(lǐng)域十分廣泛,如財務(wù)賬目、醫(yī)療過程、出生證明、保險理賠、投票等任何可用代碼來表示的東西。針對現(xiàn)有方案存在的投票效率低下、重復(fù)投票、欺詐選票以及安全性等問題,本文在區(qū)塊鏈技術(shù)的基礎(chǔ)上提出了基于區(qū)塊鏈的投票選舉系統(tǒng),通過在投票過程中引入?yún)^(qū)塊鏈技術(shù),每個投票數(shù)據(jù)節(jié)點都可以驗證投票賬本的內(nèi)容和構(gòu)造歷史的真實性和完整性,確保投票記錄是可靠的、沒有被篡改的,相當(dāng)于提高了系統(tǒng)的可追責(zé)性,降低了系統(tǒng)的信任風(fēng)險。防止有不合法投票人欺詐選票或者其他機構(gòu)破壞投票過程,干擾投票結(jié)果。此外,每個投票人都可以看到投票結(jié)果,通過匿名算法,保證投票人的隱私,同時又不損害投票的公開公正性。

1 電子投票選舉系統(tǒng)安全性要求

    電子投票選舉系統(tǒng)在安全性方面的要求包括:

    (1)合法用戶參與性,不合法用戶是不能進行投票的;

    (2)投票中心不能拒絕合法選票;

    (3)合法投票者只能進行一次投票;

    (4)投票過程的不可破壞性:投票過程不能被惡意攻擊者的不合法或不誠實行為破壞;

    (5)選票內(nèi)容的保密性,對選票內(nèi)容進行加密,防止被惡意竊取后泄露選票內(nèi)容,影響投票過程;

    (6)投票者可以驗證自己的選票是否正確有效,且被正確統(tǒng)計,保證選舉結(jié)果的正確性和合法性;

    (7)投票者身份隱藏,其他用戶不可見;

    (8)投票過程需簡單高效,無需用戶進行復(fù)雜學(xué)習(xí);

    (9)系統(tǒng)可支持多個候選人。

2 區(qū)塊鏈技術(shù)適用性分析

    區(qū)塊鏈?zhǔn)潜忍貛诺幕A(chǔ)技術(shù),每個數(shù)據(jù)節(jié)點無需相互信任,在時間戳、數(shù)據(jù)加密等技術(shù)基礎(chǔ)上實現(xiàn)去中心化、不可篡改和自治性等特性。系統(tǒng)的每個參與者都能夠知曉系統(tǒng)的運行規(guī)則,又實現(xiàn)了開源透明的特性。區(qū)塊鏈的這些技術(shù)性特點解決了現(xiàn)在中心化系統(tǒng)所存在的成本高、效率低、安全性低等問題。

    在基于區(qū)塊鏈的網(wǎng)絡(luò)結(jié)構(gòu)中,每個節(jié)點都共享系統(tǒng)的所有信息,不存在中心節(jié)點,每個數(shù)據(jù)節(jié)點都可以驗證賬本的真實內(nèi)容以及歷史記錄,保證了數(shù)據(jù)的完整性,確保數(shù)據(jù)是沒有經(jīng)過篡改的、可靠的。區(qū)塊鏈的自治性決定了節(jié)點在區(qū)塊鏈網(wǎng)絡(luò)中,會自主監(jiān)聽其他節(jié)點發(fā)生的數(shù)據(jù)信息,并隨時進行共享,整個流程都是區(qū)塊鏈網(wǎng)絡(luò)自主實現(xiàn)的,不需要人工進行干預(yù)。區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點都是整個網(wǎng)絡(luò)的維護者,網(wǎng)絡(luò)中沒有節(jié)點擁有絕對優(yōu)先的權(quán)力。這種去中心化的、分布式的網(wǎng)絡(luò)結(jié)構(gòu)適用于投票選舉系統(tǒng),投票中心不需要專門維護和管理整理投票系統(tǒng)和網(wǎng)絡(luò),投票系統(tǒng)的每個用戶共同維護和管理整個系統(tǒng)的信息,并可共享數(shù)據(jù)信息,保證了網(wǎng)絡(luò)的透明性,也防止了惡意投票或篡改欺詐、欺騙選票的作弊行為。

    由于區(qū)塊鏈的記錄是可追溯的,且不可抵賴,所有的投票記錄都會被全網(wǎng)記錄,任何投票用戶的投票記錄都會被記錄到區(qū)塊中,每一次新的投票記錄都會被共享到全網(wǎng)所有節(jié)點,系統(tǒng)中所有的節(jié)點都可以收到投票記錄,并把收到的記錄加入?yún)^(qū)塊中,在區(qū)塊鏈算法中,始終將長度最長的區(qū)塊鏈認為是正確的鏈,鏈會隨著投票記錄的增加不斷變長。區(qū)塊鏈?zhǔn)褂昧藭r間戳,可以提供時間上的證明,如果有欺詐選票或篡改選票的行為,將可以在區(qū)塊鏈中回溯記錄查詢發(fā)生篡改或欺詐選票的時間和數(shù)據(jù)。

3 基于區(qū)塊鏈的電子投票選舉系統(tǒng)設(shè)計

    基于區(qū)塊鏈的電子投票選舉系統(tǒng)擬采用C/S架構(gòu),本文根據(jù)區(qū)塊鏈中去中心化、節(jié)點數(shù)據(jù)共享、節(jié)點自治性等特點,分析電子投票選舉系統(tǒng),要求每個投票者平等地參與投票,投票完畢后生成投票憑證報文,報文驗證完畢后,系統(tǒng)向所有節(jié)點廣播投票記錄消息,所有收到消息的節(jié)點更新自己的區(qū)塊鏈,存儲投票記錄,共同維護系統(tǒng)投票歷史記錄信息。

3.1 系統(tǒng)功能說明

    電子投票選舉系統(tǒng)的主要功能是記錄投票者的投票信息,記錄投票過程并生成投票憑證,將投票憑證存入本地數(shù)據(jù)結(jié)構(gòu)。該結(jié)構(gòu)中記錄了投票時間、投票數(shù)據(jù)等信息。投票記錄加密后共享給系統(tǒng)所有節(jié)點,當(dāng)網(wǎng)絡(luò)中的大部分節(jié)點甚至所有節(jié)點認為該投票記錄有效時,系統(tǒng)記錄票數(shù),并將投票憑證記錄到區(qū)塊中,然后系統(tǒng)公布候選者票數(shù),整個過程中投票者的信息都是隱藏的。每個投票系統(tǒng)用戶節(jié)點都可以收到投票憑證,保存到區(qū)塊中,在區(qū)塊鏈算法中,始終將長度最長的區(qū)塊鏈認為是正確的鏈,鏈會隨著投票記錄的增加不斷變長。投票憑證的傳輸采用了簽名認證,系統(tǒng)會定時檢測區(qū)塊鏈文件,確保文件未被篡改。區(qū)塊鏈文件表示記錄投票憑證的賬本。系統(tǒng)還提供了兩個輔助功能來方便用戶了解投票功能和查看當(dāng)前投票系統(tǒng)公開選票記錄。兩個輔助功能包括:(1)獲取投票信息功能,在用戶完成投票后,系統(tǒng)自動生成投票憑證,并在本地保存;(2)查看投票歷史記錄,所有用戶都可以在公共信息頁上查看所有候選者的選票情況。

3.2 功能設(shè)計

    系統(tǒng)按照功能可以分為3個模塊:投票模塊、區(qū)塊鏈管理模塊、投票憑證管理模塊。在本系統(tǒng)中,節(jié)點指的是位于系統(tǒng)中、可以被用戶進行投票使用的PC或者手機APP,這些節(jié)點可以互相通信,并且在節(jié)點中可以存儲區(qū)塊鏈信息,并提供區(qū)塊鏈系統(tǒng)的維護功能,節(jié)點內(nèi)部的工作對于投票用戶來說是不可見的。圖1描述了系統(tǒng)的總體功能劃分。

jsj6-t1.gif

    投票模塊主要承擔(dān)投票者用戶選擇候選者進行投票的功能,并達到投票去中心化、去信任的目標(biāo)。在該模塊中,用戶選擇候選者,選擇投票,點擊確定,生成投票記錄,即投票憑證報文。為保證投票憑證在傳輸模塊傳輸過程中不被篡改,系統(tǒng)根據(jù)區(qū)塊鏈中最后一條記錄的散列值,使用私鑰簽名,并把投票記錄、簽名和公鑰一起封裝成投票憑證報文,該報文被發(fā)送給候選者節(jié)點。候選者節(jié)點接收投票記錄憑證,利用公鑰驗證其簽名,若簽名正確,則增加此候選者的票數(shù)。此過程對于候選者節(jié)點來說,可見的只是選票的增加,并不會顯示投票者的信息,簽名驗證通過后,系統(tǒng)封裝確認消息報文,并共享給所有節(jié)點,收到消息的節(jié)點更新自己本身的區(qū)塊鏈。

    區(qū)塊鏈管理模塊主要用于管理分布式區(qū)塊鏈賬本,及時更新區(qū)塊鏈文件,提供查詢詳細投票記錄的功能。及時更新區(qū)塊鏈文件主要是指Merkle根數(shù)據(jù)的定點更新,系統(tǒng)每隔一定時間,會向所有節(jié)點共享區(qū)塊鏈Merkle根的數(shù)據(jù),收到消息的節(jié)點,比較本地Merkle根數(shù)據(jù)是否一致,以此來判斷系統(tǒng)是否在安全狀態(tài)下,是否已遭受惡意攻擊或數(shù)據(jù)被篡改。

    投票憑證管理模塊用于管理投票者投票產(chǎn)生的投票記錄數(shù)據(jù),按照加密協(xié)議,生成投票憑證,并把投票憑證報文存儲至本地存儲模塊中。

3.2.1 投票模塊功能

    投票模塊主要實現(xiàn)投票并生成投票記錄和投票憑證報文,傳輸投票記錄。該模塊包括投票憑證生成、投票憑證傳輸、投票憑證校驗、投票憑證確認等4個功能,如圖2所示。

jsj6-t2.gif

    投票功能分析如下:

    (1)投票記錄生成:用戶選擇要進行投票的候選人,點擊投票,確定投票信息,則系統(tǒng)生成投票記錄,記錄用戶ID、用戶投票時間、候選者ID,并加密生成投票憑證報文。

    (2)投票憑證傳輸功能:系統(tǒng)將生成的投票憑證報文發(fā)送出去。系統(tǒng)根據(jù)區(qū)塊鏈中最后一條記錄的散列值,使用私鑰簽名。將投票記錄、簽名和公鑰封裝到消息中,發(fā)送給候選者節(jié)點。消息中包含候選者用戶ID、投票憑證報文、投票者用戶簽名、公鑰等信息,便于系統(tǒng)校驗消息正確性。

    (3)投票憑證校驗:候選者節(jié)點接收到消息后,需要進行如下校驗過程:首先判斷消息的發(fā)送方是否系統(tǒng)中合法節(jié)點,若不是則丟棄消息;若是,則取出本地區(qū)塊文件的Hash散列值以及消息中的公鑰檢驗簽名,進行簽名認證,返回校驗結(jié)果,若認證成功,則確認消息傳輸過程中沒有被篡改,若認證失敗,則丟棄消息。

    (4)消息確認功能:上一步中若消息校驗成功,則確認消息,并對消息進行系統(tǒng)簽名,共享給所有節(jié)點,通知所有節(jié)點更新區(qū)塊鏈文件。

3.2.2 區(qū)塊鏈管理模塊功能

    區(qū)塊連管理模塊主要實現(xiàn)維護區(qū)塊鏈文件安全可靠及完整性,實現(xiàn)區(qū)塊鏈文件更新,及向全網(wǎng)節(jié)點共享更新區(qū)塊鏈功能。本模塊還提供投票歷史記錄查詢功能。本模塊的用例圖如圖3所示。

jsj6-t3.gif

    區(qū)塊鏈管理模塊的功能說明:

    (1)定時更新功能:定時向系統(tǒng)中所有節(jié)點共享區(qū)塊鏈數(shù)據(jù)。

    (2)檢測區(qū)塊鏈數(shù)據(jù)功能:檢測功能用于檢測區(qū)塊鏈數(shù)據(jù)的正確性,在檢測開始前,發(fā)送檢測消息給所有節(jié)點,然后等待一定時間,在該事件間隔內(nèi)接收其他節(jié)點回復(fù)的Merkle根數(shù)據(jù),時間間隔默認是5 s,在這個時間內(nèi)接收的Merkle根數(shù)據(jù)個數(shù)上限設(shè)置為100。接收完畢后,進行數(shù)據(jù)檢測,于存儲在本地的區(qū)塊鏈數(shù)據(jù)進行對比,統(tǒng)計相同數(shù)據(jù)記錄的數(shù)量,若與本地區(qū)塊鏈Merkle根吻合的節(jié)點超過50%,則認為本地區(qū)塊鏈文件正確,否則刪除本地區(qū)塊中的數(shù)據(jù)。

    (3)請求下載區(qū)塊鏈數(shù)據(jù):系統(tǒng)發(fā)現(xiàn)本地缺少區(qū)塊鏈時,可以發(fā)送請求區(qū)塊鏈數(shù)據(jù)消息給系統(tǒng)中所有節(jié)點,并等待一定時間間隔用于接收其他節(jié)點返回的數(shù)據(jù),等待返回消息時間默認設(shè)置為5 s,系統(tǒng)中其他節(jié)點接收到請求會整理本節(jié)點的區(qū)塊鏈文件,然后發(fā)送最新的區(qū)塊鏈數(shù)據(jù)給請求節(jié)點。請求節(jié)點獲取最先收到的消息,并更新本地區(qū)塊鏈文件。

    (4)查詢投票歷史記錄:根據(jù)用戶輸入的查詢時間范圍,向所有節(jié)點發(fā)送查詢請求消息,請求等待響應(yīng)時間設(shè)置為5 s。等待5 s時間用于接收返回的消息,并根據(jù)時間順序來排序收到的數(shù)據(jù)消息,生成歷史記錄。

3.2.3 投票憑證管理模塊功能

    投票憑證管理功能主要實現(xiàn)獲取用戶輸入的投票數(shù)據(jù),整理封裝成投票記錄報文,保存在本地。用例圖如圖4所示。

jsj6-t4.gif

    投票憑證管理模塊的具體功能是報文封裝功能:用戶確認選票,確定投票后,系統(tǒng)自動對投票記錄進行分析,采用私有加密協(xié)議,對投票數(shù)據(jù)封裝成投票憑證報文,與生成時間戳一并保存。

4 結(jié)論

    本文通過分析區(qū)塊鏈的底層密碼學(xué)原理以及應(yīng)用場景,針對現(xiàn)有方案存在的投票效率低下、重復(fù)投票、欺詐選票以及安全性等問題,在區(qū)塊鏈技術(shù)的基礎(chǔ)上提出了基于區(qū)塊鏈的投票選舉系統(tǒng)。在投票過程中引入?yún)^(qū)塊鏈技術(shù),每個投票數(shù)據(jù)節(jié)點都可以驗證投票賬本的內(nèi)容和構(gòu)造歷史的真實性和完整性,確保投票記錄是可靠的、沒有被篡改的,相當(dāng)于提高了系統(tǒng)的可追責(zé)性,降低了系統(tǒng)的信任風(fēng)險。本文重點提出了一種將區(qū)塊鏈應(yīng)用于投票選舉系統(tǒng)的設(shè)計方案,提出了系統(tǒng)框架和模塊功能劃分實施方案。通過該方案,防止有不合法投票人欺詐選票或者其他機構(gòu)破壞投票過程,干擾投票結(jié)果。此外,每個投票人都可以看到投票結(jié)果,通過匿名算法,保證投票人的隱私,同時又不損害投票的公開公正性。

參考文獻

[1] CHAUM D,RYAN P Y A,SCHNEIDER S.A practical voter-verifiable election scheme[J].Lecture Notes in Computer Science,2005,10(3):118-139.

[2] CICHON J,KLONWSKI M,KUTYLOWSKI M.Distributed verification of mixing-local forking proofs model[C].The 13th Australasian Conference of Information Security and Privacy 2008,LNCS 5107.Berlin:Springer-Verlag,2008:128-140.

[3] PANG L,SUN M H,LUO S S,et al.Full privacy preserving electronic voting scheme[J].The Journal of China Universities of Posts and Telecommunications,2012,19(4):86-93.

[4] 張文芳,熊丹,王小敏.基于關(guān)聯(lián)環(huán)簽名的抗第三方欺詐安全電子投票方案[J].西南交通大學(xué)學(xué)報,2015,50(5):905-911.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。