什么是分片技术呢?分片技术应用在公链上,会有那些好处?

分片是一种基于数据库分成若干片段的传统概念扩容技术,它将数据库分割成多个碎片并将这些碎片放置在不同的服务器上。大概意思就是如果有一个很大的仓库,里面放了很多货物,但是这个仓库只有一个出入口,所以在取货存货的时候,效率就会低很多。但是如果把这个大仓库改用成10个较小的仓库,那么同时存货取货的效率就会高10倍。这个过程就相当于分片。在底层公链的系统内,网络上的交易将被分成不同的碎片,其由网络上的不同节点组成。因此,只需要处理一小部分输入的交易,并且通过与网络上的其他节点并行处理就能完成大量的验证工作。将网络分割为碎片会使得更多的交易同时被处理和验证,因此,随着网络的增长,区块链处理越来越多的交易将成为可能。但这极其具有挑战。分片技术应用在公链上,会有那些好处?一是公链的处理速度将会达到每秒上万笔,甚至更多,这将使区块链项目的真正落地成为可能,扼住项目落地的技术难题将被彻底解决;二当处理速度很高的公链投入使用,将会带来越来越多的用户和应用程序,而这将反过来促进区块链的进一步采用,也使挖矿变得更有利可图,吸引更多节点加入网络,从而形成一个良性循环。三是分片技术可以减少节点的工作量,这将降低交易手续费,当我们将低费用与高效率结合起来的时候,必然会使公链变得越来越有吸引力。以上就是目前公链存在的一些问题和分片技术的原理,其实分片技术不止一种,为了满足不同的需求,分片技术还分为:网络分片、交易分片和状态分片等。在网络分片和交易分片中,区块链中每一个节点中的数据都被分割成不同的碎片,然后这些碎片每一个都能独立的处理分配给自己的这些交易,同时还能在不同的交易对象中达成共识。即虽然我这个碎片上面没有你那个碎片上的交易信息,但是我也有办法来承认你的交易时合法的。通过这种方式,就可以同时处理大量的相互之间没有建立连接的交易,通过提高碎片的数量级来提高交易的吞吐量。大家都知道,在现在主流的公链上面,每一个节点里面都会保存每一笔交易的这些数据:交易数量、交易时间、智能合约等等多有的信息,这显然会消耗掉很多的存储资源,如果一个节点内可以存放更多交易的话,那么也意味着用户需要支付的手续费也会对应减少。这个不难理解,就像你去网购,单点一件东西可能不会给你包邮,但是你点的东西多了,商家自然给你包邮。为了解决这个问题,状态分片的可行方法被人提出。这个方法的核心部分就是将节点的整个存储区分开来,让不同的碎片来存储不同类别的信息,然后每个节点只管负责好自己的分片数据,而不是像以往一样把所有的数据都存储起来。目前,分片技术在区块链上的应用核心难点在于数据分片的关键特征值确定,以及元数据在片区之间通信的延迟造成的不一致性问题,频繁的跨碎片之间的通信会使得区块链网络性能大大降低。除此之外,还需要考虑的问题是对各种攻击如:女巫攻击,DDOS攻击、双花攻击的防御,需要在权衡效率的同时,保证每个分片内的总节点数目足够多,并且诚实的节点占大多数,分片技术对安全性要求极高……分片技术信息量巨大,它无疑是区块链中解决扩容问题的一个绝佳方案,同时分片技术还可以保证了去中心化和透明度的情况。但是分片技术,在设计和实现层面都是困难重重的,挑战还有很多,目前还只是个开始。

【本文由“币嗨Bihi内容合伙人计划赞助”】

在区块链行业,我们经常能听到“区块拥堵”“交易速度太慢”等词汇,事实确实如此,近年来爆发式增长的用户需求已经给底层公链带来了越来越多的挑战,比特币社区曾为了这一问题的解决方案发生过长达数年的争执,甚至导致社区分裂;而以太坊也一度因为一个挂在公链上的小小游戏“加密猫”而长时间拥堵不堪。区块链技术面临着一个巨大的瓶颈,那就是——公链的可扩展性不够。为此,开发者们绞尽脑汁地提出了各种各样的方案来试图有效提升区块的吞吐量(TPS),我们称这一过程为“扩容”。“扩容”又分为“链上”和“链下”两种,如果我们把区块链比作一条公路,“链上扩容”就好比对公路本身进行重建,比如拓宽道路;“链下扩容”则选择另外的途径减轻公路负担,比如建造辅路。而“分片技术”就是“链上扩容”的方案之一,它被认为是能够有效解决区块链吞吐量问题的解决方案。所以,今天小K君就给大家讲一下,到底什么是“分片技术”。什么是分片技术?首先,分片技术是基于传统的“数据库分片”这一概念而产生的一种扩容技术。传统的“数据库分片”是把数据库分割成多个碎片,并经这些碎片储存在不同的服务器上,使系统能够更快更有效地管理数据。它给公共区块链带来的启发是,可以将网络上的交易分成不同的碎片,由网络上的不同节点组成。当有大量交易需要处理时,不同碎片上的节点能够同时并行处理不一样的交易,每个节点只需处理自己所接收到的一部分交易,就能在短时间内完成大量的验证工作。为了更好地理解它,我们再次引入刚刚所讲的“公路”的例子:我们把区块链比作高速公路,把待验证的交易比作汽车,把验证交易的节点比作收费口。原本繁忙的高速公路上只有一个收费站,收费站里只有一个收费口,车辆排着长队等待通过,结果就是越积越多,交通堵塞几近瘫痪。而分片技术就好比把收费站重修,增加了十个收费口,极大提高了汽车通过的速度。以这样的思路,分片技术能够显著提高区块链的交易速度。这一创造性的思路,首次被提出是在2015年。它是由一对来自新加坡国立大学的师生,在国际顶尖安全会议CCS上发表的一篇论文《A
Secure Sharding Protocol For Open
Blockchains》中发布的。而这一对师生,后来也将这一理论付诸了行动,发展出了第一个分片技术落地项目,名为“Zilliqa”。它的测试网络中存在6个分片、3600个节点,其处理交易的速度能够达到每秒2800个,是目前公链中的NO.1。分片技术也得到了以太坊创始人V神的认可,他甚至已经打算在以太坊的区块链上应用分片技术来扩大吞吐量了。将网络分割为碎片可以允许更多的交易同时被处理和验证,并且随着网络的增长,越来越多的节点加入,区块链网络也被期待能够处理越来越多的交易,这就实现了它“无限大”的可扩展性。虽然我们大概讲了分片技术的整体思路,但具体的实施,却并不如想象中的那样容易。下面,小K君再给大家讲讲分片技术的具体技术原理。分片技术的具体原理目前我们分片技术主要有三大类:网络分片、交易分片、状态分片。它们的基本原理都是“分流”,用多个分片同时处理不同的交易,再汇集到总链上。网络分片:网络分片较为简单,但也非常重要,它是被提出的最早的分片策略。它通过随机抽取特定数量的节点创建一个分片,当形成多个分片后,分片内部的节点就会自行建立共识,对各自接收到的交易进行确认。在此过程中需要注意安全性,分片会导致确认同一笔交易的节点数量减少,因此更加容易受到网络攻击和恶意节点的干扰。分片形成后,就可以实现同时处理不同的交易,提高区块链网络的效率。最早的分片技术项目“Zilliqa”就运用了网络分片。交易分片:网络上已经创建好了分片,这些分片会处理不同的交易,按照一定的依据(比如交易发起者的地址)将这些分片划分成不同的交易分片。它解决了如何将一个交易分配到某个分片的问题,就好像把收费站的收费口划分成“大型货车收费口”和“家用小车收费口”一样。试想有人用一个地址向两个人发起相同的交易,这两笔交易被分配到同一个分片进行处理,之后分片就会识别出相同的交易发起地址,从而阻止双重花费。如果这两个交易被分到了不同的分片,分片中的节点也同样能检测出来,将这笔交易拒绝。目前这种技术已经很成熟,能够适应多种共识机制。状态分片:状态分片是目前最复杂、最具挑战性的一种分片技术提案。它又提出,不同的分片需要储存不同的数据,真正做到将数据库分开,数据都分散放在了不同的分片上。而每一个状态分片中的节点都储存着自己分片中的所有数据,而不是整个区块链的数据。例如我们有两个分片,有两个用户信息,那么每个分片就保留着其中之一的用户的交易信息,而不是把两者的交易信息都保留。它目前面对的问题有两个,首先,不是每个节点都储存全网的每一笔交易信息,那么如果一笔交易的发起人和接受者处在两个不同的分片上,交易信息就必须在两个碎片之间进行共享,两个分片之间又进行信息和状态互换,更加降低了区块链网络的效率。第二,如果某个分片遭受攻击,其中的交易就会遭到中断,别的分片的节点无法代替工作,只能从遭受攻击的分片内部节点开始修复。也就是它的容错性和抗风险能力就会降低,甚至还有过度中心化的风险。总结总来的说,目前分片技术还有不少挑战在,但确实能够对公链的可扩展性起到很大帮助。首先,区块链能够使交易的处理速度迅速提升,如果我们将加密货币的未来与支付手段联系在一起,以更低的费用搭配更高的处理能力,加密货币逐渐走向支付手段的路就能越走越宽。其次,改善交易效率也会给区块链带来越来越多的用户,更多基于区块链而生的应用程序可以大展身手。公链将变得越来越有吸引力,能够吸引更多加入到公共网络上的节点,从而形成一个良性循环。这些积极的趋势所持续的时间越长,我们就会越能看到主流的加密技术和落地应用的出现。当然,分片技术依然存在着很多难题需要解决,尤其是状态分片,虽然原理已经被提出,但目前却还未有最合适的解决途径。当然,分片的原理不仅仅在于如何分片,更在于如何对每个分片进行安全有效的治理,对于公链来说,可扩展性、安全性和去中心化缺一不可。相信不久的将来,我们就能得到一条“三角齐全”的理想公链。来源:火星财经

概念普及:

普京娱乐,吞吐量:网络中的吞吐量就相当于人吃饭排泄一样,当你在访问某个网站点开这个链接的时候,就相当于人吃下去食物了;当服务器接收到你的链接请求后,然后给你返回相应数据使该网页呈现在你的面前,就相当于这个人吃进去的东西消化完毕且把废物排泄出来了,这整个过程就是一个吞吐。一个人自从吃进去事物到排泄出去所需要的时间就相当于网络一个吞吐所需要的时间,单位时间内吞吐的次数,用吞吐量来形容。传统数据库的分片技术:传统的分片技术分为
水平分片
垂直分片。大意就是如果有一个很大的仓库,里面放了很多货物,但是这个仓库只有一个出入口,所以在取货存货的时候,效率就会低很多。但是如果把这个大仓库改用成10个较小的仓库,那么同时存货取货的效率就会高10倍。这个过程就想当于分片。

熟悉区块链的朋友们都知道公链的吞吐量一直是一个诟病,比如比特币和以太坊的吞吐量每秒只有个位数的吞吐量,如果想要在以太坊上面搭载一个吞吐量需求较大的Dapp,那么这条公链就需要可扩展性。所以引出了今天的主角——分片技术

啥?你之前不是已经写过一篇闪电网络的关于这个问题的文章了吗?那这个分片技术有什么不同呢?

区别还是有很大不同的,分片技术在解决扩容问题上,它可以进行水平扩容,也就是说它是动态扩展的,使用了分片技术的公链,它的吞吐量会随着网络需求的拓展而动态增加,所以这种技术较其他的会有很大的优势,因为它是动态的。

因为现有的公链的吞吐量很小,每秒只能平均处理7-10笔交易,所以这将阻碍了那些对吞吐量有较高要求的应用在这些链上的发展,比如即时聊天、实时支付这样有巨大应用需求的产品。

可能有些同学还是不明白为什么区块链的吞吐量这么小,其实是因为所有区块链都必须遵循一个共识协议:整个区块链网络是由一个个节点链接起来的,然后要求每一个完全参与的节点都必须要验证每一笔交易,而且这些节点还必须跟全网的所有其他节点保持一致,这就是常说的分布式账本,可以最大限度的保证全网的安全。

也是因为这样的机制,虽然在容错性、安全性、政治中心和真实性上面有很大的优势,但是这种方式是以降低扩展性为代价的。当这些公链变得越来越大时,它将需要越来越多的处理能力来验证这些公共区块链,这可能会在造成瓶颈,从而减慢那些创建新应用程序的速度。

区块链的分片技术是基于传统数据库的分片技术而来的,在区块链网络中,将每批交易分成不同的碎片,然后存放在不同的节点当中。因此每个节点只需要处理一小部分传入的交易,然后再与网络上其他的节点一同处理就能完成这些大量的验证工作。这样的话,就可以同时处理大量的交易,这种技术称为
水平扩容

就像上面我们把一个大的仓库改建成十个较小的仓库一样,在存取货的效率上,一定提升很多。最大的一个好处就是改变了人们对加密货币的看法,因为效率提升很多,它可以满足实时支付的需求。然后可以吸引更多的应用搭载到公链上面,从而吸引更多的用户流量进来,这也会极大的促进区块链的发展。同时最直接的利益方就是矿工了,订单数量的急剧上升,手续费也必然比以往更多。但是对于用户来说,手续费却降低了,因为节点在验证每笔交易的处理量减少了,验证速度加快了,在市场的作用下,手续费必然会是降低的。

当我们将低费用与高交易处理能力结合起来的时候,必然会使公共链变得越来越有吸引力。这些积极的趋势所持续的时间越长,我们就会越能看到更多的主流的加密技术和区块链应用程序的出现,最终呈现一个百花齐放的状态。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章

CopyRight © 2015-2020 普京集团娱乐网 All Rights Reserved.
网站地图xml地图