3
2
In Merkle tree, leaves are actual transactions and internal nodes are hash of their childrens. In the Bitcoin paper, Satoshi talks about pruning branches in the Merkle tree to save storage space.
Under what conditions can be the branches pruned? I understand that the Merkle root is used in finding POF for the block. Are there any situations where all nodes in the Merkle tree are pruned except the root?
who does this pruning? Is there any data structure which tracks whether particular output has been spent or not? Or do we have to traverse entire block chain to identify the unspent output? – Curious – 2015-02-18T04:06:08.360
@Curious Nobody, to my knowledge. But, hypothetically, if it were done, it would be done by individual nodes. – Nick ODell – 2015-02-18T04:06:50.457
Is there any data structure which tracks whether particular output has been spent or not? Or do we have to traverse entire block chain to identify the unspent output? – Curious – 2015-02-18T06:38:52.537
@Curious Yes. Originally it tracked only the block a particular transaction was in, but it now tracks each output individually, so that the full block data doesn't need to be consulted. However, this is getting out of the scope of your question; you should ask a new question if you want to know more about this.
– Nick ODell – 2015-02-18T06:42:54.987Bitcoin core doesn't implement this yet. Pruning is likely to be implemented in 0.11 (the next version). – Jannes – 2015-02-18T12:33:22.247