论文部分内容阅读
区块链是由分布式节点维护而不是中心化组织维护的仅增量更新的账本。区块链技术的前景十分美好并且受到所有行业的热捧,例如比特币,以太坊和Hyperledger Fabric等项目,但当前的区块链解决方案仍面临可扩展性问题,该问题包括两个方面:交易吞吐量低和存储容量成本高。衡量区块链交易吞吐量性能的主要指标是每秒交易量(Transaction per Second,TPS),传统区块链网络的吞吐量不会随着网络规模的增加而扩展。由于存储于区块链上的数据只能增量更新,不能删除,而每个节点都需要维护整个区块链系统的所有数据,这极大浪费了存储空间。目前为止,研究者们已经提出了许多方法解决此问题,例如链下交易和有向无环图(Directed Acyclic Graph,DAG)解决方案。但是,它们不仅具有诸如形成寄生链等缺点,还无法解决存储开销问题。分片技术是最有前景的扩展区块链解决方案之一,该方案将有效解决区块链性能问题。本文研究基于分片技术的区块链结构,用以解决不可扩展性问题。本文设计并实现了区块链网络分片,交易分片和状态分片方案,并提出网络分片规模预测算法,用于预测最优的分片大小,使区块链具有高吞吐量,处理大量交易和节省存储成本的优点。网络分片是将整个区块链网络节点随机划分到每个分片中,并且使用权益证明(Proof of Stake,PoS)的思想赋予每个节点身份。交易分片是将未确认的交易按照账户地址属性分到不同的网络分片中处理。每个网络分片内节点并行处理交易并且对产生子树merkleroot值进行共识,然后领导者将子树merkleroot组合并发布完整区块。状态分片使用版本化的方式管理账户状态,以及使用分布式哈希表(Distributed Hash Table,DHT)的结构存储账户数据。实验结果表明,超过10万个节点的区块链网络,可以分为1024个分片,这种结构的区块链网络5秒左右能处理500,000笔交易。如果区块链的共识时间在10秒左右,分片机制的区块链系统出块时间为15秒,交易吞吐量即可达到33,000 tx/sec。本文提出的区块链结构与目前没有分片机制的以太坊相比,交易吞吐量提高1650倍,与基于分片机制的RapidChain相比,交易吞吐量提高4.5倍。实验结果表明,所提出协议的吞吐量随着网络规模的增加而增加。这证实了基于分片技术的区块链结构具有可扩展性。