Lockless Blockchain Sharding with Multiversion Control

Ramesh Adhikari,Costas Busch
DOI: https://doi.org/10.48550/arXiv.2303.17105
2023-03-30
Abstract: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.
Distributed, Parallel, and Cluster Computing
What problem does this paper attempt to address?
The problem that this paper attempts to solve is the performance and scalability issues in blockchain protocols, especially improving the transaction processing capacity and system throughput through sharding technology. Existing sharding solutions usually use locking mechanisms to achieve transaction isolation, which will reduce the system throughput and may lead to deadlocks. Therefore, this paper proposes a lock - free transaction processing method, aiming to ensure transaction isolation without using locks, thereby improving concurrency and throughput. Specifically, the main contributions of the paper include: 1. Proposing a lock - free protocol for sharded blockchains. This protocol is based on multi - version concurrency control, splitting transactions into sub - transactions that are executed in parallel across multiple shards. Through object versioning, sub - transactions can detect conflicts with other sub - transactions that attempt to access the same shared object simultaneously. If a conflict occurs, the transaction may need to be restarted and attempt to commit again. 2. Providing proofs of the correctness of the security and liveness of the proposed protocol. In addition, the performance of the protocol was evaluated through simulation experiments, and the results showed that, compared with lock - based methods, the transaction execution time was significantly reduced, and as the number of shards increased, the transaction throughput was improved. In conclusion, this paper solves the performance bottleneck problems caused by the use of locks in existing blockchain sharding schemes by introducing a lock - free sharding mechanism, improving the overall performance and scalability of the system.