淺析--如何使區(qū)塊鏈具有安全性
1.區(qū)塊鏈定義
區(qū)塊鏈是比特幣的一個意外發(fā)現(xiàn)和生產(chǎn)物,源于化名為“中本聰”的學者在2008年發(fā)表的論文《比特幣:一種點對點電子現(xiàn)金系統(tǒng)》,被認為是繼大型機、個人電腦、互聯(lián)網(wǎng)之后計算模式的顛覆式創(chuàng)新。但該文重點在于討論比特幣系統(tǒng),并沒有明確提出區(qū)塊鏈的定義和概念,只描述其為用于記錄比特幣交易的賬目歷史。
關(guān)于區(qū)塊鏈,Wikipedia定義:最早的區(qū)塊鏈技術(shù)雛形出現(xiàn)在比特幣項目中,作為比特幣背后的分布式記賬平臺,在無集中式管理的情況下,比特幣網(wǎng)絡(luò)穩(wěn)定運行了近八年時間,支持了海量的交易記錄,并未出現(xiàn)嚴重的漏洞。
結(jié)合區(qū)塊鏈的起源,在比特幣系統(tǒng)中,“幣”準確描述了其金融屬性,但最重要的不是“幣”的概念,而是一個沒有中心存儲機構(gòu)的“賬本”的概念,“幣”只是在這個賬本上使用的記賬單位。通俗講,比特幣本質(zhì)就是一個基于互聯(lián)網(wǎng)的去中心賬本,而區(qū)塊鏈就是這個賬本的名字。從記賬角度,區(qū)塊鏈可以被認為是第一個試圖自帶信任化和防止篡改的數(shù)字記賬技術(shù)。
2016年10月工信部發(fā)布的區(qū)塊鏈白皮書,定義:狹義來講,區(qū)塊鏈是一種按照時間順序?qū)?shù)據(jù)區(qū)塊以順序相連的方式組合成的一種鏈式數(shù)據(jù)結(jié)構(gòu),并以密碼學方式保證的不可篡改和不可偽造的分布式賬本。廣義來講,區(qū)塊鏈技術(shù)是利用塊鏈式數(shù)據(jù)結(jié)構(gòu)來驗證與存儲數(shù)據(jù)、利用分布式節(jié)點共識算法來生成和更新數(shù)據(jù)、利用密碼學的方式保證數(shù)據(jù)傳輸和訪問的安全、利用自動化腳本代碼組成的智能合約來編程和操作數(shù)據(jù)的一種全新的分布式基礎(chǔ)架構(gòu)和計算范式。
2.區(qū)塊鏈工作流程
區(qū)塊鏈對應(yīng)的英文Block Chain,即“數(shù)據(jù)塊組成的鏈條”,這要求參與到鏈上的所有節(jié)點,共同維護區(qū)塊鏈數(shù)據(jù),每個參與維護節(jié)點都能復(fù)制獲得一份完整記錄的備份。為進一步了解區(qū)塊鏈技術(shù),先了解其工作流程,如圖所示:
圖1 區(qū)塊鏈工作流程
大致如下:
1) 發(fā)送節(jié)點將新的數(shù)據(jù)記錄向全網(wǎng)進行廣播;
2) 接收節(jié)點對收到的數(shù)據(jù)記錄信息進行校驗,包括記錄是否合法,校驗通過后,記錄被納入到一個區(qū)塊中;
3) 全網(wǎng)所有接收節(jié)點對區(qū)塊執(zhí)行共識算法(工作量證明、權(quán)益證明等);
4) 區(qū)塊通過共識算法過程后被正式納入?yún)^(qū)塊鏈中存儲,全網(wǎng)節(jié)點均表示接受該區(qū)塊,而表示接受的方法,就是將區(qū)塊的隨機散列值視為最新的區(qū)塊散列值,新區(qū)塊的制造將以該區(qū)塊鏈為基礎(chǔ)進行延長。
其中,節(jié)點始終都將最長的區(qū)塊鏈視為正確的鏈,并持續(xù)以此為基礎(chǔ)驗證和延長它。如果有兩個節(jié)點同時廣播不同版本的新區(qū)塊,那么其他節(jié)點在接收到該區(qū)塊的時間上將存在先后差異,他們將在先收到的區(qū)塊基礎(chǔ)上進行工作,但也保留另一個鏈條,以防后者變成更長的鏈。接下來需要共識算法的進一步約束,當其中一條鏈被證實為較長的,則另一條分支上的節(jié)點開始在較長鏈條上工作,以防止鏈分叉。如下圖所示:
圖2 區(qū)塊鏈分叉情況
根據(jù)工作流程,區(qū)塊鏈的特點應(yīng)該包括以下幾點:
a) 維護一條不斷增長的鏈,只可能添加記錄,而發(fā)生過的記錄都不可篡改;
b) 去中心化,也是多中心化,無需集中控制而能達成共識,實現(xiàn)上盡量分布式;
通過密碼學的機制來確保交易無法抵賴和破壞,并盡量保護記錄的隱私性。
3.區(qū)塊鏈安全性
關(guān)鍵技術(shù)
根據(jù)定義和工作流程,本質(zhì)上,區(qū)塊鏈技術(shù)是在信息不對稱的情況下,無需相互擔保信任或第三方中介參與,采用基于共識機制和加密算法的節(jié)點間普遍通過即為認可的信任機制。共識機制[注]和加密算法也是區(qū)塊鏈保證數(shù)據(jù)安全、不可篡改以及透明性的關(guān)鍵技術(shù)。其中,共識機制主要解決由誰來構(gòu)造區(qū)塊,以及如何維護區(qū)塊鏈統(tǒng)一的問題;加密算法用來解決電子貨幣的所有權(quán)問題。區(qū)塊鏈技術(shù)在不同領(lǐng)域中的探索,主要在于選擇合適的共識機制和加密算法。(注:區(qū)塊鏈系統(tǒng)中實現(xiàn)不同節(jié)點之間建立信任、獲取權(quán)益的數(shù)學算法。)
共識機制保證區(qū)塊鏈中節(jié)點數(shù)據(jù)一致,主流機制有工作量證明PoW、權(quán)益證明PoS、股份授權(quán)證明Dpos和拜占庭容錯PBFT等。比特幣的共識機制采用工作量證明,礦工通過編碼生產(chǎn)器計算有效賬號編碼時,需要通過大量計算,平均10分鐘生成一個有效賬單編號并完成一筆交易清結(jié)算。這種機制不適用要求高效率的行業(yè),無法保證用戶體驗。
信息的加密是區(qū)塊鏈的關(guān)鍵環(huán)節(jié),主要是哈希函數(shù)和非對稱加密兩部分的算法。其中,非對稱加密部分使用私鑰證明節(jié)點所有權(quán),通過數(shù)字簽名實現(xiàn);使用哈希散列(hash)算法,把任意長度的輸入變換成固定長度的由字母和數(shù)字組成的輸出,具有不可逆性,實現(xiàn)不可篡改。比特幣區(qū)塊鏈其實就是哈希鏈的一個變種。
優(yōu)勢
在信息安全的角度分析,區(qū)塊鏈的優(yōu)勢主要有:
1) 利用高冗余的數(shù)據(jù)庫保障信息的完整性;
2) 利用密碼學的相關(guān)原理進行數(shù)據(jù)驗證,保證不可篡改;
3) 運用多私鑰進行訪問權(quán)限控制。
區(qū)塊鏈以其可信任性、安全性和不可篡改性,讓更多數(shù)據(jù)被解放出來,推進數(shù)據(jù)的海量增長。
局限及不足
現(xiàn)在的區(qū)塊鏈盡管不斷得到研究、應(yīng)用,依舊存在著一定的安全局限,導(dǎo)致在技術(shù)層和業(yè)務(wù)層都面臨諸多挑戰(zhàn)。
1) 共識機制挑戰(zhàn)
對于區(qū)塊鏈中的共識算法,是否能實現(xiàn)并保障真正的安全,需要更嚴格的證明和時間的考驗。采用的非對稱加密算法可能會隨著數(shù)據(jù)、密碼學和計算技術(shù)的發(fā)展而變的越來越脆弱,未來可能具有一定的破解性。此外,區(qū)塊鏈上包含賬戶安全的私鑰是否容易竊取仍待進一步探索。
2) 51%攻擊
在比特幣中,若控制節(jié)點中絕大多數(shù)計算資源,就能重改公有賬本,這被稱為51%攻擊。真實的區(qū)塊鏈網(wǎng)絡(luò)是自由開放的,所以,理論上,區(qū)塊鏈上無法阻止擁有足夠多計算資源的節(jié)點做任何操作。在現(xiàn)實情況下,發(fā)起51%攻擊是具有一定可行性的。當然,擁有足夠的算力并不會迅速破壞整個體系——至少不是短時間內(nèi),但可能會導(dǎo)致系統(tǒng)混亂。
3) N@S攻擊
針對PoW共識算法容易遭受51%攻擊的問題,一些研究人員對PoW共識算法進行了改進,但在解決舊有問題的同時,也引入了區(qū)塊分叉時的N@S (Nothing at stake)攻擊問題。比如,在某些情況下一個區(qū)塊可以暫時擁有兩個子區(qū)塊。這種分叉狀態(tài)出現(xiàn)時,一般是兩個礦工都在短時間內(nèi)發(fā)現(xiàn)了工作量的解答,然后將所添加的傳播到臨近網(wǎng)絡(luò)中去,其他節(jié)點便慢慢形成兩種版本(子區(qū)塊)的區(qū)塊鏈。區(qū)塊鏈中規(guī)定,這種情況下的判定條件是選擇工作總量最大的那條子區(qū)塊。出于自身利益最大的考慮,節(jié)點上可以同時在兩個分支上繼續(xù)工作,以保證利益的獲取。假設(shè)99%的節(jié)點用戶都如此理性地考慮收益的話,即便攻擊者只掌握1%的權(quán)益依舊可以決定區(qū)塊鏈的分支走向。他可以發(fā)出交易請求,獲得資產(chǎn) ,然后再從另一條分支上獲取添加貨幣到自己的錢包中。
此外,區(qū)塊鏈也存在一些難以克服的不足:
比如效率問題。區(qū)塊鏈沒有單一節(jié)點可信任,通過計算來換取信任。簡單的一個承認交易操作,需要大量的計算參與進來。以比特幣系統(tǒng)為例,定義每個區(qū)塊的一個賬本大小是1M,每10分鐘產(chǎn)生一個這樣的區(qū)塊,每個最基本的比特幣交易大小是250B,每秒處理速度為1024000(=1024KB=1M)/250/600(=10分鐘)=6.6,也就是說,理論上每秒可以處理6.6個比特幣的交易。雖然比特幣擴容有了技術(shù)解決方案,但實踐仍需要時間。
比如匿名引發(fā)的風險。區(qū)塊鏈開發(fā)者認為匿名性在區(qū)塊鏈交易中是重要的,并非“抗審查”。如果礦工決定不處理某筆交易在地址間的收發(fā),那就證明交易是受礦工審查的。如果交易是匿名的,礦工就不能決定優(yōu)先處理哪些交易,也就不能進行審查。但匿名性會造成非法交易的猖獗,執(zhí)法部門很難溯源。
4.結(jié)束語
盡管存在一定的安全局限和難以克服的不足,但區(qū)塊鏈技術(shù)提供了一個規(guī)?;墓沧R機制,可以作為一種更高效解決信任問題的手段,建立去中心化的可信網(wǎng)絡(luò)。目前,區(qū)塊鏈的應(yīng)用已從單一的數(shù)字貨幣(如比特幣)應(yīng)用,延伸到經(jīng)濟社會的各個領(lǐng)域,除金融服務(wù)行業(yè)的應(yīng)用相對成熟外,其他行業(yè)的應(yīng)用還處于探索起步階段,期待區(qū)塊鏈技術(shù)的更新和完善。
【本文為51CTO專欄作者“中國保密協(xié)會科學技術(shù)分會”原創(chuàng)稿件,轉(zhuǎn)載請聯(lián)系原作者】