Blockchain systems provide data transparency, integrity, and immutability in distributed and adversarial environments. In the blockchain systems, strong security guarantees pay a high price for scalability. Since the blockchain systems must rely on distributed consensus protocols, the existing protocols have poor scalability in terms of TPS (Transactions Per Second) and number of nodes. Existing consortium blockchain systems are generally small in scale due to the limitations of their distributed consensus protocols. Researchers in the database field have extensively studied sharding protocols in distributed database systems. However, due to the fundamental differences in the failure models considered by the database and the blockchain, it is not possible to directly apply the sharding protocol to the blockchain system. The distributed database system adopts a crash-failure model, where faulty nodes only stop sending and responding to requests, while the blockchain system operates in a more hostile environment, that is, there are a certain number of Byzantine nodes, and a Byzantine fault model is required. Attempts to improve the scalability of blockchain are currently limited to cryptocurrencies. Scaling the consortium blockchain systems under general workloads still remains an open question.
Sharding technology is currently a popular research topic in the field of blockchain. The scalability of consortium blockchains is a major challenge in both transactions per second (TPS) and the number of independent nodes involved in processing them. Many existing methods show different security and performance trade-offs. For example, replacing the PoW (Proof of Work) consensus with PBFT (Practical Byzantine Fault Tolerance) can improve throughput while reducing transaction delay. These methods still require all consensus nodes (i.e., validators) to redundantly verify and process all transactions, so the transaction volume of the blockchain systems does not increase as the number of nodes increases, and actually decreases due to the increase in coordination overhead. Through sharding, the method of building a "scale-out" database is to partition the state into multiple shards, which are processed in parallel by different subsets of participating validators. Sharding can also improve the performance of the blockchains by reducing the transaction processing load of each verifier and increasing the total processing power of the system in proportion to the number of participants. However, the sharded blockchain brings new challenges: 1) how to ensure the security of a single sharded blockchain? 2) expansion and shrinkage of shards; 3) cross-shard transaction execution and consistency; 4) how to ensure data availability and effectiveness; and so on.
- A practical and useful sharding model applied to our current blockchain system
- ~100, 000 TPS with 10+ shards in a typical consortium blockchain
- A scalable PoC sharded consortium blockchain with 100+ nodes
- Turing-complete smart contracts that can cross abitrary number of shards
Related Research Topics
- Scalable Bias-Resistant Distributed Randomness
- Parallel Cross-shard Transaction Processing
- Shard Management Smart Contract
- Expansion and Shrinkage of Shards
- Node Management
- Account Migration in a Sharded Blockchain