一文看懂區塊鏈效能解決方案:分片

買賣虛擬貨幣
你或許也知道,限制目前區塊鏈技術大規模落地應用的一個很重要因素就是效能,這也是為什麼很多傳統網際網路從業者不太看好區塊鏈技術的一個原因。那麼,如何解決區塊鏈的效能問題呢?其中的一個解決方案就是——分片技術(Sharding)。1、什麼是分片?分片是資料庫分割槽的一種形式,也稱為水平分割槽,即將一個大的資料庫切分成很多小的、可處理的部分,從而提高效能,縮短響應時間。分片並不是一個新的概念,早在 90 年代後期就出現在了傳統的中心化資料庫管理中。這個概念的流行,要歸功於一個多玩家同時線上玩的角色扮演遊戲 Ultima Online。在這個遊戲中,開發者將玩家分配到不同的伺服器來緩解流量壓力(這意味著有很多個平行的“遊戲世界”)。商業上,一個普遍的分片案例就是將使用者資訊的資料庫按照地理位置劃分,同一個區域的使用者資訊放在一起,存到單獨的伺服器中。
2、什麼是區塊鏈領域裡的分片?區塊鏈就相當於一個資料庫,每一個節點都相當於一個獨立的伺服器。正常情況下,這些節點每次只有一個節點能獲得記賬出塊的權利,剩下沒獲得出塊權的節點相當於做了“無用功”,白白浪費了算力。

如果將分片技術運用到區塊鏈中,就相當於將區塊鏈網路裡的所有待處理任務(比如確認交易、執行 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 個缺陷,我們拭目以待。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;