文章來源:中國保密協會科學技術分會

區塊鏈是一種基於加密技術的低成本、高安全、可定製和封裝的去中心化信任解決工具,也是分佈式數據存儲、點對點傳輸、共識機制、加密算法等計算機技術在互聯網時代的創新應用模式。目前,其應用已延伸到物聯網、智能製造、供應鏈管理、數字資產交易等多個領域。本文根據區塊鏈的定義和工作流程,從技術角度分析區塊鏈的安全性。

區塊鏈定義

區塊鏈是比特幣的一個意外發現和生產物,源於化名爲「中本聰」的學者在 2008 年發表的論文《比特幣:一種點對點電子現金系統》,被認爲是繼大型機、個人電腦、互聯網之後計算模式的顛覆式創新。但該文重點在於討論比特幣系統,並沒有明確提出區塊鏈的定義和概念,只描述其爲用於記錄比特幣交易的賬目歷史。

關於區塊鏈,Wikipedia 定義:最早的區塊鏈技術雛形出現在比特幣項目中,作爲比特幣背後的分佈式記賬平臺,在無集中式管理的情況下,比特幣網絡穩定運行了近八年時間,支持了海量的交易記錄,並未出現嚴重的漏洞。

結合區塊鏈的起源,在比特幣系統中,「幣」準確描述了其金融屬性,但最重要的不是「幣」的概念,而是一個沒有中心存儲機構的“賬本”的概念,「幣」只是在這個賬本上使用的記賬單位。通俗講,比特幣本質就是一個基於互聯網的去中心賬本,而區塊鏈就是這個賬本的名字。從記賬角度,區塊鏈可以被認爲是第一個試圖自帶信任化和防止篡改的數字記賬技術。

2016 年 10 月工信部發布的區塊鏈白皮書,定義:狹義來講,區塊鏈是一種按照時間順序將數據區塊以順序相連的方式組合成的一種鏈式數據結構,並以密碼學方式保證的不可篡改和不可僞造的分佈式賬本。廣義來講,區塊鏈技術是利用塊鏈式數據結構來驗證與存儲數據、利用分佈式節點共識算法來生成和更新數據、利用密碼學的方式保證數據傳輸和訪問的安全、利用自動化腳本代碼組成的智能合約來編程和操作數據的一種全新的分佈式基礎架構和計算範式。

區塊鏈工作流程

區塊鏈對應的英文 Block Chain,即「數據塊組成的鏈條」,這要求參與到鏈上的所有節點,共同維護區塊鏈數據,每個參與維護節點都能複製獲得一份完整記錄的備份。爲進一步瞭解區塊鏈技術,先了解其工作流程,如圖所示:

區塊鏈的安全性淺析圖 1 區塊鏈工作流程

大致如下:

1) 發送節點將新的數據記錄向全網進行廣播;

2) 接收節點對收到的數據記錄信息進行校驗,包括記錄是否合法,校驗通過後,記錄被納入到一個區塊中;

3) 全網所有接收節點對區塊執行共識算法(工作量證明、權益證明等);

4) 區塊通過共識算法過程後被正式納入區塊鏈中存儲,全網節點均表示接受該區塊,而表示接受的方法,就是將區塊的隨機散列值視爲最新的區塊散列值,新區塊的製造將以該區塊鏈爲基礎進行延長。

其中,節點始終都將最長的區塊鏈視爲正確的鏈,並持續以此爲基礎驗證和延長它。如果有兩個節點同時廣播不同版本的新區塊,那麼其他節點在接收到該區塊的時間上將存在先後差異,他們將在先收到的區塊基礎上進行工作,但也保留另一個鏈條,以防後者變成更長的鏈。接下來需要共識算法的進一步約束,當其中一條鏈被證實爲較長的,則另一條分支上的節點開始在較長鏈條上工作,以防止鏈分叉。如下圖所示:

區塊鏈的安全性淺析圖 2 區塊鏈分叉情況

根據工作流程,區塊鏈的特點應該包括以下幾點:

a) 維護一條不斷增長的鏈,只可能添加記錄,而發生過的記錄都不可篡改;

b) 去中心化,也是多中心化,無需集中控制而能達成共識,實現上儘量分佈式;

通過密碼學的機制來確保交易無法抵賴和破壞,並儘量保護記錄的隱私性。

區塊鏈安全性

關鍵技術

根據定義和工作流程,本質上,區塊鏈技術是在信息不對稱的情況下,無需相互擔保信任或第三方中介參與,採用基於共識機制和加密算法的節點間普遍通過即爲認可的信任機制。共識機制 [注] 和加密算法也是區塊鏈保證數據安全、不可篡改以及透明性的關鍵技術。其中,共識機制主要解決由誰來構造區塊,以及如何維護區塊鏈統一的問題;加密算法用來解決電子貨幣的所有權問題。區塊鏈技術在不同領域中的探索,主要在於選擇合適的共識機制和加密算法。(注:區塊鏈系統中實現不同節點之間建立信任、獲取權益的數學算法。)

共識機制保證區塊鏈中節點數據一致,主流機制有工作量證明 PoW、權益證明 PoS、股份授權證明 Dpos 和拜占庭容錯 PBFT 等。比特幣的共識機制採用工作量證明,礦工通過編碼生產器計算有效賬號編碼時,需要通過大量計算,平均 10 分鐘生成一個有效賬單編號並完成一筆交易清結算。這種機制不適用要求高效率的行業,無法保證用戶體驗。

信息的加密是區塊鏈的關鍵環節,主要是哈希函數和非對稱加密兩部分的算法。其中,非對稱加密部分使用私鑰證明節點所有權,通過數字簽名實現;使用哈希散列(hash)算法,把任意長度的輸入變換成固定長度的由字母和數字組成的輸出,具有不可逆性,實現不可篡改。比特幣區塊鏈其實就是哈希鏈的一個變種。

優勢

在信息安全的角度分析,區塊鏈的優勢主要有:

1) 利用高冗餘的數據庫保障信息的完整性;

2) 利用密碼學的相關原理進行數據驗證,保證不可篡改;

3) 運用多私鑰進行訪問權限控制。

區塊鏈以其可信任性、安全性和不可篡改性,讓更多數據被解放出來,推進數據的海量增長。

侷限及不足

現在的區塊鏈儘管不斷得到研究、應用,依舊存在着一定的安全侷限,導致在技術層和業務層都面臨諸多挑戰。

1) 共識機制挑戰

對於區塊鏈中的共識算法,是否能實現並保障真正的安全,需要更嚴格的證明和時間的考驗。採用的非對稱加密算法可能會隨着數據、密碼學和計算技術的發展而變的越來越脆弱,未來可能具有一定的破解性。此外,區塊鏈上包含賬戶安全的私鑰是否容易竊取仍待進一步探索。

2) 51% 攻擊

在比特幣中,若控制節點中絕大多數計算資源,就能重改公有賬本,這被稱爲 51% 攻擊。真實的區塊鏈網絡是自由開放的,所以,理論上,區塊鏈上無法阻止擁有足夠多計算資源的節點做任何操作。在現實情況下,發起 51% 攻擊是具有一定可行性的。當然,擁有足夠的算力並不會迅速破壞整個體系——至少不是短時間內,但可能會導致系統混亂。

3) N@S 攻擊

針對 PoW 共識算法容易遭受 51% 攻擊的問題,一些研究人員對 PoW 共識算法進行了改進,但在解決舊有問題的同時,也引入了區塊分叉時的 N@S (Nothing at stake) 攻擊問題。比如,在某些情況下一個區塊可以暫時擁有兩個子區塊。這種分叉狀態出現時,一般是兩個礦工都在短時間內發現了工作量的解答,然後將所添加的傳播到臨近網絡中去,其他節點便慢慢形成兩種版本 (子區塊) 的區塊鏈。區塊鏈中規定,這種情況下的判定條件是選擇工作總量最大的那條子區塊。出於自身利益最大的考慮,節點上可以同時在兩個分支上繼續工作,以保證利益的獲取。假設 99% 的節點用戶都如此理性地考慮收益的話,即便攻擊者只掌握 1% 的權益依舊可以決定區塊鏈的分支走向。他可以發出交易請求,獲得資產 ,然後再從另一條分支上獲取添加貨幣到自己的錢包中。

此外,區塊鏈也存在一些難以克服的不足:

比如效率問題。區塊鏈沒有單一節點可信任,通過計算來換取信任。簡單的一個承認交易操作,需要大量的計算參與進來。以比特幣系統爲例,定義每個區塊的一個賬本大小是 1M,每 10 分鐘產生一個這樣的區塊,每個最基本的比特幣交易大小是 250B,每秒處理速度爲 1024000 (=1024KB=1M)/250/600 (=10 分鐘)=6.6,也就是說,理論上每秒可以處理 6.6 個比特幣的交易。雖然比特幣擴容有了技術解決方案,但實踐仍需要時間。

比如匿名引發的風險。區塊鏈開發者認爲匿名性在區塊鏈交易中是重要的,並非「抗審查」。如果礦工決定不處理某筆交易在地址間的收發,那就證明交易是受礦工審查的。如果交易是匿名的,礦工就不能決定優先處理哪些交易,也就不能進行審查。但匿名性會造成非法交易的猖獗,執法部門很難溯源。

結束語

儘管存在一定的安全侷限和難以克服的不足,但區塊鏈技術提供了一個規模化的共識機制,可以作爲一種更高效解決信任問題的手段,建立去中心化的可信網絡。目前,區塊鏈的應用已從單一的數字貨幣(如比特幣)應用,延伸到經濟社會的各個領域,除金融服務行業的應用相對成熟外,其他行業的應用還處於探索起步階段,期待區塊鏈技術的更新和完善。

來源鏈接:www.sohu.com