国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于區(qū)塊鏈的電子投票系統(tǒng)關(guān)鍵技術(shù)的實現(xiàn)

2018-12-20 08:31:44京,孫
軟件 2018年11期
關(guān)鍵詞:共識分布式區(qū)塊

黨 京,孫 弋

?

基于區(qū)塊鏈的電子投票系統(tǒng)關(guān)鍵技術(shù)的實現(xiàn)

黨 京,孫 弋

(西安科技大學 通信與信息工程學院,陜西 西安 710054)

隨著物質(zhì)和生活水平的提高,人們對各種事務(wù)的參與熱情逐漸高漲。投票是互聯(lián)網(wǎng)技術(shù)中最為廣泛的應(yīng)用之一,目前現(xiàn)有的線上投票系統(tǒng)中存在著重復(fù)欺詐投票、數(shù)據(jù)篡改、投票數(shù)據(jù)丟失、結(jié)果無法驗證等投票數(shù)據(jù)客觀性問題,同時存在投票后數(shù)據(jù)記錄并存儲在中央服務(wù)器中的投票數(shù)據(jù)安全性問題。區(qū)塊鏈技術(shù)通過分布式結(jié)構(gòu)實現(xiàn)去中心化,通過共識機制實現(xiàn)公平、公正、公開的具有共享狀態(tài)的數(shù)據(jù)賬本。在此基礎(chǔ)上,本文提出了基于區(qū)塊鏈技術(shù)電子投票系統(tǒng)的設(shè)計方案,采用分布式網(wǎng)絡(luò)作為系統(tǒng)的整體架構(gòu),可解決系統(tǒng)中心化存儲問題,并采用共識機制和數(shù)字加密算法解決了投票過程中的數(shù)據(jù)安全性問題,同時對系統(tǒng)進行總體的設(shè)計。

區(qū)塊鏈;投票系統(tǒng);分布式;共識機制

0 引言

隨著社會文明的進步和技術(shù)的發(fā)展,人們對于公共事務(wù)的管理的參與度日益提高,更多的通過投票的方式來參與到各種公共事務(wù)當中。信息技術(shù)的不斷提高,致使線上投票系統(tǒng)應(yīng)用更加活躍,線上的投票通過在物理空間中將選票信息轉(zhuǎn)換為數(shù)字格式,管理員能夠在網(wǎng)絡(luò)空間中進行管理和操作,不受到時間和空間的限制,也便于系統(tǒng)的傳播及推廣。但仍存在投票管理和服務(wù)需求的多樣化、系統(tǒng)規(guī)模的擴大化,伴隨著重復(fù)投票、欺詐投票、數(shù)據(jù)篡改、結(jié)果無法驗證等數(shù)據(jù)的客觀性問題和投票后數(shù)據(jù)存儲在中心化服務(wù)器中數(shù)據(jù)的安全性問題。因此本文基于區(qū)塊鏈技術(shù),利用共識機制和非對稱數(shù)字加密算法等技術(shù),通過構(gòu)建非中心化、去信任的投票管理系統(tǒng),尤其是在調(diào)查研究、意見采納、民主選舉為民眾的投票提供安全、公平、公正和公開的管理平臺和驗證服務(wù)。

1 區(qū)塊鏈技術(shù)

區(qū)塊鏈技術(shù)最早是比特幣的基礎(chǔ)技術(shù),其概念由“中本聰”學者發(fā)表的論文Bitcoin[1]: A Peer-to- Peer Electronic Cash System 中首次提出。區(qū)塊鏈技術(shù)的出現(xiàn)解決了數(shù)字加密貨幣體系中所必須面對的“雙花”問題和拜占庭將軍問題[2],“雙花”即雙重支付,重復(fù)使用同一筆資產(chǎn)支付。區(qū)塊鏈技術(shù)是一種具有共享狀態(tài)交易的數(shù)據(jù)賬本,利用點對點傳輸?shù)姆侵行幕植枷到y(tǒng)和信任機制,使得鏈上的節(jié)點集體維護唯一的數(shù)據(jù)賬本。在鏈上的每個區(qū)塊中,區(qū)塊頭保證區(qū)塊連接,新區(qū)塊成功添加后,區(qū)塊中的數(shù)據(jù)則無法更改,保證了交易數(shù)據(jù)信息的不可 篡改。

共識機制在多方協(xié)同環(huán)境下對執(zhí)行結(jié)果所有方達成一致(共識)的機制。目前常用的共識機制包括工作量證明(PoW)、拜占庭共識機制(PBFT)等。PoW通過節(jié)點算力競爭記賬權(quán),保證數(shù)據(jù)和節(jié)點的一致性[3]。PBFT共識機制則是通過容忍惡意行為的共識協(xié)議替代PoW的算力證明。系統(tǒng)只需容忍錯誤并通過2/3以上的進程同意,便可達成共識,以解決算力浪費的問題。

當今,各企業(yè)對區(qū)塊鏈研究現(xiàn)狀呈現(xiàn)指數(shù)型的增長,主要研究安全問題和智能合約,應(yīng)用熱點包括新型共識機制的研究[4],以及在數(shù)據(jù)存儲和交易管理、信息安全服務(wù)、物聯(lián)網(wǎng)安全等方向的研究[5-6,12],但與投票相結(jié)合的應(yīng)用研究較少。

2 基于區(qū)塊鏈投票系統(tǒng)的關(guān)鍵技術(shù)

在區(qū)塊鏈的模型架構(gòu)中,共識機制和安全機制是區(qū)塊鏈的核心技術(shù)組件,現(xiàn)根據(jù)電子投票系統(tǒng)的應(yīng)用,分別對非對稱數(shù)字密碼、分布式結(jié)構(gòu)、共識機制等幾個關(guān)鍵技術(shù)問題簡要描述。

2.1 非對稱數(shù)字加密

區(qū)塊鏈的模型設(shè)計中,一般采用非對稱加密技術(shù)對數(shù)據(jù)進行加密驗證。該算法使用的是一對密鑰:公鑰和私鑰。這對密鑰在非對稱加密應(yīng)用方式有兩種。一種是公鑰加密私鑰解密,主要接收數(shù)據(jù)信息。另一種是私鑰加密(簽名)公鑰解密(驗證簽名),主要判斷是否是該節(jié)點發(fā)送的消息。因此,利用非對稱數(shù)字加密技術(shù)在安全性能方面大大提高。

RSA是常用的非對稱加密算法之一,該算法既能用于數(shù)據(jù)加密又能用于數(shù)字簽名,因此本系統(tǒng)采用了RSA算法。該算法RSA算法是將兩個約數(shù)較多且容易相乘的大素數(shù)進行乘積運算,若想要將乘積因式分解則困難[7],因此可公開乘積并可將其作為加密密鑰。RSA算法具有抗攻擊性,因此在數(shù)據(jù)加密方面采用RSA算法安全可靠。

2.2 分布式結(jié)構(gòu)

區(qū)塊鏈是一個具有共享狀態(tài)的密碼性安全交易的單機,分布式網(wǎng)絡(luò)結(jié)構(gòu)保證了數(shù)據(jù)記錄存儲在非中央計算機上,計算任務(wù)運行在多臺計算機上,全網(wǎng)中的所有節(jié)點都將記錄并存儲計算任務(wù)中的數(shù)據(jù)交易信息。為此,區(qū)塊鏈技術(shù)采用了開源的、去中心化的協(xié)議[8],構(gòu)建了一個分布式的結(jié)構(gòu)體系,保證數(shù)據(jù)的完整記錄和存儲。

(1)分布式傳播。區(qū)塊鏈中產(chǎn)生新的交易數(shù)據(jù)均由單個節(jié)點向全網(wǎng)節(jié)點發(fā)送,若信息攔截者對部分節(jié)點傳播路徑進行惡意摧毀,不會影響整體信息的傳輸,全網(wǎng)中的所有節(jié)點均收到該數(shù)據(jù)信息。

(2)分布式記賬。區(qū)塊鏈通過構(gòu)建分布式機構(gòu)體系和共識協(xié)議,允許所有節(jié)點在參與數(shù)據(jù)記錄和驗證其他節(jié)點結(jié)果的正確性[9]。只有當所有參與記錄的節(jié)點(或者大部分節(jié)點)比對結(jié)果一致通過,記錄數(shù)據(jù)才允許被寫入?yún)^(qū)塊并最終將交易結(jié)果寫入?yún)^(qū)塊鏈[10,14]。

(3)分布式存儲。區(qū)塊鏈構(gòu)建一個分布式結(jié)構(gòu)的網(wǎng)絡(luò)系統(tǒng),數(shù)據(jù)庫中所有數(shù)據(jù)實時更新并存放于所有參與記錄的節(jié)點。即使部分節(jié)點損壞或被攻擊,也不會影響整個數(shù)據(jù)庫的數(shù)據(jù)記錄。

2.3 共識機制

分布式系統(tǒng)中,最重要問題是全網(wǎng)所有節(jié)點如何達成共識。共識機制就是為了保證底層區(qū)塊鏈數(shù)據(jù)的一致性,并有效的抵抗惡意節(jié)點的攻擊和破壞。在節(jié)點網(wǎng)絡(luò)中,所有節(jié)點在是否攻擊外部節(jié)點問題上達成一致,但存在部分惡意節(jié)點,故意傳遞錯誤消息給其余正確節(jié)點,干擾判斷,這就是拜占庭容錯問題。傳統(tǒng)的Paxos,Raft沒有考慮這個問題;而POW算力過高,POS、DPOS過于集中化,三者廣泛應(yīng)用于公有鏈的虛擬資產(chǎn)。PBFT算法是聯(lián)盟鏈中最常用的共識算法,通過投票來達成共識的機制,并解決數(shù)據(jù)分叉以及投票數(shù)據(jù)丟失和篡改等問題。

PBFT容錯算法是一種基于消息傳遞一致性的算法,節(jié)點集合P中,每個節(jié)點都有對應(yīng)唯一的編號,該系統(tǒng)中能容忍惡意或壞死節(jié)點的數(shù)最多為f,當節(jié)點數(shù)|P|>3f+1的情況下可以達成共識。PFBT共識過程如下:(1)客戶向服務(wù)器中的主節(jié)點發(fā)送調(diào)用服務(wù)操作的請求命令。(2)主節(jié)點向全網(wǎng)的節(jié)點廣播請求。(3)所有的節(jié)點處理該請求,并將結(jié)果返回客戶。(4)客戶將返回的處理結(jié)果進行整理,當返回結(jié)果中至少有f+1個結(jié)果相同,則可停止該操作。

PFBT驗證過程三階段:預(yù)準備、準備、確認 階段。

預(yù)準備階段,主節(jié)點分配一個系列號n,將PRE- PREPARE消息發(fā)送給其余節(jié)點。之后主節(jié)點將PRE-PREPARE消息廣播到其他各節(jié)點。

準備階段,各節(jié)點在收到PRE-PREPARE消息后,需驗證消息的內(nèi)容沒有被篡改,驗證結(jié)束后,該主節(jié)點會向各節(jié)點發(fā)送PREPARE消息。

確認階段,當節(jié)點驗證PREPARE消息為真后,會在全網(wǎng)中廣播PREPARE消息。

驗證完COMMIT消息后,節(jié)點可以將結(jié)果返回給客戶端。

該算法性能比較高,消耗資源少。因此比較適合現(xiàn)代的電子投票系統(tǒng)。執(zhí)行流程如圖1所示。

圖1 PFBT執(zhí)行流程圖

3 基于區(qū)塊鏈的電子投票系統(tǒng)研究

在本文研究中,區(qū)塊鏈底層技術(shù)是本系統(tǒng)設(shè)計的關(guān)鍵之一,因此,首先對區(qū)塊鏈底層設(shè)計流程進行分析,并對該系統(tǒng)的進行設(shè)計實現(xiàn)。

3.1 投票系統(tǒng)的底層區(qū)塊鏈設(shè)計流程

在投票系統(tǒng)中,投票數(shù)據(jù)成功被添加到底層的區(qū)塊鏈之前,需要經(jīng)過交易判定、交易分發(fā)、添加區(qū)塊和節(jié)點投票等一系列的過程。

交易判定是在共識機制中判斷用戶投票交易的合法性。在區(qū)塊鏈的底層設(shè)計中,系統(tǒng)根據(jù)產(chǎn)生的新交易,隨機在分布式網(wǎng)絡(luò)中選擇某一節(jié)點,將該交易的數(shù)據(jù)分配給該節(jié)點。節(jié)點收到數(shù)據(jù)后,首先要判斷數(shù)據(jù)的格式是否正確,是否出現(xiàn)“雙花”現(xiàn)象,須判斷這筆交易的輸入是否依賴于其他交易(判斷交易是否為“創(chuàng)世塊”)。若交易不合法,則節(jié)點會向交易的發(fā)送方回傳錯誤信息并丟棄該筆交易。若交易合法,則將該筆交易記錄存儲在本節(jié)點的存儲池中。

在生成新的區(qū)塊之前,被分配節(jié)點需要驗證交易是否合法。若交易依賴其他交易,則要等待前序交易確認后再驗證,被分配節(jié)點會將這些交易放回自己本地交易池中延后處理。若沒有前序交易,或其前序交易已被驗證,則須判斷交易自身的合法性。如果交易不合法,則丟棄交易。如果交易合法,為新區(qū)塊蓋上時間戳,生成新的區(qū)塊數(shù)據(jù),同時計算新區(qū)塊的哈希值,再通過分布式傳播發(fā)送給各個節(jié)點,各節(jié)點對新區(qū)塊進行投票。投票節(jié)點會再次判斷新區(qū)塊內(nèi)的所有交易的合法性。若交易全部合法,則投出同意票。若區(qū)塊中發(fā)現(xiàn)存在不合法交易,則投反對票。若投票數(shù)不夠,系統(tǒng)會等待投票數(shù)足夠后給定判定結(jié)果。

在新的區(qū)塊生成后,處于“未判定”狀態(tài)。若投票結(jié)果符合要求,少數(shù)服從多數(shù)的意見將決定新區(qū)塊最終狀態(tài)。最終狀態(tài)分為“判定合法”和“判定不合法”。當“不合法”區(qū)塊中可能存在合法交易,系統(tǒng)會將合法交易提取作為新交易重新分配。

產(chǎn)生的交易被寫入?yún)^(qū)塊鏈的流程如圖2所示。

3.2 基于區(qū)塊鏈的電子投票系統(tǒng)設(shè)計與實現(xiàn)

系統(tǒng)整體架構(gòu)的構(gòu)建主要對P2P網(wǎng)絡(luò)節(jié)點,該架構(gòu)如圖3所示,本文設(shè)計的系統(tǒng)架構(gòu)分為應(yīng)用交互層和底層區(qū)塊鏈層。

應(yīng)用交互層負責與瀏覽器用戶界面交互,也提供瀏覽器和區(qū)塊鏈之間的數(shù)據(jù)轉(zhuǎn)化業(yè)務(wù),將投票數(shù)據(jù)進行封裝提交給P2P網(wǎng)絡(luò)節(jié)點并存儲在區(qū)塊鏈上。同時響應(yīng)對投票數(shù)據(jù)結(jié)果的查詢請求,利用數(shù)據(jù)查詢接口,直接獲取區(qū)塊鏈中的數(shù)據(jù)。底層的區(qū)塊鏈層,包括P2P節(jié)點網(wǎng)絡(luò)和全網(wǎng)中唯一一條的區(qū)塊鏈。P2P網(wǎng)絡(luò)主要用于保證系統(tǒng)的穩(wěn)定、接受交易數(shù)據(jù)的驗證、生成新的區(qū)塊并投票選擇。根據(jù)區(qū)塊鏈中共識協(xié)議,可利用節(jié)點對鏈中的數(shù)據(jù)進行查詢。全網(wǎng)唯一的鏈條上記錄并存儲整個系統(tǒng)中所有已驗證的交易數(shù)據(jù)。

本系統(tǒng)使用Java語言進行編程,基于B/S (Browser/Server)架構(gòu),即瀏覽器/服務(wù)器模式。并使用SSM(Spring+SpringMVC+Mybatis)框架。數(shù)據(jù)庫使用MySQL5.7,應(yīng)用交互層的Web程序部署在Tomcat8服務(wù)器上,區(qū)塊鏈底層程序部署在Linux服務(wù)器上。

圖2 交易被寫入?yún)^(qū)塊鏈的流程

圖3 整體系統(tǒng)架構(gòu)設(shè)計

應(yīng)用交互層負責與用戶的界面交互,該層主要實現(xiàn)系統(tǒng)中具體的業(yè)務(wù)。投票系統(tǒng)主要分為兩種類型的用戶:投票管理員用戶、普通用戶。各用戶用例描述如下:

投票管理員主要負責該系統(tǒng)的投票事務(wù),用投票系統(tǒng)進行投票活動的新建、刪除和修改,同時對用戶進行管理,并對投票活動進行日常的維護。

普通用戶包括已經(jīng)注冊的用戶,可參與到投票活動中并對其進行投票,投票完成后,用戶可查看該投票活動的投票結(jié)果,并根據(jù)自己的密鑰驗證自己的投票結(jié)果,以防投票數(shù)據(jù)被篡改,同時也有效防止Web服務(wù)的SQL注入攻擊[13]。該過程完成后,驗證記錄等執(zhí)行結(jié)果一并寫入?yún)^(qū)塊鏈。

4 結(jié)束語

電子投票在當具有不可替代的作用。區(qū)塊鏈技術(shù)與電子投票相結(jié)合,在安全方面的問題,如系統(tǒng)的效率低下、重復(fù)投票、無法驗證投票結(jié)果等等,有效解決了電子投票實際使用過程中出現(xiàn)的問題,實現(xiàn)了投票數(shù)據(jù)無法篡改、投票結(jié)果可追溯。最終實現(xiàn)了投票系統(tǒng)的安全、公平、公正和公開,適應(yīng)社會服務(wù)發(fā)展需求的電子投票系統(tǒng)。

[1] 何蒲, 于戈, 張巖峰, 等. 區(qū)塊鏈技術(shù)與應(yīng)用前瞻綜述[J]. 計算機科學. 2017(4): 1—7.

[2] 金武, 洪武, 李濤, 等. 區(qū)塊鏈技術(shù)發(fā)展現(xiàn)狀及其金融應(yīng)用研究[J]. 海南金融, 2017(1): 26-30.

[3] 沈鑫, 裴慶祺, 劉雪峰, 區(qū)塊鏈技術(shù)綜述[J]. 網(wǎng)絡(luò)與信息安全學報. 2016(11): 11-20.

[4] KRAFT D. Difficulty Control for Blockchain-based Consensus Systems[J]. Peer-to-Peer Networking and Applications, 2016, 9(02): 397-413.

[5] 丁未. 基于區(qū)塊鏈技術(shù)的儀器數(shù)據(jù)管理創(chuàng)新系統(tǒng)[J]. 中國儀器儀表, 2015(10): 15-17.

[6] 駱慧勇. 區(qū)塊鏈技術(shù)原理和應(yīng)用價值[J].金融縱橫. 2016, (07): 33-37.

[7] 吳迪, 劉姝. 使用RSA技術(shù)實現(xiàn)數(shù)字簽名[J]. 黑龍江科技信息, 2012(24): 116-116

[8] 樓子彥. 區(qū)塊鏈技術(shù), 從理論走向?qū)嵺`[EB/OL]. http://news. tuxi.com.cn/viewtt/q/20180129G0WG3P00.html

[9] Kosba A, Miller A, Shi E, et al. Hawk: The blockchain model of cryptography and privacy-preserving smart contracts[C]. Security and Privacy (SP), 2016 IEEE Symposium on. IEEE, 2016: 839-858.

[10] Buterin, Vitalik. Ethereum: A next-generation smart contract and decentralized application platform[EB/OL], https: //github. com/rthereum/wiki/wiki/%5B English% 5D-White-Paper(2014).

[11] 李靜彧, 李兆森. 基于區(qū)塊鏈存證的電子數(shù)據(jù)真實性探討[J]. 軟件, 2018, 39(6): 109-112

[12] 焦英楠, 陳英華. 基于區(qū)塊鏈技術(shù)的物聯(lián)網(wǎng)安全研究[J]. 軟件, 2018, 39(2): 88-92

[13] 符天, 汪志, 王貞. Web服務(wù)的SQL注入攻擊及防御研究[J]. 軟件, 2018, 39(4): 44-47

[14] Kosba A, Miller A, Shi E, et al. Hawk: The blockchain model of cryptography and privacy-preserving smart contracts[J]. University of Maryland and Cornell University, 2015.

The Realization of Key Technology of Electronic Voting System Based on Blockchain

DANG Jing, SUN Yi

(Department of Telecommunication and Information Engineering, Xi’an University of Science and Technology, Xi’an 710054, China)

With the improvement of material and living standards, people's enthusiasm for participation in various things gradually increases. And voting is one of the most widely used of the Internet technology. At present, there are problems in the existing online voting systems such as repeated fraudulent voting, data tampering, loss of voting data, and failure to verify the outcome of the voting data. At the same time, the polled data is stored in a central server. There is a problem with voting data security. The block chain technology is decentralized through a distributed network, and a fair and open shared data accounts with shared status can be achieved through consensus mechanism. On this basis, this paper proposes the design scheme based on the block chain technology electronic voting system.The overall architecture of the distributed network as a system, can solve the problem of system centralized storage, and the consensus mechanism and digital encryption algorithm can resolve the data security problems in the process. Ultimately, the overall system could be designed.

Block chain; Voting system; Consensus mechanism; Not tampering

TP309.2

A

10.3969/j.issn.1003-6970.2018.11.031

黨京(1994-),女,碩士,研究方向:移動互聯(lián)網(wǎng)。

黨京,孫弋. 基于區(qū)塊鏈的電子投票系統(tǒng)關(guān)鍵技術(shù)的實現(xiàn)[J]. 軟件,2018,39(11):140-144

猜你喜歡
共識分布式區(qū)塊
共識 共進 共情 共學:讓“溝通之花”綻放
區(qū)塊鏈:一個改變未來的幽靈
科學(2020年5期)2020-11-26 08:19:12
論思想共識凝聚的文化向度
區(qū)塊鏈:主要角色和衍生應(yīng)用
科學(2020年6期)2020-02-06 08:59:56
商量出共識
區(qū)塊鏈+媒體業(yè)的N種可能
傳媒評論(2018年4期)2018-06-27 08:20:12
讀懂區(qū)塊鏈
分布式光伏熱錢洶涌
能源(2017年10期)2017-12-20 05:54:07
分布式光伏:爆發(fā)還是徘徊
能源(2017年5期)2017-07-06 09:25:54
基于DDS的分布式三維協(xié)同仿真研究
雷達與對抗(2015年3期)2015-12-09 02:38:50
鹿邑县| 平原县| 甘孜| 常州市| 铜鼓县| 江山市| 平泉县| 加查县| 玉山县| 墨竹工卡县| 房产| 罗甸县| 宁都县| 奇台县| 深圳市| 石景山区| 涟水县| 西充县| 开远市| 阿勒泰市| 安庆市| 临沂市| 自贡市| 灵山县| 巴中市| 永川市| 新邵县| 永嘉县| 岗巴县| 平昌县| 磐安县| 高阳县| 屏东县| 瑞丽市| 永安市| 旺苍县| 平谷区| 大余县| 宜宾市| 射洪县| 息烽县|