《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于區(qū)塊鏈的電子投票選舉系統(tǒng)研究分析
基于區(qū)塊鏈的電子投票選舉系統(tǒng)研究分析
2017年電子技術應用第11期
張昕偉1,張 華2,郭肖旺1,張 雯3
1.中國電子信息產業(yè)集團有限公司第六研究所,北京100083; 2.北京航天飛行控制中心,北京102206;3.IThinking Inc,北京100083
摘要: 區(qū)塊鏈通過分布式公式算法實現去中心化信任,其核心是一個開放的、可編程的分布式數據庫,該數據庫是全球性的。區(qū)塊鏈技術不僅是用在金融交易上,還可以用于記錄所有有價值的東西,如財務賬目、醫(yī)療過程、出生證明、保險理賠、投票等任何可用代碼來表示的東西。分析了區(qū)塊鏈技術應用于電子投票系統(tǒng)的可能性,分析采用區(qū)塊鏈技術來構建新型電子投票選舉系統(tǒng)的優(yōu)缺點,在此基礎上,給出了基于區(qū)塊鏈技術的投票選舉系統(tǒng)的框架需求分析,并提出了系統(tǒng)架構和設計方案,解決了電子投票選舉系統(tǒng)中有關欺詐、欺騙選票的問題,最后給出了區(qū)塊鏈在電子投票選舉系統(tǒng)中的研究可行性結論,為基于區(qū)塊鏈的系統(tǒng)設計與應用提供了新思路。
中圖分類號: TP309.2
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.173731
中文引用格式: 張昕偉,張華,郭肖旺,等. 基于區(qū)塊鏈的電子投票選舉系統(tǒng)研究分析[J].電子技術應用,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)的安全實用性研究方面,基于密碼技術的投票方案是最常見的。CHAUM D提出了第一個密碼學意義上的電子投票選舉方案[1],提出了在公鑰密碼體制結合 Mix機制來實現匿名通信的方案,但是該方案要求所有投票者必須合作,其協(xié)議效率和可行性較低。在此方案的基礎上,一系列采用Mix-net機制的電子投票系統(tǒng)[2-3]研究出現了,在協(xié)議的安全性以及可靠性方面有所提高[4]。這類方案要求所有Mix服務器在處理選票過程中無法篡改選票,其無法篡改的證明依賴于大量的證明計算,協(xié)議運行效率較低。

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

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

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

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

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

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

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

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

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

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

    (8)投票過程需簡單高效,無需用戶進行復雜學習;

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

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

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

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

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

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

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

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

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

3.2 功能設計

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

jsj6-t1.gif

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

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

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

3.2.1 投票模塊功能

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

jsj6-t2.gif

    投票功能分析如下:

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

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

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

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

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

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

jsj6-t3.gif

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

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

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

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

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

3.2.3 投票憑證管理模塊功能

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

jsj6-t4.gif

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

4 結論

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

參考文獻

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