以太坊区块链的创新本质毋庸置疑,其智能合约功能促进了去中心化应用程序(DApps)和初首次币发行(ICOs)的发展。然而,尽管迄今为止以太坊取得了立竿见影的成功,但以太坊区块链不具备可扩展性的特性还是使不少人感到忧虑,这导致了以太坊想要为主流大众所接受的目标难以完成。这个问题上,分片技术可能会被证明是以太坊可扩展性问题可行的解决方案。
可扩展性问题
目前,以太坊区块链每秒可以处理大约 5 到 6 笔交易,然而,这个数字远远落后于每秒可以处理 2000 次交易的 VISA 信用卡系统。以太坊每秒交易量低的可怜是由于以太坊区块链中交易确认的方式。目前,网络上每个完全参与区块链运作的节点上都必须保留以太坊区块链的副本,并处理在其上进行的每项交易。尽管这种模式提供了无与伦比的安全性,但这是以牺牲可扩展性达到的,因为这种劳动密集型处理模式意味着整个网络上单位时间内处理的交易数量永远不会超过单个节点的交易数量。针对可扩展性问题,社区中已经提出了一些建议,其中包括提高以太坊每个区块大小限制。
增大以太坊区块链上每个区块的大小,理论上可以增加每秒处理的交易数量,因为更多的交易将能够包含在单个块中。但是,这个方案存在着一个重大的缺陷。那就是如果每个区块大小增加并且包含更多的交易,那么随着区块链的增长,网络上参与运作的节点所需要的存储和计算能力也将增加。这样一来,区块链的扩大必定存在一个临界点,此时在消费级硬件上运行的节点将完全无法处理交易。取而代之,网络将越来越依赖能够处理交易的少数节点。这导致了中心化的风险,因为此时区块链实际上只能由少数节点(例如超级计算机)运行。
分片解决方案
以太坊扩展性问题的另一个解决方案是进行“分片”。分片是一种从传统数据库的分片概念中衍生的伸缩技术,在传统数据库概念中,通过分片技术,将数据库分解成几部分并存放在不同的服务器中。而在区块链的分片概念中,以太坊区块链将被分割成不同的分片并存储于网络上的不同节点。每个节点只处理区块链的一小部分,并且与网络上的其他节点并行进行处理。分片的目的是取代当前区块链的模式:节点需要存储整个区块链副本并参与处理每项交易。取而代之的是,分片允许每个节点只存储整个区块链的一个子集,并参与验证与该子集相关的交易。这将允许在以太坊区块链上同时处理更多的交易,随着区块链网络的增长,可以同时处理的交易数量也随之增加。然而,实施以太坊区块链分片可能是一件复杂的事情。由于在区块链上进行的交易可能与之前一个版本区块链上的任何部分都有可能相关(前一个版本:在区块链添加一个新交易之前的状态),因此确保多节点并行处理交易非常具有挑战性。此外,因为节点在分片状态下不需要处理整个区块链,所以必须采用某种方法来决定由哪个节点处理某个分片。
结论
截止目前,以太坊区块链给我们带来的创新水平,因为无法扩大规模以实现广泛应用,而受到一定程度上的制约。但是,看到社区正在为解决这个问题进行认真的讨论,无疑是振奋人心的。采用分片技术是一个很有意思的建议,至少可能是以太坊的可扩展性问题的一个解决方案。无论如何,只有经过时间的考验,才能证明分片到底是不是一个可行的解决方案。