區塊鏈擴展技術 – 分片 Sharding

 

談 Sharding 少不了 Ethereum。Vitalik 於今年 4 月 30 號於 twitter 發言了「Sharding is coming.」與以太社群分享了分片的開發進度,到底 Sharding 與以太坊究竟有什麼關係,這要從以太坊的擴展性開始談起。

Ethereum 身為創世代公有鏈,在交易速度 15TPS (每秒 15 筆交易數目) 上被世界公認為身普及應用平台最大的挑戰,不少後進公有鏈採用新的演算法與系統結構以實現高吞吐量來挑戰 Ethereum: 如使用拜占庭容錯 BFT 演算法的 NEO 與使用分片 Sharding 技術的 Zilliqa

Ethereum 身為智能合約公有鏈,為了保有去中心化與安全驗證的特性,不得不犧牲擴展性:在區塊鏈網路上的每個節點都需要參與每筆交易驗證而帶來低吞吐量與拖慢交易速度

 

Ethereum 擴展理念

Ethereum 之神 Vitalik 的信仰理念為:去中心化先決

在 Vitalik 信仰裡,區塊鏈三大互相制衡特性中 (去中心化、安全度、擴展性),擴展性為最低優先權。

Vitalik 不支持區塊擴容而達到高吞吐量的解決方案:當我們提高區塊容量,鏈上網路的所有節點所需要的儲存能力、計算能力與頻寬都需要增加,若容量高到一般電腦節點沒辦法負荷,只剩高效能的電腦可運作就會有中心化的隱憂。

因此,在不失去一定程度的中心化下能處理每秒上千筆交易量為 Ethereum 的進化宗旨。

 

二次分片Quadratic Sharding

Ethereum 採用分片技術來做擴展的計畫分為幾個不同難度的階段,階段越高可實現的吞吐量越高,技術也越艱深:

  1. 二次分片 Quadratic Sharding
  2. 超級二次分片 Super Quadratic Sharding
  3. Ethereum 3.0

此篇,我們來淺談 Ethereum 的第一個分片技術模型 – 二次分片。

Quadratic Sharding

分片的基本概念為:講每一個 block (塊) 再切分成不同的 shards (片),每片獨立運行、併行處理不同的交易來達到高吞吐量

每個 shard 就是一個小區塊鏈世界,也可稱為 shard chain,有自己的獨立帳戶空間與交易狀態,不受整體區塊鏈網路在節點過多時共識速度被拖緩的影響。

在 shard 世界裡的區塊稱為 collation,在 shard 中驗證交易的分片礦工稱為 collator,collator 為全區塊網路的區塊礦工 validator 經由 VMC 礦工管理合約 (Validator Manager Contract) 抽樣挑選出來的,VMC 為分片的運作機制核心。

在主要區塊鏈網上會有超級節點負責將所有 shards 中的所有 colloations 做匯集打包成新區塊並進入區塊主鏈上。匯集打包的新區塊必須要滿足以下條件才會被網路承認:

  • 此新區塊中匯集的所有 collations 需要經過分片網路中的所有 collators 驗證。
  • Collation 集合需要獲得分片網路中至少三分之二的 collators 簽名來確保 collation 是合法的。
  • 交易前的 collation 狀態需要跟當前的狀態一致。
  • 交易後的 collation 狀態需要跟指定的狀態一致。

 

總結

側鏈 Sidechain 與分片 Sharding 都是用於區塊鏈的擴展,側鏈是由主鏈外部開一條獨立通路,而分片則是由區塊內分裂出不同鏈。不一樣的實作面向使得應用面也不同:側鏈技術由於在主鏈外部,可高度客製化,常被應用於鏈下 off-chain 與跨鏈 cross-chain 交易,為適合打通不同區塊與鏈下網路系統的應用; 分片技術在區塊鏈網上,具有機制一致的可控性,適合公有鏈自我提升吞吐量應用。

分片 Sharding 技術讓公有鏈擴展的前途光明。現今最簡易型態的分片模型:若區塊擁有 N 個 shards,理論上每個區塊的交易容量將可以大至 N 倍。根據以太坊提出的超級二次分片技術:在分片上再建立分片,理論上每個區塊的交易容量將可以大至 N² 倍,非常驚人。

超級二次分片Super Quadratic Sharding 的極高交易速度與極低廉的交易手續費用將會帶來極好的用戶體驗,也帶給 Ethereum 全世界普及的希望。

 

延伸閱讀

區塊鏈擴展技術 – 側鏈 Sidechain
區塊鏈擴展技術 – 分片 Sharding