楊卓
(云南電網有限責任公司,云南 昆明 650011)
水、電、風、潮汐、太陽能等綜合能源的采集、交易過程中涉及到多種物聯網設備,例如采集風能的風力發電機,新能源汽車配套的智能充電樁,光伏發電機等。傳統的能源市場中,由能源控制中心將分散的綜合能源統一收集并匯入主網,再搭建中心化平臺集中對外銷售。然而,大量異構能源設備的接入將導致中心平臺信息存儲壓力大,運營成本增加,數據訪問控制的安全性得不到保障。點對點的交易機制能有效改善中心化交易的弊端,但在交易雙方的信任問題上,難以保證交易的公開、透明,缺少強有力的機制維護參與主體的隱私安全。
區塊鏈技術以信息不可篡改、可溯源、去中心化的特點而被學界廣泛關注,目前已經有很多區塊鏈技術與能源領域結合的研究。利用區塊鏈搭建去中心化的能源交易體系,能有效解決中心化處理海量交易時存在單點故障、效率低下、數據容易被篡改及點對點交易不公開、不透明的問題。區塊鏈在能源交易上的研究廣泛而深入,Li等[1]peer-to-peer (P2P建立了適用于工業物聯網的能源區塊鏈體系,劃分物聯網能源交易角色分為energy node和聚合者,交易數據通過聚合者達成共識上鏈,交易過程中采用了基于信用的支付方式,減少了節點因為代幣不足而造成的交易時延。但該方法在共識機制上采用的仍是PoW,因為工作量證明造成的資源花費和時延仍然存在,不利于實際應用。Lu等人[2]針對電網交易過度依賴第三方平臺而造成能耗高、效率低的問題,提出一種兩層區塊鏈結構,儲能裝置在私有鏈上進行區域內的能源交易,區域的聚合者在聯盟鏈上進行跨區域的能源調度。并采用最高信用得分的共識機制,本質未脫離PoS的局限,當信用值越高,該節點越容易上鏈,所有交易上鏈都依據同一個信用值最高的節點,必將產生新的中心化。Ali Dorri等人[3]提出一種基于私有鏈的安全能源交易方法,在消費者和生產者之間采用匿名路由進行協商,同時將交易劃分為兩個原子事務,承諾支付和確認交易,只有當兩個原子事務都完成才能完成一個交易,有效避免對第三方平臺的信任依賴。Luo等人[4]提出兩層體系結構來支持點對點的分布式交易,第一層采用多代理人機制和聯盟協商機制實現設備間的統一的價格協定,第二層通過建立合約鏈和賬本鏈來記錄交易數據,且兩個鏈數據可相互驗證,保障交易的效率同時還保證數據安全。Wang等人[5]將充電樁的充電權作為數字資產,依據區塊鏈記錄的歷史數據對未來時段進行充電權的預先分配和交易,在區塊鏈平臺上運行雙向拍賣機制和P2P交易實現充電權的結算交割。
現有研究都采用一個區塊鏈實現交易過程中的數據存證業務,隨著交易量的增加和交易需求的多樣化,依靠一個區塊鏈記錄上鏈信息會給區塊鏈網絡帶來額外的負擔,例如存儲、計算、通信成本增加[6]。且單一區塊鏈數據相對封閉,不易與外界交互。采用多個區塊鏈分管不同業務,每個區塊鏈上都部署不同的輕量級業務,通過鏈與鏈之間的分工合作,實現價值轉移,多方存證,有效降低單個區塊鏈維護整個體系數據安全的壓力。跨鏈技術就是實現不同區塊鏈之間的價值傳遞[7]。Jiang等人[8]利用區塊鏈在物聯網的特定場景具有防篡改、安全性高的優勢,建立跨鏈體系對記錄internet of things(IoT)數據的多個區塊鏈進行整合,聯盟鏈作為核心區塊鏈進行全局管控,有向無環圖作為數據結構的side-blockchain則負責記錄不同IoT數據,多鏈協同模式有效解決了區塊鏈在物聯網上擴展性受限和高消耗問題。但通過公證人節點實現跨鏈信息流通,會造成信息流通決策權過于集中,存在中心化風險。He等人[9]采用主鏈和側鏈模式實現光伏發電市場和碳市場的數據共享,采用改進的雙向錨定技術實現碳鏈和電鏈的資產轉移,減少電碳結算對第三方權威機構的依賴性。但該文將交易雙方的價格協商過程轉移在鏈上執行,產生額外的區塊鏈開銷。Tian等人[10]針對cosmos和polkadot中繼跨鏈技術實際應用中擴展性差、兼容要求高的問題,采用中間人、智能合約、驗證組的模式實現加密貨幣的跨鏈流通,但在驗證過程中采用PoW選擇監管代理人讓跨鏈貨幣流通速度變慢。Luo等人[11]搭建綜合能源系統和新能源發電之間的綠證交易平臺,利用中繼跨鏈技術實現綠色證書在不同主體間跨鏈流通,但是區塊鏈技術在該模式下僅作為了一種能源流通效率優化手段,該方案在區塊鏈交易細節上有待進一步挖掘。
本文針對上述研究存在的問題,提出一種基于跨鏈技術的物聯網點對點能源交易模型。讓能源區塊鏈和財務區塊鏈的參與主體共同分擔交易任務,通過跨鏈技術實現上鏈共享數據的交叉驗證。建立鏈上鏈下協同存儲體系,減輕區塊鏈網絡參與者的存儲壓力。在共識機制上結合隨機可驗證函數選取共識節點,滿足大規模交易節點達成一致性協定,提升信息打包上鏈效率和安全。本文的主要貢獻總結如下:
1)本文提出一種安全的跨鏈交易模型。具體來說,依據交易過程的承當的角色,模型劃分為能源區塊鏈、財務區塊鏈。采用改進的雙向錨定和哈希鎖定結合的跨鏈技術,完成跨部門間的數字資產的安全高效轉移,實現用能溯源,往來資金審計。
2)采用IPFS和無模式數據庫協同區塊鏈實現鏈上鏈下數據存儲。將設備產能、用能數據記錄存儲在IPFS各節點上。交易記錄通過共識機制上鏈存儲,同時依據鏈上數據建立數據庫副本,便于監管部門過濾或排序查詢結果,減少合約代碼的復雜性,避免過度查詢產生的額外開銷。
3)提出一種的偽隨機拜占庭容錯共識算法。采用隨機可驗證函數結合橢圓曲線加密,高保密性隨機選取固定數量的共識節點參與拜占庭容錯算法過程,實現分散節點交易數據正確且安全上鏈記錄,確保大規模分散能源交易業務高效運行。
如圖1所示,整個跨鏈框架包含兩個部分,能源聯盟鏈(Energy Blockchain,EBC)、財務聯盟鏈(Financial Blockchain,FBC)、IPFS網絡。在整個體系中,有兩個區塊鏈,其中EBC作為主鏈,FBC為側鏈,能源區塊鏈網絡負責處理一線分布式新能源設備的能源交易,其智能合約接收能源節點發起的交易請求。財務區塊鏈網絡負責處理整個交易環節的資金,具體功能涉及資金結算、資產抵押擔保。EBC和FBC之間通過跨鏈轉移抵押資產,進而實現能源傳輸業務和資金來往業務明確劃分,采用數字資產代替實際能源減少等價值實物在轉移過程中的損耗。具體交易過程細節將在第2章詳細描述。各區塊鏈網絡中參與主體有能源節點,財務節點。各主體的功能細節如下:

圖1 雙聯盟鏈物聯網能源交易框架
新能源節點:是指在能源系統中實現發電、集電一體的物聯網設備,例如:電動車充電樁設備、光伏發電設備、風力發電機設備等新能源和綜合能源設備,且每個設備具備區塊鏈功能。在P2P交易過程中按照交易角色被劃分為:買家節點和賣家節點[1]。同時還有負責監聽能源區塊鏈交易全過程,匯集所有交易信息全節點。
財務節點:負責一個能源片區內資金往來的電網財務部門作為一個財務節點。含有wallet pool,wallet pool里面記錄著所管轄能源節點的錢包地址,負責接受能源節點的交易資金和抵押金。能源節點P2P交易過程中產生的收費地址是存在于錢包池,能源節點本身不負責收發資金。
能源幣:是由財務區塊鏈中的財務節點向wallet pool能源節點發放的代幣。在交易初期,每個財務節點向分管片區內IoT發放等量一定數額的energy coin。只要能源區塊鏈內的P2P交易進行,必定有energy node的coin消耗,當coin為0時,相應energy node向financial node發送借幣請求,financial node 依據credit pool里面對該節點的信用記錄進行發幣響應,該過程的具體細節在后面的動態定價策略中會展開描述。
能源通證:是在能源區塊鏈上流通的數字資產。P2P能源交易,實質就是交易數字資產energy token,有energy token就代表實際擁有多少能源,智能設備之間物理輸電線以1 energy token=0.1 kw/h 為換算進行能源輸送。該方法能有效避免實際能源在P2P傳輸損耗。同時作為energy node在EBC上發起交易請求時的抵押資產。
為支持物聯網集電設備進行安全的P2P交易,同時實現用能溯源和資金審查。建立了兩個關鍵聯盟鏈,一個是能源區塊鏈,一個是財務區塊鏈。交易過程如圖2所示。

圖2 跨鏈交易工作流程
1)系統初始化。在能源區塊鏈網絡中,每個參與的能源節點,即物聯網能源設備都先經過權威機構(電網公司)認證,獲得唯一身份認證后,才有發起交易的準入資格。Seller node和buyer node的P2P交易過程中所需要的請求-響應消息傳遞過程都利用EIGamal算法進行數字簽名及數據加密。每個能源節點獲得公鑰私鑰對,獲得各自在財務節點錢包池中的錢包地址。因此每個能源節點系統初始產生信息列表包括{Certe,i, PK, SK, Ecoin, Waddr, };財務區塊鏈中,每個財務i節點同樣是具有證書Certf,i的各供電所配置的財務部門,財務節點擁有轄區內能源節點的資金,同時監聽EBC上事件。能源節點的錢包地址是指向財務節點的wallet pool。財務節點要記錄的列表信息包含了買賣方的抵押資金,交易需求量,近期時間內的競價數據。數據列表{Cert, PK, SK, price}
2)確定交易角色。有購電意向的能源節點確定為buyer node,有剩余能源且想對外銷售的能源節點為seller node。Buyer node提交購電需求并向EC的智能合約抵押資產,同理buyer node提交售電請求并向EC上的智能合約抵押資產。抵押資產以能源令牌(energy token)的形式上傳到EC上的智能合約中。抵押資產取能源節點目前含有的能源資產的5%。雙重抵押的方式利于建立seller和buyer之間的去中心化信任。
3)交易組價格協商。EBC上的智能合約收集從能源節點收到的交易請求信息,優先將能源需求量小于等于能源供應量的seller和匹配為交易組{seller ID , buyer ID},并向相應節點發送開始競價指令。能源節點收到配對通知,本文不介紹競價的具體細節,按照以下規則判斷雙方是否達成價格匹配:

其中Prbuyer買家出價,Prseller是賣方出價,Prretail是電網零售價,是電網公司主網面向散戶(如:家庭、學校、工廠)售電的市場標準價格。買家在競價過程中兩個狀態:接受/拒絕,賣家三個狀態:接受/協商/拒絕。當買賣雙方都達成滿意的價格后,即買賣雙方競價狀態都是accept,能源節點將該狀態下買賣雙方的最終定價寫入EBC智能合約,由此改變合約狀態,啟動跨鏈轉移命令,將抵押資金及支付通知通過雙向錨定技術轉移到FBC。
4)跨鏈信息共享。EBC網絡內的買賣雙方的抵押資產、成交量、成交價格都發送到EBC的智能合約上。由于能源節點所擁有的支付資金energy coin都在財務節點上,這樣的目的是讓能源節點專門處理能源輸送協定,財務節點負責實現資金調整,從而避免不同主體在交易過程中承擔過多的功能,造成額外的工作量負擔。在EBC智能合約上的抵押資產采用雙向錨定技術轉移到FBC,讓財務鏈對資金往來進行溯源監管。轉賬通知也由EBC上的智能合約向FBC傳達,再通過FBC上的智能合約對與能源節點交易雙方相關的財務節點發起通知。跨鏈信息共享的過程采用到結合了區塊鏈微支付思想的雙向錨定技術。雙向錨定實現信息傳遞及資產轉移過程如圖所示3流程圖。

圖3 雙向錨定資產轉移流程圖
①首先,在EBC上的智能合約鎖定待轉移的抵押資產,被鎖定的資產不能在EBC中繼續進行交易業務,鎖定資產表示為V,如果主鏈網絡中各參與節點動用了這筆鎖定的資產,其他節點可以證明這個過程,向智能合約發送重構SPV,則之前的跨鏈轉移失效,本文對該過程不細述。
②之后,抵押資產在EBC上等待一個確認期,防止拒絕服務攻擊(Denial of Service, DoS)[12]。DoS攻擊是采用數量龐大的傀儡節點持續向區塊鏈智能合約發送大量交易請求,從而導致整個區塊鏈數據處理模塊癱瘓。雙向錨定技術設計確認期的目的是保障主鏈達到足夠的工作量,因此等待一個確認期,確認期一旦結束,區塊鏈上的智能合約將對期間產生的交易數據進行處理。由于傳統雙向錨定技術中,確認周期時間較長,不能滿足實際P2P交易輕量、快捷的操作需求,因此本文利用區塊鏈微支付的思路,在資產鎖定但未轉移的確認期內,允許高頻小額交易的抵押。鎖定的待轉移資產Alock高于實際抵押資產V,多出的部分稱為定向資產R,是依據實際抵押的資產決定的(R=V*γ,γ取值參考轉移過程的手續費(gas)花費在總資產價值中的占比,該比例下產生的預扣資產價值要高于手續費,同時小于實際確定的資產價值),即:

確認期截止時,最后達成的轉移資產如果是包含在確認期前鎖定的資產中,即微交易抵押資產價值R′<定向資產價值R,則最后待轉移資產修改為實際確定的抵押資產V′和微交易產生的資產R′之和;即,Alock=V+R′反之,則以確認期前被鎖定的資金進行轉移;
③確認期過后,EBC向FBC發送簡單支付證明(Simple-Payment-Verify, SPV),SPV在區塊鏈中通常以區塊頭列表、默克爾樹的形式存在,此處SPV不僅包含了在EBC上抵押資產的價值信息,而且還包括買賣雙方達成一致后買家所需要執行的轉賬信息。
④FBC收到EBC發過來的SPV,對發送方及信息真實性展開驗證,具體通過簽名驗證。等待一個競爭期,目的防止資產轉移過程中利用時延產生雙重花費現象[12]。一個競爭期結束后,依據EBC發送的SPV所包含的抵押資產信息,FBC產生成等價值的energy coin,該過程被稱為鑄幣。FBC完成鑄幣行為后,再根據SPV里面包含的轉賬信息,由FBC上的智能合約觸發分管seller node的財務節點,由財務節點根據共享的轉賬信息來變更wallet pool里面的seller address和buyer address的energy coin數量。完成FBC鑄幣和轉賬后,FBCN向EBCN發送反饋,主鏈接收到側鏈發來的反饋,將轉移前鎖定的抵押資產全部清空。由于FBC接收到SPV后,相應功能函數狀態改變,則FBC上智能合約觸發財務節點向管轄區域對應seller node發送簽名,通知其向對應買家發送能源。
⑤釋放抵押資產,交易完成。買家收到所請求的energy token后,向EBC合約發送傳輸完成消息,標志著買家和賣家P2P交易順利達成。買賣雙方達成交易后,開始請求撤回抵押資產。因為資產轉移過程中,EBC中的抵押資產已經以energy coin的形式存在于FBC中了。因此撤回抵押資產實質上就是將與抵押資產等值energy coin發送到賣家節點和買家節點的錢包地址中。該方式實現能源變現的同時,減少了一線綜合能源處理交易的復雜性。
5)共識上鏈。共識算法采用適用于大規模能源P2P交易的偽隨機拜占庭容錯算法(RPBFT),該算法將由在FBC和EBC網絡中的監聽全過程的全節點通過選舉出共識委員節點而進行PBFT共識達成一致性交易,委員節點監聽整個交易過程中各區塊鏈網絡的狀態變化,將EBC上交易協商、抵押信息、交易達成相關的信息打包經過共識后上鏈保存。將FBCN關于資金支付信息、抵押轉移信息通過財務節點經過RPBFT后達成正確一致性決定上鏈保存。在該共識算法下,網絡通信復雜度僅和共識委員會節點數量有關,在大規模物聯網節點中保障交易信息一致性的確定性同時達到毫秒級時延。具體過程見第3章。
跨鏈實現能源交易的業務,主要實現交易過程跨部門的追蹤溯源,實現整個能源交易業務分流,將能源交易中涉及到資金和能源兩個業務劃分開來,分別由能源區塊鏈和財務區塊鏈進行數據記錄,有效提升數據傳遞的安全性,同時降低單一部門交易模式下能源輸送、資金管理一手抓的工作量。是區塊鏈在工業物聯網領域上應用的一大實質性進步。
P2P交易過程中,能源區塊鏈和財務區塊鏈兩個聯盟鏈包含的各參與節點地位均等的,都先經過權威機構的認證后才能參與到對應區塊鏈網絡中承當相應角色任務,因此不同于比特幣網絡中完全不可信的交易環境,不需要采用耗費大量計算資源的工作量證明(proof of work,PoW)。實用拜占庭容錯算法(Practical byzantine fault, PBFT)相比PoW,對節點算力要求不高,能在有錯誤節點情況下,快速達成正確的一致性決定。但是其通信復雜度和節點數量相關,因此不適用于存在大規模節點參與共識的應用場景中。在這個問題上,fisco bcos提出了隨機拜占庭容錯算法(RPBFT),從參與節點中隨機選取共識委員節點,在節點替換周期內由共識委員節點進行PBFT共識,每輪周期結束后再從驗證節點列表里選取節點替換共識委員節點。該方法下,通信復雜度僅和共識委員節點數量相關,且隨機輪換的方式保證了共識過程公平性、安全性。
門外,不到十個人。最近的,有三個,一個男孩,蹦蹦跳跳,顯得很高興。一個光頭大漢,手上持刀,刀上有血。一個瘦小干枯的老頭,眼睛追著橋上紫衣美婦的屁股看。
在物聯網P2P能源交易的場景下,為了激勵節點參與能源交易,本文的區塊鏈網絡節點采用偽隨機拜占庭容錯算法( Pseudorandom and practical byzantine fault,RPBFT),結合能源交易活躍度考量和可驗證隨機函數(Verifiable Random Function)的思想,隨機選擇能源區塊鏈網絡或者財務區塊鏈網絡里面的部分節點加入共識節點委員會,由共識委員會中的成員節點進行PBFT,委員會之外的剩余節點對委員會節點達成的一致性結果進行二次驗證。同時由于P2P交易對時效要求較高,本文采用的RPBFT將取消傳統的準備階段。在RPBFT共識過程中,節點劃分為進行PBFT的共識委員節點,剩下的節點為驗證節點,整個共識算法過程如下:
隨機的目的就是不可預測。節點總數為S,則共識委員節點數量為H,其余節點為驗證節點,不參與一致性協議的共識過程。區塊鏈節點表示為{N0,N1,…,NS-1},其中選擇H個節點加入共識委員。H根據網絡規模在控制臺設置更新(節點大于兩位數,則H=50)。本文結合IRTF提出的VRF技術方案[13]產生隨機數,選擇共識委員節點,VRF基本思想就是通過輸入難以被篡改的值,稱為seed,結合橢圓曲線加密的過程,輸出一個不可預測的隨機數r和一個零知識證明π,其他節點可以通過π驗證隨機數的正確性。基于可驗證函數思想選取共識委員節點的具體過程如下:
1)生成密鑰對:橢圓曲線中,G為基準點,O為階數,每個節點生成一對公鑰私鑰對,隨機選擇獲得私鑰Ki(i為節點編號),其中Ki∈[0,O-1],公鑰P=K*G。
2)產生隨機數及證明:輸入seed,Ki。輸出:隨機數r,證明π。seed代表一個不可篡改、能代表節點特性的消息,本文中采用交易前后的energy coin差值,記作ΔCoin,與節點編號NID使用函數h1編碼成一個整數作為輸入seed,即:

使用散列函數h2,計算得到L,將seed映射到secp256k1橢圓曲線的有限域上一點L。

產生一個隨機數Q,Q∈[1,O-1]。計算Q*L,Q*G。使用函數h1將兩個數字編碼成數字C,即:

獲得橢圓曲線上一點Vi,使用函數h3將橢圓曲線上的點V編碼成一個整數,獲得隨機數r;

3)每個節點按照上述步驟都能獲得屬于自己的隨機數和證明,規定節點編號從r%M到(r+H)%M之間的節點作為共識委員節點(r%M編號的節點作為共識過程中的主節點,其余節點為副本節點)。為了防止隨機可驗證函數選出來的節點聯合作惡,因此片區內每完成一次跨鏈交易操作時,節點的ΔCoin都發生變化,根據新的變化重新計算隨機數r和π,替換原有的共識委員節點。
1)獲 得seed'=h1(NID',ΔCoin'),h1能將兩個輸入變成成一個整數。將seed'映射到橢圓曲線有限域上一點L';
2)根據節點提供的證明信息π′(包含有C',M',V'),計算如下公式:


3)采用函數h1將T1和T3編碼成為一個整數V'':

4)驗證如果C″=C′相等,則該節點的身份是有效的。通過驗證的節點下一步進行PBFT共識。
①預準備階段。主節點向副本節點發送預準備消息<<Pre-prepare, v, n, d>, m>。其中v為當前視圖view,n代表該預準備消息序號,d代表交易數據數字摘要,m為交易數據本身。
②準備階段。備份節點i收到預準備消息后進入準備階段,將準備消息發送給除自己以外的其他備份節點,準備消息格式為<Prepare, v, n, d, i>。當日志內容被寫入交易數據m、視圖v中序列號為n的預準備消息、2f個來自不同備份節點的準備消息。代表準備階段完成。
③確認階段。所有備份節點向客戶端返回回復消息。消息格式為<Commit, v, n, d, i>,當收到2f+1個與準備消息匹配的來自不同備份節點的確認消息,則該階段完成。
④回復階段。所有節點向客戶端返回回復消息<Reply, v, t, c, i, r>。r為執行請求后的操作結果。
本文中涉及到能源交易與區塊鏈安全性能相關的性能有:
1)無第三方中心化控制。智能充電樁之間的電力交易時通過P2P的方式進行,同時利用兩個區塊鏈對交易過程的能源輸送管和資金往來進行記錄,避免數據集中化易被攻擊、被篡改帶來的安全隱患,實現分布式交易的痕跡式管理與業務分流。
2)無雙重花費。在能源區塊鏈上發起交易前,買方和賣方都要在區塊鏈上抵押資產,限制作惡節點參與交易。涉及到資金花費需要兩個區塊鏈主體共同監管,資金轉移過程中用到了雙向錨定技術,一旦交易發起,相應資金就會被鎖定,且分別等待一個競爭期后才能解鎖使用。
3)加密交互。在交互過程中都采用的是密碼學原理,涉及到信息傳遞都采用非對稱加密和數字簽名進行操作。
4)防攻擊。首先區塊鏈上每個節點都是經過權威認證的節點,其次在交易上鏈過程中,采用基于密碼學原理的共識算法,高保秘性的隨機選擇了參與共識的節點,產生的偽隨機數具有均勻分布的性質,與橢圓曲線上的隨機點一樣,是不可區分、不可反推的,結合密碼學隨機選擇有效避免女巫攻擊通過大量傀儡節點參與增加選中概率的發生。提供零知識證明在不公開節點私鑰信息的情況下,讓其他節點對共識節點有效性進行驗證。從而杜絕了惡意節點根據公開信息提前掌握關鍵節點,對區塊鏈網絡發起有目的攻擊。
5)可驗證性。對獲得了隨機數r和及其有效性證明π=(C,M,V)。其他節點對該隨機數相關的節點進行證明。如果證明及節點公開信息沒有被篡改:則前提條件:seed=seed'; C = C'; M = M'; V = V';如果共識委員節點無效,則切換當前視圖,展開新一輪共識節點選舉,進而保證一致性協定的正確性。驗證過程原理如下:

本文采用的共識機制與傳統的PBFT相比主要優勢體現在高保密性的選取了代表性節點參與共識,共識過程實質還是PBFT。因此測試性能之考慮通信次數。在傳統PBFT共識中,設定區塊鏈中總節點數量為N,客戶端發送請求給主節點,通信次數為1;在預準備階段,主節點向除自己以外的其他備份節點發送準備消息,通信次數為N-1;準備階段,各備份節點間相互驗證的通信次數為(N-1)2;在確認階段,所有備份節點向主節點返回確認信息,通信次數為N(N-1)。最后回復階段,所有節點向客戶端返回一致性信息,通信次數為N。因此總的通信次數為2N2-N+1。偽隨機PBFT共識算法,在總節點數為N的情況下,采用隨機驗證函數的方法獲得不可預測的節點作為參與共識的節點,其通信次數與選取的共識節點委員會數量K有關,K≤N。同理,PRPBFT中,完成一次共識并將區塊上鏈,整個過程通信次數為2K2-K+1。
根據實際測試點的充電樁配置及整個地區未來充電樁網絡配置計劃,設置節點總數為7,15,38,100,124,450,750。在不同節點數量下,傳統PBFT和PRPBFT的通信次數對比如表1所示。

表1 不同節點總數下兩種算法通信次數對比
由表1可以看出,在大規模節點情況下,偽隨機實用拜占庭共識算法更具有優勢,在超過兩位數節點數量上,參與共識的節點數量固定下來,保障交易達成一致性的效率。
本文設計了一種基于跨鏈的能源點對點交易模型,采用兩個區塊鏈協同完成分布式新能源P2P交易;使用支持微支付雙向錨定技術實現能源鏈和財務聯的資產轉移;引入基于橢圓曲線加密的可驗證隨機函數,高保密性地選取節點參與PBFT共識過程,提高了該算法在大規模節點下的擴展性;實驗仿真和數據推理表明,該方案是有效的。未來將探索新的跨鏈技術優化交易步驟,減少跨鏈造成的手續開銷。