All of the clients you mention - Bitcoin QT, Armory, Electrum, blockchain and MultiBit have the ability to import and export private keys.
The thing is if you make a mistake with private keys in Bitcoin you can lose your money permanently. If you are tired and in a hurry you are more likely to miss something.
If you are using an encrypted VM and reset the VM afterwards be careful of this gotcha. You import a private key, send a transaction and miss that the change goes to a different address. I have unfortunately had people delete a wallet when they thought they had a copy of the private keys but they missed the change address's private key. Money lost.
Yes, having the flexibility of combining wallets (importing multiple private keys), sharing them (exporting multiple private keys) and the ease of use is in conflict with the security. You must send change to primary public key when spending, or you can diverge the wallets and fragment your control over the coins.
Blockchain.info seems to have some of this functionality, but I'm not too sure I would trust it too much, and I'm not sure I can pick the originating address for sending bitcoin.
You can from the Web client. You choose "custom" when sending.
Also, the Mycelium Bitcoin Wallet client (Android) provides an easy method for importing (scanning) a private key. (It is new, beta software yet and was just recently made available so use care such as only dealing with paper keys with small amounts, for now.)
Yes, I managed to do this, I can send coins from received wallets using a specific send address which fits the purpose. Also the imported private key can be watch only, you need to provide the private key any time you want to spend, which is good.
There are three things bad in this scenario:
- blockchain.info is not immune to spoofing, and you might share your private key while online
- You can't remove the private keys once imported (everyone seems to think that public keys are some kind of pop and drop cans of hot burning lava, like they go bad after a while and you need fresh new containers...
- local security is a tight requirement as you could get your password and private keys logged
Biased input here, but, my Electrum for Android - Native Edition wallet will offer support for multiple wallets. To support what you want, I could implement a wallet-flavor where it is temporary / in memory only and can store the configuration that all change must go to the source address.
Example flow:
* Tap wallet drop-down
* Select temporary wallet (would need to come up w/ naming)
* Wallet gets selected
* Select option to scan key
* Hold phone/device over paper key
* Gets added
* Electrum servers lookup transactions associated w/ the address and populate temporary wallet data
* Use option to send coin, select address you want to send to either by scanning using camera, address-book, or manual entry (where you could paste if off web page)... input amount.. send
Then you can watch for the transaction to complete or immediately clear the temporary wallet.
.. another option for use-case could be to have that address as a watch-only address, then when you need to send from it, it would ask you to provide the private key source (ex: paper wallet)
Let me know if this sounds sane to you...
Will need to eventually document all the support flows / use-cases so that I know what kind of UI to design and develop...
Your first checklist is the same use scenario as a watch-only address, with the added benefit of being able to remove the key from tracking. Yes, I would like a lightweight secure and quick bitcoin wallet that can work like Chrome's incognito mode, where everything you do is not saved anywhere after you exit incognito. There is that point about preventing change return addresses and reusing the primary public key. Having this special mode work with QR private keys, pasting keys or a generally available brainwallet scheme would benefit users. I'll look into voting for it in your development kickstarter.
May I ask what are the known risks of accessing your wallets on a community binary download rooted Android ROM? Can you sandbox your application so other applications or system binaries can't readily access your wallets?