mt logoMyToken
Market cap:
0%
FGI:
0%
Cryptocurrencies:--
Exchanges --
ETH Gas:--
EN
USD
APP
Ap Store QR Code

Scan Download

Zilliqa(ZIL)分片技术解析

Collect
Share

文章仅供学习参考,不构成任何投资建议

上篇文章给大家简单的介绍了一下分片常识以及网络分片、交易分片和状态分片。(网络分片、交易分片、状态分片,你知道他们的区别吗),关于以太坊的分片技术在之前的文章中也写过:(聊聊区块链的分片技术)

今天我们就以zilliqa举例来说一下zil是如何进行分片的。

当然,还是老规矩,尽量用通俗易懂的语言来叙述。(幽默就算了,老马的语文是体育老师教的)

分片的第一步是如何创建分片。为什么要解决这个问题呢。因为区块链(特指公链)跟传统行业不一样。传统行业中,中心即法则和共识。任何人都必须在中心的游戏规则之内进行交易。而区块链是去中心化的,它是将无数个互不信任的个体集中起来,最后还必须要达成一个正确的共识。在这个过程中会有很多以前想象不到的问题出现。比如说如何防止恶意节点的勾结、如何防范无利益攻击等。

具体到创建分片,要解决三个问题

一是要防范女巫攻击。女巫攻击就是说一个恶意节点可以伪造出很多的节点并以此来破坏系统。如果这样说你不容易明白的话,你可以理解成我们在现实网络中的类似场景,比如说有些网络上的刷票行为就是利用伪造的ip地址来达成的,又或者说利用女巫攻击来获得一个不错的的百度搜索排名(seo优化)

二是如何把节点分配到每个分片中。打个比方,如果把所有的恶意节点都分配到同一个分片中,那结果肯定就可想而知了。

三是每个分片到底分配多少个节点。分配10个节点速度肯定快,但是明显是不合适的。那就必须要有一个合理的数值,既能快速达成共识,又要利用好分片的优势。当然,这些与共识机制也有关系。

那zil是如何解决这三个问题的呢?前两个问题的解决方法是利用工作量证明(POW)来选出可靠节点并剔除绝大部分的恶意节点。第三个问题是根据分片中至少三分之一的成员是恶意的概率得出分片大小为600个节点时,作恶的概率极低。

具体做法如下:网络中所有节点先进行一次pow,选出600个节点组成boss分片,剩下的节点继续进行pow,然后按照600个一组平均分配到每个分片中。每个分片执行PBFT来达成共识。

可以看得出,zil的共识机制不是pow,而是pbft,pow只是用来筛选节点,并不是达成共识的。

创建分片一旦成功,第二部就是如何达成共识。上文提到过,zil的共识机制是PBFT,但是我们知道,PBFT它的通讯复杂度是指数级提升的,即节点越多,通讯复杂度越指数级提高,事实上,如果节点数超过100个,再进行PBFT就没有任何意义了,因为它的速度跟拥有10000个节点的比特币也差不了多少。

那zil是如何解决这个问题的呢?因为每个分片中有600个节点,传统的PBFT通讯机制肯定是没法用了。zil从两个方面改进了PBFT,一是使用数字签名而非消息认证码;二是使用多重签名算法将多个签名汇集成O(1)大小的多方签名。这两种方法使的通信复杂度从O(n2)降到O(n)。老马只能说,这是一种没有经过大规模验证的多重签名方法,也不敢说最终达成的共识就一定可靠。但是一旦被证明这种方法是绝对可靠的。老马感觉zil真的是了不起。恐怕以后PBFT都要大有可为了。

但是zil这种分片机制也不是完美的,主要有三点,一是它只是网络分片和交易分片,并没有状态分片,这种做法以后zil要开始部署智能合约,势必会比较麻烦,二是它的分片机制中,为了减少通讯的复杂度,每个分片都要有一个领导者(boss分片),这在一定程度上降低了去中心化,领导者也有可能会受到粉尘攻击,三是由于分片中每个节点要保留所有的状态,势必会导致存储压力。当然,通过分布式存储也能在一定程度上解决这个问题。

所以说,任何一个项目并不是十全十美的,zil作为分片的先行者,能做成这样也算不错的了。但是距离完美,也有一些差距。老马把优缺点列出来,就是要提醒大家,还是要理性看待。如果你觉得某个项目的优点很不错,缺点可以容忍或者随着以后技术的提升也可以改善,那就可以参与。否则宁愿旁观。理性投资,切勿梭哈。

你看明白了吗

Disclaimer: The copyright of this article belongs to the original author and does not represent MyToken(www.mytokencap.com)Opinions and positions; please contact us if you have questions about content