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

?

基于區(qū)塊鏈智能合約的安全投票系統(tǒng)

2022-03-25 03:11胡博明陳曉豐胡大裟蔣玉明
現(xiàn)代電子技術(shù) 2022年6期
關(guān)鍵詞:投票者合約證書

胡博明,陳曉豐,胡大裟,蔣玉明

(1.四川大學(xué) 計(jì)算機(jī)學(xué)院,四川 成都 610000;2.四川省大數(shù)據(jù)分析與融合應(yīng)用技術(shù)工程實(shí)驗(yàn)室,四川 成都 610065;3.杭州趣鏈科技有限公司,浙江 杭州 310000;4.浙江大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,浙江 杭州 310007)

0 引 言

隨著互聯(lián)網(wǎng)的不斷發(fā)展,電子投票的形式也開始受到公眾的歡迎。傳統(tǒng)的人工投票不僅需要人力物力來完成投票過程,并且在投票過程中也可能會(huì)出現(xiàn)一些不公平投票行為,而電子投票與人工投票相比的優(yōu)勢(shì)就在于電子投票更加安全方便快捷。

第一個(gè)電子投票協(xié)議由Chaum 提出,從他之后許多學(xué)者也相繼提出了很多不同的電子投票方案,就是為了能夠在互聯(lián)網(wǎng)上建立一個(gè)安全可信的投票機(jī)制。目前,電子投票方案有很多不同的種類,主要有基于盲簽名、環(huán)簽名、混合網(wǎng)絡(luò)、全同態(tài)加密等技術(shù)的電子投票方案,但它們都存在一些不足之處。比如Tornos J L 等人的方案基于區(qū)塊鏈的技術(shù)可以實(shí)現(xiàn)多選一類型的投票,但是其加密方式是通過環(huán)簽名的方式,靈活性不夠。Mccorry P 等人使用區(qū)塊鏈實(shí)現(xiàn)了投票方案,并且使用零知識(shí)證明協(xié)議的方法來保護(hù)投票數(shù)據(jù)的隱私安全,但其只允許投票者投是或否,因此投票具有一定的局限性。Khan 等人使用區(qū)塊鏈實(shí)現(xiàn)了一種端到端可驗(yàn)證的電子投票方案,并且在多鏈平臺(tái)上實(shí)施,但其方案可靠性不夠,容易出現(xiàn)一些投票數(shù)據(jù)隱私泄漏問題。程亞歌等人使用門限簽名方法,提出了一種適用于區(qū)塊鏈的電子投票方案,該方案通過區(qū)塊鏈投票的節(jié)點(diǎn)之間的合作生成簽名,但是如果無法實(shí)時(shí)更新節(jié)點(diǎn),節(jié)點(diǎn)信息將由于移動(dòng)攻擊而泄漏,這會(huì)帶來數(shù)據(jù)隱私問題。Shahandashti 等人提出一種加密選票的方式來保證選民的隱私不被泄露,并設(shè)計(jì)了DRE-ip,它能夠?qū)崟r(shí)加密選票,且在不解密投出的選票的情況下,可以公開驗(yàn)證票數(shù)。因此,DRE-ip 實(shí)現(xiàn)了端到端可驗(yàn)證性,而不需要計(jì)數(shù)權(quán)限,保證了選民的隱私,但是如果其部分計(jì)數(shù)器被攻擊時(shí)數(shù)據(jù)就會(huì)被泄露;DRE-ip 雖然可以實(shí)時(shí)統(tǒng)計(jì)選票,也可以存儲(chǔ)選票稍后再統(tǒng)計(jì),但DRE-ip 就像一個(gè)黑匣子,如果攻擊者惡意更改選票或計(jì)票,則會(huì)出現(xiàn)刷票可能并且影響投票的數(shù)據(jù)安全問題。

對(duì)于以上討論的投票方案中出現(xiàn)的安全問題,本文提出一種結(jié)合區(qū)塊鏈技術(shù)與密碼技術(shù)的安全投票系統(tǒng)。該系統(tǒng)通過區(qū)塊鏈交易承載證書簽發(fā)、證書驗(yàn)證來保障選民身份驗(yàn)證;在投票開始前設(shè)置一批加密的注冊(cè)碼,并且每個(gè)人的賬戶只能使用注冊(cè)碼投票一次,防止惡意刷票的可能;在投票過程中使用SM2 橢圓曲線公鑰密碼算法加密投票者的注冊(cè)碼及其投票選擇,能夠確保投票者的數(shù)據(jù)隱私不被泄漏。最后在區(qū)塊鏈上為本投票方案設(shè)計(jì)了安全投票智能合約,并且開發(fā)了投票系統(tǒng)DAPP,通過實(shí)驗(yàn)證明該投票方案能夠解決投票系統(tǒng)出現(xiàn)的選民身份驗(yàn)證、數(shù)據(jù)隱私、惡意刷票問題,驗(yàn)證了該投票系統(tǒng)的安全性。

1 相關(guān)背景知識(shí)

1.1 區(qū)塊鏈

區(qū)塊鏈?zhǔn)且环N分布式軟件系統(tǒng),允許在不需要可信第三方的情況下處理事務(wù)。本文結(jié)合區(qū)塊鏈技術(shù)與密碼算法,并將其應(yīng)用到投票系統(tǒng)中能夠更好地保障投票系統(tǒng)的安全性,而區(qū)塊鏈所具有的不可偽造、可追溯、去中心化等特征都與一個(gè)安全的投票系統(tǒng)所需要的特征非常契合,能夠保障投票系統(tǒng)的安全性。

1.2 以太坊與智能合約

以太坊是一個(gè)開源并且有智能合約功能的公共區(qū)塊鏈平臺(tái)。以太坊虛擬機(jī)是智能合約運(yùn)行環(huán)境,其規(guī)定了智能合約的執(zhí)行方式,本文在以太坊虛擬機(jī)上部署、執(zhí)行投票智能合約,讓其在以太坊網(wǎng)絡(luò)上能夠執(zhí)行投票系統(tǒng)的各種事務(wù)。

智能合約由Szabo 于1996 年首次提出,他將智能合約定義為數(shù)字合約條款。智能合約嵌入在區(qū)塊鏈中,使協(xié)議的合約條款能夠在不受可信第三方干預(yù)的情況下自動(dòng)執(zhí)行。在過去的幾年里,許多智能合約平臺(tái)被提出,其中一些已經(jīng)實(shí)際實(shí)現(xiàn)和使用。過去由于缺乏可靠的執(zhí)行環(huán)境,因此在實(shí)踐中并未使用智能合約。而基于以太坊環(huán)境將區(qū)塊鏈與智能合約技術(shù)應(yīng)用到具體投票環(huán)境中,能夠創(chuàng)造一個(gè)安全的投票環(huán)境。

2 基于區(qū)塊鏈智能合約的安全投票系統(tǒng)

本文結(jié)合區(qū)塊鏈技術(shù)與密碼技術(shù)實(shí)現(xiàn)一個(gè)改進(jìn)的安全投票方案,區(qū)塊鏈實(shí)現(xiàn)分布式的可信第三方能夠?yàn)槊艽a協(xié)議的安全假設(shè)提供可行的解決方案。通過加密選票來保護(hù)選民的隱私,通過區(qū)塊鏈交易承載證書簽發(fā)、證書驗(yàn)證來保證選民身份驗(yàn)證,在投票開始前設(shè)置一批加密的注冊(cè)碼來讓投票者申請(qǐng)注冊(cè)登錄投票,然后在進(jìn)行投票選擇時(shí)再將其選票信息加密保護(hù),并且使用智能合約實(shí)現(xiàn)自我計(jì)票,能夠解決其計(jì)票過程可能出現(xiàn)的惡意攻擊而導(dǎo)致的安全威脅。

2.1 系統(tǒng)架構(gòu)

整個(gè)系統(tǒng)架構(gòu)如圖1 所示,投票發(fā)起者與投票者在不同的節(jié)點(diǎn)上運(yùn)行,投票發(fā)起者部署投票智能合約到區(qū)塊鏈上,每位投票者或投票發(fā)起者通過投票系統(tǒng)DAPP實(shí)現(xiàn)與智能合約的交互。

圖1 投票系統(tǒng)架構(gòu)圖

2.2 投票流程及方案改進(jìn)

針對(duì)多候選者安全投票場(chǎng)景,本文提出一種注冊(cè)后投票、多候選可選類型的投票方案。項(xiàng)目發(fā)起者發(fā)起投票過程,包括部署智能合約、設(shè)置注冊(cè)碼、加密注冊(cè)碼等功能。投票者登錄后將注冊(cè)為合格投票人,包括投票、加密選票等功能。本投票方案總共分為登錄、注冊(cè)、投票、計(jì)票等幾個(gè)過程,由項(xiàng)目發(fā)起者、智能合約和投票者三部分組成。該投票方案改進(jìn)的地方主要是項(xiàng)目發(fā)起者在每次投票開始時(shí)會(huì)設(shè)置一批注冊(cè)碼,然后使用SM2算法進(jìn)行加密保護(hù),防止被竊取注冊(cè)。

通過設(shè)計(jì)一個(gè)加密智能合約,將其部署在區(qū)塊鏈上,把項(xiàng)目發(fā)起者設(shè)置的注冊(cè)碼進(jìn)行加密。Conner 等人首先提出了一種基于區(qū)塊鏈技術(shù)的PKI(Public Key Infrastructure)系統(tǒng)Certcoin 的實(shí)現(xiàn),該技術(shù)將證書公鑰與用戶身份聯(lián)系在一起。本文基于區(qū)塊鏈與智能合約技術(shù)實(shí)現(xiàn)去中心化的PKI 體系,使用區(qū)塊鏈交易承載證書簽發(fā)、證書驗(yàn)證、證書更新、證書撤銷等功能,圖2即為本文所描述的去中心化的PKI 體系結(jié)構(gòu)。

圖2 去中心化的PKI 體系結(jié)構(gòu)

圖中:CA 為區(qū)塊鏈中的證書頒發(fā)機(jī)構(gòu);RA 為注冊(cè)機(jī)構(gòu);LDAP(輕量目錄訪問協(xié)議)服務(wù)器則負(fù)責(zé)將RA 服務(wù)器傳輸?shù)挠脩粜畔⑴c數(shù)字證書加入到區(qū)塊鏈中;OCSP(在線證書狀態(tài)協(xié)議)則是維護(hù)服務(wù)器安全性。

該投票系統(tǒng)用戶的證書由去中心化的區(qū)塊鏈交易進(jìn)行簽發(fā),每個(gè)用戶的證書和公鑰信息等可以寫入?yún)^(qū)塊鏈中,然后打上時(shí)間戳,形成一個(gè)連續(xù)的前后關(guān)聯(lián)的數(shù)據(jù)記錄,從而取代傳統(tǒng)的第三方中心機(jī)構(gòu)。

投票者的資格通過證書的簽發(fā)得到保證,只有擁有該簽名證書的人才可進(jìn)行入鏈操作,這樣可以有效保障投票者的身份驗(yàn)證不出現(xiàn)問題。然后投票者通過申請(qǐng)項(xiàng)目發(fā)起者給的注冊(cè)碼進(jìn)行注冊(cè)投票,在投票者向智能合約申請(qǐng)發(fā)送注冊(cè)碼之后,智能合約就會(huì)生成公私鑰對(duì),投票者與智能合約各自擁有對(duì)方的公鑰和自己的私鑰,驗(yàn)簽通過則注冊(cè)成功。并且每個(gè)投票者賬戶每次投票只可登錄注冊(cè)一次,若投票成功,則不可更改投票選擇,可有效避免惡意刷票。

在投票者登錄注冊(cè)后,進(jìn)入投票界面即可在眾多候選者中進(jìn)行投票選擇,并且投票者的投票選擇也會(huì)使用SM2 算法進(jìn)行加密保護(hù)。在投票者向智能合約申請(qǐng)發(fā)送選票之后,智能合約就會(huì)生成公私鑰對(duì),投票者與智能合約各自擁有對(duì)方的公鑰和自己的私鑰,驗(yàn)簽通過則投票成功。

通過加密投票者的投票選擇來保護(hù)投票者的隱私,可以防止他人查看其投票選擇,保證投票的安全環(huán)境。圖3 為證書的生成與驗(yàn)證過程。

圖3 證書的生成與驗(yàn)證過程

2.3 投票系統(tǒng)SM2 算法加解密過程

投票方案之所以采用SM2 橢圓曲線公鑰密碼算法進(jìn)行加密數(shù)據(jù),是因?yàn)榕c傳統(tǒng)的RSA 算法不同,其計(jì)算復(fù)雜度更高且密鑰生成速度比RSA 算法快幾百倍,是一種更先進(jìn)安全的算法。表1、表2 為RSA 算法與SM2算法的比較。

表1 RSA 與SM2 算法強(qiáng)度比較

表2 RSA 與SM2 算法簽名、驗(yàn)簽速度比較 ms

在進(jìn)行加密算法的一些性能比較之后,本文選擇SM2 橢圓曲線公鑰密碼算法結(jié)合區(qū)塊鏈技術(shù)在投票過程中加密注冊(cè)碼和投票信息等數(shù)據(jù)能夠保證投票系統(tǒng)的數(shù)據(jù)安全,有效避免外界的惡意攻擊。該投票方案所采用的SM2 算法加解密過程如圖4、圖5 所示。

圖4 SM2 加密過程

圖5 SM2 解密過程

本文使用區(qū)塊鏈實(shí)現(xiàn)去中心化的服務(wù)以建立分布式可信第三方來應(yīng)對(duì)單點(diǎn)風(fēng)險(xiǎn)。傳統(tǒng)的集中式服務(wù)器功能過于強(qiáng)大,并且缺乏有效的監(jiān)督機(jī)制,因此通過引入?yún)^(qū)塊鏈技術(shù)來解決該問題。密碼協(xié)議中存在可信第三方的假設(shè),而區(qū)塊鏈的分布式可信第三方可以為密碼協(xié)議的安全假設(shè)提供可行的解決方案。因此,本文就結(jié)合區(qū)塊鏈技術(shù)與SM2 橢圓曲線公鑰密碼算法設(shè)計(jì)了一個(gè)改進(jìn)安全投票系統(tǒng),能夠保證系統(tǒng)的數(shù)據(jù)安全,確保用戶的身份合法性,避免惡意刷票的可能,防止用戶隱私泄漏問題。

3 安全投票系統(tǒng)的實(shí)現(xiàn)

本節(jié)將介紹該安全投票系統(tǒng)的實(shí)現(xiàn)過程,具體過程為:首先為本文的投票方案設(shè)計(jì)相應(yīng)的智能合約,然后進(jìn)行智能合約的開發(fā),搭建一個(gè)以太坊私有鏈,配置好創(chuàng)世區(qū)塊信息,在編譯部署完智能合約之后,最后通過投票系統(tǒng)DAPP 進(jìn)行交互式操作。

3.1 智能合約的開發(fā)

智能合約的開發(fā)與實(shí)現(xiàn)依賴于具體的開發(fā)環(huán)境,本文所使用的智能合約開發(fā)環(huán)境如表3 所示。

表3 合約開發(fā)環(huán)境

3.2 智能合約的設(shè)計(jì)

本投票方案總共分為三個(gè)智能合約,分別為Migration.sol、Vote.sol 和VoteCrypt.sol,如表4 所示。

表4 合約概述

3.3 私有鏈的搭建

首先利用geth 搭建一個(gè)以太坊私有鏈,用來部署智能合約,私有鏈的搭建過程主要有配置創(chuàng)世區(qū)塊和啟動(dòng)節(jié)點(diǎn)兩步。通過創(chuàng)世區(qū)塊的配置,能夠確定私有鏈的基本屬性。完成創(chuàng)世區(qū)塊配置后就可以啟動(dòng)節(jié)點(diǎn),節(jié)點(diǎn)的啟動(dòng)過程包括區(qū)塊鏈網(wǎng)絡(luò)名稱的標(biāo)志、區(qū)塊文件的儲(chǔ)存路徑設(shè)置和客戶端的啟動(dòng)等。

3.4 智能合約的編譯與部署

利用以太坊開發(fā)框架Truffle 實(shí)現(xiàn)智能合約的編譯與部署。編譯部署完智能合約后,使用客戶端Ganache來查看區(qū)塊鏈的變化情況。最后在Ganache 客戶端上就可以看到產(chǎn)生了新區(qū)塊的信息,如圖6 所示。

圖6 編譯部署合約后的Ganache

3.5 投票系統(tǒng)DAPP

投票過程中設(shè)置加密注冊(cè)碼功能、用戶加密注冊(cè)碼功能與用戶加密選票功能實(shí)現(xiàn),如圖7~圖9 所示。

圖7 設(shè)置加密注冊(cè)碼功能實(shí)現(xiàn)

圖8 加密注冊(cè)碼功能實(shí)現(xiàn)

圖9 加密選票功能實(shí)現(xiàn)

3.6 系統(tǒng)安全性測(cè)試與分析

設(shè)計(jì)的投票系統(tǒng)分為投票發(fā)起者節(jié)點(diǎn)和投票者節(jié)點(diǎn),因此將測(cè)試這兩個(gè)節(jié)點(diǎn)在運(yùn)行過程中是否會(huì)出現(xiàn)安全問題??紤]到實(shí)驗(yàn)效果和設(shè)備性能等,本次實(shí)驗(yàn)將系統(tǒng)節(jié)點(diǎn)設(shè)置為60 個(gè),惡意節(jié)點(diǎn)數(shù)則從0~60 遞增進(jìn)行實(shí)驗(yàn),惡意節(jié)點(diǎn)的攻擊方式為進(jìn)入系統(tǒng)進(jìn)行數(shù)據(jù)讀取,只要其進(jìn)入系統(tǒng)讀取了加密后的數(shù)據(jù),則視為攻擊成功。在投票者節(jié)點(diǎn)和投票發(fā)起者節(jié)點(diǎn)下,不同惡意節(jié)點(diǎn)數(shù)攻擊成功率如圖10 所示。

圖10 不同惡意節(jié)點(diǎn)數(shù)攻擊成功率

通過實(shí)驗(yàn)結(jié)果可知,隨著惡意節(jié)點(diǎn)數(shù)的遞增,其攻擊成功率越來越高,當(dāng)達(dá)到與系統(tǒng)設(shè)置的節(jié)點(diǎn)總數(shù)60相等時(shí),其成功率達(dá)到100%;當(dāng)惡意節(jié)點(diǎn)數(shù)小于20 及閾值的33%以下時(shí),節(jié)點(diǎn)攻擊成功率為0?,F(xiàn)實(shí)情況中,一般惡意節(jié)點(diǎn)數(shù)不可能達(dá)到系統(tǒng)節(jié)點(diǎn)數(shù)的33%以上,因此只要惡意節(jié)點(diǎn)數(shù)不超過系統(tǒng)節(jié)點(diǎn)數(shù)的33%都是安全的。因此證明該系統(tǒng)具有很高的安全性。

測(cè)試使用已經(jīng)注冊(cè)過的注冊(cè)碼進(jìn)行注冊(cè),結(jié)果顯示已經(jīng)注冊(cè)且不可再注冊(cè),而使用竊取到的加密注冊(cè)碼進(jìn)行注冊(cè),則顯示注冊(cè)碼錯(cuò)誤。然后使用已經(jīng)投過票的賬戶登錄系統(tǒng),結(jié)果只顯示投票成功,而無法查看投票選擇信息,且無法更改投票選擇。綜上可知,該系統(tǒng)的注冊(cè)碼信息和投票信息的安全性能夠得到保證,該系統(tǒng)的安全性很高。

3.7 系統(tǒng)性能測(cè)試與分析

本次實(shí)驗(yàn)的投票系統(tǒng)吞吐量指的是每秒能夠處理的事務(wù)數(shù)量(TPS),吞吐量的大小能夠反映該安全投票系統(tǒng)處理事務(wù)數(shù)量的能力大小。而基于區(qū)塊鏈實(shí)現(xiàn)的投票系統(tǒng)大多存在吞吐量不足的缺點(diǎn),為此本文通過實(shí)驗(yàn)來測(cè)試與分析該投票系統(tǒng)的吞吐量。在不同節(jié)點(diǎn)數(shù)下投票系統(tǒng)的吞吐量變化如圖11 所示。

圖11 不同節(jié)點(diǎn)數(shù)系統(tǒng)的吞吐量

通過實(shí)驗(yàn)可知,系統(tǒng)節(jié)點(diǎn)數(shù)從0~60 個(gè)遞增時(shí),系統(tǒng)吞吐量也不斷上升,當(dāng)節(jié)點(diǎn)數(shù)到達(dá)45 個(gè)之后又繼續(xù)增加系統(tǒng)節(jié)點(diǎn)數(shù)時(shí),系統(tǒng)吞吐量則停止上升并保持不變,因此當(dāng)節(jié)點(diǎn)數(shù)到達(dá)一定數(shù)量后該投票系統(tǒng)的吞吐量能夠得到保證。

而文獻(xiàn)[17]中的吞吐量在節(jié)點(diǎn)到達(dá)20 個(gè)之前隨著系統(tǒng)節(jié)點(diǎn)數(shù)的增加而上升,在系統(tǒng)節(jié)點(diǎn)數(shù)到達(dá)20 個(gè)之后繼續(xù)增加節(jié)點(diǎn)數(shù)系統(tǒng)吞吐量基本保持不變,無法繼續(xù)增加吞吐量。文獻(xiàn)[18]中的吞吐量隨著系統(tǒng)節(jié)點(diǎn)數(shù)的增加而上升,但是上升的趨勢(shì)與本文相比較慢,并且本文達(dá)到一定吞吐量所需的系統(tǒng)節(jié)點(diǎn)數(shù)也比文獻(xiàn)[17]、文獻(xiàn)[18]要少。

基于私有鏈實(shí)現(xiàn)的安全投票系統(tǒng),消耗較小且效率較高,而基于公鏈的電子投票系統(tǒng)在各方面消耗成本更高且效率低下,在公鏈下運(yùn)行需要很高的消耗,如表5所示,本文交易消耗較文獻(xiàn)[7]大幅減少了,并且在設(shè)置智能合約時(shí)也會(huì)有消耗限制。使用公鏈時(shí)由于網(wǎng)絡(luò)中的高流量,也會(huì)影響到系統(tǒng)中投票的吞吐量,使其時(shí)間效率降低。因此本文使用的私有鏈性能更好,大幅降低了投票過程的交易消耗量,能夠有效應(yīng)用于該安全投票系統(tǒng)中。

表5 交易消耗 gas

4 結(jié) 語

本文提出的基于區(qū)塊鏈智能合約的安全投票系統(tǒng),在理論層面上已經(jīng)表明該投票系統(tǒng)能夠保證投票過程的安全性,其中選民的隱私不再依賴于可信的統(tǒng)計(jì)機(jī)構(gòu)或可信的硬件。

在實(shí)際層面上提出了一種高效實(shí)用、可驗(yàn)證的結(jié)合區(qū)塊鏈技術(shù)與密碼技術(shù)的安全投票解決方案,即使對(duì)手在投票階段獲得對(duì)投票數(shù)據(jù)的臨時(shí)讀取訪問,也會(huì)因?yàn)閿?shù)據(jù)被加密而查看不了,仍能夠保持選民的隱私,通過區(qū)塊鏈交易承載證書簽發(fā)、證書驗(yàn)證來保證選民身份驗(yàn)證,能夠有效解決投票過程中選民的身份驗(yàn)證問題,也可避免刷票和數(shù)據(jù)隱私泄漏問題。該安全投票系統(tǒng)使用智能合約實(shí)現(xiàn)自我計(jì)票,使用SM2 橢圓曲線公鑰密碼算法加密投票者的注冊(cè)碼和投票數(shù)據(jù),保障了投票系統(tǒng)的數(shù)據(jù)安全,并在以太坊實(shí)驗(yàn)環(huán)境下驗(yàn)證了項(xiàng)目的可行性,可以達(dá)到安全性要求,系統(tǒng)整體性能也有所改進(jìn)。下一步將繼續(xù)完善系統(tǒng)在區(qū)塊鏈上的功能,增強(qiáng)系統(tǒng)的其他性能。

猜你喜歡
投票者合約證書
WJCI 收錄證書
CSCD收錄證書
收錄證書
收錄證書
微信投票亂局與治道變革
英國人家有空房少拿養(yǎng)老金
合約必守,誰能例外!——對(duì)“情勢(shì)變更”制度不可寄于過高期望
塔利班割鼻懲罰投票者