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