Bitcoin Forum

Bitcoin => Bitcoin Discussion => Topic started by: Anonymous on February 04, 2011, 07:02:44 PM



Title: Print out your bitcoins?
Post by: Anonymous on February 04, 2011, 07:02:44 PM
Is there any way you could print out the code that makes up your Bitcoins and store them on physical paper?


Title: Re: Print out your bitcoins?
Post by: markm on February 04, 2011, 07:14:29 PM
Many.

For example you could use "heads" to represent zeroes and "tails" to represent ones, use a bunch of coins to thus represent the bits of your wallet, photograph the resulting arrays of coins, and print out the photos on your laser-printer.

Or you could even use a representation that some machines might find a little easier to read(*) than the above suggestion.

-MarkM- (Google "optical character recognition" maybe?)

(*) or even to write... ;)


Title: Re: Print out your bitcoins?
Post by: Anonymous on February 04, 2011, 07:34:07 PM
Well, let's see how far I can go based on the information you have given me. Thanks.


Title: Re: Print out your bitcoins?
Post by: BitterTea on February 04, 2011, 07:39:22 PM
I believe that the only information you need in order to claim Bitcoin is the private key associated with the address to which those Bitcoin were last sent.


Title: Re: Print out your bitcoins?
Post by: Anonymous on February 04, 2011, 08:03:46 PM
I'll give 1 BTC to the individual that shows me how to extract these private keys.


Title: Re: Print out your bitcoins?
Post by: casascius on February 04, 2011, 08:25:49 PM
I'll give 1 BTC to the individual that shows me how to extract these private keys.

Do you mean this as a way to convey or preserve bitcoins completely in non-electronic form?

Since the private keys of Bitcoins are just short strings of numbers, they could easily be printed on a single page.  Is that all you're looking for?

Obviously, anyone who can read the numbers can spend the coins, because ability to spend coins is equivalent to knowledge of the numbers comprising the key, so they certainly can't be displayed anywhere.


Title: Re: Print out your bitcoins?
Post by: davout on February 04, 2011, 08:36:37 PM
I'll give 1 BTC to the individual that shows me how to extract these private keys.
Here you go :)
https://github.com/gavinandresen/bitcointools
1Fw6r8ooPKTEPuoKMQhUuFFB1PP43ktLcL


Title: Re: Print out your bitcoins?
Post by: carp on February 04, 2011, 08:40:19 PM
I'll give 1 BTC to the individual that shows me how to extract these private keys.

Do you mean this as a way to convey or preserve bitcoins completely in non-electronic form?

Since the private keys of Bitcoins are just short strings of numbers, they could easily be printed on a single page.  Is that all you're looking for?

Obviously, anyone who can read the numbers can spend the coins, because ability to spend coins is equivalent to knowledge of the numbers comprising the key, so they certainly can't be displayed anywhere.

Not to nitpick, but, how useful is the private key without the public one? I mean, I can give you a password to an account on a website if you like, but, if I don't tell you the username or site, how useful is it?

On the other side, these numbers are a bitch to type... but I think those "3d bar codes" that are all the rage with smart phones would work. Maybe not enough to backup a whole wallet. This would be a good use for a tool that could export/import an individual account from a wallet into a portable form. There was some discussion of that as a potential feature of the client recently.



Title: Re: Print out your bitcoins?
Post by: theymos on February 04, 2011, 09:43:39 PM
Not to nitpick, but, how useful is the private key without the public one?

ECDSA public keys are derived from the private keys using a formula. So including the public key is redundant.


Title: Re: Print out your bitcoins?
Post by: markm on February 04, 2011, 11:08:46 PM
Just in case the target page of the link davout provided
was at all confusing or inconcise, one might zero in on the
readme portion of it, to find:

Examples:

Print out  wallet keys and transactions:
  dbdump.py --wallet --wallet-tx

-MarkM- (Of course I don't actually know if that refers to private keys or only public keys. One can hope, though.)



Title: Re: Print out your bitcoins?
Post by: gene on February 05, 2011, 09:41:44 AM
Is there any way you could print out the code that makes up your Bitcoins and store them on physical paper?

This is possible, but I would go one step further and encrypt the wallet first. Here is how:

Code:
gpg --compress-algo BZIP2 --bzip2-compress-level 9 --encrypt -a -o text_crypt_wallet.txt wallet.dat

This will compress and then encrypt your wallet using your private GPG key. The -a flag tells gpg to give you ascii-armored (printable) output. The -o flag tells gpg to name the output file "text_crypt_wallet.txt". You can then print this out. The file will look something like this:

Code:
-----BEGIN PGP MESSAGE-----

gz9DKDc3Qb+idbP5gOn0TIZ5Sg74zP7ds4eoezpG5HPSvt3RXARQcvSeUrW8htFD

<lots of stuff>

aTEOO/lqWw/BzwZN
=FdZO
-----END PGP MESSAGE-----

I recommend first moving bitcoins to a fresh wallet with a single address via a single transaction, so as to have as small a file as possible. Otherwise, you may end up with many pages of output.

Make sure the font is OCR-readable (http://en.wikipedia.org/wiki/Optical_character_recognition) and large enough to avoid scanning and transcription errors. Also, make sure to keep track of page numbers.

If you don't have a GPG key, you can encrypt it via just a symmetric cipher and password:

Code:
gpg --compress-algo BZIP2 --bzip2-compress-level 9 --symmetric -a -o text_crypt_wallet.txt wallet.dat

Just don't forget your password.

By default, GPG uses CAST5 as the symmetric cipher. Note that you can always specify which symmetric cipher you want to use (all of gpg's ciphers are considered strong) with one of these flags:

Code:
--cipher-algo 3DES
--cipher-algo AES128
--cipher-algo AES192
--cipher-algo AES256
--cipher-algo BLOWFISH
--cipher-algo CAMELLIA
--cipher-algo TWOFISH

To recover the wallet, you can scan the document and OCR it to a file. Then decrypt it:

Code:
gpg --decrypt -o wallet.dat scanned_text_file.txt

If you are running linux, you probably already have gnupg. If you have windows, you can get gnupg here: http://www.gpg4win.org/


Title: Re: Print out your bitcoins?
Post by: gene on February 05, 2011, 10:28:00 AM
I'll give 1 BTC to the individual that shows me how to extract these private keys.

I'll point out that the method I outlined above does not rely on any unsupported methods of extracting and storing wallet data. My method preserves the wallet and does not require you to manipulate bitcoin data (potentially risky if you don't know exactly what you are doing) to get the wallet into print-ready form. In addition, my method compresses and protects the wallet with strong encryption.


Title: Re: Print out your bitcoins?
Post by: markm on February 05, 2011, 10:43:28 AM
See how complicated a simple sequence of heads and tails can get? :)

Quote: "I'll give 1 BTC to the individual that shows me how to extract these private keys."

Well it certainly wasn't me, all I did was zoom in on the part of davout's reference that indicated which command one would most want to download from that page. One would still have to peruse the page all over again trying to figure out where exactly that command is hidden.

-MarkM-



Title: Re: Print out your bitcoins?
Post by: TiagoTiago on February 20, 2011, 03:10:03 PM
You could convert the bits that compose your wallet file into a bigass QR code for example.