A Generic Sharding Scheme for Blockchain Protocols

Zuphit Fidelman
DOI: https://doi.org/10.48550/arXiv.1909.01162
2019-09-03
Abstract:This thesis introduces a formal general framework for scaling blockchain protocols by sharding. The framework is modular and it can be adjusted for different needs or sets of assumptions. We prove that sharded protocols obtained by following our scheme (with correct modules in place) live up to the same safety and liveness guarantees as their non-sharded counterparts. The proof is general and relies on well-defined specifications of certain components. This lays the ground for simple proofs of correctness for sharded protocols obtained by following the proposed scheme. The framework is not left as an obscure specification of some high level structure; explicit use is demonstrated by applying it to shard Algorand. As part of this concrete construction, a tamper-proof mechanism to assign nodes to shards is introduced. This mechanism is constructed by using verifiable random functions and can safely withstand a powerful adaptive adversary.
Cryptography and Security,Distributed, Parallel, and Cluster Computing
What problem does this paper attempt to address?
The problem that this paper attempts to solve is the scalability problem of blockchain protocols. Specifically, Bitcoin and other blockchain - based protocols cannot scale effectively as the network scale grows due to their fully replicated design. This has led to two major scalability problems: 1. **Limited throughput and waste of computing resources**: - When more participants join the network, the overall computing power increases, and theoretically more transactions awaiting approval can be processed. However, due to protocol limitations, only a block with a fixed capacity can be added to the chain per round, so the overall throughput of the network is still limited to a certain fixed maximum. - For protocols based on Proof - of - Work (PoW) such as Bitcoin, as the collective computing power increases, nodes must work harder to maintain the original throughput, let alone increase it. 2. **Waste of storage space**: - All nodes that wish to participate in the protocol must store the entire global state locally. In a smaller network, this seems necessary, but after exceeding a certain redundancy threshold, this will waste a large amount of storage space. - Requiring nodes to store a potentially very large global state makes lightweight nodes with limited storage unable to participate, thereby hindering decentralization. To solve these problems, the paper proposes a general sharding framework to achieve the expansion of blockchain protocols by dividing computing tasks and data spaces into multiple independent entities. The core idea of the sharded blockchain protocol is to divide the nodes in a large network into smaller groups, with each group responsible for approving a specific set of pending transactions and storing a part of the global state. This can significantly improve the system's throughput and storage efficiency while maintaining the characteristics of decentralization.