關於區塊鏈,有哪些不可忽視的安全問題?

隨著區塊鏈技術應用的日益深入,安全問題越來越顯得重要。但現實是,目前整個區塊鏈行業的安全性並不樂觀,據粗略統計,2018年全年已有近百起安全事故發生。僅2018年上半年,區塊鏈領域因安全問題產生的損失就超過27億美元。

關於區塊鏈,有哪些不可忽視的安全問題?

如果區塊鏈技術想要得到更大範圍的應用,安全問題必須首先得到解決。那到底有哪些安全漏洞?又該怎麼去解決應對呢?

區塊鏈安全問題的產生

按照解放軍信息工程大學斯雪明教授的看法,區塊鏈安全問題的產生,主要來自於私鑰的生成與保護、共識過程的中心化、智能合約代碼漏洞、簽名過程算法漏洞、系統實現代碼漏洞等。

迅雷鏈底層開發工程師張驍從密碼學的角度分析“安全”的含義,他將其總結為三個方面。

1.機密性。信息數據在傳輸的時候,會進行加密處理。如果信息被未獲授權或者不擁有相應密鑰的人拿到,是無法讀取信息原文的,這就是信息的加密性。

2.完整性。即所傳輸的信息要保證是完整狀態,不能在中間被惡意篡改或者增添、刪除一些信息。比如一張欠條,其中的金額數字、歸還日期以及欠款人等關鍵信息,不能夠被塗改,否則就認為是完整性遭到破壞,直接作廢,這就是最常見的一種對信息完整性的要求。

3.可用性。指相應的密碼學的信息,在任何一個時間下都應該可以被外界所用。如前文所述的欠條,它應該保證在任何時候都能被拿出來、被展示出來,而不應該遺失、損毀。這就是信息安全中的可用性,也是信息安全保護的重要範疇。

在張驍看來,區塊鏈安全問題有著自己的特性。區塊鏈自身的不可篡改、公開透明等特性,既是早就區塊鏈價值的基石,但同時也因此給安全性帶來更大的挑戰。

一方面,因為數據不可篡改,所以一旦鏈上出現了安全漏洞,就很難消除,甚至根本就無法處理,或者是需要付出非常大的代價。比如當年的DAO事件,最終就導致以太坊最終產生了硬分叉,這對一條公鏈來說,基本是致命性的傷害。

另一方面,因為區塊鏈數據要公開透明,特別是鏈上的智能合約,必須對代碼進行開源才能達成信任,如此一來,因為源碼公開,再加上虛擬機以及編譯器都是公開的,一旦有安全漏洞,就很容易被有心人發覺。這兩點綜合在一起,給區塊鏈的安全性帶來了更高的要求。

關於區塊鏈,有哪些不可忽視的安全問題?

處理方案:測試先行,預防為主

針對這些安全問題,目前各大公鏈都推出了相應的解決措施,很多機構、實驗室也開始相關研究。目前來看,主要是以預防為主,具體手段在代碼上線前進行全面、完善的測試,這是區塊鏈開發中的重要環節。

之所以以預防為主,是因為區塊鏈作為去中心化系統,代碼一旦上線運行,就不再受任何人控制,無法停止,硬性干預的後果非常嚴重,往往會導致分叉或者回滾。因此做好前期的測試工作,才是杜絕安全問題的根本。

目前常見的測試手段有共識機制安全測試,主要測試採用的共識機制能否抵禦雙花攻擊、重放攻擊等常見的攻擊手段,以及是否有良好的容錯能力。

此外,智能合約安全測試也很重要,主要檢查智能合約是否存在常見的安全漏洞、是否可信以及是否符合規範和流程。此外,還可進行代碼審計工作,在代碼層次尋找可能存在的漏洞。

從底層架構上設計好安全系統

關於區塊鏈,有哪些不可忽視的安全問題?

一些技術水平較高的公鏈,也在開始探索從底層架構上解決安全問題。比如屢遭安全問題的以太坊,就有開發團隊開始審視其安全制度,認為現行智能合約架構中存在的多項漏洞,是以太坊安全問題頻發的根本原因。該團隊建議,未來對以太坊上智能合約添加相應的限制條款,如限制在智能合約中存儲以太坊的數量,限制代碼中函數的長度,要求每份合約程序都要有完整的註釋,以及限制交易gas,強制添加自檢程序等。

如果這一建議能夠得到實施,將大幅提高以太坊上智能合約的安全性,只是目前推進得並不理想。

而今年鬧出27起安全問題的EOS也似乎在考慮更改安全架構,其靈魂人物BM前段時間一連串反問中透露出的信息表明,未來EOS或許不排除拋棄DPOS架構,正是這種架構讓EOS抗攻擊的能力偏弱。

據迅雷鏈開放平臺負責人張慧勇介紹,目前迅雷鏈已經把安全問題做到了共識機制的層面。

迅雷鏈採用的的共識機制是知名的DPoA+PBFT雙重算法。其中,PBFT算法來實現秒級確認,以及確認結果的一致性,因為PBFT算法的特性就是所有結果都需經超過2/3的節點確認,由此確保了結果一旦產生,就不會產生回滾,也不會產生分叉。

不過PBFT算法通信量大,不適用於節點特別多的公鏈,而迅雷鏈有150萬+個共享節點,同時PBFT防非法節點作惡的能力也比較差,因此迅雷鏈又用DPoA算法來加以彌補。

這種算法是從總節點中篩選出可用的優秀節點,建立備用節點池,再從中隨機選擇節點加入共識。既可保證共識節點總數不會過多,控制總體通信量,同時更重要的是,這樣讓所有節點都處於一種隨機動態中,由此避免了非法節點作惡,以此可保證整個系統的穩定性和可用性。

除算法之外,迅雷鏈還希望通過接口級的管控達到整個鏈的安全。在迅雷鏈上,所有Dapp的開發者都需要實名制,如果是企業則需要預先通過企業級認證,此舉目的在於,保證鏈上發佈的合約,都能找到負責人,一旦發現有惡意合約,可以快速追責到人,由此震懾一些不法分子。

另外,迅雷鏈還有合約上鍊的審核機制,通過這種審核機制能夠前置發現一些問題。迅雷鏈保留了合約的緊急避險能力,當發現合約出現安全問題時,可以暫時把合約關閉掉,以便徹查並修復。同時,萬一出現了非法合約或者非法應用,能夠有效加以制止,而不影響整條鏈的生態。

總的來說,目前區塊鏈的安全形勢還是比較嚴峻的,不過需要注意的是,這並不意味著區塊鏈技術的失敗,事實上任何一種技術都不可避免地存在安全上漏洞。目前,分佈式系統在安全性上的優勢已經得到初步展現,未來在技術進一步成熟之後,完全有信心在安全性上得到更高水平的加強。總之,區塊鏈作為一種還很年輕的技術,還有很多需要完善的地方,這有賴於所有區塊鏈技術信仰者的共同努力。


分享到:


相關文章: