為什麼區塊鏈仍然無法擴展?
藍狐筆記/張詠晴編譯
2018-10-04 07:10

在一個傳統數據庫系統中,擴容方案是增加更多的伺服器(也就是算力)來處理增加的交易。在去中心化的區塊鏈世界,每個節點需要處理和驗證每筆交易,這就需要我們為網路中的每個節點,增加更多的算力來進行加速。

 

然而我們無法控制網路中的每一個公共節點,這也讓我們陷入了困境。

 

最終,以去中心化方式運作的所有公開的區塊鏈共識協議,在「低交易吞吐量」和「高中心化程度」之間,進行了折衷。

 

也就是說,隨著區塊鏈規模的成長,對網路中全節點的儲存、頻寬和算力的要求也在增加。在某一時刻,它將變得極其笨重,唯一可行的,是讓一小部分節點處理一個區塊,從而導致中心化風險。

 

為了能夠擴展,區塊鏈協議必須找出一種機制,來限制驗證每筆交易所需要的參與節點數,同時不損傷網路的可信性,以保證每筆交易都有效。這聽起來很簡單,但是在技術上非常困難。為什麼呢?

 

1. 由於節點不能夠驗證每筆交易,節點就需要有一種統計和經濟手段,來確保其他區塊(那些它們不能親自驗證的區塊)是安全的。

 

2. 必須有某種方法來保證數據的可用性。也就是說,即使一個不直接驗證區塊的節點,認為該區塊是有效的,如果這個區塊的數據變得不可用了,將會導致網路中沒有其他驗證者,可以驗證交易或者生產新區塊,我們就會卡死在當前的狀態下。(有很多種原因會導致節點「掉線」,包括惡意攻擊和突然斷電)

 

3. 交易需要在不同節點並行的情況下執行,以獲得可擴展性。然而,區塊鏈上的狀態轉換,也包含一些無法並行(串行)的部分,因此我們在轉換狀態的過程中試圖平衡「並行性」與「效用」時,會面臨一些限制。 

 

本文為巴比特資訊授權刊登,原文標題為「區塊鏈無法擴展:至少現在不能,但有希望(一)