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.
翻译:分片被用于解决区块链协议的性能和可扩展性问题,将整个交易处理成本分摊到多个节点簇中。与现有整个区块链网络相比,片段需要更少的存储容量和通信与计算成本,它们并行运行以最大化性能。然而,现有的分片解决方案使用锁来进行事务隔离,这降低了系统吞吐量,可能会引入死锁。在本文中,我们提出了一种无锁事务方法,以确保事务隔离而不使用锁,从而改善了事务的并发性和吞吐量。在我们的方法中,将事务分割成子事务,以便在多个片段中进行并行处理。我们使用版本号实现片段之间的一致性。我们提供了活性和正确性的形式证明。我们还通过与基于锁的方法比较,实验评估了我们提出的协议的执行时间和吞吐量。实验结果显示,事务执行时间比基于锁的时间短得多,并接近理想情况下(无锁)的执行时间。