5

When using a paper wallet as watch only via block chain.info and you send partial amounts out from it. Where does the change go?

I've read you can lose all your coins if the client doesn't handle change properly. What's a scenario that could lead that to happen? Which apps don't handle change properly?

5
+50

(I assume here that you have a simple single-address paper wallet, like the ones from BitAddress.org. I also seem to have understood that you use the Blockchain.info app to make the payment.)

You should be able to decide yourself where the change goes (using the web-apps's Custom Send feature), but Blockchain.info's default behaviour is to send it back to the original address.

Especially if you have a paper wallet with only one address, Blockchain.info won't generate new change addresses for you.

So this is what happens:

Let's say you received two transactions on your paper wallet. One for 2 BTC and one for 3 BTC. When you try to send 1 BTC to someone, the Blockchain.info app will:

  • Take an output that has at least 1 BTC. This can be done randomly, but I suppose it will take the oldest one. If you don't have an output large enough, it will combine multiple ones until they have at least 1 BTC all together. Suppose the 3 BTC output is chosen.

  • It will make a new transaction with the 3 BTC as input. It will create an output for the 1 BTC you want to send to another address. It will then have to specify what to do with the other 2 BTC.

  • Considering that it only knows about one of your addresses, it will use this address for change. This means an additional output is created for 2 BTC, sending them (back) to your paper wallet address. (Note that Blockchain.info charges the minimal transaction fee by default, so this will be deducted from the 2 BTC change.)

So basically, you don't have to fear for losing your coins. And you will be able to spend the change from your paper wallet automatically.

However! This type of use, is not what paper wallets are intended for. Using Bitcoin, you are supposed to use a new address for every transaction. This is to ensure your privacy. When you use your paper wallet like this, everyone you ever made a transaction to or that ever made one to you will know your balance. This is obviously not what you want. Paper wallets are originally intended to store an amount of coins safely offline. When you want to use them again, your privacy ensured only if you send them back to a regular wallet that uses change addresses like it is supposed to.

  • thank you for really clearing this up. as it was quite scary to move BTC around and finding out that their are change addresses involved. currently i dont really care about the privacy issue as its not like i have alot of btc and it would require extra paper wallets everytime i just want to take out a few mbtc to spend. im just using paper wallets as my safe deposit box. it seems safer than having it loaded on a computer which is prone to malicious software. – Patoshi パトシ Jan 15 '14 at 16:33
  • 1
    @duckx Well using it as a safety deposit box is a good practice. But please be careful, I made the assumption that you use the Blockchain.info app, who has this behaviour. When you use other wallet apps (like Miltibit as Raghuram suggested), other things may happen regarding change addresses.) – Steven Roose Jan 15 '14 at 16:39
  • 1
    yea i mainly use the blockchain.info app. the thing is that i feel like it gives it another layer of security if blockchain.info ever goes down, you still have the paperwallet on hand. – Patoshi パトシ Jan 15 '14 at 17:47
  • This is an excellent answer and I would only change 1 character. I've raised a discussion to see if this is possible. – trichoplax May 26 '14 at 23:27
2

I explain my recent experience with paper wallet. This might be helpful.

I generated a paper wallet from coinbase and securely stored its private key in cloud. I also used blockchain.info to monitor the balance using the public key only (no private key is entered). And recently, I wanted to transfer few bitcoins from it to sell. I knew that if I import the private key in coinbase.com, it sweeps all the coins from that address and transfers all of them to a new address whose private key is managed by coinbase. Blockchain allows to import private key without sweep, but I did not want third parties to learn about my private key. So I thought of using Multibit client. I installed multibit client, exported all its private keys to a file, and added my private key to the end of the file and imported back. I see all my coins in multibit (1.6 BTC). So far good. Now I transferred, 0.5BTC to coinbase to sell them and multibit showed the balance as 1.1BTC, which is correct. But the watch only address in the blockchain started showing only 0.6. I got confused as the balance I expected was 1.1. So I carefully monitored the transaction and found that 0.5BTC was sent to my coinbase address and another 0.5 was sent to one more address which I didn't recognize. As multibit was still showing the correct balance I guessed that it might be one of the multibit address and I actually found it there. So, multibit actually took coins from my paper wallet address and put it in an address that was generated by multibit, which I did not expect. I was planning to use multibit only as a temporary solution and was planning to uninstall it after I transfer my BTC to coinbase. If I was not careful then I would have uninstalled multibit and deleted the wallet. Now I learnt how multibit works now, and I am not sure why it does like that. But a lesson learnt.

  • thanks for the heads up. this is something everyone needs to know about. – Patoshi パトシ Jan 13 '14 at 17:44
1

This depends entirely on the program used to send the bitcoins. It may use pregenerated change addresses specified on the paper wallet, or it may send it back to an address of the paper wallet itself, or generate a new address. If the latter, you have to be sure to also print out the private key of this new change address.

In the most likely case, the software will create a new change address or use a change address not associated with the paper wallet, and you will have to print out a new paper wallet for the change address.

  • but how would u even know if there was a change address when using a paper wallet that was printed out from bitaddress.org? – Patoshi パトシ Jan 14 '14 at 19:16
  • Unless the software is specifically written otherwise (and the paper wallet be generated specifically for that software), it wouldn't contain your change address. When making a transaction, you will need to print out a new paper wallet for your change address. – rdb Jan 14 '14 at 19:20
  • so what your saying is when spending from a paper wallet and you don't have a paper change address preprinted out your change will go to some random address in the application? which application does this? – Patoshi パトシ Jan 14 '14 at 22:06
  • All I'm saying is that the behaviour depends on the client. Regardless of which client, you'll have to look at which address it's changing to and probably export and print the change address as another paper wallet, or use an address that you have already printed out as your change address. – rdb Jan 14 '14 at 22:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.