币久网-虚拟货币交易,BTC比特币价格,数字资产交易

币久网

一文了解区块链性能解决方法:分片

你可能也知晓,限制现在区块链技术大规模落地应用的一个非常重要原因就是性能,这也是为何不少传统网络从业者不太看好区块链技术的一个缘由。

那样,怎么办区块链的性能问题呢?其中的一个解决方法就是——分片技术(Sharding)。

1、啥是分片?

分片是数据库分区的一种形式,也称为水平分区,马上一个大的数据库切分成不少小的、可处置的部分,从而提升性能,缩短响应时间。

分片并非一个新的定义,早在 90 年代后期就出目前了传统的中心化数据库管理中。这个定义的时尚,要归功于一个多玩家同时在线玩的角色饰演游戏 Ultima Online。在这个游戏中,开发者将玩家分配到不一样的服务器来缓解流量重压(这意味着有不少个平行的“游戏世界”)。

商业上,一个常见的分片案例就是将用户信息的数据库根据地点划分,同一个地区的用户信息放在一块,存到单独的服务器中。

2、啥是区块链范围里的分片?

区块链就等于一个数据库,每个节点都等于一个独立的服务器。正常状况下,这部分节点每次只有一个节点能获得记账出块的权利,剩下没获得出块权的节点等于做了“无用功”,白白浪费了算力。

假如将分片技术运用到区块链中,就等于将区块链互联网里的所有待处置任务(譬如确认买卖、运行 DApp 等)进行分解,全网的节点也进行分组,每一组同时处置一个分解后的任务(譬如 150 笔待确认买卖),如此就从原先单一节点处置全网的所有任务变成了多组节点同时并行处置。

举例,假设现在ETH上有 8,000 个节点(矿工),全网待确认的买卖是 15,000 笔。ETH每秒能处置 7-15 笔买卖,正常状况下至少需要 1000 秒才能处置完这部分待确认的买卖,当然处置的过程中又会有新的待确认买卖产生。

假如使用分片技术,将 8,000 个节点分成 100 组,每组 80 个节点,这 15,000 笔待确认买卖分成 100 个分区,每一个分区 150 笔,那样,每组节点(80 个)可以并行处置各自分区里的待确认买卖(150 笔),如此最快 10 秒钟就可以全部处置完那 15,000 笔待确认买卖。

从这个例子中,大家可以看到,分片技术可以大幅提升区块链的性能。

那样,分片技术有没缺点呢?答案是一定的。

3、分片技术潜在的风险

分片技术虽然能在一定量上解决区块链的性能问题,让区块链更具备可扩展性,但也存在两个缺点。

一个是分区后,不同区的通信问题。上面的例子,将ETH互联网分成 100 个分区,每一个分区都是独立的,等于有 100 条独立的、平行的ETH区块链,每条都由一组矿工(80 个节点)维护和确认买卖。这 100 条独立的ETH区块链并不可以相互通信,假如要通信,必然要增加跨分区的通信机制(类似垮链),这会增加区块链的复杂性,开发困难程度也会提升。

第二个是区块链的安全性。还是上面的例子,在未分片之前,ETH互联网是 8,000 个节点组成的算力,分成 100 个分区后,每一个分区等于一条独立的ETH区块链,算力降低到 80 个节点组成的算力。此时,对其中一个分区进行 51% 算力攻击就容易不少。控制了一个分区,攻击者就可以在这个分区内做恶,篡改买卖。

ETH基金会计划将分片技术作为ETH 2.0 的升级内容之一。ETH怎么办分片技术的上述 2 个缺点,大家拭目以待。

出处:白话区块链

相关推荐

我们的缺点麻烦您能提出,谢谢支持!