Pages:
Author

Topic: Bitcoin smartcard Point of Sale terminal - page 6. (Read 26864 times)

hero member
Activity: 815
Merit: 1000
With a display, at least, there's no reason you couldn't add Bitcoins the same way you spend them.  Even multi-sig backups could probably be made to work without a reader as well.

1. You load simply by sending BTC to the address of the card - you don't need a smartcard programmer to load it.

2. The card receives a transaction request and if you see the right checksum returned from the card, you give your pin.

3. Provided the pin, the card now signs the earlier transaction with a unreadable private key on the card and sends this signed message to the terminal.

4. The terminal publishes the signed message to the network.

ANYONE see any holes in this?

Yeah seen it; already added my proposal with checksums instead of LCD screens (not that those aren't cool! I had no idea that could be done) Cheesy

Anyway we can create a complete BitCoin economy system here:
1. Bitcoin client is your bank and online payment device.
2. Smart card is your wallet and credit card.
3. Simple terminals accept payments.

That's it! And its physically impossible for a merchant to hack your card.

Lets do a mailing list or facebook group with people who support this and have programming skills.

I'm busy now, but in the summer I can program for this project.

Since ?Cascious? has done this sort of thing before he should probably be the lead dev and we just help where we can and with promotion.
legendary
Activity: 1896
Merit: 1353
full member
Activity: 168
Merit: 100
With a display, at least, there's no reason you couldn't add Bitcoins the same way you spend them.  Even multi-sig backups could probably be made to work without a reader as well.

I don't really get it. If you don't have a smart card interface to your computer, how do you load any coins onto them? By going to some centralized bank? Certainly the grocery store isn't going to offer deposit services for bitcoin cards. If you do have a card interface for your computer, you could set up your pin securely from there and load whatever coins you wanted from your online or offline wallets.

Personally I lean towards the contact smartcards rather than RF.  They are more reliable, and less subject to tampering.  It's less convenient, but not really any less convenient than credit cards currently.

I don't see how a contact based smart card would be any better than an RF card security wise. Neither has a large enough range to allow someone to steal your money remotely, and in both cases you're trusting that the manufacturer of the card reader has made it so that the merchant can't charge more than they said they would without retyping your pin.

AFAIK (from the few RF smartcard readers I've seen, and McDonald's is about the only place I've seen them) most RF card readers don't even require even so much as a pin input, which would be a disadvantage vs contact cards, but the card itself could require a pin to mitigate that problem. On the other hand, requiring a pin would be a disadvantage for small token purchases, like the original usage of smart cards as subway tickets.

Although the price tag of a smart card is way more affordable than a smart phone, I don't think they're well suited to the technology and usage of BTC.
legendary
Activity: 1330
Merit: 1000
However, in order to make this work, you have to have your own smartcard reader to load it with money, which may or may not be expensive for your average user (or maybe not?).

With a display, at least, there's no reason you couldn't add Bitcoins the same way you spend them.  Even multi-sig backups could probably be made to work without a reader as well.

Quote
The other thing is the sneaky merchant problem. Most smart cards are designed to be used with a tap of your wallet, so a screen would basically defeat the point, and a button on the card would be too easy to accidentally activate (or too easy for a thief to use).

Personally I lean towards the contact smartcards rather than RF.  They are more reliable, and less subject to tampering.  It's less convenient, but not really any less convenient than credit cards currently.
full member
Activity: 168
Merit: 100
Quote
@OP:  Smartcard that's lost = lost money = non starter.
This depends entirely on design - I know my pin code, why wouldn't I just know my private key too?

With my BTC smartcard/wallet and my BTC client I am my own bank and card provider.


I can help develop stuff after the 30. of June and I'm an educated programmer.
I will do it for free, but with a small payment I could do it full time.

I don't see this as something that would take long to create a development kit for.

I can see really two problems with the smart card proposal.

With a smartphone, you can have your home desktop computer act as a server for your phone's app and then it's easy to limit the liability of how much money you can lose if someone steals your phone.

With a smartcard you could do basically the same thing, store the private/public keypairs for some pre-made accounts that you want to spend from along with the reference txOuts, and some software for negotiating/signing tx.

However, in order to make this work, you have to have your own smartcard reader to load it with money, which may or may not be expensive for your average user (or maybe not?).

The other thing is the sneaky merchant problem. Most smart cards are designed to be used with a tap of your wallet, so a screen would basically defeat the point, and a button on the card would be too easy to accidentally activate (or too easy for a thief to use). The only way to completely circumvent that problem is to have something with basically the capabilities (and independent power source) like a smartphone, where the merchant has no direct control over what is sent. Or else a card with a screen, a pinpad, a cancel button and a "lock price" button, which wouldn't be so easy to use one way or the other and isn't available since most banks can just do a chargeback instead.
hero member
Activity: 815
Merit: 1000
I've done a little research on this, and I think the way to go is to use a smartcard with an integral LCD display and at least one button.  These are on the market already.
Yes, but my checksum solution achieves the same with only normal super cheap smart cards.

What are the price of these display cards, I couldn't find it?

Quote
Smart cards are expensive to produce, so cardholder adoption rates will be disappoint.
Actually normal smartcards cost less than 2$ a piece; buy in bulk and it comes down from even that.

(http://www.smartcardsupply.com/Content/Cards/ISO7816.htm)

An innovator/BTC promoter could send them to everyone in a city as a stunt for the price of a normal small ad campaign.

From there, usage can spread like a wildfire.

POS terminals are rented out to the largest merchants in town as part of the campaign.

Quote
@OP:  Smartcard that's lost = lost money = non starter.
This depends entirely on design - I know my pin code, why wouldn't I just know my private key too?

With my BTC smartcard/wallet and my BTC client I am my own bank and card provider.


I can help develop stuff after the 30. of June and I'm an educated programmer.
I will do it for free, but with a small payment I could do it full time.

I don't see this as something that would take long to create a development kit for.
donator
Activity: 1736
Merit: 1014
Let's talk governance, lipstick, and pigs.


@OP:  Smartcard that's lost = lost money = non starter.

The populous would hate this and ultimately reflect poorly on Bitcoin in public perception.
Not if it has multisig protection. Just activate your backup card. The lost card is worthless.
sr. member
Activity: 252
Merit: 250
Inactive


@OP:  Smartcard that's lost = lost money = non starter.

The populous would hate this and ultimately reflect poorly on Bitcoin in public perception.
legendary
Activity: 1330
Merit: 1000
4. Your current design will attract US regulatory oversight, resulting in need for money transmitter licensing.

Whose design?
newbie
Activity: 46
Merit: 0
1. Smart cards are expensive to produce, so cardholder adoption rates will be disappoint.
2. The "S" curve for Merchant acceptance in the US is nil. Europe is a possibility. 
3. Better solutions are simpler and will leverage existing infrastructure with an eye towards smart phones.
4. Your current design will attract US regulatory oversight, resulting in need for money transmitter licensing.
legendary
Activity: 1330
Merit: 1000
I've done a little research on this, and I think the way to go is to use a smartcard with an integral LCD display and at least one button.  These are on the market already.



http://www.nidsecurity.com/

Basically, the POS terminal just sends the balance due to your card, which displays it for you.  You then press the button to verify, and the card creates the transaction and signs it.  No need to trust anything.  The card can keep track of your balance, and you can verify it via some other trusted channel just like you do with debit cards now.
hero member
Activity: 815
Merit: 1000
How are things going with this project?

I think its instrumental to the widespread success of BitCoin and its why I joined this forum.


I think I "solved" the "no-display" problem:
1. POS displays debit amount 1$
2. POS sends this amount to the smartcard.
3. Smartcard multiplies this amount with a number only you now, say "5".
4. The result is sent back to the terminal.
5. Terminal displays "checksum" "5" - only you can know whether this number is correct or not. The number may even increment once each time making logging results impossible, you just have to remember slightly correctly to check the checksum.
6. You punch the pin code. If the terminal attempts to post a NEW amount before a pin is given the card locks itself for 10 minutes.
7. Card sends signed transaction to the terminal.
8. Merchant is happy. If there is double-spend, unlikely as it is, he has seen you in person and can call the cops.

I imagine that both card and POS software should be public with checksums for the trusted versions.

New smartcards could be made by anyone with a smartcard programmer so though you would trust that party you would not be bound at all.
It would be as ubiquitous as BTC itself.

Next, the card would be sent in the mail along with the address, private key and pins so that you could back up your card or refill it on your own.
Naturally the card should not be your main storage medium despite all the safety.

Such terminals would cost very little and the cards would be affordable even in third world countries - UNLIKE android wallets!

Merchants would simply link their terminal to their mtgox address and post an immediate and large sell order. At the end of the day fiat currency could be withdrawn from mtgox.

Casascius coins are very cool, but I believe the market has found smartcards to be the most easy to use and we should act on that.
full member
Activity: 129
Merit: 119
I think a better idea here is:

You have one CARD keypair.
And one ACCOUNT keypair.

The ACCOUNT keypair is not available on the card, only on computer, and the CARD keypair is available on BOTH card and computer, BUT the private portion is saved in a way that does not allow it to be extracted (only used).

When you do a purchase, you insert the card into the POS terminal, and the POS terminal searches for some of your coins (The card could also save some transactions for faster search), uses them as sender, sends the coins you wants to purchase for to merchant and receives change.

Since the private key is "locked" into the card (so it can only be used, not copied), any crook merchant cannot copy the private key and use it later when your'e not around.

A crook merchant COULD debit your card more than agreed purchase amount like debiting 100$ but showing 1$ on display, but thats true for cash too.

If you give a 50 $ bill to a merchant for a 30 $ item, he could simply refuse to give a 20 $ bill back. Its the same problem. You need to trust the people you are doing affairs with. And in case its a crook merchant, you simply police report him and the police does it's work.

Thats why you should never carry more on your card than you are prepared to lose. So you can carry lets say 3 cards with you, one card with 10BTC, one with 50BTC and one with 100BTC. This will be like bills in a wallet. You give the smallest possible bill to merchant, in case he is a crook.



But the big bonus is that you can PIN protect the card, AND if you lose your card, you can "ban" the card in this way:
Simply move ALL coins currently saved under CARD key to ACCOUNT key. Now the card is empty, so even if someone figures out the pin or physically hack the card, theres no coins on card.
newbie
Activity: 2
Merit: 0
The confirmation issue can probably be overcome.  But there is another issue that cannot be solved with smart-cards.

A smart-card does not have an independent display.  You must trust the POS system that you plug your card into.
The POS can claim that it is debiting $1 from your card, while it is really transferring $100.  You won't notice this until you try to use your card again, which is probably much too late.  There is no way to overcome this issue, except for using a device with its own display (like a smartphone).

This is not an issue for credit cards because the bank can do a charge back.  If this happens to you (and it does happen) you just call up your bank and they give you your money back.  But Bitcoin is different...

Yes and the lack of a display on the smart card nixes any added information value of the effort which is why I suggested 2D Barcoding as a win-win. The retail perks of having more information given to the customer and the retailer is going to offset any concerns of cost to implement.

Plus the interface on the phone would have the option to challenge the bitcoin account holder for validation, meaning the amount paid will be verified, and it can't be stolen and abused by simply physically having the phone.
member
Activity: 102
Merit: 10
discussion cont'd here : https://bitcointalksearch.org/topic/ideas-on-distributed-payment-processing-for-merchants-7872

bitcoin debit card in physical form might not be best idea.
newbie
Activity: 23
Merit: 0
The confirmation issue can probably be overcome.  But there is another issue that cannot be solved with smart-cards.

A smart-card does not have an independent display.  You must trust the POS system that you plug your card into.
The POS can claim that it is debiting $1 from your card, while it is really transferring $100.  You won't notice this until you try to use your card again, which is probably much too late.  There is no way to overcome this issue, except for using a device with its own display (like a smartphone).

This is not an issue for credit cards because the bank can do a charge back.  If this happens to you (and it does happen) you just call up your bank and they give you your money back.  But Bitcoin is different...
member
Activity: 102
Merit: 10
Good point, casascius. Looks like the implementation of this particular scheme is way to expensive and hard to integrate. If the window for potential doublespend is indeed short, at shouldn't be a problem for 99% of all use cases.

A few things were voiced in this topic, one of them is the use of sites like mybitcoin to arbitrate payments. That kinda makes it centralized, and the whole point of bitcoin is to avoid centralization.
I have a few ideas on the subject, which I'll voice in another topic.
vip
Activity: 1386
Merit: 1140
The Casascius 1oz 10BTC Silver Round (w/ Gold B)
A terminal that can consult with a well-connected instance of bitcoind can validate against a casual double spend

The ten-minute blocks are not a fundamental limitation for point-of-sale. I can imagine a few mining pool operators collaborating to offer a service to merchants where the pool operators are prepared to validate any transaction within a few seconds on the basis that "if any of the pool operators mines a block, that transaction will be in the block because no earlier spend has been seen".

With the mining pools accounting for about half of generating capacity, that ought to provide enough reassurance for point-of-sale transactions.

Yes, great idea, those mining pool operators, after "validating" any such transaction, could also automatically work to fight any block that happens to contain a double spend against their validated transactions as part of their services.
vip
Activity: 1386
Merit: 1140
The Casascius 1oz 10BTC Silver Round (w/ Gold B)
And if you can easily clone things, that means that the merchant will have to wait for confirmations, in order to avoid double-spent coins. It will render the PoS unusable in most cases.

A terminal that can consult with a well-connected instance of bitcoind can validate against a casual double spend, a topic that has been well discussed in the past.  The tl;dr of it was that, even without confirmations, once a transaction has been well broadcast amongst lots of nodes, and no other competing double spends have been received (regardless of confirmation status), it's pretty difficult to reverse a typical retail transaction with less resources than the transaction is probably worth.  And also, knowing that scalability of Bitcoin depends on the formation of bitcoin "banks" like MYBITCOIN, these "banks" when trusted by the merchant may also be able to guarantee availability of funds on their own balance sheets without  waiting for confirmations in the block chain.
member
Activity: 102
Merit: 10
What I don't get is why anyone would make effort to go backwards in the tech tree? Smart cards are just another point of failure and expense when we already carry smart phones?

The problem with using bitcoin in PoS scenarios is the necessity to wait for confirmations. And smart cards are infinitely more tamper proof compared to cell phone apps. One reads about many hardware platforms (like high-end phones, or game consoles) being hacked and made run custom software. In the case of SIM cards, for instance, you might hear a story, that involved SIM cloning, and it was only possible with very low-grade cryptography used, which allowed to be broken after 65536 brute force attempts.

And if you can easily clone things, that means that the merchant will have to wait for confirmations, in order to avoid double-spent coins. It will render the PoS unusable in most cases.
Pages:
Jump to: