區(qū)塊鏈為我們提供了額外安全層平臺的可能性
科技專家、企業(yè)家謝爾曼?李(Sherman Lee)最近表示:“區(qū)塊鏈本身可能是不可信、不可改變和清廉的,但如果我們忽略其中存在的漏洞,它們就相當(dāng)于使價值數(shù)十億美元鎖在有問題的保險箱里?!眳^(qū)塊鏈因其復(fù)雜的數(shù)學(xué)運(yùn)算而自吹自擂為“廉潔”,但在現(xiàn)實(shí)中,如果在實(shí)際場景中實(shí)現(xiàn),生成的軟件可能會有可能導(dǎo)致整個系統(tǒng)崩潰的缺陷。黑客只需要一個半開著的后門,就能利用系統(tǒng)中的漏洞。節(jié)點(diǎn)內(nèi)部、工作證明協(xié)議中或塊內(nèi)的微小裂縫會在軟件中造成混亂。
換句話說,可以用簡單得多、但圖形化更明確的方式來解釋Sherman Lee的話:區(qū)塊鏈作為一種技術(shù),其本身是安全的;另一方面,人類卻不總是安全的。由于人們并不完全信任彼此,我們開發(fā)了一些工具,使我們能夠以更安全的方式進(jìn)行交易、共享或存儲各種資產(chǎn)(包括敏感信息和金錢)。
區(qū)塊鏈與已經(jīng)實(shí)現(xiàn)的技術(shù)沒有太大的不同,但是它的特殊之處在于整個系統(tǒng)的復(fù)雜性。
基本上,區(qū)塊鏈?zhǔn)且粋€計算系統(tǒng),它具有跟蹤系統(tǒng)中所有交易的特殊能力。這里的交易還涉及任何其他用戶或計算機(jī)對系統(tǒng)進(jìn)行的任何類型的修改。區(qū)塊鏈系統(tǒng)中的這些更改被存儲并添加到系統(tǒng)中,就像在會計分類賬中寫入一樣。這個分類賬,或記錄列表,然后存儲在整個系統(tǒng)中,這意味著在每臺相互連接的計算機(jī)中,這是網(wǎng)絡(luò)的一部分。這些是區(qū)塊鏈網(wǎng)絡(luò)系統(tǒng)中的節(jié)點(diǎn)。
到目前為止,我們可以說區(qū)塊鏈只是一個數(shù)字會計分類賬,它的信息在計算機(jī)網(wǎng)絡(luò)中共享。然而,區(qū)塊鏈的特殊性在于,一個給定的交易必須經(jīng)過的所有流程都要寫入該分類賬中。首先,每個修改(或交易)都必須由區(qū)塊鏈平臺內(nèi)的所有成員(或計算機(jī),因?yàn)椴僮飨喈?dāng)自動化)批準(zhǔn),這意味著由網(wǎng)絡(luò)的所有節(jié)點(diǎn)批準(zhǔn)。如果這些驗(yàn)證了預(yù)期的更改,則此修改將成為一個塊,并將其添加到現(xiàn)有的分類賬中。這個分類賬一直在增長,所以它變成了一個鏈。
因此,我們可以看到區(qū)塊鏈的兩個主要安全特性:它的無信任原則和它的分散方案或協(xié)商共識協(xié)議:網(wǎng)絡(luò)的所有成員都必須驗(yàn)證對網(wǎng)絡(luò)的任何給定修改。否則,它不會被添加到區(qū)塊鏈中。
簡單地說,鏈中的所有塊都包含哈希值,用于過去和將來在網(wǎng)絡(luò)中所做的所有修改。這個過程,也被第一個區(qū)塊鏈平臺比特幣稱為工作量證明,可能是最創(chuàng)新的,但不幸的是,它需要大量的能源消耗,因?yàn)橛嬎銠C(jī)解決的問題存在高度的復(fù)雜性。它還要求成百上千的計算機(jī)在同一件事上達(dá)成一致:修改是真實(shí)的,因此可以添加到區(qū)塊鏈中。
因此,簡而言之,這就是區(qū)塊鏈平臺的基本安全原則:以無信任原則的形式進(jìn)行保密,以避免不必要的監(jiān)視;系統(tǒng)及其數(shù)據(jù)通過所述共識協(xié)議的完整性和可用性,因?yàn)榫W(wǎng)絡(luò)的所有成員共享所有完成和驗(yàn)證的交易的記錄,所以網(wǎng)絡(luò)總是處于啟動和運(yùn)行狀態(tài)。
區(qū)塊鏈騙局
盡管區(qū)塊鏈背后有這么多的復(fù)雜性和安全協(xié)議,但在計算系統(tǒng)中沒有什么是真正和完全安全的,而且人類通過行動(或不行動)已經(jīng)找到了利用區(qū)塊鏈網(wǎng)絡(luò)中的bug和其他故障的方法。
這是區(qū)塊鏈安全性的一個主要問題。由于其數(shù)學(xué)和算法的復(fù)雜性,用區(qū)塊鏈構(gòu)建一個新的軟件是相當(dāng)困難的。區(qū)塊鏈協(xié)議仍然處于開發(fā)的早期階段??偟膩碚f,開發(fā)人員發(fā)現(xiàn)自己使用的是缺乏真實(shí)環(huán)境來測試的粗糙軟件,這并不奇怪。這在很多情況下會導(dǎo)致新軟件中的錯誤和不一致。以以太坊的君士坦丁堡硬叉為例,以太坊區(qū)塊鏈的升級在發(fā)現(xiàn)關(guān)鍵漏洞后推遲了一個多月。事實(shí)上,這種硬分叉的開發(fā)正是為了關(guān)閉和修復(fù)以太層區(qū)塊鏈中的錯誤。
另一種欺騙區(qū)塊鏈平臺的方法是由康奈爾大學(xué)的Emin Gun Sirer和他的同事們發(fā)現(xiàn)的。他們發(fā)現(xiàn),自私的挖掘人員可以欺騙網(wǎng)絡(luò)中的每個節(jié)點(diǎn),讓它們在已經(jīng)解決的密碼謎題上浪費(fèi)時間,這將使自私的挖掘人員在解決新塊時獲得關(guān)鍵優(yōu)勢。
另一個欺騙的選擇是所謂的eclipse攻擊。為了比較數(shù)據(jù),區(qū)塊鏈上的節(jié)點(diǎn)必須保持恒定的通信。攻擊者設(shè)法控制一個節(jié)點(diǎn)的通信,并欺騙它接受來自網(wǎng)絡(luò)其他部分的虛假數(shù)據(jù),從而使其浪費(fèi)資源或確認(rèn)虛假交易。那么,在區(qū)塊鏈中釣魚也是一種選擇。
智能合約是區(qū)塊鏈在安全性方面的一個里程碑特性,它也會帶來需要解決的新問題。智能合約是存儲在特定類型的區(qū)塊鏈中的自動化計算機(jī)程序,它可以自動化交易。但這些都是高度復(fù)雜的,處于非常早期的發(fā)展階段。正因?yàn)槿绱耍S多智能合約軟件已經(jīng)發(fā)現(xiàn)自己由于錯誤和不兼容性而出現(xiàn)大量的安全漏洞。加密貨幣行業(yè)已經(jīng)遭遇了一些安全漏洞,造成數(shù)億美元的損失。
當(dāng)談到區(qū)塊鏈和安全性時,還會出現(xiàn)其他問題。據(jù)說比特幣是去中心化的,但是大部分比特幣和以太坊的共識協(xié)議是由非常少的用戶持有的(數(shù)百臺計算機(jī)種植這些數(shù)字貨幣)。他們使用的工作量證明方案也引起了一些爭議。該協(xié)議對于驗(yàn)證區(qū)塊鏈中的新修改至關(guān)重要,并且由網(wǎng)絡(luò)中的所有計算機(jī)執(zhí)行。有人認(rèn)為,該協(xié)議給了礦商太多的權(quán)力,允許他們設(shè)置解決的塊的指導(dǎo)方針、速度和數(shù)量。
這些是區(qū)塊鏈及其開發(fā)人員今天必須面對的主要危險。正如LEE先生在本文開頭所說,區(qū)塊鏈的定義是安全的。它的算法只是現(xiàn)代計算的一種最新技術(shù),它存儲、保護(hù)和共享數(shù)據(jù)的方式幾乎是不可思議的。然而,當(dāng)人類把手伸進(jìn)去的時候,問題就來了。因此,問題是:區(qū)塊鏈現(xiàn)在對誰是安全的?什么是安全的?一旦我們對這些問題有了正確的答案(如果我們曾經(jīng)有過的話),區(qū)塊鏈必將成為我們這個時代最偉大的技術(shù)之一。