A bloom filter seems like an interesting idea. However this proposal is 
concerned mainly with the initialisation stage, whereas this bloom filter is 
for pushed blocks.

This proposal still updates new transactions and blocks in the same way, and 
it's not inconceivable to later use a bloom filter to make that part more 
efficient (although it's questionable if pushing this server side would be a 
good idea as it would now need to track an additional client state).

________________________________
From: Mike Hearn <m...@plan99.net>
To: Amir Taaki <zgen...@yahoo.com> 
Cc: "bitcoin-development@lists.sourceforge.net" 
<bitcoin-development@lists.sourceforge.net> 
Sent: Wednesday, May 16, 2012 5:46 PM
Subject: Re: [Bitcoin-development] BIP 33 - Stratized Nodes


Thanks for getting this started. 

With regards to the specific proposal, I don't believe it's the best option and 
still plan to eventually implement the original design outlined more than a 
year ago in this thread:

https://bitcointalk.org/index.php?topic=7972.msg116285#msg116285

Namely that you use a new protocol command to set a Bloom filter on a 
connection. Only transactions matching that filter will appear in relayed 
inventory. Blocks that are requested will arrive as a header plus 
transaction/merkle branch pairs. Clients are expected to maintain and track the 
block chain as per usual, but instead of downloading the whole chain and then 
dropping the irrelevant transactions, that filtering is done server side. By 
strengthening or weakening the Bloom filters you can choose your preferred 
point on the privacy/bandwidth-usage spectrum. It is a fairly simple change to 
the Satoshi and BitcoinJ codebases but still allows clients to gain confidence 
in their balance by examining the chain, and this is true even in the presence 
of a hijacked internet connection (you can't trust pending transactions that 
way, but you can still trust confirmed transactions).

The filters would be applied to each data block in each script rather than 
having a specific knowledge of addresses. In this way you can select for things 
like multisig outputs or outputs which don't use addresses / pubkeys to 
authenticate.

I could write a BIP for this alternative protocol if somebody else wants to 
implement it. I was going to wait until I had time to do both BIP and 
implementation, but I think some simple optimizations to BitcoinJ can keep its 
performance good enough for the short term.  

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development

Reply via email to