首页 > 虚拟币分析 > 列表

以太坊2.0 VS Zilliqa:分片技术到底哪家强

来源:  2018-01-02  阅读数量 40300

我们简单回顾一下,分片的核心思想就是分而治之,也就是将一个大任务拆分为多个可以并行处理的小任务,从而提升性能

 

近期常被大家提到的以太坊2.0以及Zilliqa项目,都计划采用分片技术解决区块链扩展性问题。

 

但是它们有本质的区别,我们先谈谈区块链到底有哪些扩展性问题,再分别介绍以太坊2.0分片与Zilliqa分片以及它们的区别。

 

本文可能较难,但是我相信只要客官抱着饥渴的态度,一定可以踩在脚下。进入主题。


1


 谈谈区块链扩展性问题


目前的公有链主要面临两类扩展性问题:

 

(1)   吞吐量低:比特币、以太坊每秒只能处理小于10笔交易,还不能满足绝大多数应用的需求;

 

(2)   存储空间占用大:记账节点需要保存所有历史记录,如下图所示,比特币从09年到现在,已经占用了150GB左右的存储空间,并且还在不断增长。

  



分片技术分别用于解决以上两个问题,可以分为两类:

 

  • 交易分片:各个分片分别处理部分交易,从而提升系统处理能力

  • 存储分片:各个分片保存部分状态,从而降低单节点存储压力

      

从功能上区别以太坊2.0Zilliqa,那就是:以太坊同时实现存储分片和交易分片,ZIlliqa实现交易分片。但并不是说以太坊同时实现存储分片和交易分片就优于Zilliqa,请看下文。


2


 以太坊2.0分片技术 


V神近期在介绍“Ethereum2.0 Roadmap”中提到用分片技术解决扩展性问题,他这样描述分片笼统简单地来说,你可以把分片看成是,设置一个区块链,在其中有一百个各自不同的宇宙,每一个宇宙都是一个独立的账户空间


所以你可以在某个宇宙中拥有一个账户,也可以在数个宇宙中持有一个合约,当然,你还可以在数个宇宙间发起一笔交易,而这笔交易仅仅会对涉及到的这几个宇宙产生影响


这句话看上去似乎有些难于理解,请客官看下图:



从图中我们可以看出,以太坊2.0将以太网络分为两层,上层为现有的以太坊(也叫主链),基本保持不变;下层为各个分片,他们相互独立,拥有不同的账户空间。


各个分片延生属于自己的链,并将最新区块头发给主链。主链收集各个分片的区块头,然后生成主链区块。值得注意的是,在主链上只保存各个分片的区块头,具体交易并不在主链上保存。

 

从以上特征我们可以看出,以太坊2.0通过引入多个独立分片,可以很大程度上分担主链的压力。一方面,多个分片可以并行处理交易,提升整个系统的吞吐量;


另一方面,分片节点只保存与自己相关的历史状态,主链节点也不用包含分片的具体交易信息,从而可以大大降低节点的存储压力。

 

也许上面的讲解还不够清晰,举个例子:将以太坊主链比如父亲,分片比作已经分家的三个亲兄弟,老大卖猪肉,老二卖电脑,老三卖衣服,他们都干着不同的事情,各自有各自的账本,但是每隔一段时间都需要向父亲进行汇报。而父亲只记录儿子报给他的摘要信息,具体每一笔具体交易他不用保存。

 

综述所述:以太坊2.0通过引入相互独立的分片,提升了系统的吞吐能力,也降低了节点的存储压力,并且在需要的时候,增加分片具有相当的灵活性,比如父亲又生了一个儿子,这个儿子去卖水果。


3

 Zilliqa分片技术

 


上节我们谈到以太坊2.0的分片技术,我们可以看出,它通过将网络分为主链和分片,能够提升整个系统的吞吐能力和降低节点的存储压力,但是,它的分片之间是相互独立的。

 

而我们现在要谈的,Zilliqa分片技术,是运作在同一个空间。还是以上的例子,不过这个时候没有父亲,而是四个亲兄弟,也就没有分层的概念。


这四个亲兄弟都干同一件事:卖衣服。但是责任有所细分,老二卖童装,老三卖男装,老四卖女装。那老大呢?老大就负责验证老二、老三、老四有没有账本有没有问题。节点划分如下图所示,将整个网络分为多个子网络,用它官方的术语叫“网络划分”。

 


Zilliqa中,从全网节点中筛选出一个Boss分片(老大)+n个工作分片(其他兄弟),每个分片有m个矿工。全网节点首先进行一次算力竞争(学术上称工作量证明PoW),最先胜出的m个节点组成Boss分片;


剩余的节点进行第二次算力竞争,最先胜出n*m个节点分配到n个工作分片中。每个工作分片都并行处理部分交易,形成子区块,发送到Boss分片,Boss分片验证、打包,生成最终区块,如下图所示:

从以上可以看出,虽然Zilliqa经过网络分片,但是各个分片并没有独立的地址空间,他们都工作在主链上。并且每个节点都保存着所有的历史记录,不管是Boss分片还是工作分片。


这就是说,它不像以太坊2.0分片那样,每个分片有一个独立的地址空间,只保存自己地址空间的状态信息,而是所有分片都工作在唯一一个地址空间上。

 

综上所述,Zilliqa通过网络切分,多个工作分片并行工作,能够极大提升系统的吞吐量,但是每个节点依然保持所有历史记录,没有解决存储空间占用大的扩展性问题。


4

以太坊和Zilliqa对比

 


通过以上分析,以太坊2.0Zilliqa都用了分片技术,但是有根本性的区别,如下表所示:

 


以太坊2.0

Zilliqa

存储扩展性问题

解决

没解决

吞吐量扩展性问题

整体提升,主链没提升

主链提升

地址空间

每个分片一个独立地址空间

全网一个地址空间

分片共识

PoS

PBFT

进度

3-5年内实现

测试网络已发布


5


 总结


以上介绍了以太坊2.0分片与Zilliqa分片的区别,由于他们解决的问题不同,小幻兽还无法判断孰优孰劣,今后应该是一种相互补充、共同存在的关系吧。

  

注(1):小幻兽是老寒的铁杆粉丝,很荣幸能够帮助每日币读写写区块链技术文章。以上是我自己梳理总结的观点,错误或不足之处,欢迎各位大神批评指正。

 

注(2):本文仅是比较以太坊2.0与Zilliqa项目两种不同的分片技术,不构成任何投资意见

本文转至每日币读。