I understand that when using a paper wallet to spend bitcoin, it is impossible to simply spend a portion and have the remainder stay where it is. The entire contents are extracted, the amount you wish to spend is spent as you wish and the remainder goes into a “change address” OR “change wallet”? Do I have this right?
If so, I assume this means that you will have to sweep that balance (your “change” in effect) into a new wallet with a new private key? That being the case (and here’s my ACTUAL question — thank you for your indulgence), what happens to your public key? Does it stay the same while the private key changes? Do you have to generate a new public key? Is one created for you?
Thank you for your time. Your website has been incredibly helpful in enabling me to understand Bitcoin better.
first of all you are correct, you can’t spend just a portion of your paper wallet. When you want to use a paper wallet you will in fact import the private key into a digital wallet. What that wallet will do with the change depends on the wallet. Some will send it to a new “change” address that you can then use with that wallet. Others will send it back to the original address.
It’s important to check with the wallet provider what they do with change. In Blockchain.info for example you can specify where you want the change to go. MyCelium I believe will send the change back to the paper address.
Here is some more reading about this matter:
http://bitzuma.com/posts/five-ways-to-lose-money-with-bitcoin-change-addresses/ (take a look at “spending from a paper wallet” at the lower part of the post).
Bottom line – check with the wallet you’re using how they handle it.
Thanks for the prompt response. It is much appreciated. However, it didn’t quite answer my actual question (which to be fair, I kind of buried at the end :D) which was: “what happens to your public key?”
Well that depends on the wallet. A public key is derived from a private key. Depending on the wallet it will either:
- Send it back to the original address and the public key stays the same
- Send it to a new change address and then the public key is different
Just to make sure we are on the right page – a private key generates a public key which then allows you to generate a Bitcoin address. To quote a detailed answer from Reddit:
Private keys are 256bit random numbers. Private keys are never made public. They remain secret. Public keys are derived from private keys and are mathematically related to them. You can’t derive a private key from a public key. Each private key has just one public key. They are called a key pair. The public key is revealed to the world and the world uses it to verify transaction signatures generated by your secret private key without you having to expose said private key to the world. Bitcoin public keys are also 256bits. Hash functions – Hash functions take arbitrary sized data and output numbers of a fixed size. They are one way functions. You can’t take the output of a hash function and determine the input. Hash functions are used to create “fingerprints” of data. If even a single bit in the data changes the output of the hash function will change. Bitcoin addresses are public keys run through hash functions. The hash functions used result in 160bit addresses. Because 256bits is greater than 160bits all addresses can be unlocked by more than one public/private key pair. That’s where the 296 comes from. But this refers to key pairs behind bitcoin addresses not private keys behind public keys. An address is not the same as a public key. It is the public key run through hash functions. There is such a thing as a deterministic wallet and that uses a single random number to generate a whole tree of addresses. We don’t call that random number a private key though. We call it a seed. Each address there has its own private key and they are indistinguishable from randomly generated keys to anyone who doesn’t have the seed.
Wonderful and thanks. You clarified that beautifully and I am very grateful.
That leads me to my next question: is it possible for me to have two wallets (one on blockchain.info or Mycelium for instance) and a paper-only wallet? More specifically, can I use the hot wallet and periodically send some of the balance to the paper wallet (in effect, treating the paper wallet as a savings account?