[Bitcoin-development] does "stubbing" off Merkle trees reduce initial download bandwidth?

Elden Tyrell tyrell.elden at gmail.com
Mon Jan 2 05:04:03 UTC 2012


Satoshi's paper mentions that storage requirements for the blockchain 
can be reduced by deleting transactions whose outputs have been spent.

If I understand correctly, this technique can only be used for reducing 
*storage* requirements, not *bandwidth* needed for the initial chain 
download by a high-security client that doesn't trust any of its peers 
-- right?

The rule is "trust the longest valid chain of blocks".  Part of a block 
being "valid" is that each transaction's inputs are unspent and their 
sum exceeds the transaction's outputs unless it is a coinbase.  This 
cannot be verified for "stubbed out" transactions -- they have outputs 
but no inputs, and aren't coinbases.  So a paranoid client booting up 
for the first time needs to be given an un-stubbed chain, right?

Of course, if a client decided to accept a stubbed blocks only when the 
sum of the difficulties in the blocks after it exceeds some number N, 
then attacking it could be made very expensive by picking a large 
enough N.

Please let me know if I have misunderstood something.






More information about the bitcoin-dev mailing list