您當前的位置:首頁 > 文化

分片技術簡介與Trias分片MVP

作者:由 Trias 發表于 文化時間:2022-06-18

分片技術簡介與Trias分片MVP

區塊鏈發展的關鍵因素有兩個,一個是資料的隱私和確權,一個就是區塊鏈的擴容,即區塊鏈效能的提升。區塊鏈資料的隱私和確權我們前面的文章已經提到過,今天我們主要討論的是區塊鏈的擴容方法。

區塊鏈為什麼要擴容?我們先來看看比特幣和以太坊的吞吐量,比特幣是7TPS左右,以太坊是20TPS左右,但是中心化的VISA的TPS大概在8000左右。所以如果一個支付系統放在區塊鏈上,區塊鏈的效能將遠遠不能滿足支付系統的吞吐量要求,這就像一個高速公路收費站,我們只開了一個收費口,而且這個收費口的工作效率也很低,那麼就會有大量的汽車被堵在收費口外,這會造成高速公路也就是網路的擁堵,一筆交易可能要等幾天才能完成。但是如果我們開了10個收費口甚至更多,那交通狀況將大大得到緩解直到暢通無阻。如果一個收費口可以比喻為一個分鏈的話,設定“多個”或“多種”收費口的技術來使區塊鏈的吞吐量增加的技術就是分片技術。

分片技術簡介與Trias分片MVP

分片技術最早源自資料庫的擴容技術,是一種基於資料庫分成若干片段的傳統概念擴容技術,它將資料庫分割成多個碎片並將這些碎片放置在不同的伺服器上,在這些不同伺服器上的資料就能同時並行處理,在同樣的時間環境下,處理速度成倍增加。這種分片技術應用於區塊鏈上就是將網路中的節點分成不同的分片,也可以說分在不同的分鏈上,各分片可以並行處理不同交易,以提高網路併發量,也就是我們常說的TPS。區塊鏈分片的特點是具有動態擴容性,隨著節點數量的增加,區塊鏈的效能也隨之增加。將網路分割為碎片會使得更多的交易同時被處理和驗證。但是它僅僅可以並行處理相互之間未建立連線的交易,對於之間有關聯的交易,分片對效能的提升將會受到影響。所以分片技術應用於區塊鏈有其獨有的優勢和挑戰,現在應用於區塊鏈的分片技術主要有幾種:網路分片、交易分片以及狀態分片等。

網路分片

網路分片就是開發一種機制來確定哪些節點可以按照安全的方式保留在哪些碎片中。這樣能避免那些控制大量特定碎片的人所發起的攻擊。通常隨機抽樣的方式可以防止惡意節點過度填充單個碎片。

交易分片

交易分片就是透過使用者交易的輸入輸出資料並根據一種演算法(如雜湊值)來確定交易資料的分片。但是這種方法不能有效避免雙花攻擊,除非資料跨碎片進行通訊,但這又可能會破壞交易分片的目的——提升交易吞吐量。但根據交易者的地址資訊來分片的話就可有效檢測到雙花攻擊,而不需要進行任何跨碎片的通訊。

狀態分片

狀態分片就是透過把區塊鏈資料分成不同狀態的資料來分片的一種技術。在狀態分片的情況下,重新分配節點是非常棘手的。一個特定的碎片只會保留一部分狀態,如果在一次重新調整網路的過程中,在同步完成前可能會出現導致整個系統失效的問題。

分片技術簡介與Trias分片MVP

但是Trias探索了分片技術的新方向,透過把交易分片和狀態分片技術組合,彌補了各自技術的缺點,使分片技術可以更好地應用於區塊鏈。

Trias分片MVP在真實區塊鏈基礎上,加入主鏈用來協調處理各分片交易,另外又在此基礎上加入負載均衡和資料庫,分別用來分發交易請求和儲存賬號資料。

具體的架構請參照下圖:

分片技術簡介與Trias分片MVP

LoadBalance

LoadBalance是一個負載均衡層,所有的交易請求透過LoadBalance進行處理,當前分為兩類請求,一類是查詢請求,LoadBalance會直接請求Storage查詢並返回,還有一類是交易請求,LoadBalance請求storage獲取交易涉及的Chain,將請求轉發給Root_Chain處理。當前LoadBalance透過Openresty實現。

Storage

Storage做為儲存層儲存交易賬號資料,包括賬號名,Chain ID,餘額等,只有LoadBalance會直接與Storage互動,涉及到查詢和更新。當前Storage透過etcd實現。

Root_Chain

Root_Chain作為一個主鏈在跨鏈交易時會生成交易憑據,各Child_Chain依據主鏈的憑據進行操作。當前版本Child_Chain要接收到Root_Chain請求就會操作,還未實現Root_Chain和Child_Chain的校驗。當前Root_Chain透過python實現,開啟一個rpc,api接受LoadBalance請求,判斷是否跨鏈,產生交易生成憑據並將結果返回給LoadBalance。

Child_Chain

Child_Chain是獨立的區塊鏈,有單獨的節點和資料,透過接受Root_Chain請求處理交易。當前透過Tendermint實現共識,Tendermint內account作為內建的app提供交易場景。

Trias官方平臺

官網:

https://www。

trias。one

Twitter:

https://

twitter。com/triaslab

GitHub:

https://

github。com/trias-lab

Telegram

(English):

https://

t。me/triaslab

Telegram

(公告):

https://

t。me/TriasOfficial

Telegram

(中文):

https://

t。me/TriasChinese

分片技術簡介與Trias分片MVP

標簽: 分片  區塊  chain  交易  LoadBalance