區塊鏈公鏈「三元悖論」專題系列之安全性(Security)

上兩期咱們講了區塊鏈公鏈系統「三元悖論」中的【可擴展性】【去中心化】,本期咱們結合區塊鏈公鏈系統中所存在的安全問題和挑戰,以及一些實際案例,來說一下這個系列文章的壓軸話題:安全性(Security)算法

在不少人看來,對於一個系統來講,安全性是必要條件,而非充分條件;甚至有人說,「去中心化」和 「可擴展性」 是「二元悖論」的說法反而比「三元悖論」更爲精準,僅僅二元便可說明一個區塊鏈公鏈系統的性能情況。但實際狀況真的是這樣嗎?數據庫

首先,我想引用BTC系統在白皮書中對安全性的描述,來對區塊鏈公鏈系統的安全性進行一個範圍上的定義:以密碼學爲基礎,基於工做量證實(POW)的共識機制,使得整個系統中只要惡意節點的總算力不超過50%,系統就能保證大機率上的安全,而且不會發生致命的「雙花」( double spending雙重花費問題)欺詐。編程

從這段文字中能夠看出,區塊鏈公鏈系統的安全範圍有兩個方面,一是系統自身的安全性(防崩潰機制)方面,二是系統參與者的數據、交易安全性(隱私保護)方面。緩存

區塊鏈公鏈系統區別於中心化系統的很重要的一部分,就是「安全性」是做爲系統中一種性能指標(經過密碼學和共識機制等技術做爲保障),可根據系統的總體須要,進行彈性選擇,甚至在系統迭代過程當中能夠進行更換。安全

另外,從本質上講,區塊鏈技術是一種在信息不對稱的狀況下,無需相互擔保信任或第三方中介參與,採用技術手段,實現節點間「廣泛經過即爲承認」的信任機制。網絡

因此,在我看來,安全性對於區塊鏈系統來講,既不能粗略的以充要條件的方式來定義,也不能脫離去中心化、可擴展性等場景需求而單獨評價;這也是區塊鏈安全技術中最有魅力的地方。架構

▲BTC系統全節點分佈圖(數據來源:京東智聯雲BDS區塊鏈數據服務)▲框架

說到區塊鏈安全技術,就不得不提一下針對區塊鏈系統的各類攻擊手段,目前來看,根據區塊鏈的技術特性,具體的技術攻擊手段主要分爲如下三種:分佈式

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

▲區塊鏈典型攻擊策略表▲

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

▲利用區塊鏈分佈式存儲機制進行惡意代碼攻擊示意圖▲

_(三)針對密碼學機制固有安全風險的各種攻擊:_非對稱算法、哈希函數等密碼學機制在區塊鏈中的應用解決了消息防篡改、隱私信息保護等問題,但這些密碼學機制的固有安全風險仍將面臨各種攻擊,主要有兩點,一是ECC、RSA等複雜加密算法自己以及在算法的工程實現過程當中均可能存在後門和安全漏洞,進而危及整個區塊鏈系統和其上承載的各類應用的安全性。二是隨着量子計算等技術的飛速發展,當計算機算力達到必定級別後,便可在秒級時間內破解非對稱密碼算法中的大數因子分解問題(例如經過量子計算機破解1024位密鑰的RSA算法只需數秒),這也成爲區塊鏈公鏈系統將來很大的安全隱患。

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

▲區塊鏈典型應用架構對應的安全風險▲

上圖中,對於四個層級的安全風險概括以下:

存儲層:主要風險來源於環境的安全威脅,如基礎設施的安全風險、網絡攻擊威脅、數據丟失和泄露等,最終影響區塊鏈數據文件的可靠性、完整性及存儲數據的安全性,具體包括如下三點:基礎設施安全風險、網絡攻擊威脅、數據丟失和泄露。

協議層:主要風險來源於核心機制(共識機制、P2P網絡機制、密碼學技術)的設計缺陷,前兩章咱們對這些核心機制作過介紹,當這些核心機制的規則設計被惡意節點利用,則很容易使系統的自身安全和交易安全遭到破壞,具體包括如下三點:協議漏洞、流量攻擊以及惡意節點的威脅。

擴展層:主要風險來源於代碼實現中的安全漏洞,因爲這一層較典型的實現是智能合約(或稱可編程合約),但智能合約的應用起步相對較晚,不少開發人員尚缺少對智能合約的安全編碼能力,從而形成代碼中存在大量的安全漏洞,具體包括如下兩點:合約開發漏洞、合約運行安全。

應用層:這一層因爲直接面向用戶,涉及不一樣行業領域的應用場景和用戶交互,所以也成爲攻擊者實施攻擊、破壞系統的重點目標層,具體包括如下5點:私鑰管理安全、帳戶竊取、應用軟件漏洞、DDoS攻擊、環境漏洞。

而綜上所述,目前應對以上風險的措施簡單總結以下圖所示:

▲區塊鏈風險應對框架▲

這裏咱們列出幾個具體方法做爲參考:

(一)提高參與同步與驗證節點的數量:在區塊鏈公鏈系統中,公鏈網絡的正確性與安全性依賴於一些節點的背書。例如,在比特幣或以太坊中,根據協議,每個礦工挖出區塊時,要保證新區塊和歷史上的每個區塊每筆交易都是正確的。也就是說,比特幣礦工出塊時,在爲以前全部的區塊進行正確性背書;在 EOS 中,超級節點經過簽名對區塊的正確性背書。咱們這裏稱爲「參與共識的節點」。因此,若是每個被確認的交易,都獲得過更多參與共識節點(攻擊者除外)的同步與驗證,這樣就可以提升系統總體的安全性。

(二)提升節點參與系統的門檻:上一篇咱們講到,下降用戶參與門檻便可提高系統去中心化程度,因此,當提高系統參與門檻時,就能夠相應的提高系統的安全性以及可擴展性;在一些共識機制中,普通用戶不參與對交易的同步與驗證,而是經過一些方式選出少數特殊的節點來進行共識;這時,咱們能夠假設每個參選的節點都準備了足夠的計算機資源,例如更好的 CPU, 更大的硬盤, 更大的網絡帶寬;這時,也就不必將「最低配置要求」設的很低了;相應的,系統總體安全性就會高一些。

(三)攻擊應對監測:在區塊鏈中建立某種「交易配置文件」,監控特定區塊鏈上的交易,檢測包括51%攻擊,Sybil攻擊等惡意攻擊。

(四)項目安全管理:智能合約代碼的安全審計和法律合規方案的制定。

總之,區塊鏈系統安全設計的挑戰,是保障該系統不能被壞人破壞;在一個開放並與經濟利益掛鉤的區塊鏈系統中,不只會有好人加入這個系統,也會有更多的壞人企圖但願經過破壞該系統獲利;那麼,如何在系統內部存在壞人的狀況下,保證系統的安全性,這已不只是傳統意義上安全架構的技術挑戰,也是安全機制設計的挑戰。

▲區塊鏈在網絡安全領域的典型應用▲

最後,如上圖所示,咱們講一下如何利用區塊鏈技術的特性,來對傳統網絡安全領域的安全性進行加固。

因爲區塊鏈分佈式、點對點的通訊具備易鏈接、大協做的特色,基於哈希加密的匿名性也可以很好保護用戶隱私和證實惟一性,依託公私鑰的權限控制方式更是賦予數字資產豐富的管理權限,所以,這些技術特性使得區塊鏈能夠成爲解決網絡和數據安全存儲、傳播和管理問題的有效手段,在攻擊發現和防護、安全認證、安全域名、信任基礎設施創建、安全通訊和數據安全存儲等方面獲得了積極的探索。

下面列舉幾個區塊鏈網絡安全的具體應用案例:

(一)Guardtime攻擊發現和防護案例:爲數據或系統的狀態建立時間戳哈希,根時間戳哈希對狀態持續監測,以發現文件、系統或程序是否受到未受權訪問,目前已在英國核電站、防洪系統等國家關鍵基礎設施應用。
(二)Startup Filament安全通訊認證案例:將物聯網傳感器數據直接編碼到區塊鏈中,爲分散交互和交換提供安全的基礎。
(三)Blockstack安全域名:將域名基礎設施創建在區塊鏈之上,創建域名哈希映射,在每一個網絡節點處進行域名註冊、轉移等操做,存儲域名全部人的公私鑰對並記錄解析後的域名,分散了本來集中的域名服務,因爲不存在可被黑客攻擊或修改的中心化記錄,也防止了域名劫持、緩存投毒等傳統攻擊行爲。

▲區塊鏈系統安全性的核心:共識▲

做爲這個系列文章的結尾,筆者認爲,不管從可擴展性、去中心化、仍是安全性來講,區塊鏈技術最核心的屬性都是「共識」這兩個字;由於有了「共識」這個屬性,一個系統才得以從「管理者」轉變爲「組織者」;參與系統搭建的各節點經過共同的努力,來維護一個區塊鏈系統的正常運轉,這樣即能達到系統自治的目的,也可以很大程度上抵禦各類外部攻擊,最終保證了系統的總體安全性。

「不可能三角」並非一個嚴格通過論證而得出的結論,它只是業內對各公鏈的實際運行情況做出的一個總結;不可能三角的意義,是在告訴設計者,在進行區塊鏈系統架構設計時,必須根據具體的應用場景作出取捨,而無需過多的花精力研究如何兼顧這三要素。

另外,須要特別強調的是,不可能三角並非一種限制,它反而在正確的道路上開拓了設計師的思路,讓他們在多樣化的取捨方案下設計出了各式各樣的系統。

最後的最後,衷心的但願這個系列文章可以幫您從更多的角度出發,去認識並理解區塊鏈技術,以及區塊鏈系統可以爲咱們帶來的實際價值。

在以後的文章中,咱們會對京東智臻鏈等區塊鏈具體應用項目進行解讀與分享,歡迎你們繼續支持哦!

來~插播一條小廣告

關於BDS

京東智聯雲區塊鏈數據服務【BDS】(產品傳送門):京東智聯雲將區塊鏈的鏈式、非結構化數據經過技術手段進行結構化存儲,實時同步到高性能數據庫中,並據此推出了一款可視化的區塊鏈數據查詢服務(BDS),幫助用戶完成簡單的條件查詢和複雜的SQL原生查詢。

產品特色:

  • 涵蓋了 BTC、ETH、EOS、LTC、XRP、BCH 等幾十個知名區塊鏈項目,自定義了涉及用戶、交易、區塊等 100+ 獨家數據指標,聯網便可查詢鏈上實時數據,即開即用,方便快捷。
  • 支持標準 SQL查詢語句,可輕鬆實現複雜的查詢邏輯;依託京東雲的軟硬件及架構支持,同時具有查詢速度快、查詢效率高的特色。
  • 支持圖形化、可視化界面,經過點擊和拖拽的交互方式進行數據查詢,可實時生成各種BI圖表,定製專屬與您的區塊鏈數據儀表盤。

產品示例:

點擊【閱讀原文】,註冊京東智聯雲帳號,便可獲取區塊鏈主流公鏈最新數據。

image.png閱讀原文

相關文章
相關標籤/搜索