Most of the people have their Bitcoins in wallets spread across multiple addresses, right? How would a single tx be sufficient to verify the ownership? This wouldn't work for paper wallets either, right?
I guess this problem applies to verifying by signing as well. Also, I'm not sure how well signing is supported by hosted wallets and how well Bitcoin users know this feature. But signing would work for paper wallets, correct?
Signing doesn't cost anything other than time to do it. So just have them sign a message with multiple addresses.
You can sign as long as you have access to the private key. In the case of a paper wallet you will need to load it into a client and then sign using that. In the case of hosted wallets it depends on whether they give you access to the private key or not. blockchain.info does let you sign messages. Exchange wallets don't.
I take a very slight exception to this. Signing a message, which is all that a transaction is, has a cost. One, it requires you to publish your public key, and two it requires you to publish a signature. Publishing your pubkey is a
huge hit to the security of the key, as it entirely strips one layer of our elaborate defensive structure (the hash) from that key. Once the pubkey is widely known, the incremental cost of publishing another signature is slight, but not zero.
These are very tiny, but real, costs to the security of that key. We believe that our system is secure against key-reuse, but history teaches us that multiply used keys are the first to fall when a system starts to show weaknesses. The problem is even worse with low quality keys, which I consider all so-called brain wallets to be, and those are the very ones that people are most likely to use to store their largest stashes, and the ones they'll most likely be tempted into weakening in this way.*
A user
should not publish their public key until they are ready to stop using it. Signing a message to prove that you control the key that controls some coins is
not the final use of that key and
should not be encouraged.
The safe way to prove ownership of a key is to transfer it all funds available to that key to a new key/address with an unpublished pubkey. This is how gox proved the safety of their stash a while back, and this is how the FBI proved confiscation of DPR's wallet.
* I see proof of address systems mainly used as e-peen comparison tools. Perhaps I've overlooked some serious usage?