I've read, though I have not really looked at the process but I've read you can use a public key to generate new addresses which can only be spent using the private key that originally produced the public key.
So the thought it - create a paper wallet with private key and import public key into a wallet that generates addresses from it, allowing you to deposit to a new address each time you add money to the paper wallet.
We know someone is sending small amounts of money to random addresses and that got me thinking.
It wouldn't be too hard to look at the blockchain and find public addresses that are quite like a paper wallet. Lots of transactions going in spread over time, no transactions going out.
So once a criminal identifies sizeable paper wallets, criminal then starts doing micropayments to addresses that deposited looking for how they are then spent in hopes of identifying who owns the paper wallet.
Then when they identify who owns the paper wallet, thugs come and extract the private key.
But if the address used to deposit changes every time, it will difficult if not impossible to determine it is a paper wallet or how much is in it.
The issue isn't just random thugs. Maybe John bought something from me and thus already knows who I am, followed the transaction and saw the bitcoins end up in an address that has large quantity of BTC. John comes to my house with a hammer...
Anyway, to work the smoothest it would need client intergration so I could import a public key into client and label it, and anytime I want to deposit I ask to send to the label and it generates new public address based that doesn't have a private key.
Any clients do this?
All the deterministic clients allow you to store a single "seed" on paper and generate as many bitcoin addresses as you like from that "seed". Take a look at Electrum and Armory as examples.
Note, that the seed isn't a private key, and there isn't just one public key. Each public key results in only one bitcoin address (well, actually two since there is compressed and uncompressed, but that isn't what you're looking for). You can't "use a public key to generate new address
es".
There is only one public key for each private key, and only one address for each public key.
The deterministic wallets allow you to generate additional "private keys" from the single seed.