你或许也知道,限制目前区块链技术大规模落地应用的一个很重要因素就是性能,这也是为什么很多传统互联网从业者不太看好区块链技术的一个原因。
那么,如何解决区块链的性能问题呢?其中的一个解决方案就是分片技术(Sharding)。
01
什么是分片?
分片是数据库分区的一种形式,也称为水平分区,即将一个大的数据库切分成很多小的、可处理的部分,从而提高性能,缩短响应时间。
分片并不是一个新的概念,早在 90 年代后期就出现在了传统的中心化数据库管理中。这个概念的流行,要归功于一个多玩家同时在线玩的角色扮演游戏 Ultima Online。
在这个游戏中,开发者将玩家分配到不同的服务器来缓解流量压力(这意味着有很多个平行的“游戏世界”)。商业上,一个普遍的分片案例就是将用户信息的数据库按照地理位置划分,同一个区域的用户信息放在一起,存到单独的服务器中。
02
什么是区块链领域里的分片?
区块链就相当于一个数据库,每一个节点都相当于一个独立的服务器。正常情况下,这些节点每次只有一个节点能获得记账出块的权利,剩下没获得出块权的节点相当于做了“无用功”,白白浪费了算力。
如果将分片技术运用到区块链中,就相当于将区块链网络里的所有待处理任务(比如确认交易、运行 DApp 等)进行分解,全网的节点也进行分组,每一组同时处理一个分解后的任务(比如 150 笔待确认交易),这样就从原先单一节点处理全网的所有任务变成了多组节点同时并行处理。