分片技術,解決區塊鏈交易擁堵的利刃

買賣虛擬貨幣

在區塊鏈行業,我們經常能聽到“區塊擁堵”“交易速度太慢”等詞彙,事實確實如此,近年來爆發式增長的使用者需求已經給底層公鏈帶來了越來越多的挑戰,比特幣社羣曾為了這一問題的解決方案發生過長達數年的爭執,甚至導致社羣分裂;而以太坊也一度因為一個掛在公鏈上的小小遊戲“加密貓”而長時間擁堵不堪。

區塊鏈技術面臨著一個巨大的瓶頸,那就是——公鏈的可擴充套件性不夠。為此,開發者們絞盡腦汁地提出了各種各樣的方案來試圖有效提升區塊的吞吐量(TPS),我們稱這一過程為“擴容”。

“擴容”又分為“鏈上”和“鏈下”兩種,如果我們把區塊鏈比作一條公路,“鏈上擴容”就好比對公路本身進行重建,比如拓寬道路;“鏈下擴容”則選擇另外的途徑減輕公路負擔,比如建造輔路。而“分片技術”就是“鏈上擴容”的方案之一,它被認為是能夠有效解決區塊鏈吞吐量問題的解決方案。

所以,今天小K君就給大家講一下,到底什麼是“分片技術”。

什麼是分片技術?

首先,分片技術是基於傳統的“資料庫分片”這一概念而產生的一種擴容技術。傳統的“資料庫分片”是把資料庫分割成多個碎片,並經這些碎片儲存在不同的伺服器上,使系統能夠更快更有效地管理資料。它給公共區塊鏈帶來的啟發是,可以將網路上的交易分成不同的碎片,由網路上的不同節點組成。當有大量交易需要處理時,不同碎片上的節點能夠同時並行處理不一樣的交易,每個節點只需處理自己所接收到的一部分交易,就能在短時間內完成大量的驗證工作。

為了更好地理解它,我們再次引入剛剛所講的“公路”的例子:我們把區塊鏈比作高速公路,把待驗證的交易比作汽車,把驗證交易的節點比作收費口。原本繁忙的高速公路上只有一個收費站,收費站裡只有一個收費口,車輛排著長隊等待透過,結果就是越積越多,交通堵塞幾近癱瘓。而分片技術就好比把收費站重修,增加了十個收費口,極大提高了汽車透過的速度。以這樣的思路,分片技術能夠顯著提高區塊鏈的交易速度。

這一創造性的思路,首次被提出是在2015年。它是由一對來自新加坡國立大學的師生,在國際頂尖安全會議CCS上發表的一篇論文《A Secure Sharding Protocol For Open Blockchains》中釋出的。而這一對師生,後來也將這一理論付諸了行動,發展出了第一個分片技術落地專案,名為“Zilliqa”。它的測試網路中存在6個分片、3600個節點,其處理交易的速度能夠達到每秒2800個,是目前公鏈中的NO.1。分片技術也得到了以太坊創始人V神的認可,他甚至已經打算在以太坊的區塊鏈上應用分片技術來擴大吞吐量了。

將網路分割為碎片可以允許更多的交易同時被處理和驗證,並且隨著網路的增長,越來越多的節點加入,區塊鏈網路也被期待能夠處理越來越多的交易,這就實現了它“無限大”的可擴充套件性。

雖然我們大概講了分片技術的整體思路,但具體的實施,卻並不如想象中的那樣容易。下面,小K君再給大家講講分片技術的具體技術原理。

分片技術的具體原理

目前我們分片技術主要有三大類:網路分片、交易分片、狀態分片。它們的基本原理都是“分流”,用多個分片同時處理不同的交易,再彙集到總鏈上。

網路分片:

網路分片較為簡單,但也非常重要,它是被提出的最早的分片策略。它透過隨機抽取特定數量的節點建立一個分片,當形成多個分片後,分片內部的節點就會自行建立共識,對各自接收到的交易進行確認。

在此過程中需要注意安全性,分片會導致確認同一筆交易的節點數量減少,因此更加容易受到網路攻擊和惡意節點的干擾。分片形成後,就可以實現同時處理不同的交易,提高區塊鏈網路的效率。最早的分片技術專案“Zilliqa”就運用了網路分片。

交易分片:

網路上已經建立好了分片,這些分片會處理不同的交易,按照一定的依據(比如交易發起者的地址)將這些分片劃分成不同的交易分片。它解決了如何將一個交易分配到某個分片的問題,就好像把收費站的收費口劃分成“大型貨車收費口”和“家用小車收費口”一樣。

試想有人用一個地址向兩個人發起相同的交易,這兩筆交易被分配到同一個分片進行處理,之後分片就會識別出相同的交易發起地址,從而阻止雙重花費。如果這兩個交易被分到了不同的分片,分片中的節點也同樣能檢測出來,將這筆交易拒絕。目前這種技術已經很成熟,能夠適應多種共識機制。

狀態分片:

狀態分片是目前最複雜、最具挑戰性的一種分片技術提案。它又提出,不同的分片需要儲存不同的資料,真正做到將資料庫分開,資料都分散放在了不同的分片上。而每一個狀態分片中的節點都儲存著自己分片中的所有資料,而不是整個區塊鏈的資料。

例如我們有兩個分片,有兩個使用者資訊,那麼每個分片就保留著其中之一的使用者的交易資訊,而不是把兩者的交易資訊都保留。

它目前面對的問題有兩個,首先,不是每個節點都儲存全網的每一筆交易資訊,那麼如果一筆交易的發起人和接受者處在兩個不同的分片上,交易資訊就必須在兩個碎片之間進行共享,兩個分片之間又進行資訊和狀態互換,更加降低了區塊鏈網路的效率。

第二,如果某個分片遭受攻擊,其中的交易就會遭到中斷,別的分片的節點無法代替工作,只能從遭受攻擊的分片內部節點開始修復。也就是它的容錯性和抗風險能力就會降低,甚至還有過度中心化的風險。

總結

總來的說,目前分片技術還有不少挑戰在,但確實能夠對公鏈的可擴充套件性起到很大幫助。

首先,區塊鏈能夠使交易的處理速度迅速提升,如果我們將加密貨幣的未來與支付手段聯絡在一起,以更低的費用搭配更高的處理能力,加密貨幣逐漸走向支付手段的路就能越走越寬。

其次,改善交易效率也會給區塊鏈帶來越來越多的使用者,更多基於區塊鏈而生的應用程式可以大展身手。公鏈將變得越來越有吸引力,能夠吸引更多加入到公共網路上的節點,從而形成一個良性迴圈。這些積極的趨勢所持續的時間越長,我們就會越能看到主流的加密技術和落地應用的出現。

當然,分片技術依然存在著很多難題需要解決,尤其是狀態分片,雖然原理已經被提出,但目前卻還未有最合適的解決途徑。

當然,分片的原理不僅僅在於如何分片,更在於如何對每個分片進行安全有效的治理,對於公鏈來說,可擴充套件性、安全性和去中心化缺一不可。相信不久的將來,我們就能得到一條“三角齊全”的理想公鏈。

免責聲明:

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

推荐阅读

;