Chain pruning



Summary:

A suggestion was made to form blocks into "superblocks" that could be pieced together from different nodes to get the full blockchain. However, the actual state of the blockchain is the UTXO set, which is stored in chainstate/ by the reference client and is the set of all unspent transaction outputs at the currently active point in the block chain. Giving someone the UTXO set cannot be trusted as there is no way to prove that it was the result of processing the actual blocks. Bitcoin's full node uses a "zero trust" model and never assumes any data received from the outside is valid. The previous blocks need to be available for initial block syncing to establish the validity of the current UTXO set. Merkle UTXO commitments are a related evolution where the UTXO set is shaped as a merkle tree, its root is computed after every block, and the block commits to this root hash. This means a full node can copy the chain state from someone else and check that its hash matches what the block chain commits to. However, this is a strict reduction in security as it trusts that the longest chain with most proof of work commits to a valid UTXO set at some point in the past. Combining both ideas means getting "superblocks" in a way that is less-than-currently-but-perhaps-still-acceptably-validated.


Updated on: 2023-05-19T18:38:33.319378+00:00