Yeah that overhead is pretty high. I wasn't thinking about 10 years out. On Sat, Feb 21, 2015, 11:47 AM Mike Hearn wrote: > Adam seems to be making sense to me. Only querying a single node when an >> address in my wallet matches the block filter seems to be pretty efficient. >> > > No, I think it's less efficient (for the client). > > Quick sums: blocks with 1500 transactions in them are common today. But > Bitcoin is growing. Let's imagine a system 10x larger than today. Doesn't > seem implausible to reach that in the next 5-10 years, so 15,000 > transactions. Each transaction has multiple elements we might want to match > (addresses, keys, etc). > > Let's say the average tx contains 5 unique keys/elements. That's the base > case of {1 input, 2 outputs} without address reuse, plus fudged up a bit > for multi-sends then down a bit again for address reuse. > > 15,000*5=75,000 unique elements per block. With an FP rate of 0.1% we get: > > http://hur.st/bloomfilter?n=75000&p=0.001 > > 131.63KB per block extra overhead. > > 144 blocks in a day, so that's 18mb of data per day's worth of sync to > pull down over the network. If you don't start your wallet for a week > that's 126 megabytes of data just to get started. > > Affordable, yes (in the west). Fast enough to be competitive? Doubtful. I > don't believe that even in five years mobiles will be pulling down and > processing that much data within a few seconds, not even in developed > countries. > > But like I said, I don't see why it matters. Anyone who is watching the > wire close to you learns which transactions are yours, still, so it doesn't > stop intelligence agencies. Anyone who is running a node learns which > transactions in the requested block were yours and thus can follow the tx > chain to learn which other transactions might be yours too, no different to > today. If you connect to a single node and say "give me the transactions > sending money to key A in block N", it doesn't matter if you then don't > request block N+6 from the same peer - they know you will request it > eventually anyway, just by virtue of the fact that one of the transactions > they gave you was spent in that block. > > >