良辰7星评价
2020-04-21 15:24:20
对区块链比较熟悉的朋友们可能都知道,公链的吞吐量一直是个让人诟病的问题,比如比特币和以太坊的吞吐量每秒只有个位数,如果想要在以太坊上面搭载一个吞吐量需求较大的DApp,那么这条公链就需要具备可扩展性。
但是区块链扩容这种事情,说起来容易做起来难,有什么解决方案可以实现呢?这就不得不说一说我们今天的主角——上将分片技术”!
吞吐量
在说分片技术之前,我们需要通过了解吞吐量”的概念,来帮助我们进一步了解区块链的分片技术。
吞吐量这个概念很好理解,它基本上相当于人们正常吃饭、排泄一样:当你在访问某个网站点开这个链接的时候,就相当于人吃下去食物了;当服务器接收到你的链接请求后,会给你反馈相应的数据使该网页呈现在你的面前,就相当于这个人吃进去的东西消化完毕且把废物排泄出来了,这整个过程就是一个吞吐。
一个人自从吃进去事物到排泄出去所需要的时间就可以看成区块链网络进行一个吞吐所需要的时间,单位时间内吞吐的次数,就用吞吐量来形容。
我们在了解了吞吐量之后,就可以回头看看现有的扩容问题。
我们常说区块链是一个分布式账本,是因为区块链网络是由一个个节点链接起来的,然后要求每一个完全参与的节点都必须要验证每一笔交易,而且这些节点还必须跟全网的所有其他节点保持一致。
虽然这样的机制可以最大限度的保证全网的安全,在容错性、安全性、政治中心和真实性上面有很大的优势,但是这种方式是以降低可扩展性为代价的。
当公链变得越来越大时,它就需要越来越多的处理能力来验证这些公共交易,进而可能造成交易瓶颈。众所周知,当前阶段公链的吞吐量实在是小的可怜,平均每秒只能处理7-15笔交易,所以,这在极大程度上阻碍了那些对吞吐量有较高要的应用在链上的发展(即使聊天、实时支付等)。
发现问题总是好的,但如何解决问题却又成为了一个新的问题。关于这个新问题,业界提供的解决方案主要分为链上和链下两种。
链下的解决方案就是利用闪电网络将大量交易放到链外进行,只把关键环节放到链上确认(缺点很明显就是没有区块链的保护不是很安全)。
鉴于前者的情况,我们就需要一种与其互补的、链上的解决方案,也就是今天所讲的:分片技术(还有侧链、DAG等,此处暂且不表)。
分片(Sharding)是一种基于数据库分成若干片段的传统概念扩容技术,它将数据库分割成多个碎片并将这些碎片放置在不同的服务器上,在底层公链的系统内,网络上的交易将被分成不同的碎片,其由网络上的不同节点组成。
因此,只需要处理一小部分输入的交易,并且通过与网络上的其他节点并行处理就能完成大量的验证工作。将网络分割为碎片会使得更多的交易同时被处理和验证,我们将这种技术称之为分片技术”(或水平扩容),可以简单地理解为分而治之”。
其实分片技术不止一种,为了满足不同的需求,分片技术还分为:网络分片、交易分片和状态分片等。举个例子方便理解:
现有的区块链网络就像一条繁忙的高速公路,这条高速公路的收费站暂时只有一个收费出口,在这样的布局下,车辆稍微增加,交通很容易堵塞。比如当时基于以太坊发布的加密猫游戏,游戏玩家暴增,导致以太坊网络拥堵。
若是想减少高速拥堵的情况,就需要在高速公路上增加N个收费口,这才能极大地提高汽车通过收费站的速度。因此,分片技术可以为区块链网络带来巨大的改善,并显著提高区块链的交易速度。
可以想象,当我们将低费用与高交易处理能力结合起来的时候,必然会使公共链变得越来越有吸引力。这些积极的趋势所持续的时间越长,我们就越能看到更多的主流的加密技术和区块链应用程序的出现,最终呈现一个百花齐放的状态。
基于分片技术的区块链的实现底层公链有很多好处:
1.区块链上处理交易的速度变成了每秒上千笔甚至更多,这可以改变人们对加m货b作为支付方式效率的看法。
2.改善交易吞吐量将会给去中心化的系统带来使越来越多的用户和应用程序,而这反过来可以促进区块链技术的进一步发展与采用,也使挖矿变得更有$可图,同时也能吸引更多不同人士加入到公共网络上的节点,从而形成一个良性循环。
3.分片技术因为验证单笔交易的处理量减少了,可以帮助降低交易费用,节点盈利的同时减少收取的费用,在现实的区块链世界中,将降低节点费用与提高交易处理能力结合,使底层公有链更具吸引力与竞争力。
分片技术独特在于其他解决扩容的链上技术的关键特性,就是它可以进行水平扩容,也就是说,网络的吞吐量随着挖矿网络的扩展而增加,这种特殊的特性可能使它成为推动区块链技术被快速采用的理想技术。
简单来说,分片技术的本质是通过改变网络内部各步骤之间的验证方式来增加吞吐量,各步骤之间验证范式可以采用链上验证,也可以采用链下验证的方式,没有统一,这就足以为现有公链带来诸多好处。
分片技术信息量巨大,它无疑是区块链中解决扩容问题的一个绝佳方案,同时分片技术还可以保证了去中心化和透明度的情况。但是分片技术,在设计和实现层面都是困难重重的,挑战还有很多,目前一切还只是个开始。
在我们普通人还没有领会到这些技术时,最需要的是提高深度的逻辑分析思考能力(持续学习才是王道),这样才能迎接区块链时代的到来,不被大浪潮所淘汰。
平凡是福4星评价
2020-04-21 15:26:26
简单来说,分片技术和我们之前提到的侧链、闪电网络、隔离见证等技术一样,都是为了解决区块链的效率问题和可扩展性问题而诞生的一种技术。只不过它最开始想要解决的,不是比特币的拥堵问题,而是以太坊的效率问题。
以太坊是一个区块链搭建的智能合约平台,就和我们手机的安卓系统一样,开发者可以在上面创建各种的去中心化app(Dapp),但因为区块链的效率问题,导致这些去中心化app很难和我们日常用的中心化app相媲美。为了解决这个问题,有人就提出能不能把传统互联网中的分片技术引入到区块链中,于是就有了区块链中的分片技术。
分片技术之所以叫分片技术,是因为它背后的逻辑就是分而治之。分片技术源于传统中心化的数据库,是用来提高数据库的处理效率,一个分片是数据库的一个水平部分,每个分片储存在担负的服务器中,由此负载便分散开来使数据库的效率大大提升。
我们要知道,区块链也是一个数据库,只不过它是一条链式结构,这条链要承担整个系统的全部功能,而且每笔交易要经过所有的节点处理后才能确认,这种方式下,处理效率自然快不起来。
而分片技术就想办法,将这条链划成一个个的区域,一个区域就叫做一个分片,每个分片承担专职的功能,而节点也会分散到各个分片上,处理相应的工作。这样一来,处理时,交易会划分到各个分片上同时进行处理,就好像各部门分工协作一样,分摊下来,每个节点处理的只是网络中的一小部分交易,如此以来,自然就能大大提升这条链的处理效率。
但这又引发了一个新的问题,就是网络的安全性和去中心化性会下降,比如原来我想要在你网络中作恶,因为共识机制的原因,我需要搞定全网的大部分节点才行,但现在因为分片技术把节点分散到一个个小的区域中,我只用搞定你这个小区域的大部分节点就行。
所以,分片技术另外一个非常重要的机制就是随机分配的机制,它会专门有一个地方来负责生成随机数、为其他分片分配节点等功能,把节点随机分配出去,这样的话,想要作恶的人,就很难知道一个小区域中的节点都有谁,作恶成本会大幅提高,从而分片技术才能在保证安全与去中心化的同时,解决效率与可扩展性问题。
总的来说,分片技术虽然是目前区块链用来解决效率问题与可扩展性问题的主流技术之一,可因为该技术源于传统互联网数据库,致使这个方案无法直接应用在去中心化的区块链上,所以分片方案从提出却到现在也没有落地。
不过源于它的特性,一但落地,这项技术极大可能推进区块链技术被快速地大规模使用,所以大家一直对它期望甚高。希望随着这项技术的成熟,让区块链的世界中,也能诞生出像facebook、微信这样世界级的超级应用。