专栏首页企鹅号快讯币读说人话之科普系列一:到底什么是分片技术?

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

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

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

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

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

分片又称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.

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • RSA 2018:从大会议题看2018年网络安全趋势

    根据RSA 2018大会提交的议题资料,可以发现我们正处于安全领域的一大关键性时刻,而明年4月的大会也必将满载激动人心的精彩内容。除了即将出台的全球性重大政策与...

    企鹅号小编
  • 为什么说区块链是第四次工业革命最大的驱动力?

    六月一日,一场在美国联准会(Fed)华盛顿总部艾克斯大楼举办的研讨会,聚集了全世界超过九十个国家的央行代表出席。 吸引这些国家踊跃出席的主题却是全球大多数人至今...

    企鹅号小编
  • 一文读懂公有链、私有链、联盟链

    区块链中公有链、私有链、联盟链都是区块链技术的一个细分,而技术仅仅是一种工具,怎么在不同的场景应用好不同的工具才是技术进步的关键。 公有链是什么? 公有链(pu...

    企鹅号小编
  • 视频直播系统开发中的数据库创建方案

    我们之前为大家介绍过直播平台搭建中的服务器环境配置流程。我们今天介绍下视频直播平台开发搭建中数据库该如何创建?

    q3557873521
  • 区块链开发公司智能物流的发展趋势

     区块链可以为物流行业构建一个从生产、仓储到配送全环节产品管理的可追溯和可识别的系统,为跨境物流在复杂的国际供应链体系中安全交易、有效沟通提供了应用空间。

    用户3126099
  • Node.js包管理器Yarn的入门介绍与安装

    FAST, RELIABLE, AND SECURE DEPENDENCY MANAGEMENT. 就在前不久, Facebook 发布了新的 node.js ...

    用户1174387
  • javascript操控浏览器

    机器学习和大数据挖掘
  • Linux操作系统DNS解析(nameserver)监控脚本

    一、起因 昨天,开发组兄弟发现 resin 日志出现不少支付宝业务报错信息,用户用支付宝购买了产品,钱到账后公司系统却未返回支付成功状态! 这还得了?用户明明支...

    张戈
  • 快来测一测你的网速吧!

    本教程指导如何使用iPerf进行网络吞吐量测试,iPerf是一种命令行工具,通过测量服务器可以处理的最大网络吞吐量来诊断网络速度问题。它在遇到网络速度问题时特别...

    SQL GM
  • AutoKeras---自动机器学习

    Auto-Keras是用于自动机器学习的开源软件库。目的是让仅拥有一定数据科学知识或机器学习背景的行业专家可以轻松地应用深度学习模型。

    我被狗咬了

扫码关注云+社区

领取腾讯云代金券