Sharding is used to address the performance and scalability issues of the blockchain protocols, which divides the overall transaction processing costs among multiple clusters of nodes. Shards require less storage capacity and communication and computation cost per node than the existing whole blockchain networks, and they operate in parallel to maximize performance. However, existing sharding solutions use locks for transaction isolation which lowers the system throughput and may introduce deadlocks. In this paper, we propose a lockless transaction method for ensuring transaction isolation without using locks, which improves the concurrency and throughput of the transactions. In our method, transactions are split into subtransactions to enable parallel processing in multiple shards. We use versions for the transaction accounts to implement consistency among the shards. We provide formal proof for liveness and correctness. We also evaluate experimentally our proposed protocol and compare the execution time and throughput with lock-based approaches. The experiments show that the transaction execution time is considerably shorter than the lock-based time and near to the ideal (no-lock) execution time.
翻译:分片技术用于解决区块链协议的性能和可扩展性问题,它将整体交易处理成本分摊到多个节点集群上。与现有完整区块链网络相比,分片对每个节点的存储容量、通信和计算成本要求更低,且能并行运行以最大化性能。然而,现有分片解决方案使用锁机制进行事务隔离,这降低了系统吞吐量并可能引发死锁。本文提出一种无需使用锁即可确保事务隔离的无锁交易方法,该方法提升了交易的并发性和吞吐量。在我们的方法中,交易被拆分为子交易以实现多个分片上的并行处理。我们利用交易账户的版本来实现分片间的一致性。我们提供了活动性和正确性的形式化证明。此外,通过实验对所提出的协议进行评估,并将其执行时间和吞吐量与基于锁的方法进行比较。实验结果表明,交易执行时间显著短于基于锁的时间,且接近理想(无锁)执行时间。