Dynamic Sharding for Blockchain Node Distribution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The introduction of sharding in blockchain networks increases the risk of data manipulation through consensus attacks and reduces transaction processing efficiency due to imbalanced traffic and node distribution, leading to potential fraudulent blocks and slowed transaction processing.
Innovation Solution
A dynamic sharding system that dynamically adds a new shard by splitting an existing shard, reallocating nodes based on traffic volume, number of nodes, and accounts, ensuring balanced distribution and stability by deriving new and split shard addresses and reallocating nodes to old and new shards.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If sharding is introduced to reduce the size of the distributed ledger and increase scalability, then the transaction throughput of the entire network is reduced and ledger size is decreased, but the number of nodes available for verifying transactions decreases and the risk of data manipulation through consensus attacks increases
Solution Approach 1:
The patent implements dynamic sharding where the number of shards and nodes per shard can change over time. The system dynamically adjusts shard configuration based on network conditions, allowing the ledger size to be managed while maintaining sufficient verification nodes through adaptive reallocation rather than fixed partitioning
Solution Approach 2:
The patent segments the verification committee into multiple shards, each with a subset of nodes. This segmentation allows the overall ledger size to be reduced while distributing verification responsibilities across multiple independent shard groups, thereby maintaining security through distributed verification rather than centralized control
2Productivity
If the number of shards is increased to handle more transactions, then scalability is improved, but the number of nodes available for verifying transactions decreases and stability is reduced
Solution Approach 1:
The system dynamically adjusts the number of shards based on actual transaction volume and network conditions. When transaction throughput requirements increase, the system can split existing shards or create new ones, but when stability is needed, it can consolidate shards, allowing flexible adaptation to changing productivity requirements while maintaining stability
Solution Approach 2:
The patent changes key parameters such as the number of shards, nodes per shard, and shard configuration based on network conditions. This parameter adjustment allows the system to optimize between productivity (more shards for higher throughput) and stability (fewer shards for better security and consistency) as needed
3Productivity
If nodes are reallocated to balance traffic distribution, then transaction processing efficiency is improved, but system complexity increases
Solution Approach 1:
The system implements self-service node allocation where nodes automatically adjust their shard assignments based on traffic conditions and network state. This eliminates the need for complex centralized management of node reallocation, allowing the system to optimize transaction processing efficiency through autonomous adaptation while keeping operational complexity low
Data Source
Figure 1
Figure 2
Figure 3
AI summary
The present disclosure relates to a dynamic sharding system and method, which involve adding a new-shard by splitting one shard into two in a blockchain network. A dynamic sharding system which runs on nodes constituting a blockchain network, according to one embodiment of the present disclosure, comprises a shard addition determination module for determining whether a shard needs to be added; a new-shard address derivation module for deriving a new-shard address based on the number of shards currently included in the blockchain network; a split-shard derivation module for deriving a split-shard split into a new-shard based on the new-shard address; and a shard allocation module for assigning a portion of the nodes which belong to the split-shard to the old-shard and the rest to the new-shard.