What is the difference between backup of the wallet (as a QR Code) and export private key (which is also a QR code)
Short answer:The BCCAPI (which BitcoinSpinner is built on top of) allows you to create deterministic wallets using a strong seed. The stuff you backup/restore is the 256-bit seed that all keys are generated from. When you export a key you export an actual key generated from the seed.
The longer answer:The BCCAPI server backend needs to know in advance which public keys to track in the block chain (this is a limitation imposed by the way the server backend is implemented as it is built on top of BitcoinJ), so to do this it needs to know which set of keys are related to a given wallet.
To do that the BCCAPI manages two types of keys:
- Wallet keys - Each wallet has one, and it allows you to add Bitcoin public keys to your wallet. This key is used when "logging in" to the BCCAPI server and makes sure that you are representing the wallet that you want to add keys to. This could have been done with a traditional username/password login, but there is really no need as we are already dealing with much stronger keys and have a place to store them.
- Bitcoin keys - These are the traditional keys that you send/receive bitcoins with.
A wallet built on top of the BCCAPI has one 256-bit seed, and from that 1 wallet key is generated and one or more Bitcoin keys.
BitcoinSpinner currently only allows you to manage one Bitcoin key. This was a decision I made to make the app faster and simpler to use and manage.
So this means that BitcoinSpinner has one wallet key and one Bitcoin key. When you do a backup you backup the seed that allows you to generate those two keys again. When you do an export you only export the Bitcoin key.
I think I found a convenient way of backing up my wallet.
So after copying to clipboard, I launch my Pastee Droid app and paste the contents of the clipboard there. I then set it to one hour expiration (TTL = 1 hour), and give it a password to encrypt it. After it creates the secure paste on Pastee.org, I share the URL by sending a text message (to my Google Voice number, which I will archive).
And that's it. I now have a link for a URL that holds password-protected copy of my BitcoinSpinner wallet. I've added that to my KeePass from my desktop. I suppose if I were a user of Lastpass that pasting the data there would work just fine as well.
Here's the Pastee Droid App:
-
https://play.google.com/store/apps/details?id=byrne.utilities.pasteedroidClever. But have in mind that the password has to be really strong (ideally as strong as a 256 bit random string), and you have to remember it.
The first prototype of BitcoinSpinner actually based the seed on a password and salt. But I found it cumbersome and less secure, as people are inclined to enter short week passwords.
I do my backup like this:
1. Take a picture of the backup-QR code with my camera
2. Print it out on paper from my computer
3. Put the paper in an envelope
Having the backup QR-code on paper allows me to quickly switch between a savings and spending wallet.