關於區塊鏈安全性的思考

安全性的定義,從計算機的角度,百度百科如下定義:

安全性(security)

為防止把計算機內的機密文件泄露給無關的用戶,必須採取某種安全保密措施,這些措施的有效程序如何就稱為計算機系統的安全性或保密性。

引用自百度百科

針對區塊鏈來說,安全性主要包括以下幾種:

  • 密碼學安全性

包括了簽名、驗簽、Hash摘要等(不是所有的區塊鏈都需要加密和解密操作),就當前的技術水平來說,絕大部分區塊鏈技術採用的密碼學演算法都是安全的,當然不排除以後技術的迭代發展出現可能的漏洞,是相對的安全性。至少此類的安全性,目前的技術發展水平來說,暫時無需考慮。(不過作為中國人,還是建議採用國密演算法,鬼知道國外的演算法到底有沒有問題。)

  • 網路安全性

網路安全性指的是數據在網路中傳輸的安全性,此部分數據還未持久化,包含內存中的數據,暫時統稱為空中數據。此類的安全性問題,當前採用的技術解決方案是採用HTTP+SSL的方式進行處理(當然還有WebSocket和WebSocketS),可以保證數據網路傳輸過程中的防篡改和加密處理。此類問題,當前的技術手段相對來說能滿足一定的要求。

  • 數據安全性

針對區塊鏈來說,賬本數據全部公開或者部分公開,強調的是賬本數據多副本存在,不能存在數據丟失的風險,區塊鏈當前採用的解決方案就是全分散式存儲,網路中有許多個全節點,同步所有賬本數據(有些同步部分,當然每個數據存儲的副本足夠多),這樣網路中的副本足夠多,就可以滿足高可用的要求,丟失數據的風險就會低很多。所以建議部署區塊鏈網路時,全節點盡量分散,分散在不同地理位置、不同的基礎服務提供商、不同的利益體等。

  • 共識機制安全性

針對區塊鏈來說,其共識機制的選擇是區塊鏈技術的關鍵特徵,當前的共識機制有全局化的,每個人都可以參與共識,無任何限制(例如比特幣區塊鏈網路和以太坊區塊鏈網路);有局部化,只有指定的關鍵幾個節點起決定性作用(例如Ripple區塊鏈網路)。採用不同的共識機制需要考慮整個區塊鏈網路的活性和業務安全性。像比特幣、以太坊等區塊鏈網路,更加強調活性,為了增加整個網路的活性,寧可分叉,也要保證整個網路的持續運行。而Ripple、Stellar等區塊鏈網路,更加強調業務安全性,當網路中出現異常事務時,寧可全網停機維護升級,也要進行維護升級。兩種類型的折中考慮和實現,是通過共識機制的設計進行保證,不能簡單的評價誰對誰錯,要按照業務的實際應用場景進行選擇。當進行泛金融領域的業務時,首先應該考慮的是業務安全性,避免系統性風險。

給出一個建議:當要搭建一個公有鏈時更多的要考慮活性,當搭建聯盟鏈或者專有鏈的時候,更多的要考慮業務安全性。

  • 業務安全性

或者語義安全性,或者邏輯安全性,此類安全性最為複雜,也是最為難以防範,比如說以太坊的DAO事件,出問題的是在智能合約,而不是底層的區塊鏈網。越靈活使用的區塊鏈技術,出現問題的概率越大,防範此類安全性風險當前沒有一個金剛鑽,能包治百病,形式化驗證、靜態分析、覆蓋率測試等等,也是在開展基於區塊鏈業務時需要重點考慮的一類安全風險。

匯總了區塊鏈領域的幾個主要安全性問題,供參考。

推薦閱讀:

什麼是比特幣的閃電網路?
高盛為什麼要退出 R3 區塊鏈聯盟?
怎樣才能修改區塊鏈里的數據?請結合技術和現實場景來描述?
你認為中本聰是誰?或者說是怎麼樣的人?他的生活狀態是什麼樣的?

TAG:区块链Blockchain | 数字化货币 | 以太坊 |