Can the Monero block chain be pruned to increase scalability? If so, exactly what data can and cannot be pruned?
2 Answers
Theoretically, there is nothing preventing this. Practically, there is no code to do this yet, however.
There are a few things that can be pruned. Ring signatures, for instance. Once RingCT is in, range signatures can also be pruned. These take a large portion of the transaction data. Note that Aeon, a fork of Monero, does implement some kind of pruning already.
It is important to remember that pruning data makes a node unable to supply the pruned data to other syncing nodes. That data is necessary to fully validate the blockchain in a trustless manner, so while a client may decide to trust a pruned node, there should be at least a few "full data" nodes on the network, keeping the entirety of the blockchain, in order to keep the ability to re-verify the whole thing from scratch.
It is also relevant to note that the current on disk blockchain database is several times larger than the full blockchain data (very very roughly, the disk database is 6 to 8 GB, while the full blockchain data is maybe 3 GB). This is done to speed up subsequent reads from the database.
-
Can you provide more information on how the pruning of Ring signatures and of the range signature? Are there statistics on which % of the blockchain is taken by which type of data (proof of work data, ring signatures data, etc.)?– SymeofCommented May 6, 2017 at 10:51
Monero 0.14.1, released in June 2019, supports blockchain pruning. It decreased disk space use from ~75GB to ~25GB.
More information: https://getmonero.org/2019/02/01/pruning.html