前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >币读说人话之科普系列一:到底什么是分片技术?

币读说人话之科普系列一:到底什么是分片技术?

作者头像
企鹅号小编
发布2018-01-30 15:24:45
9770
发布2018-01-30 15:24:45
举报
文章被收录于专栏:企鹅号快讯企鹅号快讯

前段时间参与的区块链峰会,以太坊社区的爱好者给币读菌科普了什么是分片技术,听得币读菌是一愣一愣的,专业术语太多了,完全听不懂哇。

今日币读菌联系到一位技术大咖,给大家以最简单易懂的方式把分片技术介绍给大家。

由于分片技术涉及到大量的专业知识,本文打算抛弃这些概念,直接站在山顶的最高峰,俯瞰“庐山”真面目。

不过,首先还是让我讲讲分片的由来。分片技术的由来

分片又称Sharding,它首先出现在数据库领域。起初,所有的数据都放在一台服务器上,如下图所示:

虽然不同的用户访问的是不同的数据,但是只有一台服务器提供服务,随着用户访问的不断增加,即使这台服务器是超人,在客官的不断所求下,也会累趴下。

那么人们想到最容易的改进办法就是:将不同数据放在不同的服务器上,如下图所示:

此时,访问不同的数据就会由不同的服务器提供服务,从而突破单节点数据服务器I/O能力限制,系统处理能力得到线性增长。

以上就是分片,它就是这么简单!!!

只不过此时是对数据进行分类,将不同类的数据放在不同的服务器,提供并行处理能力,这类分片的学术名称叫做“垂直分片”。

既然有垂直,那可能也有“水平分片”。

可以进一步想象,随着访问同一类数据的请求越来越多,单台服务器依然会成为瓶颈,那么可以进一步将数据分为多个部分,分布到多台服务器,这就是水平分片。

简而言之,分而治之就是分片的核心思想

例如1只大蚂蚁想要搬送一块大蛋糕可能一辈子都无法完成,但是如果有一百万只小蚂蚁并行工作,那在很短时间之后,就可以躺在蚁窝,吃着美味。

区块链扩展性问题

以上我们了解了分片技术在数据库领域的用法。我们不要忘了主题,我们是要讲区块链!!!那么分片和区块链有什么关系呢?

那不得不来唠唠现在区块链的处理能力(在这里主要指公有链),一句话,那就是比牛还慢!!!我们熟悉的比特币、以太坊每秒只能处理小于10笔交易。

这又有什么问题呢?

最近火热的以太坊虚拟猫游戏CryptoKitties以及6月中旬的Status的爱西欧,短时间内产生大量的交易,使以太网络极度拥塞,造成普通用户无法正常使用。

这就是说,现在区块链的吞吐能力还不能满足应用的需求。相比之下,像Paypal、VISA、MasterCard等这样的工业界产品的支付能力在1200-50000 Tx/s之间,这之间的巨大鸿沟不是简简单单靠调整参数就能解决(很多altCoin就是这么干的)。

区块链最核心的内容就是分布式共识算法。

那么什么是共识?

一句话讲,就是你干你的,我干我的,我们怎样才能保证我俩干的结果是一样的。接下来我们来讲讲专业知识。

目前在分布式领域主要存在两类共识,以比特币为代表的中本聪共识和经典拜占庭共识(BFT)算法。

如下图所示,中本聪共识虽然能够扩展到成千上万节点,但是其吞吐还不如一台笔记本电脑;

拜占庭共识每秒能够处理上万笔交易,但是其性能随着节点的增加呈指数降低。

而我们想要的共识算法,是随着节点的增加,其处理能力也相应增加,就如数据库领域,当我们增加服务器后,就能响应更多的请求。

那这样一种理想的共识算法是否存在?答案是让人失望的,到目前为止,还没有任何一种成熟的共识算法能够实现上述需求。

但是,从历史经验出发,将分片技术用于区块链,也许会将这个伟大的梦想变为现实。

分片技术如何带来质的提升

目前的公有链大部分都是单链结构,所有矿工都在相互竞争去延伸下一个区块,如下图所示:

由于产生区块的平均时间是固定的,例如比特币平均每10分钟产生一个区块,随着越来越多的矿工加入挖矿行列,挖抗难度得到提升,以保证每10分钟产生一个区块。

这就造成,即使投入更多的计算机,整个系统的处理能力并没有得到提升。

将分片技术引入区块链,此时,系统处理如下图所示:

首先,将所有矿工节点进行随机分配,形成多个分片,并挑选一个Boss分片。各个分片可以并行处理不相关的交易,并产生子区块,然后将子区块发往Boss分片。

Boss分片负责处理子区块,检查是否有效,最终产生区块n+1。从而,随着投入节点的增加,可以划分出更多的分片,也就能处理更多的交易。

以上介绍的就是采用分片技术的ZILLQA项目的核心思想

此外,在以太坊发展规划中,将在2020年前开发以太坊2.0,其中将采用分片技术提升区块链的处理能力,但与ZILLQA项目有本质区别。

V神介绍到“笼统简单地来说,你可以把分片看成是,设置一个区块链,在其中有一百个各自不同的宇宙,每一个宇宙都是一个独立的账户空间。

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

但是,这一百个宇宙不仅仅是割裂分散的区块链,它们在内部相互联系并组成系统。特别值得注意的是,它们彼此间形成共识。

所以如果要打破其中一个宇宙,你就必须打破这一个整体”。

预知以太坊2.0与ZILLQA的区别,下次分享

已下是研究分片的主要学术文章,欢迎有兴趣的读者讨论。

参考文献:

以太坊:https://github.com/ethereum/sharding

ZILLQA:https://www.zilliqa.com/

Elastico: Luu L, Narayanan V, Zheng C, et al. A secure sharding protocol for open blockchains[C]//Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. ACM, 2016: 17-30.

Kokoris-Kogias E, Jovanovic P, Gasser L, et al. OmniLedger: A Secure, Scale-Out, Decentralized Ledger[J]. IACR Cryptology ePrint Archive, 2017, 2017: 406.

本文来自企鹅号 - 全球大搜罗媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - 全球大搜罗媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档