As the multisig feature is not yet supported by any bitcoin client (at least not for spending the coins) I was thinking about another way to get a 2-of-3 paper wallet.
edit: You can directly jump to the improved versionThe basic idea is:
- split private key in two files
- use parchive to generate a recovery file
- generate qr codes for the three files
now you only need two of those three QR codes to recover your private key.
I tried this with the following detailed procedure:
Private Key: 5JYTix96fp8JtwWF1Vq3gBaM5p31GyYK94K5ezLdUaF3VBZkJ7G
file testprivkey1
file testprivkey2
M5p31GyYK94K5ezLdUaF3VBZkJ7G
generate PAR recovery file
parchive a -n1 test.par testprivkey1 testprivkey2
you get an index file test.par and a recovery file test.p01. You don't need to keep the index file, it's only used for checksum validation
generate QR codes
cat testprivkey1 | qrencode -o testprivkey1.png
cat testprivkey2 | qrencode -o testprivkey2.png
uuencode test.p01 test.p01 > test.p01.uue
cat test.p01.uue | qrencode -8 -o test.p01.uue.png
print it. make sure you mark which code stands for which file
To decode with only testprivkey1 and test.p01:
zbarimg --raw testprivkey1.png > testprivkey1
zbarimg --raw testp01.uue.png > back_test.p01.uue
cat back_test.p01.uue | uudecode
parchive r testprivkey1 test.p01
now you just need to concatenate the two sides. done.
The only question that remains is: Can I be sure that the private key cannot be recovered from only the recovery file itself? Not with parchive tool itself, but as parchive is not designed to make this impossible (quite the opposite) I would apprechiate educated comments on my proposal
One approach to make sure the recovery file is not sufficient to recover the private key could be to add random data to the files testprivkey1&2.
The amount of random data would be limited by reasonable QR code size. The recovery file should then have the same size as the input files