# Comprehensive Review of Storage Optimization Techniques in Blockchain Systems
## 4 Methods  
### Pruning Technique  
The pruning technique is defined in two papers by [PERSON] et al. [61, 62] as the process of selectively retaining critical data within a blockchain while eliminating redundant historical block data to alleviate the storage burden on nodes. The introduction of pruning techniques enables new nodes within the blockchain network to synchronize more efficiently, significantly reducing synchronization time and storage space requirements, thus facilitating the continued scalability of the blockchain [63]. The subsequent sections will concentrate on various pruning strategies designed to minimize storage redundancy in blockchain systems. In Bitcoin: A Peer-to-Peer Electronic Cash System, [PERSON] [1] proposed a scheme to mitigate the growth of blockchain data by discarding portions of historical transaction data. Once transactions have been confirmed by a sufficient number of subsequent blocks, nodes can delete these early transaction records, thereby reducing the storage requirements of the blockchain. This process relies on the Merkle tree data structure, where each block's hash is stored in the Merkle tree root node. Even if specific transaction data are deleted, retaining the Merkle root ensures that the block hash remains consistent. Other nodes can still verify whether a transaction is included in the block using the Merkle root. The operational mechanism is illustrated in Figure 5, where transaction data Tx0 and Tx1 and their corresponding hash values Hash0 and Hash1 are removed from the disk, leaving only Hash01 for later verification. This method allows partial pruning of historical blockchain data, significantly reducing the storage burden on nodes that maintain the global blockchain record. However, the drawback of this mechanism is the inability to recover deleted transaction details. This pruning approach provides essential support for the scalability of the Bitcoin network over prolonged operation periods. Figure 4: Block structure. In traditional blockchain systems, full nodes must store all block data from the genesis block to the latest block. As the blockchain grows, the storage burden progressively increases. To address this issue, [PERSON] et al. [PERSON] et al. [PERSON] et al. (2018) proposed the securePrune protocol, which effectively reduces storage redundancy in blockchain systems by combining RSA accumulator technology with snapshot techniques. The core feature of an RSA accumulator is its ability to compress a set of arbitrary sizes into a fixed-length accumulated state, avoiding the linear storage demands that typically grow with data scale. A blockchain snapshot refers to the process of saving and backing up the entire blockchain state at a specific point in time, allowing nodes to only store the latest blockchain state rather than the entire transaction history. The securePrune protocol periodically generates snapshots of the blockchain state, recording the current UTXO (Unspent Transaction Output) set, and enables full nodes to prune historical blocks after a certain number of confirmations. The RSA accumulator, one of the key technologies in this scheme, is used to efficiently manage and verify the UTXO set. Each time a new block is generated, miners accumulate the input and output transactions into a fixed-size state value using the RSA accumulator. Regardless of the growth in transaction volume, the accumulator's storage requirements remain constant. Using mathematical methods, the accumulator guarantees the integrity of the blockchain state, allowing full nodes to verify whether a specific transaction is included in the accumulator without needing to store the complete historical transaction record. This mechanism, combining snapshots and accumulators, not only reduces the burden on full nodes to store all historical blocks but also ensures security and integrity during transaction verification.