本發(fā)明實施例涉及通信領(lǐng)域,尤其涉及一種電子投票方法、終端設(shè)備以及區(qū)塊鏈網(wǎng)絡(luò)。
背景技術(shù):
網(wǎng)絡(luò)投票是隨著互聯(lián)網(wǎng)的發(fā)展而出現(xiàn)的新的投票方式,打破了傳統(tǒng)投票方式在時間和地域的限制,也極大地拓展了參與人群的范圍。但是,目前大多數(shù)互聯(lián)網(wǎng)投票要求用戶是實名的,這使得用戶因為種種隱私顧慮,無法選出自己正真想要投票的對象。同時,由于超文本傳輸協(xié)議(hypertexttransferprotocol,簡稱http)本身的缺陷和網(wǎng)路參與者身份確認(rèn)的復(fù)雜性,使得其極容易受到作弊攻擊,出現(xiàn)如投票者“刷票”等行為。進(jìn)一步,現(xiàn)有技術(shù)中計票過程依賴于一個計票機構(gòu)進(jìn)行票數(shù)統(tǒng)計,計票中心漏記或者計票中心內(nèi)部作弊等行為難以及時發(fā)現(xiàn);此外,由于投票者身份的差異,每個投票者對總票數(shù)的影響不相同。
現(xiàn)有技術(shù)中的投票方法有:投票者采用網(wǎng)站臨時分配的一個網(wǎng)絡(luò)標(biāo)識(identifier,簡稱id),在客戶端瀏覽器填寫投票單,然后將填寫好的投票單提交到服務(wù)器進(jìn)行記錄處理。但是使用該投票方法由于采用的是臨時身份,不能驗證投票人的身份的合法性,也容易出現(xiàn)同一個身份或者同一個ip多次刷票等行為;而且計票結(jié)果是在服務(wù)器端,會出現(xiàn)作弊的可能,進(jìn)而造成投票結(jié)果的可信度差。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供一種電子投票方法、終端設(shè)備以及區(qū)塊鏈網(wǎng)絡(luò),用于提高投票結(jié)果的可信度。
本發(fā)明實施例提供一種電子投票方法,包括:
終端設(shè)備為每個投票人生成一個隨機信息;終端設(shè)備確定隨機信息對應(yīng)的第一數(shù)字簽名;終端設(shè)備向區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點廣播投票信息;投票信息包括隨機信息、第一數(shù)字簽名以及被投票人的標(biāo)識。
可選地,終端設(shè)備確定隨機信息對應(yīng)的第一數(shù)字簽名,包括:終端設(shè)備對隨機信息進(jìn)行盲變換,得到第一信息;終端設(shè)備向注冊裝置發(fā)送第一信息;終端設(shè)備接收注冊裝置發(fā)送的第二數(shù)字簽名;其中,第二數(shù)字簽名是根據(jù)第一信息生成的;終端設(shè)備將第二數(shù)字簽名去盲化,得到隨機信息對應(yīng)的第一數(shù)字簽名。
可選地,終端設(shè)備接收注冊裝置發(fā)送的第二數(shù)字簽名之前,還包括:終端設(shè)備向注冊裝置發(fā)送投票人的身份信息;其中,投票人的身份信息用于:使注冊裝置確定生成第二數(shù)字簽名對應(yīng)的私鑰及私鑰對應(yīng)的票數(shù)權(quán)重;其中,所述私鑰以及所述私鑰對應(yīng)的票數(shù)權(quán)重是所述注冊裝置生成。
可選地,終端設(shè)備向區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點廣播投票信息之前,還包括:終端設(shè)備獲取被投票人的標(biāo)識;終端設(shè)備根據(jù)被投票人的標(biāo)識、隨機信息以及第一數(shù)字簽名生成第三數(shù)字簽名;終端設(shè)備向區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點廣播第三數(shù)字簽名以及投票信息。
本發(fā)明實施例提供一種電子投票方法,包括:區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點接收終端設(shè)備廣播的投票信息;所述投票信息包括所述隨機信息、所述第一數(shù)字簽名以及被投票人的標(biāo)識;所述區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點根據(jù)第一數(shù)字簽名對應(yīng)的公鑰,確定所述隨機信息是否合法;所述區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點根據(jù)所述被投票人的標(biāo)識對應(yīng)的隨機信息的個數(shù)以及所述所述第一數(shù)字簽名對應(yīng)的公鑰對應(yīng)的票數(shù)權(quán)重,確定所述被投票人的標(biāo)識對應(yīng)的總票數(shù);其中,所述公鑰以及所述公鑰對應(yīng)的票數(shù)權(quán)重是所述注冊裝置生成。
可選地,所述區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點根據(jù)第一數(shù)字簽名對應(yīng)的公鑰,確定所述隨機信息是否合法之前,還包括:所述區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點接收所述終端設(shè)備發(fā)送的第三數(shù)字簽名;其中,所述第三數(shù)字簽名是所述終端設(shè)備根據(jù)投票信息生成的;其中,所述投票信息包括所述隨機信息、所述第一數(shù)字簽名以及被投票人的標(biāo)識;所述區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點根據(jù)所述第三數(shù)字簽名對應(yīng)的公鑰確定所述投票信息是否合法。
本發(fā)明實施例提供了一種適用于電子投票的終端設(shè)備,其特征在于,包括:生成單元,用于為每個投票人生成一個隨機信息;處理單元,用于確定隨機信息對應(yīng)的第一數(shù)字簽名;發(fā)送單元,用于向區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點廣播投票信息;投票信息包括隨機信息、第一數(shù)字簽名以及被投票人的標(biāo)識。
可選地,處理單元,用于:對隨機信息進(jìn)行盲變換,得到第一信息;終端設(shè)備將第二數(shù)字簽名去盲化,得到隨機信息對應(yīng)的第一數(shù)字簽名;發(fā)送單元,用于:向注冊裝置發(fā)送第一信息;還包括接收單元,用于:接收注冊裝置發(fā)送的第二數(shù)字簽名;其中,第二數(shù)字簽名是根據(jù)第一信息生成的。
可選地,發(fā)送單元,還用于:向所述注冊裝置發(fā)送投票人的身份信息;其中,所述投票人的身份信息用于:使所述注冊裝置確定生成所述第二數(shù)字簽名對應(yīng)的私鑰及所述所述私鑰對應(yīng)的票數(shù)權(quán)重;其中,所述私鑰以及所述私鑰對應(yīng)的票數(shù)權(quán)重是所述注冊裝置生成。
可選地,還包括獲取單元,獲取單元,用于:終端設(shè)備獲取被投票人的標(biāo)識;處理單元,用于:根據(jù)被投票人的標(biāo)識、隨機信息以及第一數(shù)字簽名生成第三數(shù)字簽名;發(fā)送單元,用于:向區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點廣播第三數(shù)字簽名以及投票信息。
本發(fā)明實施例提供了一種適用于電子投票的區(qū)塊鏈網(wǎng)絡(luò),包括:接收單元,用于接收終端設(shè)備廣播的投票信息;投票信息包括隨機信息、第一數(shù)字簽名以及被投票人的標(biāo)識;處理單元,用于根據(jù)第一數(shù)字簽名對應(yīng)的公鑰,確定所述隨機信息是否合法;根據(jù)所述被投票人的標(biāo)識對應(yīng)的隨機信息的個數(shù)以及所述所述第一數(shù)字簽名對應(yīng)的公鑰對應(yīng)的票數(shù)權(quán)重,確定所述被投票人的標(biāo)識對應(yīng)的總票數(shù);其中,所述公鑰以及所述公鑰對應(yīng)的票數(shù)權(quán)重是所述注冊裝置生成。
可選地,接收單元,接收所述終端設(shè)備發(fā)送的第三數(shù)字簽名;其中,所述第三數(shù)字簽名是所述終端設(shè)備根據(jù)投票信息生成的;其中,所述投票信息包括所述隨機信息、所述第一數(shù)字簽名以及被投票人的標(biāo)識;所述處理單元,用于:根據(jù)所述第三數(shù)字簽名對應(yīng)的公鑰確定所述投票信息是否合法。
本發(fā)明實施例中,終端設(shè)備為每個投票人生成一個隨機信息;終端設(shè)備確定隨機信息對應(yīng)的第一數(shù)字簽名;終端設(shè)備向區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點廣播投票信息;投票信息包括隨機信息、第一數(shù)字簽名以及被投票人的標(biāo)識。由于本發(fā)明實施例中,終端設(shè)備將投票信息向區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點廣播,由于區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點中區(qū)塊鏈中的區(qū)塊是根據(jù)時間順序生成的,區(qū)塊鏈網(wǎng)絡(luò)中的區(qū)塊的先后順序相當(dāng)于時間戳的效果,且每個區(qū)塊存儲有前一個區(qū)塊的索引,因此可以使得區(qū)塊鏈中的投票信息不可篡改,增強了投票結(jié)果的可信度。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡要介紹。
圖1為本發(fā)明實施例提供的一種系統(tǒng)架構(gòu)示意圖;
圖2為本發(fā)明實施例提供的一種電子投票方法流程示意圖;
圖3為本發(fā)明實施例提供的另一種電子投票方法流程示意圖;
圖4為本發(fā)明實施例提供的一種終端設(shè)備的結(jié)構(gòu)示意圖;
圖5為本發(fā)明實施例提供的一種區(qū)塊鏈網(wǎng)絡(luò)的結(jié)構(gòu)示意圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及有益效果更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
圖1示例性示出了本發(fā)明實施例適用的一種系統(tǒng)架構(gòu)示意圖,如圖1所示,本發(fā)明實施例適用的系統(tǒng)架構(gòu)包括注冊裝置101、終端設(shè)備102、區(qū)塊鏈網(wǎng)絡(luò)103,通過無線連接或有線連接或其它方式連接。
注冊裝置101可以是注冊機構(gòu)中的設(shè)備或者服務(wù)器,注冊裝置用來生成n對非對稱密鑰,并將n對非對稱密鑰中的公鑰對外公布,每個公鑰對應(yīng)一個票數(shù)的權(quán)重;其中,n為大于等于的1的整數(shù)。注冊裝置也用來驗證投票人身份信息的合法性,比如可以要求投票人到注冊機構(gòu)來進(jìn)行身份信息的驗證。當(dāng)注冊裝置確定投票人身份信息合法時,確定投票人是否具有投票資格;如果確定該投票人具有投票資格,投票人首次進(jìn)行簽署選票時具有投票資格;之后接收該投票人提供的經(jīng)過盲變換之后的第一信息,并對第一信息進(jìn)行數(shù)字簽名,生成第二數(shù)字簽名;即為投票簽署了一張合法的電子選票。注冊裝置101將簽署的合法的電子選票發(fā)送到終端設(shè)備102。
終端設(shè)備102可以經(jīng)無線接入網(wǎng)(radioaccessnetwork,簡稱ran)與一個或多個核心網(wǎng)進(jìn)行通信,終端設(shè)備可以指用戶設(shè)備(userequipment,簡稱ue)、接入終端、用個人數(shù)字處理(personaldigitalassistant,簡稱pda)、具有無線通信功能的手持設(shè)備、計算設(shè)備或連接到無線調(diào)制解調(diào)器的其它處理設(shè)備、車載設(shè)備、可穿戴設(shè)備,未來5g網(wǎng)絡(luò)中的終端設(shè)備等。終端設(shè)備用于生成每個投票人對應(yīng)的隨機信息,并將生成的隨機信息進(jìn)行盲變換,將進(jìn)行盲變換之后的第一信息發(fā)送給注冊裝置;終端設(shè)備接收注冊裝置發(fā)送的第二數(shù)字簽名,對接收到的第二數(shù)字簽名進(jìn)行去盲化,得到注冊機構(gòu)對隨機信息的真實的數(shù)字簽名,即第一數(shù)字簽名。終端設(shè)備獲取被投票人的標(biāo)識,形成投票信息,將該投票信息發(fā)送到區(qū)塊鏈網(wǎng)絡(luò)103。
區(qū)塊鏈網(wǎng)絡(luò)103包括第一節(jié)點104、第二節(jié)點105、第三節(jié)點106、第四節(jié)點107、第五節(jié)點108,在區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點可以是任何機器如服務(wù)器、用戶側(cè)的移動終端,每個節(jié)點都具有路由功能,每個節(jié)點都可以隨機的連接到其他節(jié)點,節(jié)點之間通過以太網(wǎng)進(jìn)行點對點通信,比如發(fā)送投票信息。在區(qū)塊鏈網(wǎng)絡(luò)中,有些節(jié)點沒有區(qū)塊鏈,沒有區(qū)塊鏈的節(jié)點將接收到的投票信息進(jìn)行轉(zhuǎn)發(fā)。而且,區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點都允許獲得一份完整的數(shù)據(jù)庫拷貝。節(jié)點間基于一套共識機制,通過競爭計算共同維護(hù)整個區(qū)塊、任一節(jié)點失效、其余節(jié)點都能正常工作。每一次投票信息對所有節(jié)點可見。由于節(jié)點與節(jié)點之間是去信任的,因此,節(jié)點間是無需公開身份的,每個參與的節(jié)點都是匿名的。只要按照系統(tǒng)既定的規(guī)則運行,節(jié)點之間不能也無法欺騙節(jié)點之間。區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點周期性的收集投票信息,其中,有礦工的節(jié)點將收集到的投票信息打包成一個新的區(qū)塊,最后競爭勝出的礦工打包的投票信息被所有節(jié)點認(rèn)可;之后區(qū)塊鏈網(wǎng)絡(luò)中的所有的節(jié)點同步這個區(qū)塊,在區(qū)塊鏈網(wǎng)絡(luò)中的所有節(jié)點都同步了這個區(qū)塊之后,區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點都存儲了投票信息。之后區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點進(jìn)入下一次收集,不斷延長區(qū)塊鏈。
圖2示例性示出了本發(fā)明實施例提供的一種電子投票方法流程示意圖。
基于圖1所示的系統(tǒng)架構(gòu),如圖2所示,本發(fā)明實施例提供的電子投票方法,包括以下步驟:
步驟s201,終端設(shè)備為每個投票人生成一個隨機信息;
步驟s202,終端設(shè)備確定隨機信息對應(yīng)的第一數(shù)字簽名;
步驟s203,終端設(shè)備向區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點廣播投票信息;投票信息包括隨機信息、第一數(shù)字簽名以及被投票人的標(biāo)識;
步驟s204,區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點接收終端設(shè)備廣播的投票信息;投票信息包括隨機信息、第一數(shù)字簽名以及被投票人的標(biāo)識;
步驟s205,所述區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點根據(jù)第一數(shù)字簽名對應(yīng)的公鑰,確定所述隨機信息是否合法;
步驟s206,區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點根據(jù)被投票人的標(biāo)識對應(yīng)的隨機信息的個數(shù)以及所述第一數(shù)字簽名對應(yīng)的公鑰對應(yīng)的票數(shù)權(quán)重,確定被投票人的標(biāo)識對應(yīng)的總票數(shù);其中,所述公鑰以及所述公鑰對應(yīng)的票數(shù)權(quán)重是所述注冊裝置生成。
由于本發(fā)明實施例中,終端設(shè)備將投票信息向區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點廣播,由于區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點中區(qū)塊鏈中的區(qū)塊是根據(jù)時間順序生成的,區(qū)塊鏈網(wǎng)絡(luò)中的區(qū)塊的先后順序相當(dāng)于時間戳的效果,且每個區(qū)塊存儲有前一個區(qū)塊的索引,因此可以使得區(qū)塊鏈中的投票信息不可篡改,增強了投票結(jié)果的可信度。
需要說明的是,在步驟s201中,隨機信息包括任意的隨機數(shù),或者攜帶有被投票人的標(biāo)識的隨機信息、或者被投票人的標(biāo)識和隨機數(shù)的任意組合的信息、或者被投票人的標(biāo)識和其他任意信息的組合信息。
可選地,本發(fā)明實施例中,終端設(shè)備接收注冊裝置發(fā)送的第二數(shù)字簽名之前,還包括:終端設(shè)備向注冊裝置發(fā)送投票人的身份信息;其中,投票人的身份信息用于:使注冊裝置確定生成第二數(shù)字簽名對應(yīng)的私鑰及私鑰對應(yīng)的票數(shù)權(quán)重;其中,所述私鑰以及所述私鑰對應(yīng)的票數(shù)權(quán)重是所述注冊裝置生成。
本發(fā)明實施例中,終端設(shè)備向注冊裝置發(fā)送投票人的身份信息,注冊裝置接收到投票人的身份信息后,確定該投票人的身份信息對應(yīng)的票數(shù)權(quán)重,便于使注冊裝置使用票數(shù)權(quán)重對應(yīng)的私鑰進(jìn)行數(shù)字簽名。
本發(fā)明實施例中,注冊裝置在接收到投票人的身份信息之后,確定該投票人的身份信息合法性,在確定該票人的身份信息合法時,確定該投票人身份信息是否為首次注冊,若注冊裝置確定該投票人的身份信息不合法或者投票人的身份信息不是首次注冊,則拒絕接收終端設(shè)備發(fā)送的該投票人的第一信息;若注冊裝置確定該投票人身份信息合法且該投票人的身份信息是首次注冊時,向終端設(shè)備發(fā)送提供該投票人對應(yīng)的第一信息。
本發(fā)明實施例中,所述注冊裝置生成多對非對稱密鑰,將多對非對稱密鑰中的公鑰對外公布。其中,每對非對稱密鑰對應(yīng)一個票數(shù)的權(quán)重;本發(fā)明實施例中提供了一種確定非對稱密鑰對應(yīng)的票數(shù)的權(quán)重的方式,即每對非對稱密鑰對應(yīng)的票數(shù)權(quán)重是根據(jù)投票人的身份信息確定的;比如,注冊裝置確定某個投票人的身份信息級別較高,則使用非對稱密鑰對該投票人提供的第一信息進(jìn)行數(shù)字簽名時,所用的私鑰對應(yīng)的票數(shù)權(quán)重也較高,即在計票時該票的代表的票數(shù)也較多。
本發(fā)明實施例中,終端設(shè)備為每個投票人生成一個隨機信息,終端設(shè)備對隨機信息進(jìn)行盲變換,得到第一信息;終端設(shè)備向注冊裝置發(fā)送第一信息;注冊裝置接收到第一信息之后,采用與終端設(shè)備約定的算法對第一信息進(jìn)行數(shù)字簽名,得到第二數(shù)字簽名,將第二數(shù)字簽名向終端設(shè)備發(fā)送,終端設(shè)備在接收到第二數(shù)字簽名之后,對第二數(shù)字簽名進(jìn)行去盲化,得到對隨機信息的真實數(shù)字簽名,即第一數(shù)字簽名。
在本發(fā)明實施例中,隨機信息包括任意的隨機數(shù),或者攜帶有有被投票人的標(biāo)識的隨機信息、或者被投票人的標(biāo)識和隨機數(shù)的任意組合的信息、或者被投票人的標(biāo)識和其他任意信息的組合信息。終端設(shè)備提供的第一信息包括備投票人的標(biāo)識時,在區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點接收到該隨機信息時,不能修改被投票人的標(biāo)識;如此,可以進(jìn)一步防止投票信息被篡改。
本發(fā)明實施例中,終端確定出的對隨機信息進(jìn)行的第一數(shù)字簽名是通過對注冊裝置對第一信息進(jìn)行盲簽名的第二數(shù)字簽名去盲化得到的,注冊裝置對終端發(fā)送的第一信息進(jìn)行盲簽名。一方面,除了注冊裝置以外,任何人都不能以他的名義生成有效的盲簽名;另一方面,一旦注冊裝置對該第一信息進(jìn)行了數(shù)字簽名,就無法否認(rèn);進(jìn)一步,注冊裝置雖然對終端設(shè)備發(fā)送的第一信息進(jìn)行了數(shù)字簽名,但是注冊裝置并不能確定出所簽署的第一信息對應(yīng)的原始信息的具體內(nèi)容,即注冊裝置不能確定與投票人對應(yīng)的第一信息的真實內(nèi)容,一旦第一數(shù)字簽名公開后,注冊裝置不能確定何時簽署的該數(shù)字簽名,也不能確定出該第一數(shù)字簽名對應(yīng)的投票人的身份信息;因此,使得投票人的身份信息的匿名性更強。
可選地,終端設(shè)備在確定出注冊裝置對隨機信息的第一數(shù)字簽名之后,終端設(shè)備向區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點廣播投票信息之前,還包括:終端設(shè)備獲取被投票人的標(biāo)識;所述終端設(shè)備根據(jù)所述被投票人的標(biāo)識、所述隨機信息以及所述第一數(shù)字簽名生成第三數(shù)字簽名;所述終端設(shè)備向所述區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點廣播所述第三數(shù)字簽名以及所述投票信息。本發(fā)明實施例中以在比特幣網(wǎng)絡(luò)中為例,則被投票人的標(biāo)識可以是被投票人公布的地址a,也可以是根據(jù)公鑰計算生成的地址;在比特幣網(wǎng)絡(luò)中,終端設(shè)備可以生成任意一個地址b,終端設(shè)備形成從地址b到地址a的一個投票信息,其中,投票信息包括:被投票人的標(biāo)識、所述隨機信息以及所述第一數(shù)字簽名。終端設(shè)備在生成地址b的同時,生成一對非對稱密鑰,終端設(shè)備采用與區(qū)塊鏈網(wǎng)絡(luò)約定的算法,例如哈希函數(shù),從投票信息中生成摘要信息,使用終端設(shè)備生成的非對稱密鑰中的私鑰對該摘要信息進(jìn)行加密,加密后的摘要信息即為第三數(shù)字簽名;將第三數(shù)字簽名、終端生成的非對稱密鑰中的公鑰以及投票信息發(fā)送到區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點。
相應(yīng)地,可選地,所述區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點根據(jù)第一數(shù)字簽名對應(yīng)的公鑰,確定所述隨機信息是否合法之前,還包括:所述區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點接收所述終端設(shè)備發(fā)送的第三數(shù)字簽名;其中,所述第三數(shù)字簽名是所述終端設(shè)備根據(jù)投票信息生成的;其中,所述投票信息包括所述隨機信息、所述第一數(shù)字簽名以及被投票人的標(biāo)識;所述區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點根據(jù)所述第三數(shù)字簽名對應(yīng)的公鑰確定所述投票信息是否合法。
本發(fā)明實施例中,確定所述投票信息合法包括確定接收到的投票信息是否與終端設(shè)備發(fā)送的投票信息一致,確保終端設(shè)備發(fā)送的投票信息沒有被篡改過,保證接收到的投票信息的完整性。
本發(fā)明實施例中,終端設(shè)備將投票信息、第三數(shù)字簽名以及終端設(shè)備生成的公鑰發(fā)送到區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點中,區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點接收到第三數(shù)字簽名、終端設(shè)備生成的公鑰以及投票信息之后,使用和終端設(shè)備約定的算法對接收到的投票信息進(jìn)算出摘要信息,使用終端設(shè)備生成的公鑰對第三數(shù)字簽名進(jìn)行解密,獲得終端設(shè)備發(fā)送摘要信息,確定終端設(shè)備發(fā)送的摘要信息與計算得到的摘要信息是否相同,如果相同,則說明終端設(shè)備向區(qū)塊鏈網(wǎng)絡(luò)中每個節(jié)點發(fā)送的消息沒有被篡改過,如此,可以確保區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點接收到的投票信息的完整性。
本發(fā)明實施例中,區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點在確定出投票信息完整后,確定投票信息中的隨機信息和第一數(shù)字簽名是否首次出現(xiàn),若隨機信息和第一數(shù)字簽名是首次出現(xiàn),則區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點再根據(jù)注冊裝置公布的全部公鑰,驗證第一數(shù)字簽名的合法性,即驗證第一數(shù)字簽名是否是注冊裝置簽署的以及隨機信未被篡改過。如此,可以實現(xiàn)可以驗證投票信息來源的真實性以及交易清單的完整性,避免投票信息被篡改。
本發(fā)明實施例中,在區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點確定隨機信息和第一數(shù)字簽名合法之后,區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點周期性的收集該段時間內(nèi)的合法投票信息,其中,有礦工的節(jié)點將收集到的投票信息打包成一個新的區(qū)塊,最后只有競爭勝出的礦工打包的投票信息被所有節(jié)點認(rèn)可;然后所有的節(jié)點同步這個區(qū)塊,之后進(jìn)入下一次收集,不斷延長區(qū)塊鏈。
本發(fā)明實施例中,所有的投票信息均會記錄在區(qū)塊鏈中,所有節(jié)點都可以計票,可以在區(qū)塊鏈中查詢被投票人的票數(shù)和票的來源,并計算出每個被投票人的總票數(shù),而且,計票裝置可以通過注冊裝置公布的公鑰來驗證投票信息的合法性,即驗證隨機信息的合法性,但是計票裝置也不能追蹤到投票人的真實身份信息,進(jìn)而進(jìn)一步提高了投票人身份的匿名性。
為了更清楚的介紹上述方法流程,圖3示例性示出了本發(fā)明實施例提供的另一種電子投票方法。
步驟301,注冊裝置生成n對非對稱密鑰,并將n對非對稱密鑰中的公鑰對外公布;其中,每個公鑰對應(yīng)一類特定的投票權(quán)重;其中,n為大于等于1的整數(shù);
可選地,注冊裝置也可以公布一個公鑰;
步驟302,注冊裝置接收終端設(shè)備發(fā)送的投票人的身份信息;其中,投票人的身份信息能唯一的標(biāo)識投票人;
步驟303,注冊裝置判斷投票人的身份信息是否合法;若確定投票人的身份信息合法,執(zhí)行步驟304,若確定投票人的身份信息不合法,執(zhí)行步驟306;
可選地,注冊裝置可以為注冊機構(gòu)中的設(shè)備,投票人可以到注冊機構(gòu)進(jìn)行身份信息合法性的確認(rèn);
步驟304,注冊裝置判斷投票人是否具有投票資格;若注冊裝置確定投票人具有投票資格時,執(zhí)行步驟305;若確定投票人不具有投票資格,執(zhí)行步驟306;
可選地,注冊裝置確定投票人的身份信息是否為首次注冊,若為首次注冊,則認(rèn)為該投票人具有投票資格;若注冊裝置確定投票人的身份信息不是首次注冊,則確定投票人不具有投票資格;
步驟305,注冊裝置向終端設(shè)備發(fā)送提供選票信息的請求;
步驟306,注冊裝置拒絕對該投票人提供的選票信息進(jìn)行數(shù)字簽名;
步驟307,終端設(shè)備在接收到注冊裝置提供的選票信息的請求之后,生成一個隨機信息;
步驟308,終端設(shè)備對生成的隨機信息進(jìn)行盲變換,得到第一信息;
步驟309,終端設(shè)備向注冊裝置發(fā)送第一信息;
步驟310,注冊裝置確定接收到第一信息對應(yīng)的投票人的身份信息,并根據(jù)身份信息確定對應(yīng)的投票權(quán)重的私鑰,采用和終端設(shè)備約定的算法,使用該投票權(quán)重的私鑰對第一信息進(jìn)行數(shù)字簽名,獲得第二數(shù)字簽名;
可選地,約定的算法包括哈希函數(shù)算法;
步驟311,注冊裝置向終端設(shè)備發(fā)送第二數(shù)字簽名;
步驟312,終端設(shè)備接收第二數(shù)字簽名之后,對第二數(shù)字簽名進(jìn)行去盲化;得到注冊裝置對隨機信息的第一數(shù)字簽名;
步驟313,終端設(shè)備獲取被投票人的標(biāo)識;
可選地,被投票人的標(biāo)識可以是被投票人公布的地址、或者根據(jù)公鑰計算生成的地址;
步驟314,終端設(shè)備生成與投票人對應(yīng)的任一地址以及與該地址對應(yīng)的非對稱密鑰;
步驟315,終端設(shè)備對投票信息進(jìn)行數(shù)字簽名,得到第三數(shù)字簽名;其中,投票新信息包括隨機信息、第一數(shù)字簽名以及被投票人的標(biāo)識;
步驟316,終端設(shè)備將投票新信息、第三數(shù)字簽名以及終端設(shè)備生成的公鑰發(fā)送到區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點;
步驟317,區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點接收投票新信息、第三數(shù)字簽名以及終端設(shè)備生成的公鑰;
步驟318,區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點驗證接收到的第三數(shù)字簽名是否合法;在驗證第三數(shù)字簽名合法時,執(zhí)行步驟319,在驗證第三數(shù)字簽名不合法時,執(zhí)行步驟320;
步驟319,區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點確定接收到的隨機信息和第一數(shù)字簽名是否為首次接收,若不是首次接收,執(zhí)行步驟320,若為首次接收,執(zhí)行步驟321;
步驟320,區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點丟棄接收到的投票新信息;
步驟321,區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點根據(jù)注冊裝置公布的公鑰,確定第一數(shù)字簽名是否合法;在確定第一數(shù)字簽名合法時,執(zhí)行步驟322,若確定不合法時,執(zhí)行步驟320;
步驟322,區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點周期性的收集每個投票新信息,其中,有礦工的節(jié)點將收集到的全部投票新信息打包成一個新的區(qū)塊;競爭勝出的礦工打包的全部投票新信息被所有節(jié)點認(rèn)可;然后區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點同步這個區(qū)塊;
可選地,區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點記錄了被投票人的票數(shù)以及每個票對應(yīng)的權(quán)重;其中,每個票對應(yīng)的權(quán)重根據(jù)注冊裝置公布的公鑰來確定;每個節(jié)點上都記錄了被投票人的投票數(shù)以及相應(yīng)票對應(yīng)的權(quán)重。如此,可以防止計票時作弊,提高了投票結(jié)果的可信度。
從上述內(nèi)容可以看出:本發(fā)明實施例中,由于本發(fā)明實施例中終端設(shè)備將投票信息向區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點廣播,由于區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點中區(qū)塊鏈中的區(qū)塊是根據(jù)時間順序生成的,區(qū)塊鏈網(wǎng)絡(luò)中的區(qū)塊的先后順序相當(dāng)于時間戳的效果,且每個區(qū)塊存儲有前一個區(qū)塊的索引,因此可以使得區(qū)塊鏈中的投票信息不可篡改,增強了投票結(jié)果的可信度。
圖4示例性示出了本發(fā)明實施例提供的一種適用于電子投票的終端設(shè)備的結(jié)構(gòu)示意圖。
基于相同構(gòu)思,本發(fā)明實施例提供一種終端設(shè)備,如圖4所示,終端設(shè)備400包括生成單元401、處理單元402和發(fā)送單元403,可選地,還包括接收單元404和獲取單元405。其中:
生成單元,用于為每個投票人生成一個隨機信息;處理單元,用于確定隨機信息對應(yīng)的第一數(shù)字簽名;發(fā)送單元,用于向區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點廣播投票信息;投票信息包括隨機信息、第一數(shù)字簽名以及被投票人的標(biāo)識。
可選地,處理單元,用于:對隨機信息進(jìn)行盲變換,得到第一信息;終端設(shè)備將第二數(shù)字簽名去盲化,得到隨機信息對應(yīng)的第一數(shù)字簽名;發(fā)送單元,用于:向注冊裝置發(fā)送第一信息;還包括接收單元,用于:接收注冊裝置發(fā)送的第二數(shù)字簽名;其中,第二數(shù)字簽名是根據(jù)第一信息生成的。
可選地,發(fā)送單元,還用于:向所述注冊裝置發(fā)送投票人的身份信息;其中,所述投票人的身份信息用于:使所述注冊裝置確定生成所述第二數(shù)字簽名對應(yīng)的私鑰及所述所述私鑰對應(yīng)的票數(shù)權(quán)重;其中,所述私鑰以及所述私鑰對應(yīng)的票數(shù)權(quán)重是所述注冊裝置生成。
可選地,還包括獲取單元,獲取單元,用于:終端設(shè)備獲取被投票人的標(biāo)識;處理單元,用于:根據(jù)被投票人的標(biāo)識、隨機信息以及第一數(shù)字簽名生成第三數(shù)字簽名;發(fā)送單元,用于:向區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點廣播第三數(shù)字簽名以及投票信息。
從上述內(nèi)容可以看出:本發(fā)明實施例中,由于本發(fā)明實施例中,終端設(shè)備將投票信息向區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點廣播,由于區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點中區(qū)塊鏈中的區(qū)塊是根據(jù)時間順序生成的,區(qū)塊鏈網(wǎng)絡(luò)中的區(qū)塊的先后順序相當(dāng)于時間戳的效果,且每個區(qū)塊存儲有前一個區(qū)塊的索引,因此可以使得區(qū)塊鏈中的投票信息不可篡改,增強了投票結(jié)果的可信度。
圖5示例性示出了本發(fā)明實施例提供的一種適用于電子投票的區(qū)塊鏈網(wǎng)絡(luò)的結(jié)構(gòu)示意圖。
基于相同構(gòu)思,本發(fā)明實施例提供一種區(qū)塊鏈網(wǎng)絡(luò),如圖5所示,區(qū)塊鏈網(wǎng)絡(luò)500包括接收單元501、處理單元502。其中:
接收單元,用于接收終端設(shè)備廣播的投票信息;投票信息包括隨機信息、第一數(shù)字簽名以及被投票人的標(biāo)識;處理單元,用于根據(jù)第一數(shù)字簽名對應(yīng)的公鑰,確定所述隨機信息是否合法;根據(jù)所述被投票人的標(biāo)識對應(yīng)的隨機信息的個數(shù)以及所述所述第一數(shù)字簽名對應(yīng)的公鑰對應(yīng)的票數(shù)權(quán)重,確定所述被投票人的標(biāo)識對應(yīng)的總票數(shù);其中,所述公鑰以及所述公鑰對應(yīng)的票數(shù)權(quán)重是所述注冊裝置生成。
可選地,接收單元,接收所述終端設(shè)備發(fā)送的第三數(shù)字簽名;其中,所述第三數(shù)字簽名是所述終端設(shè)備根據(jù)投票信息生成的;其中,所述投票信息包括所述隨機信息、所述第一數(shù)字簽名以及被投票人的標(biāo)識;所述處理單元,用于:根據(jù)所述第三數(shù)字簽名對應(yīng)的公鑰確定所述投票信息是否合法。
從上述內(nèi)容可以看出:本發(fā)明實施例中,由于本發(fā)明實施例中,終端設(shè)備將投票信息向區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點廣播,由于區(qū)塊鏈網(wǎng)絡(luò)中的每個節(jié)點中區(qū)塊鏈中的區(qū)塊是根據(jù)時間順序生成的,區(qū)塊鏈網(wǎng)絡(luò)中的區(qū)塊的先后順序相當(dāng)于時間戳的效果,且每個區(qū)塊存儲有前一個區(qū)塊的索引,因此可以使得區(qū)塊鏈中的投票信息不可篡改,增強了投票結(jié)果的可信度。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明實施例可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明實施例可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明實施例是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明實施例進(jìn)行各種改動和變型而不脫離本申請的精神和范圍。這樣,倘若本發(fā)明實施例的這些修改和變型屬于本申請權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。