区块链扩展技术 – 分片 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 採用分片技术来做扩展的计画分为几个不同难度的阶段,阶段越高可实现的吞吐量越高,技术也越艰深:

  • 二次分片 Quadratic Sharding
  • 超级二次分片 Super Quadratic Sharding
  • 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