《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于區塊鏈的電子投票選舉系統研究分析
基于區塊鏈的電子投票選舉系統研究分析
2017年電子技術應用第11期
張昕偉1,張 華2,郭肖旺1,張 雯3
1.中國電子信息產業集團有限公司第六研究所,北京100083; 2.北京航天飛行控制中心,北京102206;3.IThinking Inc,北京100083
摘要: 區塊鏈通過分布式公式算法實現去中心化信任,其核心是一個開放的、可編程的分布式數據庫,該數據庫是全球性的。區塊鏈技術不僅是用在金融交易上,還可以用于記錄所有有價值的東西,如財務賬目、醫療過程、出生證明、保險理賠、投票等任何可用代碼來表示的東西。分析了區塊鏈技術應用于電子投票系統的可能性,分析采用區塊鏈技術來構建新型電子投票選舉系統的優缺點,在此基礎上,給出了基于區塊鏈技術的投票選舉系統的框架需求分析,并提出了系統架構和設計方案,解決了電子投票選舉系統中有關欺詐、欺騙選票的問題,最后給出了區塊鏈在電子投票選舉系統中的研究可行性結論,為基于區塊鏈的系統設計與應用提供了新思路。
中圖分類號: TP309.2
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.173731
中文引用格式: 張昕偉,張華,郭肖旺,等. 基于區塊鏈的電子投票選舉系統研究分析[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 引言

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

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

1 電子投票選舉系統安全性要求

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

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

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

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

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

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

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

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

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

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

2 區塊鏈技術適用性分析

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

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

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

3 基于區塊鏈的電子投票選舉系統設計

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

3.1 系統功能說明

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

3.2 功能設計

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

jsj6-t1.gif

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

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

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

3.2.1 投票模塊功能

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

jsj6-t2.gif

    投票功能分析如下:

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

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

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

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

3.2.2 區塊鏈管理模塊功能

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

jsj6-t3.gif

    區塊鏈管理模塊的功能說明:

    (1)定時更新功能:定時向系統中所有節點共享區塊鏈數據。

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

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

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

3.2.3 投票憑證管理模塊功能

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

jsj6-t4.gif

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

4 結論

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

參考文獻

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

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 久青草国产在线 | 日本久久中文字幕 | 日本免费网站视频www区 | 无限资源免费观看高清在线播放 | 国产人成亚洲第一网站在线播放 | 欧美国产小视频 | 精品久久久久久久久久久久久久久 | 色爱综合区五月小说 | 亭亭五月天激情 | 久久青草网站 | 欧美视频区 | 日韩高清第一页 | 久久久精品国产免费观看同学 | 久久专区 | 国产免费播放一区二区 | 亚洲欧美日韩精品永久在线 | 久热中文字幕在线精品首页 | 色综合久久中文字幕 | 国产精品精品 | 2021人人莫人人擦人人看 | 无圣光私拍一区二区三区 | 欧美日韩乱妇高清免费 | 午夜激情福利视频 | 男女69视频 | 国产精品999视频 | 60分钟短片高清免费观看 | 成人理论电影在线观看 | 欧美日韩福利 | 色婷婷色99国产综合精品 | 九七电影院97写真片 | 国产视频中文字幕 | 国产成人精品第一区二区 | 精品视频 久久久 | 久在草在线 | 中国一级免费毛片 | 久久www免费人成看国产片 | 国产精品.com | 天天综合天天看夜夜添狠狠玩 | 无需付费免费电影入口 | 高清不卡一区二区 | 国产亚洲欧美成人久久片 |