亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于區(qū)塊鏈的電子投票技術(shù)研究與實(shí)現(xiàn)

        2023-03-20 07:41:30胡南方沈蘇彬
        科技資訊 2023年2期
        關(guān)鍵詞:投票者以太身份驗(yàn)證

        胡南方 沈蘇彬

        (1.南京郵電大學(xué)計(jì)算機(jī)學(xué)院;2.南京郵電大學(xué)通信與網(wǎng)絡(luò)技術(shù)國家工程研究中心 江蘇南京 210046)

        進(jìn)入信息化時(shí)代以來,電子投票作為一種新的投票方式,并逐漸得到了社會(huì)的重視和應(yīng)用,成為現(xiàn)代民主活動(dòng)的象征。電子投票(E-voting)是由CHAUM D[1]在1981 年提出的,它是以互聯(lián)網(wǎng)和通信技術(shù)為基礎(chǔ),利用現(xiàn)代密碼學(xué)為安全保障,模擬傳統(tǒng)的人工投票,來實(shí)現(xiàn)跨越空間的投票方式。電子投票可以解決傳統(tǒng)人工投票方式需要在地理空間上集中的復(fù)雜難題,即使投票參與方分散在不同各地,依然可以通過網(wǎng)絡(luò)在同一時(shí)間進(jìn)行表決和投票。相對(duì)于傳統(tǒng)的人工投票而言,電子投票的效率大大提升。

        電子投票旨在通過互聯(lián)網(wǎng)提供一個(gè)安全、方便和高效的投票環(huán)境,然而,通過互聯(lián)網(wǎng)投票也帶來了一些弊端。目前,電子投票系統(tǒng)主要存在以下幾個(gè)問題:投票過程無法做到公開透明,投票者可能會(huì)產(chǎn)生信任危機(jī);投票數(shù)據(jù)采用中心化方式存儲(chǔ)在中央數(shù)據(jù)庫中,數(shù)據(jù)安全性無法得到保證;投票者在投票過程中可能會(huì)暴露自己的個(gè)人信息,存在隱私泄露的風(fēng)險(xiǎn)。

        隨著比特幣[2]等數(shù)字加密貨幣的興起,區(qū)塊鏈作為比特幣的底層技術(shù),受到了廣泛的關(guān)注。區(qū)塊鏈的本質(zhì)是一個(gè)基于點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)的去中心化的網(wǎng)絡(luò)公用賬本[3],通過建立一個(gè)全網(wǎng)共同維護(hù)且不可篡改的賬本,存儲(chǔ)網(wǎng)絡(luò)中所有的交易記錄。區(qū)塊鏈技術(shù)具有去中心化、數(shù)據(jù)不可篡改、數(shù)據(jù)可溯源等特點(diǎn),可以提高電子投票的可信度,是解決電子投票系統(tǒng)可信性需求的一種新的思路。

        1 相關(guān)工作分析

        區(qū)塊鏈的本質(zhì)是一個(gè)去中心化的公用賬本數(shù)據(jù)庫,數(shù)據(jù)庫中存儲(chǔ)的是一串按照時(shí)間先后順序鏈接在一起的數(shù)據(jù)區(qū)塊。區(qū)塊的結(jié)構(gòu)以比特幣為例,每個(gè)區(qū)塊一般包合區(qū)塊頭(Header)和區(qū)塊體(Body)兩部分,如圖1所示。

        圖1 比特幣區(qū)塊結(jié)構(gòu)圖

        在區(qū)塊頭中,存儲(chǔ)了前一區(qū)塊的哈希值,通過這個(gè)值可以獲取到前一區(qū)塊信息,形如數(shù)據(jù)結(jié)構(gòu)中指針的效果,將一個(gè)個(gè)區(qū)塊連接起來,最終形成一個(gè)鏈狀的結(jié)構(gòu)。區(qū)塊鏈也因此而得名。這樣的鏈狀結(jié)構(gòu)可以保證存儲(chǔ)在區(qū)塊鏈中的數(shù)據(jù)都是可以追溯的。

        區(qū)塊體中存儲(chǔ)著該區(qū)塊包含的所有交易,這些交易經(jīng)驗(yàn)證后通過哈希函數(shù)的處理,成為Merkle 樹[4]的一個(gè)葉子結(jié)點(diǎn),每兩個(gè)葉子結(jié)點(diǎn)繼續(xù)取哈希得到上一結(jié)點(diǎn)的值,最后的Merkle根值保存在區(qū)塊頭里面,同時(shí)通過數(shù)字簽名技術(shù)為該區(qū)塊打上時(shí)間戳[5],保證交易按照一定的時(shí)間順序排列。通過Merkle樹存儲(chǔ)的交易信息可以滿足信息無法被篡改。在電子投票中使用這樣的技術(shù)來存儲(chǔ)投票數(shù)據(jù),可以滿足投票可溯源且不可更改,為電子投票提供了一個(gè)公開的存儲(chǔ)方式和公平的環(huán)境。

        區(qū)塊鏈采用點(diǎn)對(duì)點(diǎn)(Peer-to-Peer)的網(wǎng)絡(luò)架構(gòu)[6]。在電子投票的底層區(qū)塊鏈采用點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò),能夠?qū)崿F(xiàn)對(duì)區(qū)塊鏈節(jié)點(diǎn)的標(biāo)識(shí)。由此,在區(qū)塊鏈網(wǎng)絡(luò)上通過該標(biāo)識(shí)對(duì)區(qū)塊鏈節(jié)點(diǎn)進(jìn)行尋址,可以唯一確定一個(gè)區(qū)塊鏈節(jié)點(diǎn),即對(duì)應(yīng)到唯一的投票人。另外,點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)中的節(jié)點(diǎn)均具有消息的收發(fā)功能,通過這個(gè)功能,投票人可以在區(qū)塊鏈的節(jié)點(diǎn)間將自己的選票進(jìn)行廣播,從而完成投票的流程,另外還可以實(shí)現(xiàn)各個(gè)節(jié)點(diǎn)之間的狀態(tài)同步,保證賬本的一致性。

        區(qū)塊鏈通過哈希函數(shù)(Hash Function)[7]與非對(duì)稱加密算法[8]實(shí)現(xiàn)用戶的身份標(biāo)識(shí)和身份驗(yàn)證。共識(shí)機(jī)制[9]可以在沒有中心節(jié)點(diǎn)的情況下保證各個(gè)誠實(shí)的節(jié)點(diǎn)記賬的一致性。

        以太坊(Ethereum)[10]是一個(gè)通用的區(qū)塊鏈平臺(tái),它具備圖靈完備的智能合約執(zhí)行能力,可以通過智能合約在以太坊平臺(tái)上搭建去中心化的應(yīng)用程序。

        目前已有一些研究對(duì)基于區(qū)塊鏈的電子投票技術(shù)進(jìn)行了分析。SAYYAD S F 等人[11]調(diào)查了基于區(qū)塊鏈的投票系統(tǒng)的特征,認(rèn)為區(qū)塊鏈技術(shù)能夠彌補(bǔ)傳統(tǒng)電子投票系統(tǒng)存在的不足。KIM H R等人[12]分析了將區(qū)塊鏈應(yīng)用于在線投票系統(tǒng)時(shí)可能出現(xiàn)的制度和技術(shù)問題。CABUK U C等人[13]從技術(shù)和非技術(shù)兩方面探究了在電子投票系統(tǒng)中使用區(qū)塊鏈技術(shù)的可行性和適用性,其分析結(jié)果證實(shí)了區(qū)塊鏈技術(shù)能夠解決一些重要的安全問題,包括匿名性、機(jī)密性、完整性和不可否認(rèn)性。

        在此基礎(chǔ)上,一些研究人員提出了基于區(qū)塊鏈的電子投票方案。ZHAO Z 等人[14]提出了一種基于比特幣的電子投票協(xié)議,該協(xié)議利用比特幣賬戶可以自由轉(zhuǎn)移數(shù)字貨幣的特點(diǎn),以交易轉(zhuǎn)賬的方式來進(jìn)行投票。TAKBATAKE Y 等人[15]提出一種結(jié)合Zerocoin 和比特幣的電子投票方案,該方案基于比特幣平臺(tái),針對(duì)比特幣系統(tǒng)具有假名而不是匿名性的特點(diǎn),使用Zerocoin來為投票系統(tǒng)提供匿名性。董友康等人[16]提出了一種基于聯(lián)盟鏈的董事會(huì)電子投票協(xié)議,該協(xié)議使用智能合約結(jié)合數(shù)字證書,對(duì)投票者的身份進(jìn)行合法性驗(yàn)證。另外,該方案利用盲簽名技術(shù)對(duì)選票信息進(jìn)行處理,保證了投票的匿名性。MCCORRY P 等人[17]提出了一種基于以太坊區(qū)塊鏈的電子投票方案,該方案設(shè)計(jì)了智能合約投票協(xié)議,實(shí)現(xiàn)自動(dòng)計(jì)票。

        以上研究利用區(qū)塊鏈技術(shù)解決了許多傳統(tǒng)電子投票的難題,如利用區(qū)塊鏈提供匿名性、設(shè)計(jì)智能合約實(shí)現(xiàn)自動(dòng)計(jì)票、使用數(shù)字貨幣代表選票等,但區(qū)塊鏈與電子投票的結(jié)合,還存在許多問題。

        (1)投票者在區(qū)塊鏈中的身份標(biāo)識(shí)和身份真實(shí)性驗(yàn)證問題。區(qū)塊鏈可以為用戶提供匿名,因此首先要實(shí)現(xiàn)的就是投票者在區(qū)塊鏈中的身份標(biāo)識(shí)。另外,電子投票系統(tǒng)要求在投票之前需要對(duì)投票者進(jìn)行身份的合法性驗(yàn)證。因此,投票者如何在區(qū)塊鏈環(huán)境中進(jìn)行真實(shí)性身份驗(yàn)證也是重要的研究方面。

        (2)目前已有方案通過預(yù)設(shè)智能合約的方式,使電子投票系統(tǒng)實(shí)現(xiàn)自動(dòng)計(jì)票。但是這樣的計(jì)票方案,僅能驗(yàn)證選票的有效性,無法保證選票的唯一性,不能解決重復(fù)投票的問題。因此,需要設(shè)計(jì)一種計(jì)票方法,能夠同時(shí)驗(yàn)證選票的有效性和唯一性。

        (3)審計(jì)性對(duì)于電子投票系統(tǒng)十分重要,開放的審計(jì)權(quán)限、讓各方都能參與審計(jì)體現(xiàn)了投票結(jié)果的公開透明。但是在目前的電子投票系統(tǒng)中,開放可審計(jì)性與隱私保護(hù)是矛盾的。區(qū)塊鏈數(shù)據(jù)公開透明的特點(diǎn)可以滿足可審計(jì)性的需求,在此基礎(chǔ)上應(yīng)對(duì)保護(hù)投票者隱私的方法展開研究。

        2 區(qū)塊鏈中投票者的身份真實(shí)性驗(yàn)證

        在基于區(qū)塊鏈的電子投票系統(tǒng)中,為了保證選票的有效性,我們需要對(duì)投票者進(jìn)行可信的身份驗(yàn)證,以實(shí)現(xiàn)對(duì)其所發(fā)布的選票信息進(jìn)行基于其角色身份的唯一性和合法性驗(yàn)證。在區(qū)塊鏈中,各參與方普遍采用匿名地址的方式來作為自己的身份標(biāo)識(shí),然而,電子投票系統(tǒng)要求投票者必須經(jīng)過身份驗(yàn)證,才能獲取投票資格。因此,每個(gè)參與者的虛擬身份需要與現(xiàn)實(shí)中的身份信息綁定,例如:身份證號(hào)或者社??ㄌ?hào),從而確定投票身份的合法性。

        按照節(jié)點(diǎn)加入的方式,可將區(qū)塊鏈劃分為公有鏈和私有鏈。公有鏈中任何節(jié)點(diǎn)都可以自由地加入和退出,私有鏈中只有通過身份驗(yàn)證才能加入。結(jié)合電子投票系統(tǒng)要求投票者必須經(jīng)過身份驗(yàn)證的需求,選擇在私有鏈上開展對(duì)電子投票身份驗(yàn)證技術(shù)的研究。

        在基于區(qū)塊鏈的電子投票系統(tǒng)中,采用橢圓曲線數(shù)字簽名算法(ECDSA)作為加密算法,遵循SECP256K1 橢圓曲線的參數(shù)標(biāo)準(zhǔn),結(jié)合密碼學(xué)哈希函數(shù)SHA-256,投票者通過以上方法生成自己的區(qū)塊鏈地址,作為自己在區(qū)塊鏈中的標(biāo)識(shí),使用私鑰進(jìn)行數(shù)字簽名,為選票提供認(rèn)證。同時(shí),利用這樣一套身份標(biāo)識(shí)標(biāo)識(shí)方法,展開有關(guān)區(qū)塊鏈中身份真實(shí)性驗(yàn)證的研究。表1 是對(duì)該方法中使用的符號(hào)進(jìn)行定義,該方法具體描述如下。

        表1 身份驗(yàn)證方法符號(hào)定義表

        對(duì)于投票者voteri,其真實(shí)身份表示為Identityi,通過SECP256K1 橢圓曲線算法生成專屬于投票者voteri私鑰SKi和公鑰PKi。在區(qū)塊鏈網(wǎng)絡(luò)中,節(jié)點(diǎn)對(duì)一張選票進(jìn)行驗(yàn)證時(shí),需要驗(yàn)證兩個(gè)方面的內(nèi)容:第一,對(duì)于一張選票msgi,確實(shí)是由voteri自己投出的,而非其他人,比如voterj假冒voteri投出;第二,投出這張選票msgi的投票者voteri,其身份Identityi必須是符合投票條件的,確保選票是有效的。

        因此需要設(shè)計(jì)這樣一種身份驗(yàn)證方式,使得在voteri沒有泄露自身真實(shí)身份信息Identityi和私鑰信息SKi的條件下,仍然能在區(qū)塊鏈網(wǎng)絡(luò)中完成自己的身份真實(shí)性驗(yàn)證。

        首先,voteri需要先計(jì)算出兩個(gè)hash值,其中,hash1使用的是voteri真實(shí)身份Identityi和私鑰SKi哈希得到,hash2使用的是voteri的公鑰PKi和hash1哈希得到。為保證前后使用的哈希函數(shù)一致,可設(shè)定為均采用SHA-256函數(shù)。對(duì)應(yīng)的計(jì)算公式如下:

        然后進(jìn)行下面兩個(gè)步驟,完成身份真實(shí)性驗(yàn)證:

        步驟1:注冊和登錄。使用Identityi和hash2進(jìn)行注冊,注冊中心會(huì)首先檢驗(yàn)投票者voteri的身份Identityi是否符合投票的條件,即是否為合法的投票者。確認(rèn)投票者voteri的身份是符合條件的之后,則首先將表list1中的Identityi將value 值置為1,這保證了每個(gè)合法的用戶僅能使用自己的身份進(jìn)行一次注冊,無法通過一個(gè)身份注冊多個(gè)賬號(hào)。然后,將投票者voteri所發(fā)送來的hash2存入表list2中,表list1與表list2無任何映射關(guān)系,即使同時(shí)獲取兩張表,也無法從中得出對(duì)應(yīng)信息。注冊流程結(jié)束后,注冊中心將表list2 發(fā)送到區(qū)塊鏈網(wǎng)絡(luò)中。僅存儲(chǔ)符合要求的投票者的hash2值。

        步驟2:驗(yàn)證。投票者voteri加入?yún)^(qū)塊鏈網(wǎng)絡(luò)中后,通過發(fā)送選票時(shí)附著自己的身份信息,通過私鑰對(duì)hash1進(jìn)行簽名得到signi,目的是為了證明這張選票msgi的確是由公鑰地址為PKi的參與方發(fā)出的,而不是冒充者假冒PKi發(fā)送的此選票。節(jié)點(diǎn)確定了選票msgi是由PKi發(fā)送的之后,利用PKi對(duì)signi進(jìn)行解密,獲得簽名的內(nèi)容hash1,然后通過hash 函數(shù),對(duì)hash1和PKi進(jìn)行取哈希,得到hash2′,節(jié)點(diǎn)只需要對(duì)照list2中的值,檢驗(yàn)是否存在一個(gè)值與hash2′相等。若存在這樣的hash 值,則說明這張選票msgi的發(fā)送方的身份是符合投票條件的,也就是說這張選票是有效選票。

        通過上述驗(yàn)證方式,可以在不泄露自身身份隱私信息的前提下,完成區(qū)塊鏈網(wǎng)絡(luò)的身份真實(shí)性驗(yàn)證。

        3 區(qū)塊鏈中投票唯一性的方法

        在基于區(qū)塊鏈的電子投票系統(tǒng)中,投票唯一性的研究是對(duì)選票信息的真實(shí)性、有效性和唯一性的驗(yàn)證,其主要目的是為了解決電子投票系統(tǒng)中常見的重復(fù)投票的問題。這需要按照以下兩個(gè)步驟展開:首先是投票者身份的真實(shí)性驗(yàn)證,確保參與投票的投票者都是符合投票要求的,不會(huì)有未經(jīng)過身份驗(yàn)證的人參與投票活動(dòng),讓選票的來源真實(shí)可信;其次對(duì)于通過身份驗(yàn)證的投票者,需要確保他們每個(gè)人的選票唯一且有效。投票者的身份驗(yàn)證在上一小節(jié)已經(jīng)探討,該節(jié)主要研究在基于區(qū)塊鏈的電子投票系統(tǒng)中如何確保選票的唯一性和有效性。

        在相關(guān)研究中,主要通過讓投票者只能投一次選票的方法來保證無法重復(fù)投票。但根據(jù)電子投票的要求,投票需要滿足強(qiáng)制自由(抗脅迫性),即投票者在投票過程中不受外界因素的強(qiáng)制和影響。在傳統(tǒng)電子投票中,主流觀點(diǎn)是投票者可以多次改變選票內(nèi)容,從而減少強(qiáng)制的可能性。但在基于區(qū)塊鏈的電子投票系統(tǒng)中,這樣的做法是無法實(shí)現(xiàn)的。因?yàn)樵趨^(qū)塊鏈中,參與方將選票信息發(fā)布到網(wǎng)絡(luò)中,即被認(rèn)為是投出選票,而選票經(jīng)過共識(shí)之后被存儲(chǔ)到區(qū)塊鏈上,其內(nèi)容是無法更改的。因此,需要對(duì)投票者的投票權(quán)限加以限制,通過投票權(quán)限制保證選票的唯一性,通過投票權(quán)認(rèn)定保證選票的有效性。可以引入以太坊中“Token”的概念來實(shí)現(xiàn)投票權(quán)的限制和認(rèn)定。

        以太坊中的“Token”是一種通證,它可以代表貨幣、資源、資產(chǎn)、訪問權(quán)限和身份等一個(gè)或幾個(gè)不同的功能?;诒毁x予的屬性不同,Token既可以是實(shí)用證明,也可以是權(quán)益證明。當(dāng)Token 被賦予了某種權(quán)益證明時(shí),Token 將與證明該權(quán)益的唯一標(biāo)識(shí)符相關(guān)聯(lián),例如用戶身份ID,此時(shí)的Token具有不可互換性,每個(gè)用戶擁有的Token 只能由自己來使用。目前,以太坊使用的最廣泛的定義Token 的標(biāo)準(zhǔn)是ERC20 標(biāo)準(zhǔn),不過該標(biāo)準(zhǔn)定義的Token是可互換的Token,不滿足我們的應(yīng)用需求。因此我們將采用ERC721 標(biāo)準(zhǔn),對(duì)電子投票中使用的Token進(jìn)行定義。ERC721標(biāo)準(zhǔn)使用256位標(biāo)識(shí)符來實(shí)現(xiàn)對(duì)Token 的唯一標(biāo)識(shí),每個(gè)用戶使用權(quán)益證明綁定Token 時(shí),都會(huì)產(chǎn)生獨(dú)一無二的“契約(deeds)”,通過跟蹤這個(gè)“契約”而非用戶本身,來實(shí)現(xiàn)對(duì)Token的證明。綁定過程如下。

        在基于區(qū)塊鏈的電子投票系統(tǒng)中,我們將Token與每一位投票人的唯一標(biāo)識(shí)綁定,也即投票人的公鑰地址,此時(shí)“Token”代表了投票權(quán)的認(rèn)定。每一位通過身份驗(yàn)證的投票者的注冊賬戶中都會(huì)擁有初始的“Token”,該“Token”僅限投票者在投票時(shí)證明選票的有效性,不可附著在其他交易中。如果投票者確定了投票意向,可以在交易中附加上Token值來投出選票,為選票提供認(rèn)證,每位投票者僅能投出一張附帶Token值的選票。在投票流程結(jié)束后,對(duì)投票結(jié)果進(jìn)行統(tǒng)計(jì)時(shí),通過對(duì)選票中Token值的判斷,來確定該選票的有效性。只有附帶Token 值的選票,才被認(rèn)為是唯一且有效的選票;而沒有附帶Token值的選票,則被認(rèn)為是重復(fù)投票。通過這樣一種機(jī)制,能夠保證選票的唯一性和有效性。

        4 區(qū)塊鏈中可審計(jì)性與隱私保護(hù)

        在區(qū)塊鏈中,所有的交易信息和交易過程都是公開透明的,任何參與方都可以查看和驗(yàn)證交易的有效性。同樣的,在基于區(qū)塊鏈的電子投票系統(tǒng)中,區(qū)塊鏈的數(shù)據(jù)可溯源且不可篡改的特點(diǎn),使得所有的投票數(shù)據(jù)都永久且不可逆地存儲(chǔ)在區(qū)塊鏈中,任何參與方都可以驗(yàn)證選票的有效性,為投票結(jié)果的驗(yàn)證和審計(jì)提供了便利。但是投票數(shù)據(jù)公開透明的特點(diǎn)也對(duì)投票者的隱私保護(hù)提出了更高的要求。

        一個(gè)可信的電子投票系統(tǒng)必須具備可審計(jì)性,能夠保證投票結(jié)果的公平可信,這也是電子投票系統(tǒng)的最基本要求。同時(shí),電子投票系統(tǒng)的隱私保護(hù)是指所有人都無法找出投票者與選票內(nèi)容之間的聯(lián)系,結(jié)合可審計(jì)性的要求,就是說所有人都能看到選票內(nèi)容,但是不知道選票是誰投出的。因此,傳統(tǒng)電子投票系統(tǒng)往往會(huì)采用復(fù)雜的簽名加密算法,保護(hù)投票者的真實(shí)身份隱私。區(qū)塊鏈本身具有匿名性,所有參與方在區(qū)塊鏈中使用的身份地址與現(xiàn)實(shí)中的真實(shí)身份都是沒有關(guān)聯(lián)的,但是參與方在區(qū)塊鏈中使用的身份地址與選票內(nèi)容是公開且密切相關(guān)的。也就是說,如果區(qū)塊鏈中某個(gè)參與方的真實(shí)身份與匿名地址一旦暴露,投票者的隱私也就不復(fù)存在。

        因此,可以在投票者匿名地址與選票內(nèi)容的聯(lián)系上進(jìn)行加密處理,達(dá)到保護(hù)隱私的目的,但是又不能完全隱藏這兩者之間的聯(lián)系,因?yàn)檫€要滿足可審計(jì)性的需求。因此,在基于區(qū)塊鏈的電子投票系統(tǒng)中,電子投票可審計(jì)性與隱私保護(hù)的研究,就是從可審計(jì)性的角度,設(shè)計(jì)一種加密機(jī)制,能夠在不暴露投票者匿名地址與相關(guān)選票關(guān)系的情況下,所有參與方都能完成對(duì)投票結(jié)果的審計(jì)。

        環(huán)簽名是一種數(shù)字簽名方案,簽名者利用自己的私鑰和集合中其他成員的公鑰就能獨(dú)立地進(jìn)行簽名。通過環(huán)簽名對(duì)消息進(jìn)行簽名后,驗(yàn)證者只能知道簽名者來自一個(gè)組,而不能確定是誰簽署了它。環(huán)簽名提供無條件匿名,這與基于區(qū)塊鏈的電子投票系統(tǒng)中隱私保護(hù)的要求是一致的。

        在基于區(qū)塊鏈的電子投票系統(tǒng)中,選擇目前主流的RST 環(huán)簽名算法,表2 是對(duì)該方案中使用的符號(hào)的說明,投票者voteri生成和驗(yàn)證環(huán)簽名的過程如下。

        表2 環(huán)簽名方案的符號(hào)定義表

        步驟1:生成Gen。

        投票者voteri的私鑰SKi,所有環(huán)成員的公鑰{PK1,PK2,…,PKn},給定待簽名消息m。

        步驟2:簽名Sign。

        通過以下步驟生成環(huán)簽名。

        (1)選取密鑰k,計(jì)算k=h(m);

        (2)隨機(jī)選取v ∈{0,1}b;

        (3)為其他環(huán)成員選取x ∈{0,1}b(1≤j≤n,j≠i),并計(jì)算yj=gj(xj);

        (4)根據(jù)yj(1≤j≤n,j≠i),求滿足如下等式的yn

        (5)根據(jù)yn和私鑰SKi求逆xs=gi-1(yi);

        (6)對(duì)m的環(huán)簽名為一個(gè)(2n+1)元組

        步驟3:驗(yàn)證Verify。

        根據(jù)對(duì)消息m的簽名(PK1,…,PKn;v;x1,…,xn)SMT4,驗(yàn)證者通過驗(yàn)證yi是否滿足公式(3)。若等式成立,環(huán)簽名為有效簽名,否則為無效簽名。

        通過以上的方式,可以實(shí)現(xiàn)基于區(qū)塊鏈的電子投票系統(tǒng)可審計(jì)性與隱私保護(hù)的統(tǒng)一。

        5 仿真實(shí)現(xiàn)

        該文對(duì)于方案的仿真實(shí)現(xiàn)將基于以太坊區(qū)塊鏈平臺(tái),主要由以太坊底層區(qū)塊鏈網(wǎng)絡(luò)、智能合約和應(yīng)用程序前端組成,其總體架構(gòu)如圖2 所示??傮w架構(gòu)中包含兩類角色,分別是投票發(fā)起者和投票者。

        圖2 系統(tǒng)總體架構(gòu)

        投票系統(tǒng)采用分布式架構(gòu),每一個(gè)投票者通過操作投票系統(tǒng)Web前端頁面實(shí)現(xiàn)投票每個(gè)環(huán)節(jié)并與智能合約交互,從而實(shí)現(xiàn)去中心化的投票系統(tǒng)Dapp。

        首先,通過以太坊平臺(tái)實(shí)現(xiàn)底層區(qū)塊鏈網(wǎng)絡(luò)的搭建,投票者可以通過以太坊客戶端參與到網(wǎng)絡(luò)中,實(shí)現(xiàn)投票的發(fā)起和參與。智能合約部署到以太坊上后,會(huì)獲得一個(gè)對(duì)應(yīng)的合約地址。利用以太坊賬戶,通過交易,就可以觸發(fā)該智能合約。web3.js 是以太坊為開發(fā)者提供的,它本質(zhì)上是一個(gè)Javascript 庫,其中里面封裝了以太坊的一些基本格式類型,并且擁有與區(qū)塊鏈交互的能力,可以通過其中提供的API,與以太坊中的智能合約進(jìn)行交互。

        該投票方案總共分為4 個(gè)過程,分別是初始化階段、注冊階段、投票階段和計(jì)票并公布階段。圖3展示了整個(gè)投票方案的流程。

        圖3 系統(tǒng)時(shí)序圖

        根據(jù)方案進(jìn)行的不同階段,可以具體設(shè)計(jì)系統(tǒng)流程,如圖4所示。

        圖4 系統(tǒng)流程圖

        (1)投票發(fā)起者設(shè)置投票問題以及選項(xiàng),并且設(shè)置計(jì)時(shí)器信息,用于通知投票者注冊和投票的時(shí)間點(diǎn),并負(fù)責(zé)部署智能合約,規(guī)定投票的流程。

        (2)投票者通過SECP256K1 橢圓曲線算法獲取一個(gè)公/私密鑰對(duì)。投票者使用自己的真實(shí)身份以及其他相關(guān)信息進(jìn)行注冊,注冊通過后獲得加入?yún)^(qū)塊鏈網(wǎng)絡(luò)的資格。

        (3)投票者在加入?yún)^(qū)塊鏈網(wǎng)絡(luò)后,仍需驗(yàn)證真實(shí)身份以獲得投票權(quán)。若身份驗(yàn)證未通過,則無法獲得投票權(quán),無法參與后面的流程。

        (4)投票者獲得投票權(quán)后,在規(guī)定投票時(shí)間內(nèi)投出自己的選票。選票信息應(yīng)包含加密后的選票內(nèi)容、投票者的公鑰地址以及投票者的私鑰簽名。投票者通過節(jié)點(diǎn)向整個(gè)區(qū)塊鏈網(wǎng)絡(luò)廣播自己的投票信息。

        (5)在有投票者投出選票之后,區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點(diǎn)負(fù)責(zé)廣播、驗(yàn)證和收集投票者的選票。在收集選票之前,節(jié)點(diǎn)首先會(huì)對(duì)選票的有效性進(jìn)行驗(yàn)證,主要是確定選票是否是偽造的以及選票是否是有效的,通過驗(yàn)證的選票會(huì)被節(jié)點(diǎn)收集打包成區(qū)塊,未通過驗(yàn)證的選票會(huì)被丟棄。區(qū)塊打包完成后,會(huì)將區(qū)塊發(fā)往區(qū)塊鏈網(wǎng)絡(luò)中,其他節(jié)點(diǎn)會(huì)對(duì)這個(gè)區(qū)塊中的選票進(jìn)行再一次驗(yàn)證。若其中有無效的或錯(cuò)誤的選票,其余節(jié)點(diǎn)不會(huì)接受這個(gè)區(qū)塊。只有當(dāng)這個(gè)區(qū)塊中的所有選票全都通過驗(yàn)證,節(jié)點(diǎn)才會(huì)接受這個(gè)區(qū)塊,并向全網(wǎng)廣播。

        (6)新區(qū)塊經(jīng)過全網(wǎng)節(jié)點(diǎn)共識(shí)后,會(huì)被鏈接到現(xiàn)有的區(qū)塊鏈上,并被打上時(shí)間戳。區(qū)塊中的選票信息被存儲(chǔ)在區(qū)塊鏈上,便無法被篡改,并且可以接受所有人的檢查與校驗(yàn)。

        (7)在到達(dá)設(shè)置的投票截止時(shí)間后,節(jié)點(diǎn)停止收集選票,通過調(diào)用觸發(fā)計(jì)票智能合約,對(duì)滿足投票資格的選票進(jìn)行統(tǒng)計(jì),并公開結(jié)果。如有必要,也可以通過一個(gè)交易將投票結(jié)果存儲(chǔ)到區(qū)塊鏈上,實(shí)現(xiàn)投票結(jié)果的真實(shí)可信。

        6 仿真實(shí)驗(yàn)與結(jié)果分析

        該文實(shí)驗(yàn)的硬件環(huán)境是Intel(R)Core(TM)i5-3800H CPU(2.30GHz),RAM為8 GB,操作系統(tǒng)是Ubuntu16.04。該文選擇在以太坊平臺(tái)上進(jìn)行仿真實(shí)現(xiàn),通過配置創(chuàng)世區(qū)塊文件在本地搭建了一個(gè)以太坊私有鏈。使用solidity 語言編寫智能合約,使用Truffle 框架實(shí)現(xiàn)對(duì)于智能合約的編譯和部署,使用Ganache 客戶端生成100個(gè)賬戶作為方案中的投票者,模擬真實(shí)的投票場景,前端的設(shè)計(jì)基于Node.js。

        實(shí)驗(yàn)中使用Solidity語言編寫Voting.sol合約,啟動(dòng)本地以太坊節(jié)點(diǎn),對(duì)該智能合約文件進(jìn)行編譯。編譯結(jié)果具體見圖5。

        圖5 智能合約的編譯

        創(chuàng)建合約時(shí),賬戶將bytecode 作為交易的傳遞參數(shù),廣播到全網(wǎng)中進(jìn)行驗(yàn)證,有效驗(yàn)證后合約創(chuàng)建成功,形成交易記錄在區(qū)塊鏈上,成功部署后會(huì)返回部署成功的消息,具體見圖6。

        圖6 智能合約的部署

        投票者通過注冊加入?yún)^(qū)塊鏈網(wǎng)絡(luò)后,可以參與投票,使用自己的公私鑰對(duì),填寫選票的內(nèi)容和自己的地址,然后點(diǎn)擊投票按鈕,成功投票的信息見圖7。

        圖7 參與投票成功

        投票者在投出選票的同時(shí),調(diào)用底層加密算法對(duì)選票進(jìn)行加密處理,并使用投票者的私鑰對(duì)選票信息進(jìn)行簽名,然后通過節(jié)點(diǎn)將選票廣播到區(qū)塊鏈中,至此成功參與投票,投票成功的信息見圖8。

        圖8 成功投出選票

        在到達(dá)系統(tǒng)預(yù)設(shè)的投票截止時(shí)間后,投票流程結(jié)束,將觸發(fā)計(jì)票智能合約,智能合約將根據(jù)選票中附帶的Token 值來判斷選票的有效性。若選票有效,則保留選票并統(tǒng)計(jì)內(nèi)容;若選票無效,則丟棄選票。最后將所有有效票數(shù)進(jìn)行統(tǒng)計(jì)并發(fā)布計(jì)票結(jié)果。計(jì)票智能合約的運(yùn)行結(jié)果如圖9所示。

        圖9 計(jì)票合約運(yùn)行成功

        投票者投出自己的選票后,在到達(dá)投票結(jié)束時(shí)間之后,可以通過查看投票結(jié)果模塊查看和校驗(yàn)該次投票的結(jié)果,查看投票結(jié)果的信息見圖10。

        圖10 查看投票結(jié)果

        上述仿真實(shí)驗(yàn)表明該文提出的基于區(qū)塊鏈的電子投票方案可以在去中心化的環(huán)境下實(shí)現(xiàn),可以順利完成發(fā)起投票、投票、計(jì)票和查看結(jié)果的流程。

        7 結(jié)語

        該文針對(duì)目前電子投票系統(tǒng)存在的重復(fù)投票、數(shù)據(jù)不公開透明和存在隱私風(fēng)險(xiǎn)等問題,提出了基于區(qū)塊鏈的電子投票方案。該方案實(shí)現(xiàn)了基于非對(duì)稱加密機(jī)制的區(qū)塊鏈電子投票身份驗(yàn)證方法,采用在選票中附加Token 的方法解決投票權(quán)認(rèn)定的問題,利用環(huán)簽名技術(shù),能夠在不暴露投票者匿名地址與相關(guān)選票關(guān)系的情況下,所有參與方都能完成對(duì)投票結(jié)果的審計(jì),設(shè)計(jì)了面向電子投票的區(qū)塊鏈結(jié)構(gòu),在分析電子投票實(shí)際使用需求的基礎(chǔ)上,結(jié)合區(qū)塊鏈的特性,設(shè)計(jì)實(shí)現(xiàn)了面向電子投票的區(qū)塊鏈結(jié)構(gòu)。最后,通過設(shè)計(jì)投票智能合約在以太坊平臺(tái)上進(jìn)行了仿真實(shí)驗(yàn),仿真結(jié)果表明所提出的基于區(qū)塊鏈的電子投票方案是可行的、正確的。

        猜你喜歡
        投票者以太身份驗(yàn)證
        以太極為旗,開啟新時(shí)代“黃河大合唱”
        少林與太極(2023年7期)2023-08-25 05:27:52
        車易鏈:做汽車業(yè)的“以太坊”
        汽車觀察(2018年9期)2018-10-23 05:46:24
        HID Global收購Arjo Systems擴(kuò)大政府身份驗(yàn)證業(yè)務(wù)
        微信投票亂局與治道變革
        新聞眼
        金融博覽(2016年7期)2016-08-16 18:44:41
        更安全的雙重密碼保護(hù)
        CHIP新電腦(2015年3期)2015-04-02 17:55:46
        百通推出入門級(jí)快速工業(yè)以太網(wǎng)絡(luò)交換器系列
        以太互聯(lián) 高效便捷 經(jīng)濟(jì)、可靠、易用的小型可編程控制器
        英國人家有空房少拿養(yǎng)老金
        身份驗(yàn)證中基于主動(dòng)外觀模型的手形匹配
        国产日韩AV无码免费一区二区| 欧洲成人午夜精品无码区久久| 色婷婷久久亚洲综合看片| 极品人妻少妇av免费久久| 少妇厨房愉情理伦bd在线观看| 久久午夜夜伦鲁鲁片免费无码| 五月天激情婷婷婷久久| 亚洲熟妇av乱码在线观看| 岛国成人在线| 免青青草免费观看视频在线| 天堂网av在线| 风流少妇一区二区三区91| 日本免费精品一区二区| 日本在线精品一区二区三区| 极品少妇hdxx麻豆hdxx| 欧美中日韩免费观看网站| 免费看久久妇女高潮a| 久久香蕉成人免费大片| 国色天香精品亚洲精品| 激情五月婷婷六月俺也去| 午夜视频在线观看国产| 国产影片一区二区三区| 日本高清在线一区二区三区| 成人欧美日韩一区二区三区| 成av免费大片黄在线观看 | 欧美亚洲国产精品久久高清| 久久水蜜桃亚洲av无码精品麻豆| АⅤ天堂中文在线网| 麻豆成人久久精品二区三区91| 日本不卡视频一区二区| 国产无遮挡aaa片爽爽| 中国女人内谢69xxxx免费视频| 人妻aⅴ无码一区二区三区| 亚洲精品美女久久久久久久| 免費一级欧美精品| 精品久久中文字幕一区| 国产精品人成在线观看免费| 最近最新中文字幕| 欧美国产高清| 日本av第一区第二区| 日韩在线观看入口一二三四 |