亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

區(qū)塊鏈投票記賬模式的記賬方法及系統(tǒng)、投票及記賬節(jié)點(diǎn)與流程

文檔序號(hào):11138233閱讀:294來源:國知局
區(qū)塊鏈投票記賬模式的記賬方法及系統(tǒng)、投票及記賬節(jié)點(diǎn)與制造工藝

本申請(qǐng)屬于交易記錄領(lǐng)域,特別涉及一種區(qū)塊鏈投票記賬模式下的記賬方法及系統(tǒng)、投票節(jié)點(diǎn)及記賬節(jié)點(diǎn)。



背景技術(shù):

在區(qū)塊鏈技術(shù)中,采用的是分布式賬本模式,即所有記賬節(jié)點(diǎn)本地都維護(hù)同一份賬本,交易在區(qū)塊鏈上廣播,所有記賬節(jié)點(diǎn)將接收到的交易按照相同的順序記錄賬本。

現(xiàn)有技術(shù)中,保證所有記賬節(jié)點(diǎn)中的賬本一致的方法主要為共識(shí)機(jī)制,而共識(shí)機(jī)制中常用的方法為投票記賬模式,投票記賬模式需要通過一系列交互以確保取得多數(shù)節(jié)點(diǎn)同意,按照同意的順序?qū)⒔灰子浫胭~本,節(jié)點(diǎn)在交互過程中都需要通過私鑰簽名、公鑰驗(yàn)證的方式進(jìn)行身份確認(rèn),私鑰/公鑰或是固化在邏輯里,或是固化在節(jié)點(diǎn)芯片里或是加密機(jī)里,如果一旦被人破解,整個(gè)投票系統(tǒng)將不再安全,如果經(jīng)常改變私鑰/公鑰對(duì),需要對(duì)所有節(jié)點(diǎn)進(jìn)行升級(jí),非常不方便。



技術(shù)實(shí)現(xiàn)要素:

本申請(qǐng)?zhí)峁┮环N區(qū)塊鏈投票記賬模式下的記賬方法及系統(tǒng)、記賬節(jié)點(diǎn)及投票節(jié)點(diǎn),用于解決現(xiàn)有技術(shù)中的區(qū)塊鏈投票記賬模式下的身份認(rèn)證所需私鑰/公鑰固化在投票節(jié)點(diǎn)的芯片里,使得私鑰/公鑰不易改變,一旦破解,使得整個(gè)投票系統(tǒng)不再安全的問題。

為了解決上述技術(shù)問題,本申請(qǐng)的一技術(shù)方案為提供一種從記賬節(jié)點(diǎn)側(cè)描述的區(qū)塊鏈投票記賬模式下的記賬方法,包括:將區(qū)塊發(fā)送給投票節(jié)點(diǎn),其中,所述區(qū)塊包括區(qū)塊頭及交易清單;

接收投票節(jié)點(diǎn)發(fā)送的投票結(jié)果,其中,所述投票結(jié)果包括區(qū)塊哈希簽名、本次有效的公鑰、區(qū)塊哈希新簽名;

搜索投票節(jié)點(diǎn)上次進(jìn)行有效投票的區(qū)塊哈希新簽名,以驗(yàn)證所述投票結(jié)果的有效性;以及

統(tǒng)計(jì)投票結(jié)果為有效的投票節(jié)點(diǎn)個(gè)數(shù),若統(tǒng)計(jì)的投票節(jié)點(diǎn)個(gè)數(shù)大于或等于預(yù)定閾值,則將所有有效的投票結(jié)果記入所述區(qū)塊頭中,將更新的區(qū)塊存入賬本,并將更新的區(qū)塊發(fā)送給所有其它記賬節(jié)點(diǎn)。

本申請(qǐng)另一技術(shù)方案為提供一種從投票節(jié)點(diǎn)側(cè)描述的區(qū)塊鏈投票記賬模式下的記賬方法,包括:

接收一記賬節(jié)點(diǎn)發(fā)送的區(qū)塊,其中,所述區(qū)塊包括區(qū)塊頭及交易清單;

對(duì)所述區(qū)塊進(jìn)行合法性驗(yàn)證,若驗(yàn)證通過則使用本次有效的私鑰對(duì)所述區(qū)塊的哈希值進(jìn)行簽名,形成區(qū)塊哈希簽名;產(chǎn)生下次有效的私鑰及公鑰;使用下次有效的私鑰對(duì)區(qū)塊的哈希值進(jìn)行簽名,形成區(qū)塊哈希新簽名;以及

將區(qū)塊哈希簽名、本次有效的公鑰及區(qū)塊哈希新簽名發(fā)送至所述記賬節(jié)點(diǎn)。

本申請(qǐng)?jiān)僖患夹g(shù)方案為提供一種區(qū)塊鏈投票記賬模式下的記賬節(jié)點(diǎn),包括:

發(fā)送模塊,用于將區(qū)塊發(fā)送給投票節(jié)點(diǎn),其中,所述區(qū)塊包括區(qū)塊頭及交易清單;

接收模塊,用于接收投票節(jié)點(diǎn)發(fā)送的投票結(jié)果,其中,所述投票結(jié)果包括區(qū)塊哈希簽名、本次有效的公鑰、區(qū)塊哈希新簽名;

驗(yàn)證模塊,用于搜索投票節(jié)點(diǎn)上次進(jìn)行有效投票的區(qū)塊哈希新簽名,以驗(yàn)證所述投票結(jié)果的有效性;以及

處理模塊,用于統(tǒng)計(jì)投票結(jié)果為有效的投票節(jié)點(diǎn)個(gè)數(shù),若統(tǒng)計(jì)的投票節(jié)點(diǎn)個(gè)數(shù)大于或等于預(yù)定閾值,則將所有有效的投票結(jié)果記入所述區(qū)塊頭中,將更新的區(qū)塊存入賬本,并將更新的區(qū)塊通過所述發(fā)送模塊發(fā)送給所有其它記賬節(jié)點(diǎn)。

本申請(qǐng)的又一技術(shù)方案為提供一種區(qū)塊鏈投票記賬模式下的投票節(jié)點(diǎn),包括:

接收模塊,用于接收一記賬節(jié)點(diǎn)發(fā)送的區(qū)塊,其中,所述區(qū)塊包括區(qū)塊頭及交易清單;

驗(yàn)證模塊,用于對(duì)所述區(qū)塊進(jìn)行合法性驗(yàn)證,若驗(yàn)證通過則啟動(dòng)第一簽名模塊、密鑰對(duì)產(chǎn)生模塊及第二簽名模塊;

第一簽名模塊,用于使用本次有效的私鑰對(duì)所述區(qū)塊的哈希值進(jìn)行簽名,形成區(qū)塊哈希簽名;

密鑰對(duì)產(chǎn)生模塊,用于產(chǎn)生下次有效的私鑰及公鑰;

第二簽名模塊,用于使用下次有效的私鑰對(duì)區(qū)塊的哈希值進(jìn)行簽名,形成區(qū)塊哈希新簽名;以及

發(fā)送模塊,用于將區(qū)塊哈希簽名、本次有效的公鑰及區(qū)塊哈希新簽名發(fā)送至所述記賬節(jié)點(diǎn)。

本申請(qǐng)最后一技術(shù)方案為提供一種區(qū)塊鏈投票記賬模式下的記賬系統(tǒng),包括多個(gè)上述技術(shù)方案中的記賬節(jié)點(diǎn)及多個(gè)上述技術(shù)方案中的投票節(jié)點(diǎn),其中之一記賬節(jié)點(diǎn)發(fā)送區(qū)塊時(shí),其它記賬節(jié)點(diǎn)無權(quán)發(fā)送區(qū)塊。

本申請(qǐng)中,記賬節(jié)點(diǎn)將區(qū)塊發(fā)送給投票節(jié)點(diǎn);投票節(jié)點(diǎn)接收到區(qū)塊后,動(dòng)態(tài)產(chǎn)生下次有效的私鑰及公鑰,使用本次有效的私鑰對(duì)所述區(qū)塊的哈希值進(jìn)行簽名,形成區(qū)塊哈希簽名,使用下次有效的私鑰對(duì)區(qū)塊的哈希值進(jìn)行簽名,形成區(qū)塊哈希新簽名,將區(qū)塊哈希簽名、本次有效的公鑰及區(qū)塊哈希新簽名發(fā)送至記賬節(jié)點(diǎn);記賬節(jié)點(diǎn)搜索投票節(jié)點(diǎn)上次進(jìn)行有效投票的區(qū)塊哈希新簽名,以驗(yàn)證投票結(jié)果的有效性;統(tǒng)計(jì)投票結(jié)果為有效的投票節(jié)點(diǎn)個(gè)數(shù),若統(tǒng)計(jì)的投票節(jié)點(diǎn)個(gè)數(shù)大于或等于預(yù)定閾值,則將所有有效的投票結(jié)果記入所述區(qū)塊頭中,將更新后的區(qū)塊存入賬本,并發(fā)送給所有其它記賬節(jié)點(diǎn)。本申請(qǐng)通過采用私鑰簽名的方式進(jìn)行投票,每次投票后作廢私鑰/公鑰對(duì),并重新生成新的私鑰/公鑰對(duì),使得私鑰及公鑰僅一次有效,防止密鑰被破解后用來進(jìn)行賬本攻擊,使得記賬的安全性得到很大提升。

附圖說明

為了更清楚地說明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請(qǐng)的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本申請(qǐng)實(shí)施例的從記賬節(jié)點(diǎn)側(cè)描述的區(qū)塊鏈投票記賬模式下的記賬方法流程圖;

圖2為本申請(qǐng)實(shí)施例的驗(yàn)證投票結(jié)果有效性的流程圖;

圖3為本申請(qǐng)實(shí)施例的從投票節(jié)點(diǎn)側(cè)描述的區(qū)塊鏈投票記賬模式下的記賬方法流程圖;

圖4為本申請(qǐng)實(shí)施例的記賬節(jié)點(diǎn)的結(jié)構(gòu)圖;

圖5為本申請(qǐng)實(shí)施例的投票節(jié)點(diǎn)的結(jié)構(gòu)圖;

圖6為本申請(qǐng)實(shí)施例的區(qū)塊鏈投票記賬模式下的記賬系統(tǒng)結(jié)構(gòu)圖;

圖7為本申請(qǐng)具體實(shí)施例的區(qū)塊鏈投票記賬模式下的記賬方法流程圖;

圖8為本申請(qǐng)具體實(shí)施例的記賬節(jié)點(diǎn)發(fā)送至投票節(jié)點(diǎn)的區(qū)塊示意圖;

圖9為本申請(qǐng)具體實(shí)施例的記賬節(jié)點(diǎn)更新后的區(qū)塊示意圖;

圖10為本申請(qǐng)具體實(shí)施例的記賬節(jié)點(diǎn)中賬本示意圖。

具體實(shí)施方式

為了使本申請(qǐng)的技術(shù)特點(diǎn)及效果更加明顯,下面結(jié)合附圖對(duì)本申請(qǐng)的技術(shù)方案做進(jìn)一步說明,本申請(qǐng)也可有其他不同的具體實(shí)例來加以說明或?qū)嵤?,任何本領(lǐng)域技術(shù)人員在權(quán)利要求范圍內(nèi)做的等同變換均屬于本申請(qǐng)的保護(hù)范疇。

在本說明書的描述中,參考術(shù)語“一個(gè)實(shí)施例”、“一個(gè)具體實(shí)施例”、“一些實(shí)施例”、“例如”、“示例”、“具體示例”或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本申請(qǐng)的至少一個(gè)實(shí)施例或示例中。在本說明書中,對(duì)上述術(shù)語的示意性表述不一定指的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任何的一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。各實(shí)施例中涉及的步驟順序用于示意性說明本申請(qǐng)的實(shí)施,其中的步驟順序不作限定,可根據(jù)需要作適當(dāng)調(diào)整。

本申請(qǐng)所述的記賬節(jié)點(diǎn)及投票節(jié)點(diǎn)為區(qū)塊鏈中的節(jié)點(diǎn),對(duì)應(yīng)的實(shí)體裝置可以為具有計(jì)算與存儲(chǔ)功能的個(gè)人計(jì)算機(jī)或服務(wù)器,甚至是具有一定計(jì)算和存儲(chǔ)能力的任何個(gè)人終端,例如平板電腦,手機(jī)等。具體實(shí)施時(shí),可將記賬節(jié)點(diǎn)及投票節(jié)點(diǎn)集成于同一實(shí)體裝置中,即實(shí)體裝置既具有投票功能也具有記賬功能。

如圖1所示,圖1為從記賬節(jié)點(diǎn)側(cè)描述的區(qū)塊鏈投票記賬模式下的記賬方法流程圖。本申請(qǐng)通過采用私鑰簽名的方式進(jìn)行投票,每次投票后作廢私鑰/公鑰對(duì),并重新生成新的私鑰/公鑰對(duì),使得私鑰及公鑰僅一次有效,防止密鑰被破解后用來進(jìn)行賬本攻擊,使得記賬的安全性得到很大提升。

具體的,記賬節(jié)點(diǎn)側(cè)描述的區(qū)塊鏈投票記賬模式下的記賬方法包括:

步驟101:將區(qū)塊發(fā)送給投票節(jié)點(diǎn),其中,所述區(qū)塊包括區(qū)塊頭及交易清單。

詳細(xì)的說,區(qū)塊頭包括投票信息存儲(chǔ)區(qū)域及其他信息存儲(chǔ)區(qū)域,其中,投票信息存儲(chǔ)區(qū)域處為空,如圖8所示,待根據(jù)投票節(jié)點(diǎn)的投票結(jié)果來填充,其他信息存儲(chǔ)區(qū)域存儲(chǔ)有控制信息、驗(yàn)證信息、及區(qū)塊的哈希值(區(qū)塊的哈希值也可由投票節(jié)點(diǎn)計(jì)算)等,本申請(qǐng)對(duì)此不作限定。

區(qū)塊中的交易清單由發(fā)送區(qū)塊的記賬節(jié)點(diǎn)收集,如為一定時(shí)間內(nèi)所涉及到的交易,具體如為存款交易請(qǐng)求、取款交易請(qǐng)求及查詢交易請(qǐng)求等。

具體實(shí)施時(shí),一記賬節(jié)點(diǎn)在發(fā)送區(qū)塊時(shí),其他記賬節(jié)點(diǎn)不具有權(quán)限發(fā)送區(qū)塊,具體由哪個(gè)記賬節(jié)點(diǎn)發(fā)送區(qū)塊可通過現(xiàn)有技術(shù)的算法確定,本申請(qǐng)對(duì)此不作限定。

步驟102:接收所述投票節(jié)點(diǎn)發(fā)送的投票結(jié)果,其中,所述投票結(jié)果包括區(qū)塊哈希簽名、本次有效的公鑰及區(qū)塊哈希新簽名。

其中,區(qū)塊哈希簽名是由所述投票節(jié)點(diǎn)本次有效的私鑰對(duì)所述區(qū)塊的哈希值進(jìn)行簽名得到的,區(qū)塊哈希新簽名是由所述投票節(jié)點(diǎn)產(chǎn)生的下次有效的私鑰對(duì)所述區(qū)塊的哈希值進(jìn)行簽名得到的,本次有效的公鑰為投票節(jié)點(diǎn)的本次有效的公鑰。

步驟103:搜索投票節(jié)點(diǎn)上次進(jìn)行有效投票的區(qū)塊哈希新簽名,以驗(yàn)證所述投票結(jié)果的有效性。投票結(jié)果有效則說明得到了投票節(jié)點(diǎn)的支持。

步驟104:統(tǒng)計(jì)投票結(jié)果為有效的投票節(jié)點(diǎn)個(gè)數(shù),若統(tǒng)計(jì)的投票節(jié)點(diǎn)個(gè)數(shù)大于或等于預(yù)定閾值(如為投票節(jié)點(diǎn)總數(shù)的2/3),則將所有有效的投票結(jié)果記入所述區(qū)塊頭中,將更新的區(qū)塊存入賬本,并將更新的區(qū)塊發(fā)送給所有其它記賬節(jié)點(diǎn),以使其它記賬節(jié)點(diǎn)在其賬本中進(jìn)行同步記錄。

實(shí)施時(shí),若投票結(jié)果為有效的投票節(jié)點(diǎn)個(gè)數(shù)小于預(yù)定閾值,則做異常處理。

更新的區(qū)塊如圖9所示,所有有效的投票結(jié)果均存儲(chǔ)在區(qū)塊頭中,這些投票結(jié)果對(duì)應(yīng)相應(yīng)投票節(jié)點(diǎn)的投票,如區(qū)塊n哈希簽名m、公鑰m及區(qū)塊n哈希新簽名m對(duì)應(yīng)第m個(gè)投票節(jié)點(diǎn)的投票。

實(shí)施時(shí),記賬節(jié)點(diǎn)賬本除了記錄有當(dāng)前更新的區(qū)塊外,還記錄有之前更新的區(qū)塊,賬本存儲(chǔ)的內(nèi)容如圖10所示。

本申請(qǐng)進(jìn)一步實(shí)施例中,上述步驟103中搜索投票節(jié)點(diǎn)上次進(jìn)行有效投票的區(qū)塊哈希新簽名的過程包括:從賬本中搜索投票節(jié)點(diǎn)上次進(jìn)行有效投票的投票結(jié)果;從搜索到的投票結(jié)果中提取區(qū)塊哈希新簽名。如圖9所示,以投票節(jié)點(diǎn)m、本次投票為第n次投票為例,投票節(jié)點(diǎn)m上次(即n-1次)進(jìn)行有效投票的投票結(jié)果為sign(skm_p-1,hash(block)),Pkm_p-1,sign(skm_p,hash(block)),從該投票結(jié)果中提取出上次進(jìn)行有效投票的區(qū)塊n-1哈希新簽名m sign(skm_p,hash(block))。

本申請(qǐng)進(jìn)一步實(shí)施例中,如圖2所示,對(duì)于任意一投票節(jié)點(diǎn),上述步驟103中驗(yàn)證所述投票結(jié)果的有效性包括:

步驟201:使用本次有效公鑰對(duì)上次進(jìn)行有效投票的區(qū)塊哈希新簽名進(jìn)行驗(yàn)證,如果驗(yàn)證通過,則本次有效公鑰合法有效。

步驟202:使用本次有效公鑰對(duì)所述投票節(jié)點(diǎn)發(fā)送的區(qū)塊哈希簽名進(jìn)行驗(yàn)證,如果驗(yàn)證通過,則所述投票節(jié)點(diǎn)發(fā)送的區(qū)塊哈希簽名合法有效。

步驟203:若步驟201及步驟202的驗(yàn)證結(jié)果都為合法有效,則所述投票節(jié)點(diǎn)的投票結(jié)果有效。

本申請(qǐng)進(jìn)一步實(shí)施例中,對(duì)于不是產(chǎn)生區(qū)塊的記賬節(jié)點(diǎn)而言,接收到更新的區(qū)塊后還包括驗(yàn)證更新的區(qū)塊中投票結(jié)果的有效性,需分別對(duì)投票節(jié)點(diǎn)的投票結(jié)果進(jìn)行驗(yàn)證,具體驗(yàn)證過程參見圖2所示,本申請(qǐng)?jiān)诖瞬辉儋樖觥?/p>

如圖3所示,圖3為本申請(qǐng)從投票節(jié)點(diǎn)側(cè)描述的區(qū)塊鏈投票記賬模式下的記賬方法。投票節(jié)點(diǎn)能夠每次投票時(shí)產(chǎn)生新的私鑰/公鑰對(duì),使得私鑰及公鑰僅一次有效,能夠防止密鑰被破解后用來進(jìn)行賬本攻擊,使得記賬的安全性得到很大提升。具體的包括:

步驟301:接收記賬節(jié)點(diǎn)發(fā)送的區(qū)塊,其中,所述區(qū)塊包括區(qū)塊頭及交易清單。

步驟302:對(duì)所述區(qū)塊進(jìn)行合法性驗(yàn)證,若驗(yàn)證通過則進(jìn)行步驟303。

步驟303:使用本次有效的私鑰對(duì)所述區(qū)塊的哈希值進(jìn)行簽名,形成區(qū)塊哈希簽名;產(chǎn)生下次有效的私鑰及公鑰;使用下次有效的私鑰對(duì)區(qū)塊的哈希值進(jìn)行簽名,形成區(qū)塊哈希新簽名。

步驟304:將區(qū)塊哈希簽名、本次有效的公鑰、區(qū)塊哈希新簽名發(fā)送至所述記賬節(jié)點(diǎn)(所述記賬節(jié)點(diǎn)為發(fā)送區(qū)塊的節(jié)點(diǎn))。

本申請(qǐng)中,計(jì)算哈希值的目的是為了壓縮區(qū)塊的長(zhǎng)度,作為后續(xù)私鑰簽名的數(shù)據(jù)基礎(chǔ)(如果數(shù)據(jù)太長(zhǎng),進(jìn)行私鑰簽名技術(shù)上代價(jià)太大,不便于實(shí)施)。區(qū)塊哈希值可由記賬節(jié)點(diǎn)計(jì)算,也可由投票節(jié)點(diǎn)根據(jù)區(qū)塊內(nèi)容進(jìn)行計(jì)算。區(qū)塊哈希值與記賬節(jié)點(diǎn)發(fā)送的區(qū)塊內(nèi)容相對(duì)應(yīng),區(qū)塊中的內(nèi)容改變,則對(duì)應(yīng)的哈希值也跟著發(fā)生改變。計(jì)算區(qū)塊哈希值的方法可采用SM3HASH加密算法,本申請(qǐng)對(duì)其具體使用方法不做限定。

本申請(qǐng)一具體實(shí)施例中,上述步驟302對(duì)所述區(qū)塊進(jìn)行合法性驗(yàn)證包括:驗(yàn)證所述區(qū)塊的格式是否正確;驗(yàn)證所述交易清單的格式是否正確;以及驗(yàn)證所述交易清單內(nèi)容是否正確。

上述圖1及圖3所示方法配合使用,能夠保證投票節(jié)點(diǎn)中的私鑰/公鑰動(dòng)態(tài)更新,防止私鑰被破解后安全出現(xiàn)問題。

基于同一發(fā)明構(gòu)思,本申請(qǐng)實(shí)施例中還提供了一種區(qū)塊鏈投票記賬模式下的記賬節(jié)點(diǎn)及投票節(jié)點(diǎn)。記賬節(jié)點(diǎn)及投票節(jié)點(diǎn)解決問題的原理與方法相似,因此,節(jié)點(diǎn)的實(shí)施可參見方法的實(shí)施,重復(fù)之處不再贅述。

如圖4所示,記賬節(jié)點(diǎn)包括:發(fā)送模塊401,用于將區(qū)塊發(fā)送給投票節(jié)點(diǎn),其中,所述區(qū)塊包括區(qū)塊頭及交易清單。

接收模塊402,用于接收投票節(jié)點(diǎn)發(fā)送的投票結(jié)果,其中,所述投票結(jié)果包括區(qū)塊哈希簽名、本次有效的公鑰、區(qū)塊哈希新簽名。

驗(yàn)證模塊403,用于搜索投票節(jié)點(diǎn)上次進(jìn)行有效投票的區(qū)塊哈希新簽名,以驗(yàn)證所述投票結(jié)果的有效性。以及

處理模塊404,用于統(tǒng)計(jì)投票結(jié)果為有效的投票節(jié)點(diǎn)個(gè)數(shù),若統(tǒng)計(jì)的投票節(jié)點(diǎn)個(gè)數(shù)大于或等于預(yù)定閾值,則將所有有效的投票結(jié)果記入所述區(qū)塊頭中,將更新后的區(qū)塊存入賬本,并通過所述發(fā)送模塊將更新后的區(qū)塊發(fā)送給所有其它記賬節(jié)點(diǎn)。

進(jìn)一步實(shí)施例中,所述驗(yàn)證模塊403搜索投票節(jié)點(diǎn)上次進(jìn)行有效投票的區(qū)塊哈希新簽名的過程包括:

從賬本中搜索投票節(jié)點(diǎn)上次進(jìn)行有效投票的投票結(jié)果;

從搜索到的投票結(jié)果中提取區(qū)塊哈希新簽名。

所述驗(yàn)證模塊403驗(yàn)證所述投票結(jié)果的有效性的過程包括:

對(duì)于任意一投票節(jié)點(diǎn),使用本次有效公鑰對(duì)上次進(jìn)行有效投票的區(qū)塊哈希新簽名進(jìn)行驗(yàn)證,如果驗(yàn)證通過,則本次有效公鑰合法有效;

使用本次有效公鑰對(duì)所述投票節(jié)點(diǎn)發(fā)送的區(qū)塊哈希簽名進(jìn)行驗(yàn)證,如果驗(yàn)證通過,則所述投票節(jié)點(diǎn)發(fā)送的區(qū)塊哈希簽名合法有效;

若兩次驗(yàn)證結(jié)果都為合法有效,則所述投票節(jié)點(diǎn)的投票結(jié)果有效。

如圖5所示,區(qū)塊鏈投票記賬模式下的投票節(jié)點(diǎn)包括:

接收模塊501,用于接收一記賬節(jié)點(diǎn)發(fā)送的區(qū)塊,其中,所述區(qū)塊包括區(qū)塊頭及交易清單。

驗(yàn)證模塊502,用于對(duì)所述區(qū)塊進(jìn)行合法性驗(yàn)證,若驗(yàn)證通過則啟動(dòng)第一簽名模塊503、密鑰對(duì)產(chǎn)生模塊504及第二簽名模塊505。

第一簽名模塊503,用于使用本次有效的私鑰對(duì)所述區(qū)塊的哈希值進(jìn)行簽名,形成區(qū)塊哈希簽名。

密鑰對(duì)產(chǎn)生模塊504,用于產(chǎn)生下次有效的私鑰及公鑰。

第二簽名模塊505,用于使用下次有效的私鑰對(duì)區(qū)塊的哈希值進(jìn)行簽名,形成區(qū)塊哈希新簽名。以及

發(fā)送模塊506,用于將區(qū)塊哈希簽名、本次有效的公鑰及區(qū)塊哈希新簽名發(fā)送至所述記賬節(jié)點(diǎn)。

進(jìn)一步的,驗(yàn)證模塊502對(duì)所述區(qū)塊進(jìn)行合法性驗(yàn)證包括:驗(yàn)證所述區(qū)塊的數(shù)據(jù)格式是否正確;驗(yàn)證所述交易清單的格式是否正確;以及驗(yàn)證所述交易清單中的內(nèi)容是否正確。

本申請(qǐng)圖4所示記賬節(jié)點(diǎn)及圖5所示投票節(jié)點(diǎn)配合使用,通過采用私鑰簽名的方式進(jìn)行投票,每次投票后作廢私鑰/公鑰對(duì),并重新生成新的私鑰/公鑰對(duì),使得私鑰及公鑰僅一次有效,防止密鑰被破解后用來進(jìn)行賬本攻擊,使得記賬的安全性得到很大提升。

如圖6所示,圖6為本申請(qǐng)實(shí)施例所述區(qū)塊鏈投票記賬模式下的記賬系統(tǒng)。該記賬系統(tǒng)包括:多個(gè)記賬節(jié)點(diǎn)及多個(gè)投票節(jié)點(diǎn),其中之一記賬節(jié)點(diǎn)發(fā)送區(qū)塊時(shí),其它記賬節(jié)點(diǎn)無法發(fā)送區(qū)塊。

具體的,記賬節(jié)點(diǎn)用于將區(qū)塊發(fā)送給投票節(jié)點(diǎn),其中,所述區(qū)塊包括區(qū)塊頭及交易清單;接收投票節(jié)點(diǎn)發(fā)送的投票結(jié)果,其中,所述投票結(jié)果包括區(qū)塊哈希簽名、本次有效的公鑰、區(qū)塊哈希新簽名;搜索投票節(jié)點(diǎn)上次進(jìn)行有效投票的區(qū)塊哈希新簽名,以驗(yàn)證所述投票結(jié)果的有效性;以及統(tǒng)計(jì)投票結(jié)果為有效的投票節(jié)點(diǎn)個(gè)數(shù),若統(tǒng)計(jì)的投票節(jié)點(diǎn)個(gè)數(shù)大于或等于預(yù)定閾值,則將所有有效的投票結(jié)果記入所述區(qū)塊頭中,將更新的區(qū)塊存入賬本,并將更新的區(qū)塊發(fā)送給所有其它記賬節(jié)點(diǎn)。

投票節(jié)點(diǎn)用于接收一記賬節(jié)點(diǎn)發(fā)送的區(qū)塊,其中,所述區(qū)塊包括區(qū)塊頭及交易清單;對(duì)所述區(qū)塊進(jìn)行合法性驗(yàn)證,若驗(yàn)證通過則使用本次有效的私鑰對(duì)所述區(qū)塊的哈希值進(jìn)行簽名,形成區(qū)塊哈希簽名;產(chǎn)生下次有效的私鑰及公鑰;使用下次有效的私鑰對(duì)區(qū)塊的哈希值進(jìn)行簽名,形成區(qū)塊哈希新簽名;以及

將區(qū)塊哈希簽名、本次有效的公鑰及區(qū)塊哈希新簽名發(fā)送至所述記賬節(jié)點(diǎn)。

本申請(qǐng)系統(tǒng)進(jìn)一步實(shí)施例中,若所述記賬節(jié)點(diǎn)收到的新的區(qū)塊的分叉處在預(yù)定個(gè)區(qū)塊(如100個(gè))之前,則所述記賬節(jié)點(diǎn)拒絕接收新的區(qū)塊。本實(shí)施例能夠確保私鑰被破解后,再從破解處開始偽造的區(qū)塊將不被承認(rèn)。

為了更清楚說明本申請(qǐng)技術(shù)方案,下面以一具體實(shí)施例進(jìn)行說明。假設(shè)區(qū)塊鏈投票記賬模式下的記賬系統(tǒng)包括m個(gè)投票節(jié)點(diǎn),包括M個(gè)記賬節(jié)點(diǎn),當(dāng)前具有發(fā)送區(qū)塊權(quán)的記賬節(jié)點(diǎn)為第M個(gè)記賬節(jié)點(diǎn),發(fā)送的區(qū)塊為區(qū)塊n(如圖8所示)。具體的,如圖7所示,區(qū)塊鏈投票記賬模式下的記賬方法包括:

步驟701:記賬節(jié)點(diǎn)M發(fā)送區(qū)塊n至所有投票節(jié)點(diǎn)。

步驟702:各投票節(jié)點(diǎn)接收區(qū)塊n,并對(duì)區(qū)塊n進(jìn)行合法性驗(yàn)證,若驗(yàn)證通過則生成投票結(jié)果,將投票結(jié)果發(fā)送至記賬節(jié)點(diǎn)M。

下面以投票節(jié)點(diǎn)m為例說明生成投票結(jié)果的詳細(xì)過程,其中,投票節(jié)點(diǎn)m本次有效私鑰為skm_p,本次有效公鑰為Pkm_p:

利用skm_p對(duì)區(qū)塊n的哈希值進(jìn)行簽名,得到區(qū)塊n的哈希簽名m;

生成下次有效的私鑰skm_p+1及公鑰Pkm_p+1;

利用下次有效的私鑰skm_p+1對(duì)區(qū)塊n的哈希值進(jìn)行簽名,得到區(qū)塊n的哈希新簽名m;

將區(qū)塊n的哈希簽名m、本次有效公鑰為Pkm_p及區(qū)塊n的哈希新簽名m組成投票結(jié)果發(fā)送至記賬節(jié)點(diǎn)M。

步驟703:記賬節(jié)點(diǎn)M接收投票節(jié)點(diǎn)發(fā)送的投票結(jié)果。

步驟704:記賬節(jié)點(diǎn)M搜索投票節(jié)點(diǎn)上次進(jìn)行有效投票的區(qū)塊哈希新簽名,以驗(yàn)證投票結(jié)果的有效性。

下面仍以投票節(jié)點(diǎn)m為例對(duì)步驟704進(jìn)行詳細(xì)說明:

通過查找圖10所示賬本,得到投票節(jié)點(diǎn)m上次進(jìn)行有效投票的區(qū)塊n-1哈希新簽名m為sign(skm_p,hash(block)),利用Pkm_p對(duì)區(qū)塊n-1哈希新簽名m進(jìn)行驗(yàn)證,若果驗(yàn)證通過,則Pkm_p合法有效。利用Pkm_p對(duì)區(qū)塊n哈希簽名m進(jìn)行驗(yàn)證,如果驗(yàn)證通過,則區(qū)塊n哈希簽名m合法有效;若兩次驗(yàn)證結(jié)果都為合法有效,則所述投票節(jié)點(diǎn)m的投票結(jié)果有效。

對(duì)其他投票節(jié)點(diǎn)的投票結(jié)果驗(yàn)證過程同投票節(jié)點(diǎn)m,此處不再贅述。

步驟705:統(tǒng)計(jì)投票結(jié)果為有效的投票節(jié)點(diǎn)個(gè)數(shù),若統(tǒng)計(jì)的投票節(jié)點(diǎn)個(gè)數(shù)大于或等于預(yù)定閾值,則將所有有效的投票結(jié)果記入所述區(qū)塊頭中,將更新后的區(qū)塊存入賬本,并將更新后的賬本發(fā)送給所有其它記賬節(jié)點(diǎn)。

如圖9所示,所有投票節(jié)點(diǎn)的投票結(jié)果均有效,則將m個(gè)投票節(jié)點(diǎn)的投票結(jié)果均放到區(qū)塊n的區(qū)塊頭中。更新后的賬本如圖10所示。

本申請(qǐng)通過采用私鑰簽名的方式進(jìn)行投票,每次投票后作廢私鑰/公鑰對(duì),并重新生成新的私鑰/公鑰對(duì),使得私鑰及公鑰僅一次有效,防止密鑰被破解后用來進(jìn)行賬本攻擊,使得記賬的安全性得到很大提升。

本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。

本申請(qǐng)是參照根據(jù)本申請(qǐng)實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。

這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。

這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。

以上所述僅用于說明本申請(qǐng)的技術(shù)方案,任何本領(lǐng)域普通技術(shù)人員均可在不違背本申請(qǐng)的精神及范疇下,對(duì)上述實(shí)施例進(jìn)行修飾與改變。因此,本申請(qǐng)的權(quán)利保護(hù)范圍應(yīng)視權(quán)利要求范圍為準(zhǔn)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1