區塊鏈公鏈“三元悖論”專題系列之安全性(Security)
正文
正文

正文
京東智聯雲潘熙之
上兩期我們講了區塊鏈公鏈系統“三元悖論”中的“可擴展性”和“去中心化”,本期我們結合區塊鏈公鏈系統中所存在的安全問題和挑戰,以及一些實際案例,來講一下這個系列文章的壓軸話題:安全性(Security)。
在很多人看來,對於一個系統來說,安全性是必要條件,而非充分條件;甚至有人說,“去中心化”和“可擴展性” 是“二元悖論”的說法反而比“三元悖論”更為精準,僅僅二元即可說明一個區塊鏈公鏈系統的性能狀況。但實際情況真的是這樣嗎?
首先,我想引用BTC系統在白皮書中對安全性的描述,來對區塊鏈公鏈系統的安全性進行一個範圍上的定義:以密碼學為基礎,基於工作量證明(POW)的共識機制,使得整個系統中只要惡意節點的總算力不超過50%,系統就能保證大概率上的安全,並且不會發生致命的“雙花”( double spending雙重花費問題)欺詐。
所以,在筆者看來,安全性對於區塊鏈系統來說,既不能粗略的以充要條件的方式來定義,也不能脫離去中心化、可擴展性等場景需求而單獨評價;這也是區塊鏈安全技術中最有魅力的地方。

圖片描述
圖片描述
(一)以共識機制為目標的針對性攻擊:共識機制是維持區塊鏈系統有序運行的基礎,相互間未建立信任關係的區塊鏈節點通過共識機制,共同驗證寫入新區塊中的信息的正確性。區塊鏈中使用的共識機制有很多,包括PoW、PoS、BFT等(之前兩篇文章中均有所提及)。目前,PoW、PoS和DPoS(DelegatedProof of Stake,委託權益證明)機制已經過大規模長時間的實踐檢驗,發展較為成熟。但在區塊鏈共識機制的長期發展應用中,也衍生出了算力攻擊、分叉攻擊、女巫攻擊等大量針對性的攻擊手段,造成鏈上記錄被篡改等後果,如下圖所示;

圖片描述
(二)對區塊嵌入惡意代碼,利用分佈式存儲機制進行快速傳播:區塊鏈通過構建開源的共享協議,實現數據在所有用戶側的同步記錄和存儲。與傳統中心式數據庫在一個或幾個中心集中存儲數據的方式不同,在區塊鏈系統中,所有用戶側均有可能存放完整的數據拷貝,因此,單個或多個節點被攻擊均不會對全網數據造成毀滅性的影響,提高了存儲的可容錯性。但是這種分佈式的存儲機制也在一定程度上擴大了安全威脅面,最典型的是惡意節點可在新區塊中嵌入病毒、木馬等惡意代碼,利用分佈式機制自發向全網傳播,伺機發起網絡攻擊,如下圖所示;

圖片描述
圖片描述
所以,儘管區塊鏈的防篡改、分佈式存儲、用戶匿名等技術優勢為其發展應用提供了大量的創新空間,但目前區塊鏈技術在各領域的應用模式仍處於大量探索階段,其深入應用仍需漫長的整合和發展過程;在《信通院區塊鏈安全白皮書》中,就對區塊鏈技術在應用中的安全問題進行了描述,總結後如下所示:

圖片描述
圖片描述
圖片描述
區塊鏈典型應用架構對應的安全風險
上圖中,對於四個層級的安全風險歸納如下:
存儲層:主要風險來源於環境的安全威脅,如基礎設施的安全風險、網絡攻擊威脅、數據丟失和洩露等,最終影響區塊鏈數據文件的可靠性、完整性及存儲數據的安全性,具體包括以下三點:基礎設施安全風險、網絡攻擊威脅、數據丟失和洩露;
而綜上所述,目前應對以上風險的措施簡單總結如下圖所示:

圖片描述
圖片描述
圖片描述
區塊鏈風險應對框架
這裡我們列出幾個具體方法作為參考:
(一)提升參與同步與驗證節點的數量:在區塊鏈公鏈系統中,公鍊網絡的正確性與安全性依賴於一些節點的背書。例如,在比特幣或以太坊中,根據協議,每一個礦工挖出區塊時,要保證新區塊和歷史上的每一個區塊每筆交易都是正確的。也就是說,比特幣礦工出塊時,在為之前所有的區塊進行正確性背書;在EOS 中,超級節點通過簽名對區塊的正確性背書。我們這裡稱為“參與共識的節點”。所以,如果每一個被確認的交易,都得到過更多參與共識節點(攻擊者除外)的同步與驗證,這樣就能夠提高系統整體的安全性。
總之,區塊鏈系統安全設計的挑戰,是保障該系統不能被壞人破壞;在一個開放並與經濟利益掛鉤的區塊鏈系統中,不僅會有好人加入這個系統,也會有更多的壞人企圖希望通過破壞該系統獲利;那麼,如何在系統內部存在壞人的情況下,保證系統的安全性,這已不僅是傳統意義上安全架構的技術挑戰,也是安全機制設計的挑戰;

圖片描述
圖片描述
圖片描述
區塊鏈在網絡安全領域的典型應用
最後,如上圖所示,我們講一下如何利用區塊鏈技術的特性,來對傳統網絡安全領域的安全性進行加固。
由於區塊鏈分佈式、點對點的通信具有易連接、大協作的特點,基於哈希加密的匿名性也能夠很好保護用戶隱私和證明唯一性,依托公私鑰的權限控制方式更是賦予數字資產豐富的管理權限,因此,這些技術特性使得區塊鏈可以成為解決網絡和數據安全存儲、傳播和管理問題的有效手段,在攻擊發現和防禦、安全認證、安全域名、信任基礎設施建立、安全通信和數據安全存儲等方面得到了積極的探索。
(三)Blockstack安全域名:將域名基礎設施建立在區塊鏈之上,建立域名哈希映射,在每個網絡節點處進行域名註冊、轉移等操作,存儲域名所有人的公私鑰對並記錄解析後的域名,分散了原本集中的域名服務,由於不存在可被黑客攻擊或修改的中心化記錄,也防止了域名劫持、緩存投毒等傳統攻擊行為。

圖片描述
圖片描述
圖片描述
區塊鏈系統安全性的核心:共識
作為這個系列文章的結尾,筆者認為,無論從可擴展性、去中心化、還是安全性來說,區塊鏈技術最核心的屬性都是“共識”這兩個字;因為有了“共識”這個屬性,一個系統才得以從“管理者”轉變為“組織者”;參與系統搭建的各節點通過共同的努力,來維護一個區塊鏈系統的正常運轉,這樣即能達到系統自治的目的,也能夠很大程度上抵禦各種外部攻擊,最終保證了系統的整體安全性。
不可能三角”並不是一個嚴格經過論證而得出的結論,它只是業內對各公鏈的實際運行狀況作出的一個總結;不可能三角的意義,是在告訴設計者,在進行區塊鏈系統架構設計時,必鬚根據具體的應用場景做出取捨,而無需過多的花精力研究如何兼顧這三要素。


