一文讀懂區塊鏈安全:區塊鏈會帶來哪些衝擊?

山石網科新視界發表於2020-09-01


  

一文讀懂區塊鏈安全:區塊鏈會帶來哪些衝擊?


一文讀懂區塊鏈安全:區塊鏈會帶來哪些衝擊?


透過上期《山石巖讀》,我們瞭解了區塊鏈是什麼,以及在加密貨幣應用領域中區塊鏈應用程式的三個可能的通用用例。區塊鏈在帶來更多可能的同時,也必然帶來巨大的衝擊。這些衝擊將會給我們帶來怎樣的影響呢?


三、區塊鏈技術帶來的衝擊


衡量區塊鏈潛在影響的一個方法是考慮該技術的完整性可擴充套件性,當然,還有其它安全性和隱私方面的影響。


1.完整性


公共和私有區塊鏈環境對完整性的影響是不同的。公共區塊鏈網路存在於一個“無許可”的環境中,任何人都可以使用適當的軟體在網路上執行交易。此外,網路不受中央機構控制,並且其參與者,包括執行交易的使用者和驗證交易的節點都不受信任,因此,使用者和節點身份依賴於使用者/節點的公共地址,而身份驗證則是使用相應的私鑰完成的。時間戳交易資料在節點之間共享,以確保實現網路的併發控制。為了驗證交易的有效性,每個節點都積極檢查其交易資料集合,為需要處理的交易資料建立一個新區塊,並將該區塊呈現給對等節點。


網路從那些能提供最快的響應時間最高質量的新區塊,且能滿足一組預先確定的驗證規則的節點中選擇和獎勵勝出的節點(例如,那些融合有效區塊到每個節點賬目的永久交易節點)來發布區塊。滿足最快的響應時間和最高的質量要求統稱為工作(量)驗證(PoW),於是這種共識模型對網路來說,透過消耗計算資源(如計算機硬體、電力)來確保了完整性。PoW提供了強大的完整性保證,並能容忍一定程度的攻擊,它迫使攻擊者至少獲得網路中51%的算力,才能影響到整個網路,這就是所謂的“51%攻擊”。然而,實際上這種型別的攻擊需要至少75%的節點才能奏效。除了身份驗證機制和不可篡改的賬目之外,公共環境和私有環境的區塊鏈之間幾乎再沒有相似之處了。


私有區塊鏈網路在私有的、受許可的環境中執行,通常使用指定的網路操作員,且操作員和其他參與者彼此都認識。私有區塊鏈的執行成本更高,並且在使用投票方案做出決策時並不獎勵節點,而是通常採用“拜占庭式容錯”(BFT)共識模型,在這種模型中,一組節點同意一個交易區塊的有效性。BFT提供了更大程度的對惡意節點數量的容忍度,即最多33%的節點是惡意的,而PoW卻只能容忍25%的惡意節點。私有區塊鏈還對節點的隱私和交易資料的訪問進行了更嚴格的控制,消除了與PoW相關的算力和環境方面的影響。這種機制對於為參與者(如買方/消費者和供應商/網路提供者)提供交易隱私是必要的。例如,使用相同網路的買方可能從多個供應商處獲得相同的產品,這些供應商根據買方和供應商之間唯一協商的數量和其他無形條件確定不同的單價(當然,對其他供應商來說是保密的)。此外,供應商可以選擇自己作為買方,在同一網路上使用自己的定價體系和其他無形條件轉售產品,而不是自己為買方生產產品。


區塊鏈的完整性等同於信任的程度。PoW需要交易資料來證明交易歷史,並將這種程度的信任繫結到計算資源的花費上。消耗的資源和可查的交易越多,就越值得信任,相應地,區塊鏈的完整性也就越高。透過用BFT替換PoW,節點不會為提交無效區塊承擔任何實際後果,這使它們更可能以犧牲可用性為代價產生出不一致的結果。因此,在必須保持高度交易完整性的場景中,BFT可能就是不可接受的了。對去中心化的削弱也影響了私有區塊鏈的完整性。節點仍然必須為提供處理交易的基礎設施而得到補償,這種補償通常來自於網路運營商所提供的法定貨幣。由於這種支付沒有使用網路的通用令牌,網路的完整性可能就會因無需考慮提交無效區塊的後果而受到影響。當可用的節點數量較少時,網路操作員對網路的影響力就會增大,這就要求參與者們更加信任網路。


所有這些因素都可能影響網路的可用性,併產生欺詐或第三方干擾,從而可能催生出審查機制。賬目的一致性也會受到所處環境的影響。經過驗證的交易透過使用交易的雜湊值和前一區塊頭部的雜湊值,以追加的方式在時間順序的基礎上聚合成區塊,並被合併到賬目中。因此,將當前區塊連結到以前各區塊的機制,使更改先前交易的任何嘗試都變得極其困難,並且可以防止在交易被接受為有效後再對它們進行篡改。任何沒有歷史記錄記載的交易都被認為是不存在的。


然而,如果交易記錄有錯誤,這些錯誤可能是基礎設施問題智慧合約程式設計錯誤所造成的,該如何糾正這些錯誤呢?對於公共區塊鏈來說這是無法做到的,錯誤的交易不能被糾正,只能被普遍接受。在重要的應用場景中,主要的變更是透過主要程式碼更新(例如,一個硬分支)來完成的,這包括對所有受影響的交易進行全面的賬目更新,以解決所發現的問題。硬分支違背了賬目一致性的總體原則,並且經常在區塊鏈團體內引起爭議。在加密貨幣領域,對於硬分支的爭論導致了競爭解決方案的誕生,比如以太坊和比特幣。相比之下,在私有區塊鏈中糾正交易錯誤則在本質上並非難事,因為這種設計允許網路運營商作為一個隱含的受信中央權威機構來糾正這種錯誤。


2.可擴充套件性


當前區塊鏈技術的一個已知限制是其有限的吞吐量,這個指標是以每秒處理的交易數來度量的。平均來說,比特幣每秒可處理7筆交易,而以太坊每秒可處理15筆交易,瑞波幣(Ripple)每秒能處理1500筆交易,是目前最快的主要加密貨幣。相比之下,Visa網路每秒能處理大約24000筆交易,較低的交易處理率通常會導致單個交易確認的等待時間更長。並且,由於可能出現事務回滾,因此交易的最終結果會更少,從而產生更高的交易費用。


應對可擴充套件性問題的解決方案包括:增大區塊、把簽名與交易資料分離、“分片”交易和鏈下交易等。增大區塊會增加操作節點的成本,減少節點的數量,更易導致產生較強大的集中實體。區塊大小的在公共區塊鏈上比較難更改,需要硬分支,且常常受到使用者社群的質疑。“分片”可以有效地將區塊鏈分割成更小的塊,這些塊具有自己獨立的狀態片段和交易歷史,這使得在所有“分片”中處理的交易總吞吐量比在單一主區塊鏈中完成所有工作高很多。鏈下交易允許在主網路之外處理交易,之後再將其新增到主網路中。但鏈下交易也違反了去中心化原則,因為執行此類任務的節點必須獲得顯式信任。雖然這些技術在解決可擴充套件性問題方面很有前途,但它們最多隻能被認為是實驗性的。

 

四、安全與隱私


安全和隱私的角度來看,區塊鏈技術由於其元件的複雜性且尚處於初級發展階段而沒有被很好地理解。網路體系結構的設計和訪問控制是降低網路內部威脅的關鍵。為了加強區塊鏈技術的安全性,首先應要求正確連線的節點數達到最小化,且這些節點應是被指定和授權參與到聯盟中的或在私有區塊鏈共識過程中形成的。這個最小化的數量應足夠大,以滿足網路完整性保護需求。由於公共區塊鏈易受到前文提到的“51%攻擊”,所以應確保網路擁有足夠的在地理上分散的節點數,以防止來自任何單一實體、某個特定國家或世界上特定地區的串謀行為。私鑰證明了所有權和被分配的執行某些交易的權利,因此,安全性取決於對私鑰的選擇和保護。例如,比特幣的安全模型依賴於一個由1到1077之間的整陣列成的私鑰。雖然這數字看起來並不多,但實際上,金鑰空間基本上是無限的了。由於私鑰包含許多數字,因此使用“錢包匯入格式” (WIF)可以將私鑰簡化為一系列字元和數字。大多數區塊鏈錢包可以生成一系列字元作為備份,考慮到它們的重要性,在儲存或傳輸私鑰或保護備份字元時要格外小心。大多數軟體錢包提供對使用者友好的PIN碼、密碼或口令來加/解密儲存的私鑰,並將加密的錢包儲存在使用者電腦的主硬碟上。然而,錢包的PIN碼、密碼或口令的金鑰空間必須足夠大,以防止被rainbow表反向破解,特別是在雜湊演算法(例如SHA256)的弱點已知的情況下。


由於大多數區塊鏈技術都是開源的,可用的文件可能不是最新的,所以特定區塊鏈平臺所提供的正式培訓也可能是有限的,這就導致大多數開發人員透過反覆試驗進行自學,所以很可能會犯重大錯誤,進而寫出bug較多的程式碼。這種情況使得智慧合約成為區塊鏈安全性最重要的弱點來源之一


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69983013/viewspace-2716161/,如需轉載,請註明出處,否則將追究法律責任。

相關文章