吳疌
(中國移動通信集團設(shè)計院有限公司上海分公司,上海 200060)
區(qū)塊鏈具有去中心化和不可篡改等優(yōu)點,它和物聯(lián)網(wǎng)的結(jié)合是近兩年的業(yè)界熱點。雖然提出了許多應(yīng)用設(shè)想,但實際落地的案例卻很少。本文從區(qū)塊鏈的共識機制角度出發(fā),分析了區(qū)塊鏈技術(shù)在物聯(lián)網(wǎng)環(huán)境中面臨的主要問題,并結(jié)合業(yè)界的最新研究提出相應(yīng)的應(yīng)對思路。
區(qū)塊鏈的基礎(chǔ)是P2P分布式網(wǎng)絡(luò)、加密算法和共識機制,其中共識機制是保障區(qū)塊鏈系統(tǒng)持續(xù)運行的關(guān)鍵。共識機制就是區(qū)塊鏈節(jié)點就區(qū)塊信息達成全網(wǎng)一致共識的機制,它可以保證最新區(qū)塊被準確添加至區(qū)塊鏈,保持節(jié)點存儲的區(qū)塊鏈信息一致、不分叉,甚至可以抵御惡意攻擊。共識機制解決了區(qū)塊鏈如何在分布式場景下達成一致性的問題。
目前,被廣泛提及的共識機制約十幾種,其中應(yīng)用最為廣泛的是PoW(Proof of Work,工作量證明),比特幣和以太坊均采用該機制。在PoW算法中,記賬節(jié)點需使用一定的運算資源處理同一條件的Hashcash函數(shù)計算,哪個節(jié)點先計算出來,區(qū)塊就屬于該節(jié)點,接著被算出來的數(shù)值則可向網(wǎng)絡(luò)其它節(jié)點提交計算的工作量證明。雖然Hashcash函數(shù)很難破解,但容易被驗證。因此只要數(shù)值被計算出來,其它參與節(jié)點便能容易地去驗證這個值是否有效。由于工作量證明運算需相當高的計算成本,使得偽造的工作得不償失,也就保證了各方均能遵守協(xié)議約定。PoW可以讓每個參與的節(jié)點共同參與交易驗證,也讓多方共同維護并共享同一份交易記錄的賬本,從而保證了區(qū)塊鏈有很強的防篡改性。
但PoW依賴機器進行數(shù)學運算來獲取記賬權(quán),每次達成共識需要全網(wǎng)共同參與運算,性能效率非常低。此外,每個節(jié)點都會保留一個完整的區(qū)塊鏈數(shù)據(jù)備份,其占用的數(shù)據(jù)存儲量會隨著節(jié)點數(shù)量的增加而急劇膨脹。以比特幣為例,目前每秒只能處理7筆交易,每年單節(jié)點區(qū)塊數(shù)據(jù)增長約300 GB。所以,隨著物聯(lián)網(wǎng)中的終端數(shù)量增加,運行共識機制的成本會顯著上升。
另一方面,區(qū)塊鏈技術(shù)應(yīng)用于物聯(lián)網(wǎng)時,需要所有物聯(lián)網(wǎng)節(jié)點共同參與。物聯(lián)網(wǎng)終端數(shù)量雖然很多,但具備計算能力的物聯(lián)網(wǎng)終端設(shè)備卻非常有限。與傳統(tǒng)的區(qū)塊鏈挖礦節(jié)點相比,物聯(lián)網(wǎng)終端普遍的Hash計算能力甚至不到GPU系統(tǒng)的千分之一。另外,物聯(lián)網(wǎng)設(shè)備一般均有低功耗需求,因此其電力消耗在實際應(yīng)用中也受到嚴格控制,但挖礦設(shè)備對能源的消耗卻十分驚人——2017年用于比特幣挖礦的電力超過159個國家的年度電量總和。
區(qū)塊鏈因其加密算法和不可篡改機制,通常被視為一套非常安全穩(wěn)固的系統(tǒng)。但這種安全性的前提是區(qū)塊鏈內(nèi)有大量的節(jié)點,令51%算力攻擊的成本遠大于收益。所謂51%攻擊,是指整個網(wǎng)絡(luò)中有人(或節(jié)點)的計算能力超過了全網(wǎng)總計算能力的51%,破壞了區(qū)塊鏈去中心化的特性,同時也讓整個區(qū)塊鏈網(wǎng)絡(luò)處在私自挖礦、取消所有轉(zhuǎn)賬、雙花以及隨機分叉等攻擊風險之下。
51%算力攻擊在用戶極多的時候是很難發(fā)起的,但是在小范圍、特定應(yīng)用場景下卻十分容易。通常情況下,局域或小型城域物聯(lián)網(wǎng)的終端數(shù)量在千或萬級別,且類型較為單一,如果存在漏洞或后門,攻擊的難度要遠小于對一臺中央服務(wù)器的攻擊。這種情況下,區(qū)塊鏈的安全系數(shù)要明顯低于傳統(tǒng)的中心化組網(wǎng)方案。對于大型物聯(lián)網(wǎng)而言,雖然其終端數(shù)量眾多,可以在一定程度上滿足安全性的要求,但卻會面臨之前所提到的性能效率問題。
由于存在性能效率和安全性問題,現(xiàn)有的區(qū)塊鏈技術(shù)無法直接應(yīng)用到物聯(lián)網(wǎng)中,需要對共識機制進行改造,PoS、DPoS、DAG、PBFT等算法相繼被提出和討論,其中又以DPoS最受人關(guān)注。
DPoS(Delegated Proof of Stake,股份授權(quán)證明機制)算法中使用見證人機制(witness)解決中心化問題。DPoS通過賬本間的投票選舉出一定數(shù)量的代理賬本(如圖1所示),這些賬本之間形成一個共識網(wǎng)絡(luò),而其它沒有被選舉出來的賬本(跟隨節(jié)點)則通過與代理賬本(投票節(jié)點)之間進行主從同步,從而滿足減少共識節(jié)點參與量的需求。
圖1 DPoS節(jié)點之間的關(guān)系
DPoS的這種機制能夠大幅度提升選舉效率。在幾十個最多上百節(jié)點之間進行一致性投票,一般來說可以在秒級完成并達到共識,因此DPoS機制可以將檢查點(事務(wù)確認時間)提升到秒級,通過減少投票節(jié)點的數(shù)量或采用令牌環(huán)機制甚至可以降低到毫秒級,而對計算和存儲資源的消耗遠小于PoW。
物聯(lián)網(wǎng)區(qū)塊鏈如果采用DPoS,則每個傳感器和微控制器節(jié)點不承擔賬簿記錄的工作,而是通過某種機制(例如持有代幣的數(shù)量、計算能力等)選舉出若干(奇數(shù)個)節(jié)點作為代理賬本。這些節(jié)點事先部署在區(qū)塊鏈網(wǎng)絡(luò)中,并可由多個不同的物聯(lián)網(wǎng)服務(wù)商搭建,可以較好地解決性能效率和安全性問題。
然而,DPoS的性能無法無限提升。在理想環(huán)境中,其性能與吞吐量取決于節(jié)點間通信的網(wǎng)絡(luò)帶寬。一般來說,對于物聯(lián)網(wǎng)環(huán)境中兩個節(jié)點之間的帶寬能夠維持在上下行均1MB/s已相當難得,大部分情況下遠遠無法達到該數(shù)值。如果每條交易日志需要100 byte,由于網(wǎng)絡(luò)既需要廣播交易也需要廣播日志,則網(wǎng)絡(luò)帶寬消耗將會加倍,因此在兩個節(jié)點的單鏈中最大吞吐量不超過5 000 byte/s(1MB/100 byte/2=5 000)。如果集群中包含更多節(jié)點,則最大吞吐量需要根據(jù)其使用的P2P同步機制成比例縮減,這會大大限制物聯(lián)網(wǎng)應(yīng)用的范圍,需要通過側(cè)鏈、分鏈等手段加以解決,目前相關(guān)的技術(shù)還處于理論研究階段。
區(qū)塊鏈技術(shù)十分火爆,物聯(lián)網(wǎng)也被視為區(qū)塊鏈的重要應(yīng)用場景。但現(xiàn)有的區(qū)塊鏈技術(shù)不可能原封不動地在物聯(lián)網(wǎng)中直接應(yīng)用,需進行較大的技術(shù)改進。目前這一進程尚處于起步階段,離大規(guī)模商用尚有較大距離,但其應(yīng)用前景依然十分廣闊。
[1] 韓璇,劉亞敏. 區(qū)塊鏈技術(shù)中的共識機制研究[J]. 信息網(wǎng)絡(luò)安全, 2017(9):147-152.
[2] 趙闊,邢永恒. 區(qū)塊鏈技術(shù)驅(qū)動下的物聯(lián)網(wǎng)安全研究綜述[J].信息網(wǎng)絡(luò)安全, 2017(5):1-6.
[3] 張永,李曉輝. 一種改進的區(qū)塊鏈共識機制的研究與實現(xiàn)[J].電子設(shè)計工程, 2018(1):38-42.