Proposal to imprint bitcoin unto paper currency
I have the following idea to put bitcoin unto paper currency: you take the serial number of any government issued paper bill and create a multisig wallet with it. You then send funds to this address. Mutilate and mark the bill with the amount of bitcoins.
The bitcoins deposited in the multisig P2SH address cannot be redeemed because the multisig will be composed by several keys owned by diverse people and organizations who wouldn't care less to actually come together to sign the P2SH. This means that whoever is holding the paper bill can be assured he is holding unique bitcoins that are not spendable by anyone else.
It is important that the bill to be marked is very hard to counterfeit and that it holds a unique serial number. That is why government issued paper bills are perfect. Of course, this idea can be applied to anything that fulfills these two characteristics (unique serial number and hard to counterfeit) including issuing your own paper bills or coins with serial numbers.
It would be good if we can come up with a standard set of public keys, to make the generation and verification of multisig address conforming predictable, otherwise the one bitcoining the bills will have to publish his own set.
What is the purpose of this? It allows anyone to actually have bitcoins in their possession without access to any computer device or internet connection. Bills only have to be verified once by the possessor of the bill by consulting the blockhchain and thats it. This blockchain doesn't have to be up to date since it is virtually impossible for the bitcoins to be extracted from the multisig address so there will be no future transactions showing any redeeming of these bitcoins.
Step by step way to create the multisig address for a specific bill.1. Determine the nationality and denomination of a bill.
2. Add the serial number imprinted on the bill
3. Create a brain wallet with this data as the seed using a standard method, separating with a space the nationality, denomination and serial number
4. Select 4 or more regular (starting with 1) address from known addresses.
5. Create a multisig P2SH address combining all the bitcoin address starting with the one generated from the serial number of the bill.
6. Send funds to this address. I suggest using the denomination of the bill as guide. 0.0005 BTC for $5.00 USD, 0.001 BTC for $10 USD, etc
7. Write on the bill the nationality and denomination beside the serial number so the original address can be determined, and the amount of bitcoins it is holding.
8. Mutilate the bill so that it becomes easily distinguishable from another non bitcoined bill to avoid losing it by mistake. I suggest a standard double fold in half then a vertical cut on the third crease.
Example:1. US. 5 dollar bill.
2. US 5 IF84621533C
3. Generate Brain Wallet
Image:
http://fantasticocomic.com/bc/bitcoinedbill-1.png4. Generate P2SH Address. We will use the following arbitrarily chosen public keys which I took from transactions I found on the blockchain:
Linux Mint Donations:
04abc9f887ac2273df9c8db1d68cf520fd343bb567e2da68d057ae5d5b0e93d6b413c56762c0db15b582aeaeb4455c814f67b582da117b177b776b353145452e5d
Free Talk Live:
041ab4dcddd2c7a7b9928ff278661040d242080b8adf85870f5af01a7a3c77fd74af031e365cc1d9b8d5dc102e87f6dd183f3884b23cd1dafc5ea9c86db9ba42e9
Bitcoinity:
048ac1b0a436bec71eeab01becd493be697f78a72131f15501720d1791ad90521647fe8f1d539d21569ff7f6c15c890731b6b3e247fa2f2255171c2f4342e72f8d
BitcoinTalk Forums:
04271bb147a592a7cbb0323ec42ff1d056f125c431383cc4480b4d2f511c06802beb475ade7c29eb2572a4fc73895a806c5c0d2efc84f2bead24399980f41e2889
Archive.org
043b640c644e5cda2f2e4be20bca4535882fd5053e7a72c18736d179049aaa27c33febcb12ae597f80c29b4ce9bff32ef5654351ac310b514b66064755d8e24af2
SatoshiDice 0.78%
04c78beee103e8392bc3aa13ee779b8084fa9fd3b54cbace8520fa427a19f5aebfe8aba1cca8a7c1ec3f858ba8fb050c2e603cf932782bc78ec4eac258c8db1e13
5. We also add the public key generated by the brain wallet with the USD 5 and serial number passphrase
045119754ff7cd6bcf1116a5b74c0af7a2d25fa9b631d735e1b232646b2f24ffa4004f870d97c01b8dbb27393473c3124af669aa505baf73da0a7682e216c06d81
Image:
http://fantasticocomic.com/bc/bitcoinedbill-2.png6. We send 0.0005 BTC funds to the Multisig addrress ( 3FScohu2zS57323xt58LBc3if9r2juLCTw ) using any wallet software. Add 0.00001 transaction fee.
7. We write on the bill the amount sent and mutilate the bill.
8. Publish the redeem script so others can verify it:
5741045119754ff7cd6bcf1116a5b74c0af7a2d25fa9b631d735e1b232646b2f24ffa4004f870d97c01b8dbb27393473c3124af669aa505baf73da0a7682e216c06d814104abc9f887ac2273df9c8db1d68cf520fd343bb567e2da68d057ae5d5b0e93d6b413c56762c0db15b582aeaeb4455c814f67b582da117b177b776b353145452e5d41041ab4dcddd2c7a7b9928ff278661040d242080b8adf85870f5af01a7a3c77fd74af031e365cc1d9b8d5dc102e87f6dd183f3884b23cd1dafc5ea9c86db9ba42e941048ac1b0a436bec71eeab01becd493be697f78a72131f15501720d1791ad90521647fe8f1d539d21569ff7f6c15c890731b6b3e247fa2f2255171c2f4342e72f8d4104271bb147a592a7cbb0323ec42ff1d056f125c431383cc4480b4d2f511c06802beb475ade7c29eb2572a4fc73895a806c5c0d2efc84f2bead24399980f41e288941043b640c644e5cda2f2e4be20bca4535882fd5053e7a72c18736d179049aaa27c33febcb12ae597f80c29b4ce9bff32ef5654351ac310b514b66064755d8e24af24104c78beee103e8392bc3aa13ee779b8084fa9fd3b54cbace8520fa427a19f5aebfe8aba1cca8a7c1ec3f858ba8fb050c2e603cf932782bc78ec4eac258c8db1e1357ae
Again this step could be avoided if we can come up with a standard set of public keys to be used universally.
Alternately print the redeem script base64 encoded with a QR code on the other side of the bill. I used the handy conversion tool at
http://brainwallet.org/#converter. I also added for convenience sake QR code of P2SH address and info. I used the Bitcoin QR Code generator at
http://bitcoinqrcode.org/Another example using Mexican 20 peso bill:1. Generate Brain wallet with the following pass phrase: MEX 20 T6944908
Image:
http://fantasticocomic.com/bc/bitcoinedbill-3.png2. Generate P2SH Address, copy and paste the public key from the brain wallet and add the other 6 public keys. We will use the same 6 from the previous bill.
Image:
http://fantasticocomic.com/bc/bitcoinedbill-4.png3. Send .0002 BTC to the P2SH address ( 3JgyBtcQ7Sp9R17jSRdhi9TCWqbz2vQUed ) Be sure to add 0.0001 transaction fee.
4. Write on bill the amount of bitcoins it holds and how the passphrase was derived:
5. Publish redeem script so others can verify it:
5741049ccb1f411b983644512b9ba63f30a7e74f20d035571fb18b1c03f988e1342ef2742dad15ef44a984eeb04dcd0e16a9031f32f5eba278aa65bef3ec4e5e347bb54104abc9f887ac2273df9c8db1d68cf520fd343bb567e2da68d057ae5d5b0e93d6b413c56762c0db15b582aeaeb4455c814f67b582da117b177b776b353145452e5d41041ab4dcddd2c7a7b9928ff278661040d242080b8adf85870f5af01a7a3c77fd74af031e365cc1d9b8d5dc102e87f6dd183f3884b23cd1dafc5ea9c86db9ba42e941048ac1b0a436bec71eeab01becd493be697f78a72131f15501720d1791ad90521647fe8f1d539d21569ff7f6c15c890731b6b3e247fa2f2255171c2f4342e72f8d4104271bb147a592a7cbb0323ec42ff1d056f125c431383cc4480b4d2f511c06802beb475ade7c29eb2572a4fc73895a806c5c0d2efc84f2bead24399980f41e288941043b640c644e5cda2f2e4be20bca4535882fd5053e7a72c18736d179049aaa27c33febcb12ae597f80c29b4ce9bff32ef5654351ac310b514b66064755d8e24af24104c78beee103e8392bc3aa13ee779b8084fa9fd3b54cbace8520fa427a19f5aebfe8aba1cca8a7c1ec3f858ba8fb050c2e603cf932782bc78ec4eac258c8db1e1357ae
6. Alternately print redeem script base64 encoded with additional info on the bill.
Notice how I put the writted info on the bottom unlike the 5 USD bill. THe reason for this is for the holder of the bill to be able to more easily verify that the same serial number is being used by slightly bending the bill to view the pertinent info from both sides and compare.
I used ordinary labels (2"x4") and stuck it on the bill. Ideally would be to print directly on the bill. Unfortunately the background image creates too much noise for QR codes to be readable. The important issue is that all the data can be theoretically printed on an area of an ordinary currency bill. Best would be if we could set a standard stating the list of well known public keys and use for all bills so the redeem script does not have to be printed on each bill.
How to determine if the bill has a valid multisig address with the funds:
1. First goto
https://coinb.in/multisig/#verify and paste the redeem script (decode base64 if it was scanned from the QR code. It should show you the multisig address beginning with 3 and a list of public keys requiered for releasing the transaction. Also check that all of them are required. Note that if we use a standard set of public keys, the redeem script can be regenerated using the passphrase composed with the serial number and it would not be be necessary to print it on each bill.
2. Next go to a block explorer (eg blockchain.info) and see that the multisig address contains the purported bitcoins.
I believe this system could be very useful in countries that suffer from severe inflation (Venezuela, Argentina, etc). Citizens there can take their own currency and start to imprint bitcoins on them to prevent them from getting further devalued and use these bills instead of non bitcoined bills for day to day transactions. It can also serve for tips and small gifts and just regular small transactions anywhere. It might also help spread the use of bitcoin, particularly in less developed countries.
A mobile application could be develop that scans a bill, determines the type of currency and reads the serial number. Then it lists the public keys of the multisig addresses and the amount of bitcoin it has in store. The user could maintain a white list of public keys he can trust and if the multisig address contains any of these public keys he can be more reassured the bitcoins will not be withdrawn. This app could try to store the whole blockchain in order to be able to check a bill without having to be connected to the internet.
A webpage using javascript could also be developed where the user types in the currency type, denomination and serial number, and it returns the multisig addresses with its corresponding public key and the amount of bitcoins it has. It can also do the reverse: generate a multisig address, including QR codes, suggesting different well known public keys he can choose from so the user knows where to send bitcoins to fund the desired bill.
This is of course an open idea and I hope suggestions come up if it is worthwhile.
(Note about mutilating currency: the idea is to avoid the bills getting confused with normal currency. I am aware it is technically illegal in most if not all countries but then again its your own money and there are freedom of speech issues to consider. In brief I am not going to get into the legality of mutilating or defacing currency.)