張銘泉,楊 甜,朵春紅
華北電力大學(xué)(保定)計(jì)算機(jī)系,河北 保定 071003
隨著新能源技術(shù)蓬勃發(fā)展,國家電網(wǎng)有限公司對建設(shè)配電系統(tǒng)的投入力度不斷加大,在保障居民用電需求、改善配電薄弱設(shè)施、提高供電安全性水平以及解決大規(guī)模終端接入等方面效果顯著[1]。伴隨人工智能、邊緣計(jì)算等技術(shù)賦能物聯(lián)網(wǎng),配電網(wǎng)正逐步向配電物聯(lián)網(wǎng)轉(zhuǎn)型[2]。配電物聯(lián)網(wǎng)是智能電網(wǎng)結(jié)合物聯(lián)網(wǎng)技術(shù)形成的一種新型電力系統(tǒng)運(yùn)行模式,可劃分為“云管邊端”四大核心層級(jí)[3]?!霸啤笔菍?shí)現(xiàn)海量終端設(shè)備即插即用等業(yè)務(wù)需求的云主站平臺(tái);“管”是完成信息高效傳輸?shù)耐ǖ溃弧斑叀笔菂R集和處理數(shù)據(jù)的開放式平臺(tái);“端”是感知狀態(tài)并控制執(zhí)行的終端單元[4]?,F(xiàn)行配電物聯(lián)網(wǎng)系統(tǒng)本質(zhì)上是一種集中式的數(shù)據(jù)處理和存儲(chǔ)模式,隨著海量低壓智能終端的接入,其安全問題日益突顯[5]。例如,在業(yè)務(wù)請求過程中系統(tǒng)中心節(jié)點(diǎn)故障,或中心節(jié)點(diǎn)數(shù)據(jù)被泄露篡改都可能會(huì)給國民經(jīng)濟(jì)甚至國家安全造成重大損失。其次,當(dāng)前電網(wǎng)系統(tǒng)信息交互頻繁,攻擊者可能會(huì)截獲某些設(shè)備的電力數(shù)據(jù)并偽裝成合法終端不斷向系統(tǒng)發(fā)送處理請求,增加系統(tǒng)負(fù)擔(dān),使其無法正常運(yùn)行。除此之外,還存在中間人攻擊、重放攻擊、內(nèi)部攻擊等一系列網(wǎng)絡(luò)攻擊問題[6]。身份認(rèn)證技術(shù)可以很好地解決上述問題,但基于公鑰基礎(chǔ)設(shè)施(public key infrastructure,PKI)的傳統(tǒng)認(rèn)證方式依賴于第三方可信機(jī)構(gòu),且認(rèn)證過程需頻繁進(jìn)行證書交換,導(dǎo)致認(rèn)證效率低、安全性差。并且終端設(shè)備數(shù)量多、分布廣,使用PKI認(rèn)證會(huì)導(dǎo)致中心節(jié)點(diǎn)流量過大引起網(wǎng)絡(luò)延遲。因此,傳統(tǒng)PKI認(rèn)證方式無法滿足配電系統(tǒng)對時(shí)效性和安全性的需求[7]。區(qū)塊鏈?zhǔn)且环N將智能合約、共識(shí)機(jī)制和加密算法等深度融合的分布式存儲(chǔ)技術(shù),可有效解決傳統(tǒng)認(rèn)證方式擴(kuò)展性差、中心節(jié)點(diǎn)不可靠等問題[8]。
本文針對配電物聯(lián)網(wǎng)規(guī)模龐大等特點(diǎn),基于區(qū)塊鏈共識(shí)機(jī)制設(shè)計(jì)一種分布式認(rèn)證方法,實(shí)現(xiàn)終端設(shè)備安全接入。
隨著大規(guī)模電力設(shè)備的建設(shè)和入網(wǎng),電力系統(tǒng)利用區(qū)塊鏈分布式特性進(jìn)行身份認(rèn)證成為未來發(fā)展趨勢之一。賴業(yè)寧等[9]基于區(qū)塊鏈和哈希表提出的分布式方案,用來驗(yàn)證電網(wǎng)安全穩(wěn)定控制終端,保障通信過程安全高效。Wang等[10]結(jié)合區(qū)塊鏈、橢圓曲線密碼、動(dòng)態(tài)加入退出機(jī)制和批量驗(yàn)證,為智能電表提出一種高效、可靠的認(rèn)證協(xié)議。Li等[11]為智能電子設(shè)備設(shè)計(jì)的身份認(rèn)證方法,將哈希鏈用作認(rèn)證密碼,引入更新機(jī)制實(shí)現(xiàn)輕量級(jí)認(rèn)證。張利華等[12]提出基于區(qū)塊鏈的微電網(wǎng)認(rèn)證技術(shù),通過零知識(shí)證明認(rèn)證新節(jié)點(diǎn)身份,使用瑞波共識(shí)協(xié)議實(shí)現(xiàn)節(jié)點(diǎn)共識(shí)。陳洶等[13]基于聯(lián)盟鏈提出安全穩(wěn)定控制系統(tǒng)認(rèn)證方案,業(yè)務(wù)傳輸前對設(shè)備實(shí)行輕量級(jí)認(rèn)證,保證系統(tǒng)通信安全。梅文明等[14]提出的分布式新能源安全接入方案,使用區(qū)塊鏈技術(shù)構(gòu)建身份認(rèn)證模型,通過智能合約將合法終端接入系統(tǒng)。Zhong等[15]提出智能電網(wǎng)分布式認(rèn)證協(xié)議,使用智能合約實(shí)現(xiàn)終端身份認(rèn)證及資源的通信授權(quán)功能。Wu等[16]提出電力終端跨域認(rèn)證模型,可與原有身份認(rèn)證系統(tǒng)兼容,但主從鏈通信會(huì)占用較多鏈路資源。劉期烈等[17]基于區(qū)塊鏈提出一種V2G匿名身份認(rèn)證模型,實(shí)現(xiàn)電動(dòng)汽車與充電站、數(shù)據(jù)中心三者間的相互認(rèn)證。Xu等[18]提出基于區(qū)塊鏈的車聯(lián)網(wǎng)系統(tǒng)認(rèn)證架構(gòu),路邊單元RSU根據(jù)共識(shí)算法驗(yàn)證車輛身份,實(shí)現(xiàn)車輛之間信息交換和共享。
以上認(rèn)證方法通過區(qū)塊鏈技術(shù)可有效避免傳統(tǒng)方式存在的單點(diǎn)化風(fēng)險(xiǎn),但沒有考慮共識(shí)效率問題。PBFT是解決分布式系統(tǒng)一致性問題的常用算法,但由于其可擴(kuò)展性差、多節(jié)點(diǎn)共識(shí)效率低、主節(jié)點(diǎn)選取簡單等問題在現(xiàn)實(shí)應(yīng)用中受限。因此,研究人員對PBFT進(jìn)行各種改進(jìn)和創(chuàng)新。Yang等[19]提出的NBFT使用哈希算法將節(jié)點(diǎn)分組,使全局共識(shí)變成分層次多中心共識(shí),減少通信次數(shù)。Li等[20]提出可擴(kuò)展多層共識(shí)機(jī)制,將節(jié)點(diǎn)分層并限制組內(nèi)通信,降低原有單層PBFT的通信復(fù)雜度。但以上兩種方法通過分層降低通信開銷要以犧牲一定的安全性為代價(jià)。Wu等[21]結(jié)合PBFT和PoS提出一種混合共識(shí)算法,通過可驗(yàn)證加密排序方式將共識(shí)節(jié)點(diǎn)數(shù)量減少到恒定值,但引入PoS會(huì)影響系統(tǒng)的分布式性能。Zhang等[22]提出基于量化角色的拜占庭共識(shí)算法,計(jì)算節(jié)點(diǎn)可靠性評估分?jǐn)?shù),選擇高安全性節(jié)點(diǎn)共識(shí),但容易使認(rèn)證權(quán)集中在少數(shù)節(jié)點(diǎn)手中。伍星等[23]提出的Q-PBFT算法根據(jù)QoS值組建候選共識(shí)集,將PBFT共識(shí)協(xié)議優(yōu)化為兩個(gè)階段,但其獎(jiǎng)懲機(jī)制有待完善。Tang等[24]提出的tPBFT引入信任評分機(jī)制,簡化PBFT預(yù)準(zhǔn)備階段,在回復(fù)階段實(shí)現(xiàn)哈希事務(wù)列表驗(yàn)證。上述幾種方法通過減少共識(shí)節(jié)點(diǎn)數(shù)量甚至簡化一致性過程來降低交互開銷,但其選取主節(jié)點(diǎn)的方式不夠安全,若主節(jié)點(diǎn)接連被攻擊要頻繁進(jìn)行視圖切換,嚴(yán)重影響共識(shí)效率,威脅系統(tǒng)安全。Li等[25]提出可伸縮的層次拜占庭容錯(cuò),算法中設(shè)置主節(jié)點(diǎn)選擇和彈劾機(jī)制,確保主節(jié)點(diǎn)安全。Zheng等[26]將C4.5算法與PBFT相結(jié)合,利用決策樹對節(jié)點(diǎn)信任度進(jìn)行評估,引入積分投票機(jī)制確定領(lǐng)導(dǎo)節(jié)點(diǎn)。但這兩種方法對大規(guī)模節(jié)點(diǎn)系統(tǒng)來說認(rèn)證效率較低。
基于以上研究發(fā)現(xiàn),現(xiàn)有采用區(qū)塊鏈技術(shù)的身份認(rèn)證系統(tǒng)主要是通過PBFT算法實(shí)現(xiàn)的,但傳統(tǒng)PBFT算法要求所有節(jié)點(diǎn)參與共識(shí),導(dǎo)致系統(tǒng)共識(shí)效率急劇下降。上述提到的PBFT改進(jìn)方法,主要存在降低通信開銷以系統(tǒng)安全為代價(jià)、選取共識(shí)節(jié)點(diǎn)的獎(jiǎng)勵(lì)機(jī)制不完善、系統(tǒng)分布式性能下降、主節(jié)點(diǎn)選舉過程不夠安全、仍無法滿足大規(guī)模系統(tǒng)對認(rèn)證效率的現(xiàn)實(shí)需求等問題。
鑒于以上問題,為實(shí)現(xiàn)配電物聯(lián)網(wǎng)大規(guī)模環(huán)境下終端設(shè)備接入過程安全且高效,本文從共識(shí)規(guī)模、主節(jié)點(diǎn)安全以及一致性協(xié)議三方面對PBFT算法進(jìn)行改進(jìn),形成一種配電物聯(lián)網(wǎng)終端共識(shí)算法,既能保證共識(shí)結(jié)果安全可靠,又能大大提升終端認(rèn)證效率。主要工作如下:(1)引入終端權(quán)重,根據(jù)權(quán)重選擇候選節(jié)點(diǎn),從候選節(jié)點(diǎn)中隨機(jī)抽取認(rèn)證節(jié)點(diǎn),既能提升節(jié)點(diǎn)偽造成本又能避免認(rèn)證權(quán)落在少數(shù)節(jié)點(diǎn)手中影響系統(tǒng)分布式性能;(2)引入VRF抽簽算法,通過VRF從認(rèn)證組中確定主節(jié)點(diǎn),由于VRF可本地抽簽,攻擊者無法提前得知主節(jié)點(diǎn),有效降低視圖切換浪費(fèi)的時(shí)間資源;(3)根據(jù)配電物聯(lián)網(wǎng)實(shí)際應(yīng)用場景簡化PBFT算法的一致性協(xié)議,減少一次全網(wǎng)廣播,優(yōu)化回復(fù)階段,降低網(wǎng)絡(luò)通信開銷。
實(shí)用拜占庭容錯(cuò)算法(practical Byzantine fault tolerance,PBFT)主要包含客戶端、主節(jié)點(diǎn)、從節(jié)點(diǎn)三種角色,分為請求、預(yù)準(zhǔn)備、準(zhǔn)備、提交和回復(fù)五個(gè)步驟。假設(shè)系統(tǒng)節(jié)點(diǎn)總數(shù)為n,其中惡意節(jié)點(diǎn)數(shù)為F,正常節(jié)點(diǎn)數(shù)為n-F。F個(gè)惡意節(jié)點(diǎn)可能不返回任何消息,也可能返回錯(cuò)誤消息。因此,當(dāng)收到n-F個(gè)消息時(shí)系統(tǒng)就要做出判斷,但節(jié)點(diǎn)可能會(huì)出現(xiàn)延遲或宕機(jī)等情況,導(dǎo)致沒返 回消息的F個(gè)節(jié)點(diǎn)可能全是正常節(jié)點(diǎn),而回復(fù)的n-F個(gè)節(jié)點(diǎn)中有F個(gè)惡意節(jié)點(diǎn)返回的錯(cuò)誤信息。為達(dá)成共識(shí),要保證返回消息的正常節(jié)點(diǎn)數(shù)量大于惡意節(jié)點(diǎn)數(shù)量,即n-F-F>F,且節(jié)點(diǎn)個(gè)數(shù)必須為整數(shù),故n≥3F+1,也就是說規(guī)模為n的系統(tǒng)能容納F個(gè)惡意節(jié)點(diǎn),即PBFT算法具有(n-1)/3的容錯(cuò)性。同理,在最壞情況下,某一節(jié)點(diǎn)先收到F個(gè)惡意消息時(shí),想要正常進(jìn)入下一階段至少要再收到F+1個(gè)正確信息,即至少收到2F+1個(gè)信息才能進(jìn)入下一階段。PBFT工作流程如圖1所示。
圖1 PBFT流程圖Fig.1 PBFT flow chart
請求階段:客戶端向主節(jié)點(diǎn)發(fā)送請求信息。
預(yù)準(zhǔn)備階段:主節(jié)點(diǎn)接收請求并分配編號(hào),生成預(yù)準(zhǔn)備消息,廣播至所有從節(jié)點(diǎn)。
準(zhǔn)備階段:從節(jié)點(diǎn)檢查預(yù)準(zhǔn)備消息,若認(rèn)同消息,則生成準(zhǔn)備消息并向所有節(jié)點(diǎn)廣播,當(dāng)存在2F+1個(gè)一致的準(zhǔn)備消息時(shí)進(jìn)入提交階段。
提交階段:所有節(jié)點(diǎn)廣播一條提交消息并執(zhí)行事務(wù)列表中的請求,當(dāng)節(jié)點(diǎn)收集到2F+1個(gè)提交信息后,生成新區(qū)塊。
回復(fù)階段:節(jié)點(diǎn)將響應(yīng)結(jié)果返回給客戶端??蛻舳耸盏紽+1個(gè)相同響應(yīng),表明至少有一個(gè)正確消息返回,節(jié)點(diǎn)間達(dá)成共識(shí)。
由于PBFT算法具有可容錯(cuò)性,當(dāng)存在一定數(shù)量的惡意節(jié)點(diǎn)時(shí),仍然能達(dá)成系統(tǒng)共識(shí)。但該算法要求所有節(jié)點(diǎn)參與共識(shí),且每輪共識(shí)需要兩次全網(wǎng)廣播。當(dāng)系統(tǒng)規(guī)模不斷增大時(shí),帶寬消耗和共識(shí)延遲會(huì)急劇增大。因此,共識(shí)集群規(guī)模是導(dǎo)致PBFT算法性能受限的主要因素。
PBFT算法的基本操作為準(zhǔn)備和提交階段的兩次全網(wǎng)通信過程,每個(gè)階段的通信次數(shù)為n,則PBFT算法的通信復(fù)雜度為O(n?n)=O(n2),隨著節(jié)點(diǎn)規(guī)模增大,系統(tǒng)共識(shí)時(shí)間將呈指數(shù)級(jí)增長。其按編號(hào)順序選取主節(jié)點(diǎn)的方式過于簡單,導(dǎo)致無論是否為拜占庭節(jié)點(diǎn)都有相等機(jī)會(huì)當(dāng)選主節(jié)點(diǎn)。發(fā)現(xiàn)主節(jié)點(diǎn)進(jìn)行惡意操作后,只能通過視圖切換保障共識(shí)協(xié)議繼續(xù)執(zhí)行,極大威脅系統(tǒng)的安全性與公平性,降低共識(shí)效率。
針對上述問題,本文基于配電物聯(lián)網(wǎng)大規(guī)模終端應(yīng)用場景,對原有PBFT算法進(jìn)行以下改進(jìn),改進(jìn)的共識(shí)算法流程如圖2所示。
圖2 改進(jìn)的共識(shí)算法流程圖Fig.2 Flowchart of improved consensus algorithm
(1)引入角色劃分機(jī)制。將終端節(jié)點(diǎn)分為待接入節(jié)點(diǎn)、普通節(jié)點(diǎn)、候選節(jié)點(diǎn)和認(rèn)證節(jié)點(diǎn)。將要接入配電物聯(lián)網(wǎng)系統(tǒng)的新終端稱為待接入節(jié)點(diǎn);已經(jīng)接入系統(tǒng)并上鏈存儲(chǔ)的節(jié)點(diǎn)稱為普通節(jié)點(diǎn);假設(shè)系統(tǒng)所允許的最大拜占庭節(jié)點(diǎn)數(shù)為F,擇優(yōu)選出2F+1個(gè)普通節(jié)點(diǎn)組成候選節(jié)點(diǎn);從候選節(jié)點(diǎn)中隨機(jī)抽取若干節(jié)點(diǎn)作為認(rèn)證節(jié)點(diǎn)。
(2)引入動(dòng)態(tài)權(quán)重機(jī)制。通過公式計(jì)算節(jié)點(diǎn)權(quán)重值,每輪共識(shí)結(jié)束后根據(jù)節(jié)點(diǎn)行為進(jìn)行動(dòng)態(tài)調(diào)整??偸沁x擇權(quán)重最大的2F+1個(gè)節(jié)點(diǎn)組成候選節(jié)點(diǎn),同時(shí)將權(quán)重作為抽取認(rèn)證節(jié)點(diǎn)的依據(jù)。區(qū)塊鏈中攻擊者可能利用單個(gè)節(jié)點(diǎn)偽造多重身份,從而影響共識(shí)結(jié)果,造成女巫攻擊。引入權(quán)重機(jī)制可以提高傀儡節(jié)點(diǎn)偽造成本杜絕女巫攻擊,保證共識(shí)結(jié)果的正確性。
(3)優(yōu)化主節(jié)點(diǎn)選取機(jī)制。引入可驗(yàn)證隨機(jī)函數(shù)后,可實(shí)現(xiàn)節(jié)點(diǎn)本地抽簽,攻擊者無法提前得知主節(jié)點(diǎn),保證數(shù)據(jù)打包過程足夠安全。由于VRF具有可驗(yàn)證性,任何節(jié)點(diǎn)都可得到中簽節(jié)點(diǎn)廣播的證明,其結(jié)果無法偽造。
(4)簡化一致性協(xié)議,省略PBFT中的commit和reply階段。一致性是指分布式系統(tǒng)中所有節(jié)點(diǎn)給出的認(rèn)證結(jié)果保持一致的性質(zhì),區(qū)塊鏈網(wǎng)絡(luò)中通過執(zhí)行一致性協(xié)議實(shí)現(xiàn)區(qū)塊信息的一致性。PBFT完成prepare階段說明已經(jīng)被足夠數(shù)量的合法節(jié)點(diǎn)驗(yàn)證通過,即達(dá)成系統(tǒng)所需共識(shí)。commit階段的貢獻(xiàn)僅是統(tǒng)計(jì)票數(shù),確保各節(jié)點(diǎn)知曉其他節(jié)點(diǎn)所處狀態(tài),確認(rèn)本輪共識(shí)是否達(dá)成,該功能可由區(qū)塊同步實(shí)現(xiàn)。reply階段是區(qū)塊鏈節(jié)點(diǎn)與客戶端的交互過程,而配電物聯(lián)網(wǎng)終端接入認(rèn)證時(shí)由主節(jié)點(diǎn)生成新區(qū)塊,客戶端無需參與。優(yōu)化的一致性協(xié)議可減少多次不必要通信,進(jìn)一步提升共識(shí)效率。
2.3.1 引入權(quán)重更新機(jī)制
節(jié)點(diǎn)權(quán)重w是用來衡量節(jié)點(diǎn)性能的重要指標(biāo),當(dāng)終端節(jié)點(diǎn)w值較高時(shí),該節(jié)點(diǎn)的穩(wěn)定性和可信度較高,很難被攻破。新節(jié)點(diǎn)接入網(wǎng)絡(luò)時(shí),可由w值較高的部分節(jié)點(diǎn)通過共識(shí)機(jī)制對新節(jié)點(diǎn)進(jìn)行身份驗(yàn)證。由于w由影響因子α、權(quán)重值c共同決定,因此,權(quán)重正貢獻(xiàn)值(節(jié)點(diǎn)在共識(shí)過程中返回正確結(jié)果時(shí)產(chǎn)生的權(quán)重值)c1越高越好,權(quán)重負(fù)貢獻(xiàn)值(節(jié)點(diǎn)在共識(shí)過程中不返回或返回錯(cuò)誤結(jié)果時(shí)產(chǎn)生的權(quán)重值)c2越低越好。由此,為w建立一種計(jì)算方法。假設(shè)某一終端節(jié)點(diǎn)i的權(quán)重為wi,初始值為0。一輪共識(shí)完成后,根據(jù)節(jié)點(diǎn)的共識(shí)表現(xiàn)對wi進(jìn)行更新,計(jì)算公式如式(1):
其中,w1為權(quán)重增長部分,w2為權(quán)重下降部分。
w1的計(jì)算公式如式(2):
其中,α1為終端權(quán)重增長的影響因子,c1為權(quán)重正貢獻(xiàn)值,計(jì)算公式如式(3):
其中,λ為當(dāng)選候選節(jié)點(diǎn)次數(shù),μ為當(dāng)選認(rèn)證節(jié)點(diǎn)次數(shù),γ為當(dāng)選主節(jié)點(diǎn)次數(shù)。節(jié)點(diǎn)日志文件中設(shè)有節(jié)點(diǎn)類型計(jì)數(shù)器,每輪共識(shí)結(jié)束后節(jié)點(diǎn)對自己在本輪共識(shí)中的節(jié)點(diǎn)類型進(jìn)行記錄,如在一輪共識(shí)中當(dāng)選主節(jié)點(diǎn),執(zhí)行γ+1,λ、μ、γ的值由計(jì)數(shù)器累加結(jié)果產(chǎn)生。為保證系統(tǒng)分布式性能不被減弱,要避免候選節(jié)點(diǎn)、認(rèn)證節(jié)點(diǎn)、主節(jié)點(diǎn)三種類型的節(jié)點(diǎn)各自長期由相同節(jié)點(diǎn)擔(dān)任。因此,人為設(shè)定系統(tǒng)中λ、μ、γ的閾值分別為50,20,10。當(dāng)其中任一參數(shù)超出閾值時(shí),將計(jì)數(shù)器置零,重新計(jì)數(shù)。即當(dāng)存在節(jié)點(diǎn)擔(dān)任50次候選節(jié)點(diǎn)或20次認(rèn)證節(jié)點(diǎn)或10次主節(jié)點(diǎn)時(shí),更新計(jì)數(shù)器,避免認(rèn)證權(quán)落在少數(shù)節(jié)點(diǎn)手中。
w2的計(jì)算公式如式(4):
其中,α2為終端權(quán)重下降的影響因子,c2為權(quán)重負(fù)貢獻(xiàn)值,計(jì)算公式如式(5):
其中,M為節(jié)點(diǎn)發(fā)生故障的次數(shù),N為節(jié)點(diǎn)給出惡意結(jié)果的次數(shù)。若節(jié)點(diǎn)日志文件中沒有當(dāng)次共識(shí)記錄判定為節(jié)點(diǎn)故障,若節(jié)點(diǎn)日志中的共識(shí)結(jié)果與其他節(jié)點(diǎn)不一致則認(rèn)為節(jié)點(diǎn)給出惡意結(jié)果。
假設(shè)α1=0.01,c1逐漸增大時(shí),w1增長曲線如圖3所示。
圖3 w1增長速率Fig.3 w1growth rate
假設(shè)α2=0.02,c2逐漸增大時(shí),w2增長曲線如圖4所示。
圖4 w2增長速率Fig.4 w2growth rate
從圖3、圖4可以看出,w1增長速度隨c1增加而減慢,w2增長速度隨c2增加而變快,由此來放大節(jié)點(diǎn)違背共識(shí)結(jié)果需要付出的代價(jià),使其短時(shí)間無法恢復(fù)認(rèn)證資格,杜絕節(jié)點(diǎn)連續(xù)作惡。當(dāng)節(jié)點(diǎn)權(quán)重相同時(shí),優(yōu)先選擇新入終端或從未當(dāng)選過的終端節(jié)點(diǎn),并在共識(shí)輪次到達(dá)一定周期時(shí),清空節(jié)點(diǎn)共識(shí)記錄,從零開始重新計(jì)算,避免認(rèn)證權(quán)落在少數(shù)節(jié)點(diǎn)手中減弱系統(tǒng)分布式性能。
2.3.2 基于權(quán)重值的認(rèn)證節(jié)點(diǎn)抽取設(shè)計(jì)
檢索2F+1個(gè)權(quán)重值最大的候選節(jié)點(diǎn),從中隨機(jī)抽出若干數(shù)量認(rèn)證節(jié)點(diǎn)形成分布式認(rèn)證組。每一個(gè)候選節(jié)點(diǎn)被選為認(rèn)證節(jié)點(diǎn)的概率為:
其中,分子為某個(gè)節(jié)點(diǎn)權(quán)重,分母為候選節(jié)點(diǎn)權(quán)重之和。這就使得節(jié)點(diǎn)被選中的概率與其權(quán)重相對應(yīng),節(jié)點(diǎn)權(quán)重越高,被選為認(rèn)證節(jié)點(diǎn)可能性越大,認(rèn)證結(jié)果也就越安全。
2.3.3 主節(jié)點(diǎn)選舉機(jī)制的優(yōu)化
VRF算法是一種具有驗(yàn)證功能的偽隨機(jī)函數(shù),僅私鑰持有者可以計(jì)算哈希,公鑰所有者只能檢驗(yàn)結(jié)果是否正確,無法做出反向推斷。通過VRF確定主節(jié)點(diǎn),首先在候選節(jié)點(diǎn)中執(zhí)行主節(jié)點(diǎn)抽取算法,輸入某一特定值m及私鑰Sk,VRF會(huì)輸出隨機(jī)數(shù)、對應(yīng)證明和抽取結(jié)果。將抽取結(jié)果與預(yù)先設(shè)定好的閾值進(jìn)行比較,若大于閾值則確定自己為主節(jié)點(diǎn),向其他候選節(jié)點(diǎn)廣播抽簽結(jié)果,其他節(jié)點(diǎn)通過公鑰和證明驗(yàn)證結(jié)果是否正確,若驗(yàn)證通過則該節(jié)點(diǎn)擔(dān)任主節(jié)點(diǎn)。執(zhí)行過程如圖5所示。
圖5 基于VRF的主節(jié)點(diǎn)選取過程Fig.5 Selection process of master node based on VRF
(1)輸入m和Sk,執(zhí)行主節(jié)點(diǎn)抽取算法,如式(7):
其中,m是隨機(jī)數(shù)種子,Sk為終端私鑰,v、proof、node分別對應(yīng)輸出的隨機(jī)數(shù)、證明和抽取結(jié)果。
(2)終端節(jié)點(diǎn)判斷自己是否為主節(jié)點(diǎn),如式(8):
其中,β為閾值,hashlen是哈希長度,若式(8)成立則當(dāng)前終端為主節(jié)點(diǎn)。
(3)向其他節(jié)點(diǎn)廣播抽取結(jié)果(v,proof,node_id),node_id表示當(dāng)前節(jié)點(diǎn)標(biāo)識(shí)信息。
(4)其余節(jié)點(diǎn)收到廣播后,檢驗(yàn)v是否合法,如式(9):
若判定v合法,確定當(dāng)前節(jié)點(diǎn)為主節(jié)點(diǎn),否則重新執(zhí)行主節(jié)點(diǎn)選取算法。
VRF的整個(gè)過程不必暴露私鑰,且攻擊者無法區(qū)分VRF輸出和隨機(jī)源,故由此確定的主節(jié)點(diǎn)足夠安全。
2.3.4 一致性協(xié)議的優(yōu)化設(shè)計(jì)
配電物聯(lián)網(wǎng)終端共識(shí)算法一致性協(xié)議運(yùn)行過程如圖6所示。
圖6 配電物聯(lián)網(wǎng)終端共識(shí)協(xié)議Fig.6 Distribution IoT terminal consensus protocol
請求階段:待接入終端節(jié)點(diǎn)向主節(jié)點(diǎn)發(fā)送請求,附帶簽名,終端節(jié)點(diǎn)標(biāo)識(shí)ID,有效時(shí)間等相關(guān)信息。
準(zhǔn)備階段:主節(jié)點(diǎn)收到接入請求后驗(yàn)證消息合法性,如信息是否完整未被篡改,請求終端是否與鏈上已有終端沖突,請求是否超時(shí)等。主節(jié)點(diǎn)將驗(yàn)證通過的信息進(jìn)行編號(hào),并廣播給其他認(rèn)證節(jié)點(diǎn)。
驗(yàn)證階段:收到準(zhǔn)備消息的認(rèn)證節(jié)點(diǎn)首先對內(nèi)容進(jìn)行校驗(yàn),隨后向所有認(rèn)證節(jié)點(diǎn)傳送合法消息。各節(jié)點(diǎn)將其他節(jié)點(diǎn)傳來的消息與自己日志中的對應(yīng)字段進(jìn)行對比,當(dāng)主節(jié)點(diǎn)收到2F+1個(gè)不同認(rèn)證節(jié)點(diǎn)的相同驗(yàn)證消息時(shí)表明本輪共識(shí)達(dá)成,進(jìn)入下一階段。否則拒絕該終端節(jié)點(diǎn)接入,留存失敗記錄。
反饋階段:對于達(dá)成共識(shí)的終端節(jié)點(diǎn),主節(jié)點(diǎn)生成新區(qū)塊保存設(shè)備信息并告知其認(rèn)證結(jié)果。一輪共識(shí)完成,更新節(jié)點(diǎn)權(quán)重以及共識(shí)信息列表,為下一終端節(jié)點(diǎn)接入系統(tǒng)做準(zhǔn)備。
本文設(shè)計(jì)的配電物聯(lián)網(wǎng)終端接入認(rèn)證模型如圖7所示。該模型主要由待接入終端節(jié)點(diǎn)、配電物聯(lián)網(wǎng)網(wǎng)關(guān)、認(rèn)證節(jié)點(diǎn)和區(qū)塊鏈四部分組成。
圖7 配電物聯(lián)網(wǎng)終端接入認(rèn)證模型Fig.7 Distribution IOT terminal access authentication model
待接入終端節(jié)點(diǎn)是配電物聯(lián)網(wǎng)環(huán)境下分散的終端設(shè)備,如智能電表、電流傳感器、智能充電樁等。在本模型中,使用分布式共識(shí)方法對其接入系統(tǒng)時(shí)進(jìn)行身份認(rèn)證可以增強(qiáng)配電物聯(lián)網(wǎng)的健壯性,降低設(shè)備故障率,優(yōu)化用戶體驗(yàn)。
配電物聯(lián)網(wǎng)網(wǎng)關(guān)由智能融合終端擔(dān)任,在配電物聯(lián)網(wǎng)系統(tǒng)中,智能融合終端意義重大,具有設(shè)備信息采集、數(shù)據(jù)匯集處理、臺(tái)區(qū)狀態(tài)監(jiān)測等功能,并且可以實(shí)現(xiàn)數(shù)據(jù)交互,具備通信網(wǎng)關(guān)功能。在模型中,通過網(wǎng)關(guān)把終端登記證明轉(zhuǎn)發(fā)到區(qū)塊鏈上,防止惡意設(shè)備多次接入。
認(rèn)證節(jié)點(diǎn)是根據(jù)配電物聯(lián)網(wǎng)終端共識(shí)算法選出的參與共識(shí)的終端設(shè)備。由認(rèn)證節(jié)點(diǎn)執(zhí)行分布式算法,既能提升認(rèn)證效率,又能保證共識(shí)結(jié)果正確性。
區(qū)塊鏈則是為已經(jīng)接入配電物聯(lián)網(wǎng)系統(tǒng)的合法終端設(shè)備提供存儲(chǔ)空間,實(shí)現(xiàn)終端信息不被篡改和可追溯,保障設(shè)備安全。
配電物聯(lián)網(wǎng)網(wǎng)關(guān)負(fù)責(zé)系統(tǒng)初始化,登記申請終端信息,將登記證明提交到區(qū)塊鏈,區(qū)塊鏈驗(yàn)證其有效性完成注冊。認(rèn)證節(jié)點(diǎn)通過共識(shí)算法對新終端進(jìn)行分布式認(rèn)證,主節(jié)點(diǎn)為合法終端生成新區(qū)塊存儲(chǔ)設(shè)備信息。配電物聯(lián)網(wǎng)終端接入認(rèn)證執(zhí)行流程包括三個(gè)部分:系統(tǒng)初始化階段、登記注冊階段、接入認(rèn)證階段。
(1)系統(tǒng)初始化階段
網(wǎng)關(guān)根據(jù)橢圓曲線數(shù)字簽名算法(elliptic curve digital signature algorithm,ECDSA)選取橢圓曲線,假設(shè)曲線基點(diǎn)為O,階數(shù)為r。生成隨機(jī)數(shù)k∈(1,n-1),使用隨機(jī)數(shù)k通過單向哈希函數(shù)H1生成私鑰Sk,基于ECDSA計(jì)算公鑰Pk=Sk?O。公布公有變量O、k、Pk和H1。
(2)登記注冊階段
終端節(jié)點(diǎn)將時(shí)間戳、業(yè)務(wù)類型、設(shè)備ID等信息根據(jù)ECDSA算法進(jìn)行數(shù)字簽名,把簽名信息發(fā)送到網(wǎng)關(guān)。終端i通過單向哈希函數(shù)H1和ECDSA產(chǎn)生i的公私鑰對Pki和Ski。網(wǎng)關(guān)收到消息后進(jìn)行簽名驗(yàn)證,將驗(yàn)簽合格且在請求時(shí)間范圍內(nèi)的終端節(jié)點(diǎn)進(jìn)行登記。并根據(jù)其設(shè)備ID為終端節(jié)點(diǎn)生成偽身份FID記作登記證明。
網(wǎng)關(guān)將終端節(jié)點(diǎn)登記證明發(fā)送到區(qū)塊鏈,檢查與區(qū)塊鏈上已有證明是否沖突,若不沖突,則將其保存在區(qū)塊鏈中,表明終端注冊成功,并將登記證明用終端公鑰加密后返回給終端。
(3)認(rèn)證接入階段
終端節(jié)點(diǎn)根據(jù)請求時(shí)間、業(yè)務(wù)類型、登記證明FID等信息生成接入請求信息,將簽名信息發(fā)送給主節(jié)點(diǎn)。
主節(jié)點(diǎn)驗(yàn)簽通過后,檢索區(qū)塊鏈接入失敗列表,該節(jié)點(diǎn)不在列表中則執(zhí)行下一步。若在列表中,根據(jù)其失敗原因進(jìn)行處理。如因請求超時(shí)而失敗的節(jié)點(diǎn)執(zhí)行下一步,但對于業(yè)務(wù)與設(shè)備類型不匹配,存在三次以上失敗記錄且與本次請求間隔較短等情況直接拒絕其接入。
通過終端共識(shí)算法對節(jié)點(diǎn)進(jìn)行分布式認(rèn)證,對于得到2/3以上認(rèn)證節(jié)點(diǎn)同意的終端節(jié)點(diǎn)成功接入系統(tǒng),并將其終端信息保存到區(qū)塊鏈中。驗(yàn)證不通過的終端節(jié)點(diǎn)拒絕接入并在區(qū)塊鏈接入失敗列表中留存登記證明和失敗原因。
所有配電物聯(lián)網(wǎng)終端都有唯一的設(shè)備ID,并為其生成偽身份作為登記證明,即使惡意終端竊取到請求信息,也無法根據(jù)偽身份推測出合法終端身份,阻止惡意終端假冒身份發(fā)起內(nèi)部攻擊。
本文接入認(rèn)證方法設(shè)有時(shí)間戳,須在有效時(shí)間內(nèi)才能進(jìn)行相關(guān)操作。主節(jié)點(diǎn)收到請求信息首先檢驗(yàn)是否超時(shí),對超時(shí)請求不予應(yīng)答。對各階段時(shí)效性進(jìn)行嚴(yán)格把控,可有效抵抗重放攻擊。
本方法各階段均采用數(shù)字簽名技術(shù),由于哈希函數(shù)的單向散列性,即使發(fā)送的加密信息被“中間人”截取,也很難破解出原始內(nèi)容,保證信息安全交互,有效規(guī)避偽造身份的中間人攻擊。
本方法由共識(shí)算法得出認(rèn)證結(jié)果,區(qū)塊鏈上各節(jié)點(diǎn)高度自治,即使某個(gè)認(rèn)證節(jié)點(diǎn)被攻擊,其余節(jié)點(diǎn)依然能正常工作,不影響認(rèn)證結(jié)果。相較于傳統(tǒng)集中式認(rèn)證架構(gòu),抵抗DDoS攻擊效果更好。
本文改進(jìn)的共識(shí)算引入權(quán)重機(jī)制縮小共識(shí)規(guī)模,認(rèn)證節(jié)點(diǎn)是根據(jù)權(quán)重從候選節(jié)點(diǎn)中隨機(jī)選出的,權(quán)重機(jī)制可提高攻擊者偽造傀儡節(jié)點(diǎn)的成本從而杜絕女巫攻擊。
通過Java編程模擬對基于區(qū)塊鏈共識(shí)機(jī)制的配電物聯(lián)網(wǎng)終端接入認(rèn)證方法進(jìn)行實(shí)驗(yàn),以驗(yàn)證該方法的安全性和高效性。在以下實(shí)驗(yàn)中,實(shí)驗(yàn)數(shù)據(jù)均選用10次結(jié)果的平均值。實(shí)驗(yàn)中涉及到的參數(shù)含義如表1所示。
表1 實(shí)驗(yàn)參數(shù)含義表Table 1 Meanings of experimental parameters
通信開銷是系統(tǒng)節(jié)點(diǎn)執(zhí)行共識(shí)算法消耗的時(shí)間資源。測試認(rèn)證節(jié)點(diǎn)數(shù)量A分別為4、7、10個(gè)時(shí)產(chǎn)生的通信開銷,實(shí)驗(yàn)結(jié)果如圖8所示。其中E為通信開銷,n為系統(tǒng)節(jié)點(diǎn)規(guī)模。
圖8 本文方法通信開銷Fig.8 Communication overhead of this method
由圖8可知,當(dāng)系統(tǒng)規(guī)模相同時(shí),認(rèn)證節(jié)點(diǎn)數(shù)量越多,完成認(rèn)證產(chǎn)生的通信開銷越大,但隨著系統(tǒng)節(jié)點(diǎn)規(guī)模不斷增大,本方法通信開銷穩(wěn)定在一個(gè)較低水平,較傳統(tǒng)PBFT算法通信量呈指數(shù)級(jí)增長有明顯改善。
文獻(xiàn)[18]中的SG-PBFT在網(wǎng)絡(luò)中選取一半節(jié)點(diǎn)作為共識(shí)節(jié)點(diǎn),并改進(jìn)提交階段。預(yù)準(zhǔn)備階段通信次數(shù)為(n/2-1);準(zhǔn)備階段通信次數(shù)為(n/2-1)(n/2-1);響應(yīng)階段通信次數(shù)為(n/2-1)。因此,SG-PBFT共識(shí)算法執(zhí)行一次的通信次數(shù)為(n/2-1)(n/2+1)。
文獻(xiàn)[20]提出一種基于PBFT的可擴(kuò)展多層共識(shí)機(jī)制,將節(jié)點(diǎn)分層分組到不同層,并限制組內(nèi)通信,最小通信量可降至(16n-16)/3。本方案通過權(quán)重機(jī)制將共識(shí)規(guī)模縮小至A并簡化一致性協(xié)議。請求階段通信次數(shù)為1,準(zhǔn)備階段通信次數(shù)為A-1,驗(yàn)證階段通信次數(shù)為A2,反饋階段通信次數(shù)為1。本方案執(zhí)行一輪共識(shí)的通信次數(shù)為A2+A+1。
以認(rèn)證節(jié)點(diǎn)A=10為例與文獻(xiàn)[18]、文獻(xiàn)[20]兩種方法進(jìn)行對比,實(shí)驗(yàn)結(jié)果如圖9所示。
圖9 通信開銷對比圖Fig.9 Comparison of communication overhead
由圖9可知,隨著終端節(jié)點(diǎn)數(shù)量增加,文獻(xiàn)[18]的通信開銷呈指數(shù)型增長、文獻(xiàn)[20]的通信開銷呈線性增長,兩種方法都有明顯增長趨勢,當(dāng)終端節(jié)點(diǎn)規(guī)模較大時(shí),會(huì)嚴(yán)重影響系統(tǒng)認(rèn)證效率。而本方法通信開銷不會(huì)隨節(jié)點(diǎn)規(guī)模增大產(chǎn)生變化,始終趨于平穩(wěn)狀態(tài)。在系統(tǒng)終端節(jié)點(diǎn)數(shù)量小于20時(shí),文獻(xiàn)[18]、文獻(xiàn)[20]兩方法的通信開銷略小于本文方法。但當(dāng)節(jié)點(diǎn)數(shù)量大于20時(shí),本方法通信開銷逐漸小于其他兩種方法,且節(jié)點(diǎn)規(guī)模越大,優(yōu)勢越明顯。結(jié)合圖8、圖9可知,本方法的通信開銷明顯降低,系統(tǒng)認(rèn)證效率得到提升,在終端節(jié)點(diǎn)數(shù)量龐大的配電物聯(lián)網(wǎng)環(huán)境中實(shí)用性較強(qiáng)。
吞吐量指系統(tǒng)單位時(shí)間內(nèi)完成的事務(wù)數(shù),一般用每秒事務(wù)數(shù)(transaction per second,TPS)表示。共識(shí)效率是影響TPS的主要因素,用其來測試本方法對配電物聯(lián)網(wǎng)終端的接入認(rèn)證效率,并與其他兩種方法進(jìn)行對比,可直觀反映改進(jìn)共識(shí)算法的性能,如圖10所示。
圖10 吞吐量對比圖Fig.10 Throughput comparison
由圖10可以看出,文獻(xiàn)[18]、文獻(xiàn)[20]兩種方法的吞吐量隨系統(tǒng)規(guī)模增大不斷減小,當(dāng)系統(tǒng)規(guī)模超過100時(shí),系統(tǒng)吞吐量將無法滿足正常工作需求。但本方法吞吐量幾乎不受系統(tǒng)規(guī)模影響,穩(wěn)定在同一水平。且認(rèn)證節(jié)點(diǎn)數(shù)量越小,系統(tǒng)吞吐量越大。當(dāng)認(rèn)證節(jié)點(diǎn)為4個(gè)時(shí),系統(tǒng)吞吐量達(dá)到200以上,遠(yuǎn)大于其他兩種方法。當(dāng)認(rèn)證節(jié)點(diǎn)分別為7個(gè)和10個(gè)時(shí),吞吐量在少量終端節(jié)點(diǎn)下小于其他兩種方法,但當(dāng)系統(tǒng)規(guī)模逐漸增大時(shí),即使認(rèn)證節(jié)點(diǎn)數(shù)量較大也比其他兩種方法吞吐量高的多。據(jù)此,可根據(jù)系統(tǒng)規(guī)模及其對認(rèn)證效率的要求合理設(shè)置認(rèn)證節(jié)點(diǎn)數(shù)量。
當(dāng)系統(tǒng)節(jié)點(diǎn)規(guī)模為100時(shí),候選節(jié)點(diǎn)數(shù)量為67個(gè),系統(tǒng)所能容忍的拜占庭節(jié)點(diǎn)最多為33個(gè)。假設(shè)正常節(jié)點(diǎn)權(quán)重值為0.8,拜占庭節(jié)點(diǎn)權(quán)重值為0.4。當(dāng)候選節(jié)點(diǎn)中被攻擊者控制的節(jié)點(diǎn)數(shù)量逐漸增長到33個(gè)時(shí),系統(tǒng)被攻擊成功的概率情況如圖8所示,其中x為攻擊者控制的候選節(jié)點(diǎn)個(gè)數(shù),y為系統(tǒng)被攻擊成功的概率。
由圖11可知,當(dāng)系統(tǒng)節(jié)點(diǎn)規(guī)模一定時(shí),被控制候選節(jié)點(diǎn)數(shù)量增多,系統(tǒng)被攻擊成功的概率變大,但最大不會(huì)超過0.2。當(dāng)認(rèn)證節(jié)點(diǎn)數(shù)量相同時(shí),被攻擊成功的概率與系統(tǒng)中拜占庭節(jié)點(diǎn)數(shù)量成正比,并且呈指數(shù)型趨勢。當(dāng)被控制的候選節(jié)點(diǎn)數(shù)量小于22個(gè)時(shí),認(rèn)證規(guī)模較大的系統(tǒng)安全性要高一些,但被控制的候選節(jié)點(diǎn)數(shù)量超過22個(gè)時(shí),認(rèn)證節(jié)點(diǎn)規(guī)模較小的系統(tǒng)安全性反而更強(qiáng)一些,但由于本方法存在簽名與驗(yàn)簽過程,并且嚴(yán)格根據(jù)節(jié)點(diǎn)表現(xiàn)計(jì)算權(quán)重值,控制候選節(jié)點(diǎn)很難實(shí)現(xiàn)。當(dāng)攻擊者僅控制少部分候選節(jié)點(diǎn)時(shí),本方法被攻擊成功的概率極低。即使被控制的候選節(jié)點(diǎn)達(dá)到最大值,本方法仍然能夠保障系統(tǒng)以一個(gè)較低的可能性被攻擊成功。
圖11 不同認(rèn)證節(jié)點(diǎn)下被攻擊成功的概率Fig.11 Probability of successful attack under different authentication nodes
假設(shè)系統(tǒng)中被控制的候選節(jié)點(diǎn)數(shù)量為4,且正常節(jié)點(diǎn)權(quán)重值為0.8,拜占庭節(jié)點(diǎn)權(quán)重值為0.4。隨著終端節(jié)點(diǎn)規(guī)模增大,不同認(rèn)證節(jié)點(diǎn)數(shù)量下系統(tǒng)被攻擊成功的概率如圖12所示。
圖12 不同系統(tǒng)節(jié)點(diǎn)規(guī)模下被攻擊成功的概率Fig.12 Probability of successful attack under different system node sizes
由圖12可知,在相同認(rèn)證節(jié)點(diǎn)數(shù)量下,隨著終端規(guī)模不斷增大,系統(tǒng)被攻擊成功的概率整體呈下降趨勢。且認(rèn)證節(jié)點(diǎn)數(shù)量越多,系統(tǒng)被攻擊成功的概率越低。當(dāng)系統(tǒng)節(jié)點(diǎn)規(guī)模小于20,認(rèn)證節(jié)點(diǎn)數(shù)量為4時(shí),系統(tǒng)被攻擊的概率最大,略大于0.5。當(dāng)節(jié)點(diǎn)規(guī)模大于40時(shí),系統(tǒng)被攻擊成功的概率下降至不到0.1,并隨著節(jié)點(diǎn)規(guī)模持續(xù)增大無限趨近于0。
假設(shè)系統(tǒng)中被控制的候選節(jié)點(diǎn)數(shù)為4個(gè),正常節(jié)點(diǎn)權(quán)重值為0.8,拜占庭節(jié)點(diǎn)權(quán)重值a分別為0.3、0.4、0.5時(shí),不同系統(tǒng)節(jié)點(diǎn)規(guī)模下被攻擊成功的概率如圖13所示。
圖13 不同拜占庭節(jié)點(diǎn)權(quán)重下被攻擊成功的概率Fig.13 Probability of successful attack under different Byzantine node weights
由圖13可知,終端節(jié)點(diǎn)規(guī)模相同時(shí),在同一認(rèn)證節(jié)點(diǎn)數(shù)量下,惡意節(jié)點(diǎn)權(quán)重值越小,系統(tǒng)被攻擊成功的概率越低。當(dāng)終端節(jié)點(diǎn)數(shù)量小于40時(shí),降低惡意節(jié)點(diǎn)權(quán)重可明顯降低系統(tǒng)被攻擊成功的概率,當(dāng)終端節(jié)點(diǎn)數(shù)量大于40時(shí),惡意節(jié)點(diǎn)權(quán)重對系統(tǒng)安全性的影響很小,不同權(quán)重值下系統(tǒng)被攻擊的概率都趨近于0。因此,結(jié)合圖12、13可知,新建立的少數(shù)節(jié)點(diǎn)區(qū)塊鏈系統(tǒng)穩(wěn)定性較弱,被攻擊的可能性高于多節(jié)點(diǎn)系統(tǒng),但當(dāng)系統(tǒng)節(jié)點(diǎn)數(shù)量大于40后,系統(tǒng)將很難被攻擊。為使新建系統(tǒng)接入過程更安全,可適當(dāng)提高認(rèn)證節(jié)點(diǎn)數(shù)量及當(dāng)選認(rèn)證節(jié)點(diǎn)閾值,增大惡意節(jié)點(diǎn)參與共識(shí)的難度,保障配電物聯(lián)網(wǎng)系統(tǒng)安全穩(wěn)定運(yùn)行。當(dāng)系統(tǒng)節(jié)點(diǎn)數(shù)超過40以后,可適當(dāng)減少認(rèn)證節(jié)點(diǎn)數(shù)量,此時(shí)不會(huì)對系統(tǒng)安全造成影響,同時(shí)可以提升共識(shí)效率。
隨著物聯(lián)網(wǎng)技術(shù)在配電網(wǎng)領(lǐng)域的深入發(fā)展,配電物聯(lián)網(wǎng)對終端安全接入提出更高要求。本文基于區(qū)塊鏈共識(shí)機(jī)制設(shè)計(jì)一種面向配電物聯(lián)網(wǎng)終端的接入認(rèn)證方法。通過配電物聯(lián)網(wǎng)網(wǎng)關(guān)為待接入終端節(jié)生成偽身份,保證終端身份不被竊取篡改;使用改進(jìn)的配電物聯(lián)網(wǎng)終端共識(shí)算法認(rèn)證節(jié)點(diǎn)身份,將合法終端上鏈存儲(chǔ),實(shí)現(xiàn)終端數(shù)據(jù)不可篡改和可追溯。相比于其他方法,該方法能夠抵御多種網(wǎng)絡(luò)攻擊、改善一系列中心化程度過高造成的安全問題;對于配電物聯(lián)網(wǎng)多終端節(jié)點(diǎn)環(huán)境具有更低的通信開銷和更高的吞吐量;就不同情境系統(tǒng)被攻擊成功的概率進(jìn)行量化分析,表明該方法可以通過調(diào)整認(rèn)證節(jié)點(diǎn)數(shù)量和閾值來滿足對認(rèn)證效率和安全強(qiáng)度需求不同的系統(tǒng)。