BLOG
Pruning Technology in loopchain to Lighten Blockchain Nodes
2023.06.19
Greetings from the PARAMETA Team,
Blockchain Data Growth
Blockchain serves as a tamper-proof data store by collecting transactions (TX) into blocks and connecting them with hash chains, and updates internal state data as a result of transaction execution. Because of this, the data stored on a blockchain is constantly expanding. As an example, if you look at the graph of the growth of Ethereum’s full node data size, it currently requires about 800GB of data synchronization, and it is constantly increasing, especially in January 2022 compared to January 2021, which more than doubled in a year, and the growth rate is quite steep.
Growth in Ethereum Full Node Data Size
* Source : Ethereum Chain Full Sync Data Size, https://ycharts.com/indicators/ethereum_chain_full_sync_data_size
This steadily increasing data capacity is one of the biggest barriers to blockchain adoption. Not only are storage costs for storing data constantly increasing, but the hardware and network specifications for processing the increased data are also increasing, making it more costly over time.
The second issue is the restriction of new validators, which can have a devastating effect on decentralization. If the cost of joining as a new validator increases and the time to synchronize existing validators takes more than a few weeks, it is inevitable that new validators will be restricted from joining, forcing them to operate with only existing validators, which can harm decentralization.
Pruning Technology in loopchain to Lighten Blockchain Nodes
In PARAMETA’s own loopchain, it is possible to lighten the operation of nodes by having only the latest block data. The key to lightweighting blockchain nodes is to be able to verify newly created blocks even if they don’t have the data of the entire block, and loopchain achieves this through Pruning technology.
Essentially, the blockchain includes the hash value of the previous block header in the next block header to prevent tampering and allow other nodes to verify newly propagated blocks. The block header contains the hash value of the previous block header, along with the block height, transaction root hash, transaction result root hash, validator root hash, etc. These hash values are regenerated and compared with the hash values propagated from other nodes to verify the existence or forgery of the transaction or the result of the transaction execution. In other words, these hash values are organized in a chain or tree form from the genesis block and are stacked in an ever-expanding form, so that new data can only be verified by having old data. This is why blockchain nodes keep old data, and why blockchains get bigger and bigger over time.
To cut this hash chain or tree in the middle (pruning), you need to either leave enough data to validate the newly propagated block or generate the necessary validation data. Depending on the block structure or consensus algorithm of each blockchain, there may be differences in the validation data that needs to be left behind.
In loopchain, a block (BN) consists of TransactionsN, ReceiptsN-1, StateN, ValidatorsN+1, etc. loopchain is designed to include the results of transaction execution in the next block. To create or validate the next block (BN+1), we need not only TransactionsN+1, but also ReceiptsN and StateN+1, which are the results of executing the current block’s TransactionsN, and the VotesN collected for those results, and we also need to check if those VotesN are in the previous block’s ValidatorsN list. This is how a new genesis block is created using the block and vote information required for block creation and validation.
Data required for block construction and new block validation (generation) in loopchain
loopchain supports Pruning in the form of creating a new genesis block using the last three blocks and the vote information for the last block. The data before the new genesis block is not required for block validation, so it can be deleted from the node to make it lighter. By being able to validate the new block, they can immediately become validating nodes and participate in the consensus without being differentiated from full nodes that have all the data.
Lightweight Nodes Using Pruning Technology
Due to the nature of blockchain, the amount of data stored can only grow, and increasing data capacity can have a serious impact on cost and decentralization. Therefore, lightweight nodes are essential, and Pruning is required to delete data without compromising the tamper-proof and transparent nature of blockchains.
loopchain supports node lightweighting by extracting the necessary information from existing blocks to create new genesis blocks so that new blocks can be created and verified. If we apply additional techniques to lightweight state data in addition to Pruning old data, we expect to be able to lightweight nodes even further.