Title: PROTON-like payments / Smart card for Bitcoins Post by: bfever on January 20, 2011, 10:28:50 PM Probably most of you never heard of a "PROTON" card, but it is an electronic form of cash introduced in Belgium with moderate success.
It is designed for small payments (1 to 50 Euro), for instance in grocery shops. It is in fact an additional function on a normal debet bank card and from a user's perspective very easy to use:
No PIN is necessary. For the shops it is more interesting then normal payments as PROTON is cheaper (less commission and no online costs) for them, so they can accept small amounts (less then 10 Euro). See http://www.atosworldline.be/index/en_US/5118014/5126207/Proton.htm (http://www.atosworldline.be/index/en_US/5118014/5126207/Proton.htm) for more info. I've been thinking how this could be translated to the Bitcoin environment. The most important difference in my opinion with the actual implementation of Bitcoin is the "client": if I want to do a payment, I need to carry with me some form of the client (on a laptop, smartphone or similar device) with my wallet.dat and it needs an internet connection to post the transaction to the Bitcoin network. Probably in a few years, many people will have smartphones and mobile Internet, but then there is still the security risk of carrying your wallet.dat on such a device with you. So the question is: can we eliminate the need for a "smart phone client" with a wallet.dat ? What if we use the following set-up (in short):
In long: AT HOME:
AT THE STORE: I want to pay X BTC: I insert the card into a card reader, I type the amount I want to pay and confirm. The Bitcoin client on the machine should now make the transaction:
The whole can be secured a bit more by using a PIN needed when signing (and after 3 wrong PINs, the card no longer accepts to sign anything, it has to be reset by sending the private/public key pair again, the same one or a different one). I can see 2 problems remaining:
Anyways, if the 2 problems remain so that this scenario is not good for a payment in a store, it is still a valid solution to reduce (even eliminate ?) the security risk of stolen wallets (as once the private key is only on the smart card, it cannot be copied/retrieved in any way). Any thoughts ? And sorry for the long post. Title: Re: PROTON-like payments / Smart card for Bitcoins Post by: ribuck on January 20, 2011, 10:40:37 PM The "change" problem is easily solved by making sure that none is needed. The card can be pre-loaded with keys for coins that can make up any amount without the need for change.
For example, with the following hundred keys you can make many payments (worst case is 10, but probably many more) of any amount from 1 to 99 BTC before you need to recharge your card: 25 x 1 BTC, 25 x 3 BTC, 25 x 10 BTC, 25 x 30 BTC Title: Re: PROTON-like payments / Smart card for Bitcoins Post by: Local on January 20, 2011, 11:40:41 PM Change can also be solved by not using the bitcoin network directly. There could be a site called BitcoinPOS where you send coins to fill your card and then the merchant gets their coins from the site. I think this is roughly the idea of Bruce's "Account Hubs". You don't have to trust all merchants this way either since you could have recourse thorough BitcoinPOS if you were charged incorrectly.
Title: Re: PROTON-like payments / Smart card for Bitcoins Post by: Hal on January 20, 2011, 11:53:11 PM I think it will work to give change to the paying Bitcoin address. The client avoids this for privacy reasons - it tries to hide which output is payment and which is change. But it should work.
Oh, wait, you want to feed the change back into the card, don't you? That's trickier, because Bitcoin payments must reference the hash of the source transaction. What you need to do is store on the card the original source transaction hash (that funded the address on the card). Then when you make a payment, the terminal uses this for the txin, and creates a tx that gives change back to your address. It computes the hash of this new transaction and writes it back to the card. This will then be used as the txin for the next payment. Does anyone know a smart card that supports ECDSA signatures? Title: Re: PROTON-like payments / Smart card for Bitcoins Post by: bitcoin2 on January 21, 2011, 01:18:35 AM
There are cards with display and press button where the amount could be confirmed direct on the card: http://silicontrust.files.wordpress.com/2010/11/maia-display_custom_items-download_seealso_file.jpeg http://www.incard.com/products.html Title: Re: PROTON-like payments / Smart card for Bitcoins Post by: bfever on January 21, 2011, 08:52:41 PM I think it will work to give change to the paying Bitcoin address. The client avoids this for privacy reasons - it tries to hide which output is payment and which is change. But it should work. Yes, that was my interpretation too, but didn't have a time yet to look at the source code.Oh, wait, you want to feed the change back into the card, don't you? That's trickier, because Bitcoin payments must reference the hash of the source transaction. Yes, payments need the hash, but these are available in the blockchain: you can easily check this with the Blockexplorer: just enter your Bitcoin address (which would also be the Bitcoin address on the card) and you can see the balance and all transactions involved.My idea is that you ONLY need to store the private/public key combination of ONE bitcoin address (all other data is in the block chain !), so that the merchant can easily query the card for your Bitcoin address, and the card can use the private key to sign the transaction created by the merchant. Title: Re: PROTON-like payments / Smart card for Bitcoins Post by: Hal on January 21, 2011, 09:13:52 PM Oh I see, the terminal would just look back at the most recent payment to this address, which would usually be the "change" from the previous payment, and use that as the source transaction. Ye, that should work I think.
Title: Re: PROTON-like payments / Smart card for Bitcoins Post by: jtimon on March 13, 2011, 11:59:34 PM What happen with double-spendings?
Will the payer wait an hour for the transaction to be verified? |