So for some time i was thinking about a process where you "squash" the blockchain.
This would reduce its size significantly while maintaining integrity.
The process would look like this:

  • Summarize all transactions to a certain block
  • Throw away adresses with a balance of 0
  • Create a new genesis block containing all adresses that have a positive balance

Would this be possible?
What do you think about this?

Ps: Im new to blockchain and this community. So please dont be too harsh :)

1 Answer 1


Running a full node allows a user to independently verify the state of the bitcoin network. In order to verify the state of the network, the full node will run through every transaction in every block, and this is only possible if the full node has access to all of the data that comprises the network's history.

If you 'squash' (compress) this information, then the necessary verification cannot take place. Given a compressed piece of data, it does not seem possible to verify the validity of the uncompressed data (according to whatever rules), without having the uncompressed data itself. So instead you would need to trust that someone else had verified this data before it was compressed, and doing so would be counter to the goals of the bitcoin network (ie allowing every user to independently verify the network state).

Further, the blockchain record is not well-suited for compression.

  • Throw away adresses with a balance of 0
  • Create a new genesis block containing all adresses that have a positive balance

The bitcoin network does not keep track of address balances, it keeps track of UTXOs.

Note that you can run a full node with pruning enabled, so that old blocks will be discarded from your local storage after verification has been completed.

  • But where is the difference between: - Everybody on the network agrees on adding a block to the blockchain and - Everybody on the network agrees on shorting the blockchain in a certain way Every Node would just have to compare hashes. (I cant create newlines here :()
    – Freehunt
    May 27, 2021 at 7:43
  • @Freehunt nodes that are joining the network need to determine which chain is correct, amongst potentially many different chains. Knowing that the network starts from the genesis block (it is hardcoded in), and that they can follow the consensus rules to determine if any particular chain is valid, will allow them to determine which chain is the longest (and thus valid) chain. If presented with two chains that start from some arbitrary place in history, how could a similar determination be made? Simply having a valid hash isn't enough - the entire history preceding that hash must be valid.
    – chytrik
    May 27, 2021 at 20:09
  • @Freehunt if you are interested, you could search this site for questions concerning blockchain 'checkpoints' (a largely abandoned idea, but note that assumevalid allows similar benefits, with much better trust assumptions). You could also search for information about UTXO-set commitments, they are perhaps similar to what you are considering (eg Utreexo).
    – chytrik
    May 27, 2021 at 20:14
  • Cool! Thanks for this informations! Love you :)
    – Freehunt
    May 28, 2021 at 11:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.