区块链常见项目分片方案分析

1.ZILLIQA

Zilliqa区分了状态(state)和交易历史(transaction history)。状态是指当前的情况,比起存储交易历史,其存储空间占用较小,但使用频率较高。Zilliqa采用的方式是:每个节点拥有当前状态的拷贝,但交易历史将被分片。因为交易历史使用频率比起当前状态要低,所以这将很大程度上减少分片引起的频繁通信问题。显然Zilliqa研究了如何解决交易分片问题,已经在AWS EC2服务器上证明了2488 tps的运行能力(6个分片,3600个节点),证明了分片技术的可行性。由于Zilliqa只研究了交易分片的问题,其他的分片技术如存储、跨分片交易的带宽膨胀等问题尚未涉及,因此其提供的标称TPS为2488–这个是云服务中硬盘IO所能够达到的极限值。因此即使不考虑其他的技术因素,ZILLIQA几乎无法再进行扩容。

2.以太坊2.0

以太坊在探索分片的道路上做了很多尝试,由于以太坊1.0 基于POW技术,而POW技术是无法保证分片安全性的,因此以太坊一直尝试迁移到POS算法上,但是由于POS算法的安全性一直未得到保证,所以经过多次尝试后,以太坊2.0 采用主链 POW+分片链POS的技术方案。

由于两者算法不一致而且并存,因此以太坊2.0可以看成是1.0的链外扩展,这时候又产生新的问题,以太坊2.0中的每个分片都是一部分交易、帐户,这意味着假如所有的跨分片交易都必须通过以太坊1.0进行交换,这将严重消耗1.0上的TPS,假如有100个分片,每个分片100TPS,那么跨分片交易平均就会有9900个,以太坊1.0 的TPS就需要9900TPS,这是以太坊1.0完全无法承受的。这也是目前以太坊2.0的分片不支持任何交易的最根本原因。

3.NEAR

NEAR链所提出夜影协议从另外一个角度考虑这个问题,区块链目前的TPS低,是因为区块中每一条记录就是一条交易,假设每一条记录是100笔交易,那么TPS岂不是提高了100倍?1000笔呢?怎么样实现一条记录就是1000笔交易呢?每条记录是一个区块不就可以了么?所以NEAR协议中每一条记录都是一个区块,那区块怎么来的呢?都是各自单个的分片;单个分片怎么来呢?NEAR不关心,另外做分片链么?

NEAR协议看起来可行,但其实只是把TPS的问题交给分片链去解决了。而NEAR协议的方案存在两个巨大的问题:

1. 分片间会不会有数据交互?如果没有,那就是各个分片是单独的链,需要NEAR做跨链?考虑跨链的话,波卡是更好的方案,而不是NEAR;如果有,分片间的跨分片数据交互量及带宽与分片数量的平方相关,如果NEAR协议主链支持1000TPS的话,那么实际仅能够支持32个分片而不是1000个。

2. NEAR主链是否需要对分片进行校验?如果不校验,需要NEAR主链有什么用处,如果需要校验,是否需要存储所有各分片的状态,如何支持此巨量的数据?即使使用了零知识证明,那么原分片链就能够完全完成的工作,需要NEAR主链再记录一次的意义何在?

因此可以把NEAR链看成混淆了分片和跨链概念,跨链系统的一次学术性尝试,而并不是能够具有落地应用,解决区块链需求的技术方案。

4.TERA

TERA与NEAR是类似的概念,是从另外一个角度来阐述:创建一个可以方便创建链的框架,然后在系统中称为分片;再创建一个POW的验证链,用于验证这个链(在TERA中称为分片)。所谓的验证就是把这些链(分片)的区块作为交易放到主链的区块中。

TERA理念与NEAR一样,其实都是披着分片外衣的跨链方案。所面临的问题也一样,所以为什么TERA官网号称的TPS为1000-1500,其最根本原因也是受限于节点的IO。

5.IOST

IOST在设计时,考虑更多的网络分片的安全性,网络分片的安全性是指假设全网有的恶意节点,经过分片后,某个分片中将有的恶意节点,这个恶意节点比例低于预定义值的概率。在IOST网络中,这个安全性的保证来源于两点:

A。通过DRP算法,将节点随机分配到分片中;

B. 每隔一段时间(EPOCH),重新分片一次。

上述的算法能够保证分片的安全性,但是带来了两个巨大的问题:存储无法分片。这是因为,如果存储分片,将节点切换到某个分片时,需要下载同步该分片内的存储状态数据;由于分片的随机性,经过一段时间,每个节点都将下载所有分片的存储数据。存储无法分片的结果将导致节点需要存储和传输全网的状态数据,而全网TPS越高,状态数据就越多,因此全网的TPS将受制于节点的带宽和存储IO能力,如上所述,即使按照单机能够承受的IO极限看,全网的实际TPS应该在2000到30000左右。因此IOST无论如何设计,其真实运行的TPS将无法高于此值,除非使用集群方案做节点,但这个又将严重影响系统的去中心化程度。

除此之外,还有一些考虑了带宽的PoW分片协议,由于其数据一致性无法得到证明,此处就不再详细讨论。因此目前所谓的分片技术,都没有真正实现全分片方案。

《区块链常见项目分片方案分析》

点赞