您当前的位置: > 山寨币 >
Zilliqa深度解析,分片技术会是未来吗?-央行数字货币基础知识
Zilliqa深度解析,分片技术会是未来吗?Zilliqa也算是底层公有链中的一个代表,有着解决吞吐量问题的独有技术也就是分片技术。大家似乎对能解决性能瓶颈问题的公有链都非常感兴趣(我知道其实主要还是因为他的价格在熊市里也异常坚挺),那么今天我们就给大家完整的解析一下分片技术的代表性公链Zilliqa
Zilliqa是什么?
Zilliqa是一个以分片技术(sharding)为基础的区块链底层公链。旨在通过分片式网络技术来解决吞吐量不足的问题(你也可以理解成是交易能力)。目前公链面临的性能瓶颈问题是老生常谈了,基本上大家都有一个很清晰的共识就是:谁能解决底层公有链的性能瓶颈,谁就能成为下一个区块链3.0。而目前的解决方案里,除了EOS的DPOS共识算法的解决方案,IOTA的缠结(DAG)解决方案,分片技术(Sharding)的解决方案也是一大方向。
Zilliqa的愿景也很宏大,就是希望在交易处理速度上可以与Visa这种中心化的支付公司相匹敌。我们先来看一组Zilliqa的测试数据,在最新的测试网络中,Zilliqa的TPS速度达到了每秒2488笔,这个速度一举超越了很多现有的公有链(大概是以太坊的100倍)。
▲最新的测试网络中的速度
同时Zilliqa的交易速度会随着节点的增加而增加,这就很有意思了,这完全颠覆了当下公有链的去中心化和效率的矛盾。那Zilliqa到底是怎么做到的呢?
技术创新和特点
1.可以并行计算的分片网络结构
要想了解Zilliqa神奇的TPS速度就必须先了解分片技术是什么。分片技术是把整个网络分割成若干个小规模的,具备并行处理能力的子网络(又称分片)。(在Zilliqa的分片设计中,包含网络分片,计算分片和交易分片,在本文中只解析最重要的网络分片)
简单的说,就是把节点进行并行处理的统一分配网络机制,在Zilliqa的设计中,每600个节点就会被分配为一个网络分片,而由多个分片形成的并行网络就是分片网络,类似于物理学里面的并联和串联,将每600个节点放入分片内进行串联,然后再将不同的分片进行并联。(为什么一定是600个节点,这个问题在后面会解答)
▲把节点进行分组就是分片
为什么要做分片处理呢?这是因为在比特币这类的传统区块链设计中,节点与节点之间是线性链接的(链式结构),所以节点越多那么速度就会越慢。我们曾经在第二期的玩币指南中分析过,区块链的性能瓶颈并不是因为单节点的计算能力不足,而是受限于节点与节点之间的输出能力不足。
这就好比,有一个50人的班级,老师有一份50题的卷子要交给大家做,按照比特币的方式是,1号学生做完第一题,才能轮到2号做第二题,然后又要等2号学生做完第二题,才到3号做,直到50题做完,这其实是效率很低的做法,即便50个学生各个都聪明绝顶,但是在每一次只能做一题的规则下,效率也极其有限。很显然,影响效率的并不是学生,而是规则本身。那么就会有人问了,为什么不能50个学生一起做题目呢?
没错,分片技术就可以理解成你可以让50个学生分为10组同来同时做题。这样一来,就变成了一个简单的算术题了,如果一个分片一秒钟可以处理10个交易,那10个分片一秒钟就可以处理100个交易。
这样的类比可能不够严谨,但更易于理解分片与传统区块链的链式结构的差异性。我们希望所有阅读我们文章的小伙伴都能用更简单的方法理解晦涩的技术结构。
2.让网络性能与节点数量成正比
在理解了什么是分片技术后,我们会发现一个有趣的现象。如果分片跟分片之间是可以并行处理交易的话,那么增加节点并不会让网络变得更加拥堵,反而会让整体的网络能力上升。
这就让Zilliqa拥有了一个与其他公有链截然不同的特性:Zilliqa的网络计算能力(TPS速度)会随着节点的增加而增加。反观其他的公有链,一但发展到一定的程度,就会面临节点增加而阻碍性能的问题。因为节点越多,需要同步的时间就会越久。比特币和以太坊就是这个矛盾下的产物。
▲节点越多TPS越高
在最近的测试网络中,仅有3600个节点,6个分片的状态下,就达到了两千笔一秒的交易性能,若能大规模吸引矿工加入的话,Zilliqa的分片网络将能给目前的区块链性能问题带来新的解决方案。(如果把以太坊的现有矿工移植到Zilliqa来,那么Zilliqa的性能可以达到以太坊的1000倍以上)
所以在这一点上,Zilliqa可以说很好的规避了这个问题。发展和制约的这一对矛盾一直像一个紧箍咒一样牢牢的扣在不同的公有链中。为了去中心化而需要大量的分散节点,可节点的增加却反过来限制了网络的性能。如今,Zilliqa的模式是值得其他项目借鉴和参考的,看似只是从串联到并联的简单跳跃,却给了区块链技术发展提供了更大的优化空间。
3.通过多重签名协议让PBTF共识更高效 分片技术其实并不是什么新鲜的事物,这种类似于从串联到并联的改进在其他领域早有影子。比如在数据库中就被得以广泛的应用。
但想把分片技术应用在区块链中,却需要做很多的改进。虽然分片的优势是在于可以让多个分片进行并行的计算处理,但如何让不同分片对新的交易快速的达成一致,并形成共识产生下一个新区块,这就是共识的问题了。
这就好比,虽然我们把50个同学分成了10组来做题目,但哪一组来做哪几道题(对交易达成一致),以及什么时候开始做下一科的题目(产生下一个区块),这都是非常耽误时间的共识问题。所以在这一点上,Zilliqa采用了实用拜占庭容错共识pBTF (Practical Byzantine Fault Tolerance)而pBTF共识里最重要的一点就是,它默认所有节点中有三分一的节点是不正常的(恶意节点)。
有小伙伴会有疑问,那万一不正常的节点一直高于三分一怎么办呢,那岂不是所有的共识都无法达成?这就是为什么每个分片要包含600个节点的原因了。Zilliqa团队通过演算发现,当每个分片节点的数量大于600个的时候,出现三分之一坏节点的概率会低于百万分之一,可以说这个概率对于整个网络的安全性来说是完全足够的了。