2. Over time, won't this environment I am managing become rather unwieldy to manage? Over the course of say 80 years of a human life time for someone who is 15 years old now and using this environment, they will have a new pair for every single payment they ever receive. That could be thousands of BTC addresses they now have pairs for.
It could be, but the keypairs are very small, and several thousand addresses would only take up a couple Mb tops. With current technology, and the current growth, this will never become a problem.
I suppose that once a keypair has 0 BTC left as unspent inputs, we could discard it from the "environment"? Thereby keeping the "environment" lean?
Still, it means we have a Blockchain that grows like mad. Over time, every BTC address ever used by ever user since genesis is in there. There is no real way to "compress" or trim this Blockchain if a person's "balance" it determined as a result of their transaction trail.
3. This bit confuses me: "As an example, any casual user of Bitcoin Core will have new addresses generated for them without their knowledge every time they send a transaction". I can see how when I want Bob to send me BTC, I generate a new key pair. But to send, how do I have a new address generated automatically? I mean sure, I could generate one, but I have to "fund" it with the unspent inputs from one of the other keypairs I own before I can make a payment from it, right? How is that anonymous? Now, there is a connection from this new keypair to the one that funded it. So the recipient may as well just receive BTC from the original keypair (ie: the original keypair may as well sign off on spending some of its unspent inputs to pay Bob).
A new keypair is not generated for each send. Bitcoin core sends your funds from one or more of the addresses you own, and the remainder from the address goes to a newly generated address as the change. It will try to involve as few inputs as possible in order to create your transaction.
So indeed the recipient now knows who paid me. And who paid me now knows who I paid?
Why even bother with a new change address? It is still tied back to the receiving keypair. So no anonymity gained here...
4. In general, I get that if Alice pays Bob, Bob can create new keypairs so Alice never knows about what Bob has in his "wallet" other than all the addresses Alice paid Bob from. But whenever Bob pays Carol, he has to use previous keypairs to fund the payment to Carol, so Carol now knows through the blockchain what addresses Bob funded with. Furthermore, Alice can see where the BTC she sent Bob went on to. Am I getting this right? So basically, Bob cannot anonymize the source of his payments to Carol -- he can only anonymize his holdings from Alice who pays him.
Bob can send his bitcoin to a mixer. The mixer service allows Bob to send multiple payments, one from each of his addresses, to them and then he can withdraw his bitcoin from the service when all of his Bitcoin has been sent there. The withdrawal takes Bitcoin from addresses that he did not send to and sends that to another newly generated address owned by Bob, thus anonymizing his Bitcoin. Alice will only know that the Bitcoin she sent Bob went to another address, but she will have lost her trail on Bob. Carol will only know that he funded his address from other addresses, but tracing those, she will be tracing Bob's payments.
If Bob does not use a mixer, then Carol can see the addresses she is being paid from, and Alice can see where the Bitcoin is being sent. If Bob also sends from many of his addresses, then both Carol and Alice will know what addresses Bob has.
[/quote]
Well, I heard about mixers. But this is now a value added service on top of Bitcoin and Bob has to trust the mixer to not decide to vanish at that point in time and walk away with whatever is in the "bowl" at that time, right?
Overall then, all the people who paid me for a certain "group" of BTC will know all the people I paid that BTC out to, and vice versa. I can create "islands" of privacy so that each time I am paid, I have a new keypair that has nothing to do with the existing ones, but now all the people who get paid by the BTC on this new island know who paid me on the same island.
Furthermore, if I need to make a big payment in BTC, I will likely have to combine the BTC from many different islands. Now, all those people who were on all those islands know about each other, as well as the guy I making the big payment to. Is this accurate?