Ultimate Blockchain Compression w/ trust-free lite nodes



Summary:

In a forum post about blockchain compression, Alan Reiner proposed using a special tree data structure to organize all unspent-TxOuts on the network, with the root of this tree being used to communicate its "signature" between nodes. The leaves of the tree correspond to addresses/scripts, and the data at the leaf is actually a root of the unspent-TxOut list for that address/script. The proposal provides the same compression as the simpler unspent-TxOut merkle tree but also gives nodes a way to download just the unspent-TxOut list for each address in their wallet and verify that list directly against the block headers. This enables even lightweight nodes to get full address information from any untrusted peer with only a tiny amount of downloaded data (a few kB). However, concerns were raised about potential deliberate unbalancing of the tree with addresses with chosen hashes. One suggestion was to discard any new address whose hash happens to be deeper in the tree than 10*log(n), indicating it was probably chosen to be unbalanced. Such a rule would mean that anyone playing games will find they can't spend their money and only with pruning clients, but unrelated people will not be affected. Another suggestion was to use a comparison function that works last bit first, which may be useful given the popularity of firstbits.


Updated on: 2023-06-06T05:37:07.547972+00:00