一、区块链分片技术要点
1. 核心思想
区块链分片的核心思想是分而治之,将公链网络中的所有节点划分为不同分组,每个分组称为一个分片。原本公链中所有节点所做的任务都是相同的,现在将任务分配到不同分片,每个分片处理不同的任务,分片之间并行处理,以此提升公链性能。
2. 分片类型
区块链分片技术分为三类,分别是网络分片、交易分片和状态分片。其中网络分片在网络层将所有节点划分到不同分片,网络分片是交易分片和状态分片的基础。交易分片虽能在一定程度上提升公链性能,但并不能从根本上解决资源瓶颈问题。因此只有实现状态分片才能从本质上解决公链可扩展性问题。
3. 面临挑战
(1) 区块链目前基础设施存在可扩展性问题,无法满足大规模应用需求,需要达成分布式公识是其主要原因。
(2)分片技术在公链中面临不小的挑战,在分片内需要克服POW共识中的51%攻击问题和PBFT共识的节点数量限制和女巫攻击问题。
(3)分片间需要克服分片间双花攻击问题和考虑分片交易的过载问题。在设计分片系统的过程中,跨分片验证和交易 的处理策略是至关重要的。
(4) 在系统层面需要克服 单点过热问题以及分片数、节点数变化引起的系统状态动态调节问题。
二、原理及类型
1. 分片原理
"分片可以降低单个节点的工作量
2. 分片类型
"网络分片是交易分片和状态分片的基础
分片通常被划分为网络分片、交易分片和状态分片等。网络分片是交易分片和状态分片的基础,从技术实现难度上讲
网络分片<交易分片<状态分片
三、必要性分析
1. 公链的可扩展性问题
’'目前区块链的基础设施无法满足大规模应用的需求
去中心化、安全和可扩展性无法同时满足,被称为区块链的 不可能三角
2. 分布式共识
’'达成分布式共识是造成可扩展性瓶颈的主要原因
每一笔交易在被确认之前都将经历以下过程:
1.交易产生:两个用户间发起一笔转账交易或用户与智能合约发生一次交互。交易必须满足非双花、非网络限制账户等条件,经验证后合法;
2.构造区块:区块链网络中的节点根据账簿的最新状态,在所有未确认的交易中选择验证合法的交易进行打包,放入构造的区块中;
3.竞争出块:记账节点竞争获得出块权,根据竞争规则的不同产生了POW、POS、DPOS、PBFT等不同共识机制;
4.广播区块:记账节点获得出块权力,向全网广播过程2构造的区块,更新帐本信息,回到1。
复杂的共识过程加上网络带宽限制、通讯时延、节点作恶等原因决定了区块链难以做到中心化系统那要支持实时高并发。
3. 资源瓶颈
’'网络带宽、硬盘容量是限制公链可扩展性的主要因素
4. 分片的必要性
’'分片是最有希望的链上扩容方案
扩容方案概述
分片项目概述
Ethereum | Zilliqa | QuarkCahin | |
---|---|---|---|
分片类型 | 状态分片 | 交易分片 | 状态分片 |
共识机制 | Casper | PoW+改进的PBFT | 兼容各种共识 |
项目简介 | 采用双层架构,共识机制为Casper(改进的PoS) | 实现了网络分片和交易分片,改进的PBFT显著降低了分片内通信复杂度 | 采用双层架构,实现了状态分片,引入了多种共识机制 |
网站导航 | Casper | 测试网络、 网络分片 、共识协议 、改进共识 | QuarkChian Explained |
四、技术挑战
1. 分片内挑战
PoW共识中的51%攻击
对于采用PoW共识n个分片的公链,会面临算力分散的问题。因此,在采用PoW共识的项目中,通常会采用双层架构来保证分片的安全性。
PBFT共识的节点数量限制和女巫攻击
1. PBFT(实用拜占庭容错)有两个显著特征:
- 允许系统存在数量小于( n − 1 ) / 3 n-1)/3 n−1)/3故障节点和作恶节点
- 不存在分叉问题,因此不需要多个区块确认
PBFT通信复杂度为
O
(
n
2
)
O(n^2)
O(n2),网络中通信量超过带宽时,系统性能会逐渐下降,当网络节点超过100时就会出现明显的下降,因此PBFT常用于联盟链中,但由于其容错性,100个节点并不能保证分片的安全性。主流思路通过降低PBFT共识过程的prepare和commit阶段的通信次数来解决复杂通信问题。
2. 解决女巫攻击,常采用工作量证明来提升攻击门槛,另一种是引入身份验证机制(中心化)。
2. 分片间的挑战
分片间的双花攻击
只有通过跨片通讯才能解决分片间双花攻击的问题,系统就必须要进行大量的跨分片通信来防止双花问题,这样大大提升了系统复杂度,从而降低了系统性能。
跨分片交易过载
引入分片机制提升性能,从宏观来看并没有降低工作量,而是把工作量分配到了各个分片,提升了系统的并行处理能力,从而提升性能。相反地,引入分片机制带来了跨片通信的额外开销,假设最极端情况下,所有的交易都是跨片交易,那么性能反而会降低。因此,在设计分片系统的过程中,跨分片验证和交易的处理策略至关重要。
3. 系统层面的挑战
单点过热问题
当交易大量集中于某一分片,那么此分片仍然会发生拥堵,系统并不能达到良好的并行效果。
因此分片后的公链需要在设计和开发过程考虑分布式系统中类似的单点过热问题。
动态调节问题
在状态分片中,由于每个分片和节点只存储网络状态中的一部分数据,在对全网状态进行重新分配时,需要保证整个系统的稳定性,不能因为分片和节点数量的变化导致系统失效。
参考资料
[1] TokenInsight. 2019.1.分片技术研究报告(上).