QuarkChain技术揭秘 第一话:分片遇上区块链

目前,公链极低的交易处理能力(TPS)为人们便捷的使用区块链带来很大的麻烦。例如:比特币网络只支持6到7个TPS,而以太坊目前只能处理大约15 TPS,而中心化支付系统的代表:支付宝,在2017年11月11日可以提供200000 TPS以上的处理能力。对比可以发现,区块链世界中的TPS能力不足,极大地限制了其更广泛的应用。

尽管现在中心化系统已经能提供很高的TPS,但互联网发展过程中,由于用户不断增加的需求,可扩展性一直是中心化网络经常遇到的关键问题。为了满足所有互联网用户的需求,来自谷歌、脸谱网(Facebook)为代表的一线互联网公司、开源软件社区的工程师和学术界相关领域的科学家在提高网络的性能,提高可扩展性方面花费了巨大的努力和大量的资源,开发出了多种扩容方法。其中涌现出一批著名的项目,比如:谷歌文件系统、BigTable、Hadoop、Cassandra。

QuarkChain旨在通过使用上述技术来解决区块链世界中的TPS不足的问题,使其能满足各种商业场景的需求。需要注意的是,在这些中心化系统中采用的扩容技术很多都不适合去中心化的网络。为了保护好区块链网络的去中心化和安全性的核心价值,开发者必须仔细选择最适合的扩容技术,并将这些技术集成起来,不断调整,使其能满足去中心的网络。

这也意味着在去中心化的网络中扩容没有太多的先例可寻,QuarkChain团队必须从头开始设计并构建基础设施以满足区块链应用的需求,这将是非常困难的。幸运的是我们的团队是由来自谷歌、脸谱网和优步的高级软件工程师组成的,他们有多年设计、搭建、测试、维护和优化可扩展系统的丰富经验。这些宝贵的经验使我们能够以非常快的速度开发QuarkChain网络,并在项目开发的早期避开在中心化系统中已经出现过的许多陷阱。

为了进一步帮助大家理解QuarkChain的扩容方案,首先让我们简要回顾一下中心化系统的扩容历史。

1.中心化世界的扩容简史

在互联网时代到来之前(2000年之前),为了满足不断增长的需求,人们主要采用垂直扩容的方案提升系统性能。垂直扩容的基本思想是通过增加更先进,通常也是更昂贵的硬件设备来改进单个节点性能,比如:

● 为解决计算瓶颈问题采用更快的CPU;

● 为解决内存/缓存不足的问题添加更多内存;

● 为解决存储不足的问题添加更多或使用更大容量的硬盘。

在这个时代涌现出了一批在垂直扩容领域的专家和著名公司,比如:以数据库著称的Oracle;以工作站著称的SUN;以高性能存储闻名的EMC。

垂直扩容的主要好处是当性能不足时只要对单个节点投入更多的资源,管理相对简单。然而,这个方案有两个主要缺点:

1.前期投入成本很高。例如,EMC入口级设备比普通的商用个人电脑昂贵得多。

2.当性能达到一定水平时,通过垂直扩容方案提升性能可能是代价不菲的。由于硬件资源的物理限制,垂直扩容方案中提升两倍的性能所花费的代价通常大于两倍。例如,根据ark.intel.com网站2018年6月11日的报价,英特尔Xeon E5 - 1620 V4处理器具有4个核,其中每个核的频率为3.80 GHz,总价约为300美元(总计15.2GHz,每GHz 的价格为19.7美元),而英特尔Xeon E5-1680 V4具有8个核和每核的频率为4 GHz,价格高达1723美元(总计的32 GHz,每GHz的价格为53美元)。

随着互联网应用的爆发性增长,用户数量随着时间的推移呈指数增长,继续通过垂直扩容的方案来为所有用户提供服务将变得非常昂贵和困难。为了满足全球网络用户的使用需求,谷歌和脸谱网等互联网公司采取水平扩容的方案,通过使用普通的个人电脑来构建大规模分布式系统来解决这个问题。水平扩容方案有着几个重要的优势:

1.降低前期成本。一个新的项目在早期只需要少量的节点就可以满足其初始用户的需求。

2.线性扩容。可以通过增加更多的节点,实现系统性能的线性增加。这意味着随着用户数量的增长,系统容量可以通过不断的增加节点有计划的按需扩容。

目前世界上已经有一些著名的系统是按照这一思路设计的,他们提供了巨大的处理能力,同时维持优秀的可扩展性。比如:

● 谷歌文件系统(存储)

● 谷歌的BigTable (key-value存储)

● 谷歌的MapReduce(计算)

● Hadoop以及谷歌的一些开源项目,包括:HDFS、HBase、MapReduce

● Cassandra (key-value存储)

水平扩容中所使用的一个关键技术是分片(sharding),通过将整个系统状态划分为多个相对独立的子状态(shards),并构建多个节点组成的集群来并行的处理每个子状态。根据分片方案的思想,人们可以通过在集群中加入更多的节点,以及增加片(shard)来线性的提升系统性能。

2.去中心化网络的可扩展性问题

前文可以看到,为了提升性能人们在中心化世界中已经做出的大量尝试,这些案例为我们在去中心化的区块链网络中提升性能提供非常好的参考样品(注意,我们这里只讨论链上扩容方案):

目前,大多数现有的链上扩容方案是增加单条链的性能为主,我们称之为区块链垂直扩容方案。例如,比特币(BTC)的出块间隔为600秒,每一个块的大小为1M。为了加快交易处理速度,莱特币(LTC)通过将BTC的出块间隔从600秒减少到150s;比特币现金(BCH)则通过将BTC的1M大小限制增加到8M来容纳更多的交易。然而这两种方案都是不能无限的使用下去的,由于全球P2P网络传播速度的限制,进一步减少出块间隔或增加块大小将为会增加孤块产生的概率,孤块的产生会浪费哈希算力。

为了进一步提高单根链的性能,最新的区块链项目正在尝试使用新的共识算法,如:权益证明(POS)和委托权益证明(DPOS),这也是垂直扩容的方案之一。两个有代表性的例子是以太坊的GHOST改进和EOS的DPOS共识,其中EOS的DPOS共识只允许21个节点来产生块,损害了网络的去中心化程度。

由于P2P网络和单个节点本身的物理约束,我们认为区块链垂直扩容方案将会遇到与中心化系统垂直扩容类似的挑战。而水平扩容方案已经在中心化系统中取得了巨大的成功,相信这一技术也能搭建出能够满足全球商业需求的高性能公链。区块链水平扩容的基本思想是将单根区块链的状态划分为多条区块链状态(shards)。每个片可以相对独立地处理交易,而且可以无缝地与另一个片交互。通过增加网络中片的数量,整个区块链网络的吞吐量将会线性增加。

QuarkChain的宗旨是通过以分片为代表的水平扩容技术,建立一个人人可用的区块链底层公链。为了帮助大家了解我们的技术,我们将通过一系列的文章来详细介绍QuarkChain的设计细节。当然,细心的读者会发现其中很多灵感,受到了中心化高性能系统的启发。

如果您对QuarkChain背后的技术感兴趣,欢迎关注我们的后续文章,其中包括如下主题:

● QuarkChain是如何划分系统状态的?

● QuarkChain的共识机制能在保证分片具有良好的分散性的同时保持安全,以应对包括双花攻击、黑名单攻击在内的各种攻击。

● QuarkChain如何通过高效安全的方式实现跨片交易?

● QuarkChain如何支持智能合约。

● 为了避免超级节点的中心化问题,QuarkChain设计了集群方案。

此外,我们还将讨论其他在开发QuarkChain网络过程中遇到的新问题,分享提升交易处理能力的设计方案,也欢迎给我们提意见和建议。

非常感谢大家的阅读和对QuarkChain的厚爱。

注:本文为QuarkChain CEO周期发布在Medium上文章的中文译文,原文链接:https://medium.com/quarkchain...

相关推荐