Blockchain Sub-Chain Pruning for Storage Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Blockchains face significant storage challenges due to their append-only nature, requiring an endless supply of storage and necessitating the download of the entire blockchain for verification, which is impractical for long-running systems and leads to storage issues such as running out of space or taking excessive time for new nodes to join the network.
Innovation Solution
The method involves creating sub-chains and regenesis blocks, allowing for the pruning of old data while maintaining integrity, with clear identification of pruning points and participants, using digital signatures and cryptographic hashes to ensure security and verifiability, thereby reducing storage needs without compromising the immutability of the blockchain.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the blockchain maintains all historical blocks to ensure immutability and verify integrity, then the security and reliability of the system is improved, but the storage space requirement increases continuously
Solution Approach 1:
The patent divides the continuous blockchain into discrete sub-chains, each starting from a genesis block or a previous sub-chain's end block. This segmentation allows the system to manage and verify data in manageable units while maintaining the ability to verify integrity through cryptographic hashes linking sub-chains together.
Solution Approach 2:
The patent changes the verification parameter from requiring access to the entire blockchain history to only requiring the end block of the relevant sub-chain. By storing the hash of the end block and comparing it with the computed hash, the system verifies integrity without needing to retain all intermediate blocks, thus reducing storage requirements while maintaining reliability.
2Reliability
If a new participant downloads the entire blockchain to join the network, then the verification of chain integrity is ensured, but the time required for joining increases significantly
Solution Approach 1:
The patent prepares verification data in advance by storing the hash of the end block of each sub-chain within the sub-chain structure itself. When a new participant joins, they only need to download the current sub-chain from its end block rather than the entire blockchain history. The pre-stored hash allows immediate verification of the sub-chain's integrity, dramatically reducing joining time while maintaining verification reliability.
3Volume of stationary object
If the blockchain prunes old blocks to reduce storage, then the storage space requirement is reduced, but the ability to verify historical data integrity is compromised
Solution Approach 1:
The patent extracts the essential verification information (the hash of the end block) and stores it within the sub-chain structure itself. This allows the system to prune intermediate blocks while retaining the ability to verify integrity, as the extracted hash serves as a compact representation of the entire sub-chain's state. The verification process only requires comparing this stored hash with a recomputed hash, eliminating the need to retain all historical blocks.
4Volume of stationary object
If compression techniques are used to reduce block storage space, then the storage efficiency is improved, but the complexity of decompression and verification increases
Solution Approach 1:
Instead of compressing block data and requiring decompression for verification, the patent inverts the approach by storing cryptographic hashes (which are inherently compact) and using them for verification. This eliminates the need for decompression operations entirely, as verification is performed by computing hashes and comparing them, thereby reducing computational complexity while maintaining storage efficiency.
Data Source
AI summary
A method of maintaining a data structure comprising: creating a data block; transmitting a message to validator devices requesting permission to add said data block to the data structure; determining that consensus is reached, and in response: forming a first sub-chain in the data-structure by adding the data block to the data structure, the first sub-chain starting with a genesis block and ending with said data block, wherein the data block comprises a block number indicating the number of blocks in the data structure from the genesis block, and creating a further data block; transmitting a further message to the validator devices requesting permission to add said further data block to the data structure; determining that consensus is reached, and in response, forming a second sub-chain by adding the further data block to the data structure after said data block, the second sub-chain starting with said further data block.


