如果將分片技術運用到區塊鏈中,就相當於將區塊鏈網路裡的所有待處理任務(比如確認交易、執行 DApp 等)進行分解,全網的節點也進行分組,每一組同時處理一個分解後的任務(比如 150 筆待確認交易),這樣就從原先單一節點處理全網的所有任務變成了多組節點同時並行處理。
舉個例子,假設目前以太坊上有 8,000 個節點(礦工),全網待確認的交易是 15,000 筆。以太坊每秒能處理 7-15 筆交易,正常情況下至少需要 1000 秒才能處理完這些待確認的交易,當然處理的過程中又會有新的待確認交易產生。
如果採用分片技術,將 8,000 個節點分成 100 組,每組 80 個節點,這 15,000 筆待確認交易分成 100 個分割槽,每個分割槽 150 筆,那麼,每組節點(80 個)可以並行處理各自分割槽裡的待確認交易(150 筆),這樣最快 10 秒鐘就可以全部處理完那 15,000 筆待確認交易。
從這個例子中,我們可以看到,分片技術可以大幅提高區塊鏈的效能。
那麼,分片技術有沒有缺陷呢?答案是肯定的。
3、分片技術潛在的風險
分片技術雖然能在一定程度上解決區塊鏈的效能問題,讓區塊鏈更具有可擴充套件性,但也存在兩個缺陷。
一個是分割槽後,不同區的通訊問題。上面的例子,將以太坊網路分成 100 個分割槽,每個分割槽都是獨立的,相當於有 100 條獨立的、平行的以太坊區塊鏈,每條都由一組礦工(80 個節點)維護和確認交易。這 100 條獨立的以太坊區塊鏈並不能相互通訊,如果要通訊,勢必要增加跨分割槽的通訊機制(類似垮鏈),這會增加區塊鏈的複雜性,開發難度也會提高。
第二個是區塊鏈的安全性。還是上面的例子,在未分片之前,以太坊網路是 8,000 個節點組成的算力,分成 100 個分割槽後,每個分割槽相當於一條獨立的以太坊區塊鏈,算力下降到 80 個節點組成的算力。此時,對其中一個分割槽進行 51% 算力攻擊就容易很多。控制了一個分割槽,攻擊者就可以在這個分割槽內做惡,篡改交易。
以太坊基金會計劃將分片技術作為以太坊 2.0 的升級內容之一。以太坊如何解決分片技術的上述 2 個缺陷,我們拭目以待。