Bootstrap

DTD- 1 区块链分片技术

一 区块链分片并行处理技术要点

1. 基本思想

分片其实是一种传统数据库技术,它将大型数据库分成更小、更快、更容易管理的部分,这些部分叫做数据碎片。

在公链中,它是通过使用多个网络设备来获得平行处理转账的功能,从而分散那些转账验证的工作量。这样会自动地把网络分成很多更小的部分,或者说进行“分片”处理,从而每一个小网络只需要运行一个更小范围的共识协议。网络上的交易将被分成不同的碎片,其由网络上的不同节点组成。

因此,每个节点只需处理一小部分传入的交易,并且通过与网络上的其他节点并行处理就能完成大量的验证工作。将网络分割为碎片会使得更多的交易同时被处理和验证。

所以,分片技术使用的是平行处理的方式,有越多的节点加入,网络中批准的速度也会加快。简单来说,分片的就是将一个大任务拆分为多个可以并行处理的小任务,从而提升性能。

2. 分片类型

区块链分片技术主要分为三种:网络分片、交易分片和状态分片。网络分片是交易分片和状态分片的基础,它在网络层将所有节点划分到不同分片。交易分片虽能在一定程度上提升公链性能,但并不能从根本上解决资源瓶颈问题。因此只有实现状态分片才能从本质上解决公链可扩展性问题

3. 面临挑战

(1) 区块链目前基础设施存在可扩展性问题,无法满足大规模应用需求,需要达成分布式公识是其主要原因。
(2) 分片技术在公链中面临不小的挑战,在分片内需要克服POW共识中的51%攻击问题和PBFT共识的节点数量限制和女巫攻击问题
(3) 分片间需要克服分片间双花攻击问题和考虑分片交易的过载问题。在设计分片系统的过程中,跨分片验证和交易 的处理策略是至关重要的。
(4) 在系统层面需要克服 单点过热问题以及分片数、节点数变化引起的系统状态动态调节问题

二 分片原理和类型

1. 分片原理

并行处理从而降低单个节点的工作量

2. 分片的三种类型

分片通常被划分为网络分片、交易分片和状态分片等。网络分片是交易分片和状态分片的基础,从技术实现难度上讲 网络分片<交易分片<状态分片

(1) 网络分片  利用随机性,网络可以用VRF方法随机抽取节点形成分片,用以防止恶意节点占据某个分片。分片内节点之间的共识可以通过pBFT等共识机制来实现。

(2) 交易分片 

1) 账本分片:在一个基于UTXO的系统内,系统可以根据发送者的地址分配一个分片。这确保了两笔双花交易将在相同的分片中得到验证,因此系统可以很容易地检测到双花交易,而不需要进行任何跨片的通信。

2) 跨账本分片:在一个非UTXO的系统里,为了防止双花问题,在验证过程中,分片间将不得不进行相互通信。事实上,由于双花交易可能会在任何分片中出现,因此特定分片所接收到的交易将不得不与其它的所有分片进行通信。这种相互之间的高昂通信成本可能会破坏交易分片的最初目的。

(3) 状态分片  这一技术的关键是将整个存储区分开,让不同的碎片存储不同的部分;每个节点只负责托管自己的分片数据,而不是存储完整的区块链状态。

三 区块链分片的必要性

1. 区块链存在的问题

(1) 公链的可扩展性问题 目前区块链的基础设施无法满足大规模应用的需求。去中心化、安全和可扩展性无法同时满足,被称为区块链的 不可能同时满足。

(2) 分布式共识 达成分布式共识是造成可扩展性瓶颈的主要原因。复杂的共识过程加上网络带宽限制、通讯时延、节点作恶等原因决定了区块链难以做到中心化系统那要支持实时高并发。

(3) 资源瓶颈 网络带宽、硬盘容量是限制公链可扩展性的主要因素。

2. 分片的必要性

 分片是最有希望的链上扩容方案

分片项目概述

 3. 技术挑战

(1) 分片内挑战
PoW共识中的51%攻击
对于采用PoW共识n个分片的公链,会面临算力分散的问题。因此,在采用PoW共识的项目中,通常会采用双层架构来保证分片的安全性。

PBFT共识的节点数量限制和女巫攻击
1) PBFT(实用拜占庭容错)有两个显著特征:

  • 允许系统存在数量小于( n − 1 ) / 3 故障节点和作恶节点
  • 不存在分叉问题,因此不需要多个区块确认

PBFT通信复杂度为O(n^2),网络中通信量超过带宽时,系统性能会逐渐下降,当网络节点超过100时就会出现明显的下降,因此PBFT常用于联盟链中,但由于其容错性,100个节点并不能保证分片的安全性。主流思路通过降低PBFT共识过程的prepare和commit阶段的通信次数来解决复杂通信问题。
2) 解决女巫攻击 常采用工作量证明来提升攻击门槛,另一种是引入身份验证机制(中心化)。

(2) 分片间的挑战
分片间的双花攻击
只有通过跨片通讯才能解决分片间双花攻击的问题,系统就必须要进行大量的跨分片通信来防止双花问题,这样大大提升了系统复杂度,从而降低了系统性能。

跨分片交易过载
引入分片机制提升性能,从宏观来看并没有降低工作量,而是把工作量分配到了各个分片,提升了系统的并行处理能力,从而提升性能。相反地,引入分片机制带来了跨片通信的额外开销,假设最极端情况下,所有的交易都是跨片交易,那么性能反而会降低。因此,在设计分片系统的过程中,跨分片验证和交易的处理策略至关重要。

(3) 系统层面的挑战
单点过热问题
当交易大量集中于某一分片,那么此分片仍然会发生拥堵,系统并不能达到良好的并行效果。
因此分片后的公链需要在设计和开发过程考虑分布式系统中类似的单点过热问题。

动态调节问题
在状态分片中,由于每个分片和节点只存储网络状态中的一部分数据,在对全网状态进行重新分配时,需要保证整个系统的稳定性,不能因为分片和节点数量的变化导致系统失效。

参考资料

[1] TokenInsight. 2019.1.分片技术研究报告(上).

转载:1. 区块链分片技术_考拉研究僧的博客-CSDN博客

           2. 区块链分片技术原理介绍_跨链技术践行者-CSDN博客

;