Author

Topic: PaperCoins (Read 4141 times)

full member
Activity: 182
Merit: 100
February 26, 2012, 12:39:34 PM
#47
Seems like a pretty good idea, I just wish more store accepted bitcoins Sad
sr. member
Activity: 252
Merit: 250
February 13, 2012, 05:47:33 AM
#46
It's better (and cool) but I think it's a little too complicated to use (for both the buyer and the seller). A different paper layout that hides the QR code is much easier to do and offers the same security.
donator
Activity: 1736
Merit: 1014
Let's talk governance, lipstick, and pigs.
February 12, 2012, 11:27:40 AM
#45
I wonder if a better scheme might be to print papercoin QR codes in invisible ink.
You only need a UV light to scan it.
http://www.lifehack.org/articles/lifehack/how-to-make-invisible-ink-for-ink-jet-printers.html
sr. member
Activity: 252
Merit: 250
February 02, 2012, 03:31:17 PM
#44
I was also trying to decide if its worth having it laid out so you can fold the note to cover the private key.

If you get a nice design, please post it. In the mean time, I got my hands on a business card holder that opens on a side, so I can put the bills with the qr code first. When I need one, I only extract haft the bills, enough to see the numbers on them, but not also the QR code. If someone can manage to steal the key in this way, they deserve the coins Smiley
legendary
Activity: 924
Merit: 1004
Firstbits: 1pirata
February 02, 2012, 03:19:15 PM
#43
I'd be happy with improved CSS for bitaddress.org  I started playing around with the paper wallet layout, but couldn't come up with anything I liked more.

I was also trying to decide if its worth having it laid out so you can fold the note to cover the private key.

+1 i would like that too
hero member
Activity: 742
Merit: 500
February 02, 2012, 03:08:42 PM
#42
I'd be happy with improved CSS for bitaddress.org  I started playing around with the paper wallet layout, but couldn't come up with anything I liked more.

I was also trying to decide if its worth having it laid out so you can fold the note to cover the private key.
vip
Activity: 1386
Merit: 1140
The Casascius 1oz 10BTC Silver Round (w/ Gold B)
February 02, 2012, 09:24:48 AM
#41
The idea that someone could use a URL to their own server is a credible concern and not a whole lot can be done to stop it.

EV SSL (https with green bar) would help but surely there's a lot of people who wouldn't know to look or notice.

Idea would still work among known/trusted trading partners and as a proof of concept, but no magic bullet.
legendary
Activity: 1536
Merit: 1000
electronic [r]evolution
February 02, 2012, 07:13:27 AM
#40
Something else I've also been thinking about: wouldn't bitcoin debit cards function in much the same way as a bitcoin bill? Instead of having the private key written onto the paper, it would be electronically stored on the card. The data on the card would be encrypted and the PIN could be the key to decrypt it. The public address would be written on the front of the card, and you could refill the card simply by sending funds to that address. The card would have no expiry date. The card would only be a one time purchase. Are there any projects like this?

edit: I found this but not sure how trustworthy it is.
sr. member
Activity: 252
Merit: 250
February 02, 2012, 06:28:55 AM
#39
Also comitted a proposal for the QR code format: https://github.com/ovidiusoft/bitcoin-scripts/blob/master/PaperCoins/QR-code-format.txt

If includes the URL field proposed by casascius, and a few others. Don't take it as a full proposal, it's basically just a bunch of random ideas, with the only intention of starting a discussion. I'll post some scripts that produce the new QR codes soon.

So, waiting for your comments. As I said, I would love to get the attention of POS/client developers.
sr. member
Activity: 252
Merit: 250
January 31, 2012, 04:50:32 AM
#38
I comitted a new script for Electrum users at https://github.com/ovidiusoft/bitcoin-scripts/tree/master/PaperCoins . It's called papercoins-electrum.sh and can use your existing Electrum wallet to create, fund and make a PDF of your PaperCoins. It can either only generate the tx or also commit it to the network. Creates 2 files: the wallet (you can use it later to get back funds if you didn't use the PaperCoins) and the PDF to print. It can take a random number of arguments (the amounts). Here's a sample run for only 1 PaperCoin:

Code:
$ ./papercoins-electrum.sh 0.0001
Will create 1 PaperCoins, with values of 0.0001 for a total of .0001 BTC.
Electrum wallet balance: 0.0053
Creating new wallet (default values, 1 addresses): PaperCoins-1327998249.wallet
Your seed is 0d9324da5b6a34236a2c4c26dab02563
Please store it safely
1M2ZUxZBNgfKkAAXZszNrJEjocqz4qqA5
1GQ6C4RhFb17ALoULnXqefkmA32RwR6L3c
Funding the PaperCoins.
===[ Transaction to fund PaperCoin #1 (0.0001 BTC, address 1GQ6C4RhFb17ALoULnXqefkmA32RwR6L3c) ]===
01000000067272ba77b911c5380d97928dc71967acbcda238cb6a4203aecacab045d520f44270000008c493046022100c17e8214792ba4f3bcc7a72bcf3fabf09b10cc7d297683ceaf75a3c48e54c276022100a79f233ac362f863dd0354a14f64b94cc5a450838707f70f8fc19949829b3cfa0141040027fa8d5f979fdb398b4fbdf44578cd70c525ada56ed55131f4b792caf237aea4c01fddd30483bb3f2cb578be484fdb687f90da208824040013056abce6038ffffffaaafff0a9574415ef55bca6c9bcb9f02bd4dcdef91de4f7ddad1f69b41d00b2aba95834b0000008b483045022100bd128f33870fb0451699d2d5c329300f7a453da7a61b11830976b667eabaf446022068b616470e882e21c4d45429a6ee604b49b9ce44dfbacc7ee5263f8e3332c0380141040027fa8d5f979fdb398b4fbdf44578cd70c525ada56ed55131f4b792caf237aea4c01f30483bb3f2cb578b1dee484fdb687f90da208824040013056abce6038fffffffff38649b74374d14ea9c7b465bec19ba49980c13b10ab1a6ffd81d9bae1238fa374c0100008b483045022100a4b6e90e6eeb03a9c85de16c6d6fd88b8fdc5a78ac50bca098e948dc43e8a85302206a383dab28416289e0d98f852dbc7e17bcf0796a203b8a6bd64110c27f85e01410405979236764b8b6bf5549f5a5e669f3d8bf651951b2138659a3a948b07edeaf437b89a2e6556dc551a3bca443647740a992deab6eb530101eb99c60a1b3f6b93ffffffffdc1d42b99a2c3b0cf4858a1d4131694efe11ce8c9b0abc33cb9aa1e546ede8f9010008b48aaa30450221008f2020fdac4bfcb36698a0c4475e056a72d72aaf986ade920679d52e350eec1502207ed0585563c66560dc173ddda34982db3421c2827d9c869af340767bbb2f24cf0141040da5b697f47fcf4c006977a7f543a4e054cae560d13f1260a73ee7ba7082d6eb1c6db38a1fa9d48409b2ea29c3786b783c191830e9eb31063395a77058309446ffffffff63c06e18a563e389873c20c142e75522bd265756614a1d196218b2b9219f8b7f270100008a47304402203cc5037eeb7594b8213a7d899ca603f8a855804067dcaeb108dbb53787edeae2022077f7d6e66cfff17d8ca7251185a5e5c4f4530b9ec2a3b0a27430996e5d423b6901410405979236764b8b6bf5549f5a5e669f3d8bf651951b2138659a3a948b07edeaf437b89a2e6556dc551a3bca443647740a992deab6eb530101eb99c60a1b3f6b93ffffffff88ba3187b4720034c54fd1814af40a0c9b09d6b67d4b4acdca93f25fb0788a5d430000008c493046022100ca5cab5770c08ea72a877d382b9e7405e85c5d9c4fce41df8d43a6d2660bee7e022100a16c029696194d5f3e7f3b8270001fbe6c028b4d59603ae15c3b04eb9c391e580141040027fa8d5f979fdb398b4fbdf44578cd70c525ada56ed55131f4b792caf237aea4c01f30483bb3f2cb578b1dee484fdb687f90da208824040013056abce6038fffffffff0210270000000000001976a914a8e7c96df1e0cb905dce42961ef4f03e8d167c7988ac204e0000000000001976a91482953d9d97767b99a78149edc335084b7052c3ac88ac00000000
=========================================================================
Generating the PDF to print your PaperCoins.
LABEL FILE = designs/papercoins-ovidiusoft.glabels

Created: PaperCoins-1327998249.wallet
Created: PaperCoins-1327998249.pdf

At the moment, it requires a patched electrum client (it's in the same dir). Read the README file for more information.

I hope this POC will attract some developers who will want to integrate a PaperCoins feature in their clients Wink
sr. member
Activity: 252
Merit: 250
January 31, 2012, 04:39:29 AM
#37
If the user has an app to scan this, such an app would disregard the URL portion anyway, so I don't think including it is a big deal.  Providing the private key alone would be perfect in a world where everyone already had a suitable app on their phone ready to read this, an app which of course would exist for every phone on the market, including those whose app store owner forbids bitcoin apps on non-jailbroken phones.

I started with the assumption (I might be wrong...) that a store will run a custom POS. I checked out a few projects and services and this seems to be the trend. The problem I was trying to solve was "how to emulate cash transaction using BTC in such a way that it's as fast or even faster".

You're imagining a scenario where a seller is using a dumb QR code reader on a mobile phone by the rotten fruits company Smiley. I am not sure that your scenario can happen in a real store, at least not until Bitcoin will become so popular that everyone, irregardless of their knowledge, will want to accept BTC payments *NOW!*.

Quote
The actual world is not perfect, and such a user would be only "using" the service long enough to initiate a transaction and collect their bitcoins, giving no personal information in the process.  There is a big difference between being a "user" of a service versus a casual unregistered visitor - someone scanning a code would be no more a forced user of said service than me becoming a forced "user" of pastebin when I view something published there.

The user will be using the service long enough to be scammed by the website and/or the buyer. Imagine this scenario:

I am the evil attacker and I know that you don't run a custom POS, you're using online services from the QR codes. I quickly go home, create a custom QR code which points to my server. It looks just like you would expect, just that instead of sweeping the funds to your address, it displays a ok message. I walk out of the store with merchendise, you find out hours later that you don't have the money.

For even extra evilness, my server could actually commit the sweep, just use a different destination address (also mine). Even if you do get your hands on me, I will show you the tx and blame it on you for not pasting the correct address (I also had plenty of time to change my server so that now it's running as expected - I will even invite you to audit it Smiley ). I'm innocent until proven guilty, which you can't do. You'll take the loss and (probably) give up Bitcoin forever. Only such a successful attack is needed to have a lot of people lose trust in the system.

So no, the seller should not trust any service pushed by the user, only data that he can verify on the spot. If this means running a Bitcoin POS app on a real computer instead of using the phone, I think he should (well, if he cares about the money, of course...).

On the other hand, I did some tests with the Goggles app on my Android phone. It's capable of correctly detecting a URL even if the QR code is actually:

Code:
DATA,PRIKEY=12345,URL=https://google.com/12345/,bla,bla,bla

So I think we can support your scenario without too much trouble, if the QR scanner runs a decent app. Alternatively, it's copy-paste time for the seller Smiley. I'll post later some ideas about QR code formats and I'll also include your URL idea. But I do hope you'll change your mind Smiley
vip
Activity: 1386
Merit: 1140
The Casascius 1oz 10BTC Silver Round (w/ Gold B)
January 30, 2012, 08:43:17 PM
#36
i think using a sig instead might have an advantage
you can send multiple amounts to the same address
and when paying provide the sigs needed to redeem specific transactions
i am just a bit paranoid when it comes to private keys Smiley

For that to work, the payee and amount would need to be known in advance. In which case you would just send the funds directly, no need to bother with a paper note.
newbie
Activity: 28
Merit: 0
January 30, 2012, 07:57:23 PM
#35
i think using a sig instead might have an advantage
you can send multiple amounts to the same address
and when paying provide the sigs needed to redeem specific transactions
i am just a bit paranoid when it comes to private keys Smiley
vip
Activity: 1386
Merit: 1140
The Casascius 1oz 10BTC Silver Round (w/ Gold B)
January 30, 2012, 07:45:22 PM
#34
Quote
a big no no
no private keys should be ever transmitted over the web. ever.never
use sigs instead

That's your opinion.  I don't share it.  On a bill with a couple BTC on it that I'm exchanging for a quick purchase, I'm not going to worry about it much.  It's good advice for a large amount, so don't buy a car this way.  Yeah, sure it can get stolen once in a while, so can my wallet, that's why I don't walk around with thousands in cash.
newbie
Activity: 28
Merit: 0
January 30, 2012, 07:42:11 PM
#33
Quote
a big no no
no private keys should be ever transmitted over the web. ever.never
use sigs instead

edit. didnt notice the s. SSL might be OK but its still scary
vip
Activity: 1386
Merit: 1140
The Casascius 1oz 10BTC Silver Round (w/ Gold B)
January 30, 2012, 07:30:37 PM
#32
I don't think the payer should try to force a service onto the seller. Just providing the private key should be enough. The seller's POS can then do whatever he wants with that private key: sweep it directly, send it to a online service like you described, etc... My opinion is that we should not use a URL on the QR code.

If the user has an app to scan this, such an app would disregard the URL portion anyway, so I don't think including it is a big deal.  Providing the private key alone would be perfect in a world where everyone already had a suitable app on their phone ready to read this, an app which of course would exist for every phone on the market, including those whose app store owner forbids bitcoin apps on non-jailbroken phones.

The actual world is not perfect, and such a user would be only "using" the service long enough to initiate a transaction and collect their bitcoins, giving no personal information in the process.  There is a big difference between being a "user" of a service versus a casual unregistered visitor - someone scanning a code would be no more a forced user of said service than me becoming a forced "user" of pastebin when I view something published there.
sr. member
Activity: 252
Merit: 250
January 30, 2012, 06:25:23 PM
#31
I don't think the payer should try to force a service onto the seller. Just providing the private key should be enough. The seller's POS can then do whatever he wants with that private key: sweep it directly, send it to a online service like you described, etc... My opinion is that we should not use a URL on the QR code.
vip
Activity: 1386
Merit: 1140
The Casascius 1oz 10BTC Silver Round (w/ Gold B)
January 30, 2012, 06:15:11 PM
#30
Someone could easily implement instant papercoins without an app.

Imagine this: I set up a website for mobile phones called "btcwhatever.us" which requires no registration - it is a semi-stateless web application that allows transfer of bitcoins.  The only registration you would ever do is surf there with your mobile phone and register a receiving bitcoin address for yourself so that you can capture bitcoins from other people's bitcoin bills without wasting time telling it where to send the BTC.  That registration will simply create a cookie on the mobile phone - it doesn't even need to be stored server-side.

Anyway, someone prints and funds Bitcoin bills.  On the Bitcoin bill is a QR code with a full URL as follows:

https://btcwhatever.us/privkey/PRIVATEKEYGOESHERE

If this QR code is scanned by any smartphone, it will instantly pop up a web browser and go to that URL.  No application is needed other than a generic QR code reader.  This is just a plain URL, the phone need merely be able to surf the web.

At the URL, the server uses the private key to query the block chain, and simply says, for example, "OK there's 20.00 BTC here."

Question #1 will be: do you want to sweep some of these BTC or all of them?  If "some" is chosen, change will be left on the bill.

Question #2 will be: do you want to send those BTC to the address registered in your cookie, or somewhere else?

Regardless of what you do, that private key is kept in temporary session memory.  You can scan more private key URLs, and the website shall tally them up.  And if you scan a bitcoin address URL (e.g. https://btcwhatever.us/address/ADDRESSGOESHERE) then the website will offer that as a destination for the payment (and/or the change, as the case may be...)

Anyway, once your full transaction is constructed, Click Submit, and the resulting bitcoin transaction is instantly broadcast to the network.

The screen that appears after you click "Submit" refreshes every 30 seconds and shows confirmation status of the payment.  One can stare at their mobile phone and wait for a full blockchain confirmation if necessary, or otherwise, at the very least, they can assure themselves after waiting 30-60 seconds that the network hasn't seen a conflicting double spend.




hero member
Activity: 496
Merit: 500
January 30, 2012, 03:21:21 PM
#29
PaperCoins in bitcoin client?
Awesome idea! Hope it gets the attention it deserves!
hero member
Activity: 742
Merit: 500
January 30, 2012, 03:02:08 PM
#28
I use https://www.bitaddress.org to print me some bills. Then i cut them and fund with whatever small amounts i need. I write the value they carry by hand after funding with an android phone. The page script is clients side so the priv keys are in your possession at all times so you can even save the page as html and it will work. I'm not affiliated in any way just using the service.

I'd love to see this automated in the official frontend client - select amount, hit print.

I don't like the temptation of reusing bills. Reusing instead of tearing up and making a new one really defeats much of the point of Bitcoin doesn't it. Same for holograms really; I prefer those for promotion.

Temptation to reuse? Meh. Just tear them up, it's not like they are hard to make. I don't understand your objection to holograms. They make it so you can't reuse the physical tokens (which is what you just said you didn't like).  I don't understand how you can be against both of those options.
hero member
Activity: 900
Merit: 1000
Crypto Geek
January 30, 2012, 01:49:35 PM
#27
I use https://www.bitaddress.org to print me some bills. Then i cut them and fund with whatever small amounts i need. I write the value they carry by hand after funding with an android phone. The page script is clients side so the priv keys are in your possession at all times so you can even save the page as html and it will work. I'm not affiliated in any way just using the service.

I'd love to see this automated in the official frontend client - select amount, hit print.

I don't like the temptation of reusing bills. Reusing instead of tearing up and making a new one really defeats much of the point of Bitcoin doesn't it. Same for holograms really; I prefer those for promotion.
donator
Activity: 1736
Merit: 1014
Let's talk governance, lipstick, and pigs.
January 30, 2012, 01:17:17 PM
#26
Casascius has a POS system https://en.bitcoin.it/wiki/Casascius_Bitcoin_POS_system that should be compatible with paper coins/bills/wallets.  If it has a sweep function then it should be functional for any coffee shop, convenience store, or walmart system. Everything is coming together on all fronts. We should be approaching critical mass soon. Let's just hope it doesn't blow up in our face.
hero member
Activity: 742
Merit: 500
January 30, 2012, 12:32:39 PM
#25
I just started saving some of my BTC on a sheet printed out from bitaddress.org.

I was originally planning on just filling all of the addresses with the same amount, but I like the idea of having varying amounts instead.

I don't know if I would use them for trade. I think using them as storage would be more useful to me.
legendary
Activity: 1372
Merit: 1002
January 30, 2012, 09:00:21 AM
#24
I've thought a lot about this. Home made bills with a QR code is obviously the best way to do it, the holograms are just over the top and completely unnecessary imo. They're only good as a collectable item and exchange between friends, not for real world trade.

I remember a thread not long ago where some one had submitted some nice paper bill designs, can't be bothered looking for it though. It would be very easy to print your own bitcoin bills, so I think this is the best way to do it.

The purpose of bitbills is to be transferable, thus they must hide the private key in a way.
But I like more the idea of printing your own bills only for one use.
sr. member
Activity: 252
Merit: 250
January 30, 2012, 08:35:22 AM
#23
It would be a good idea to have a way to secure the priv key or a secure container for the paper coins themselves. Prying eyes could get them in advance. It's feasible to make a physical wallet booklet that takes a common sheet of paper and folds/perfs it into it into checks quickly.

Indeed. It should be fairly easy to change my design so that you fold the QR code, leaving only the amount visible.
donator
Activity: 1736
Merit: 1014
Let's talk governance, lipstick, and pigs.
January 30, 2012, 08:26:30 AM
#22
I've thought a lot about this. Home made bills with a QR code is obviously the best way to do it, the holograms are just over the top and completely unnecessary imo. They're only good as a collectable item and exchange between friends, not for real world trade.

I remember a thread not long ago where some one had submitted some nice paper bill designs, can't be bothered looking for it though. It would be very easy to print your own bitcoin bills, so I think this is the best way to do it.
It would be a good idea to have a way to secure the priv key or a secure container for the paper coins themselves. Prying eyes could get them in advance. It's feasible to make a physical wallet booklet that takes a common sheet of paper and folds/perfs it into it into checks quickly.
legendary
Activity: 1536
Merit: 1000
electronic [r]evolution
January 30, 2012, 07:12:57 AM
#21
I've thought a lot about this. Home made bills with a QR code is obviously the best way to do it, the holograms are just over the top and completely unnecessary imo. They're only good as a collectable item and exchange between friends, not for real world trade.

I remember a thread not long ago where some one had submitted some nice paper bill designs, can't be bothered looking for it though. It would be very easy to print your own bitcoin bills, so I think this is the best way to do it.
legendary
Activity: 1372
Merit: 1002
January 30, 2012, 03:43:58 AM
#20
I remember a couple of old threads about this same thing.
hero member
Activity: 728
Merit: 500
165YUuQUWhBz3d27iXKxRiazQnjEtJNG9g
January 29, 2012, 10:54:13 PM
#19
That's perfect.  You can embed the payment key and the change address into a single QR code.

"3.95 BTC please."  Hand them a 5 BTC note.  They scan it.  10 seconds later your phone chirps to let you know the 1.05 BTC change was just sent with no obvious double-spends.

That's faster and easier than waiting for them to count out fiat change.
donator
Activity: 1736
Merit: 1014
Let's talk governance, lipstick, and pigs.
January 29, 2012, 10:48:51 PM
#18
or just have a keyring or card with a qr where the merchant could return the change

https://bitcointalksearch.org/topic/the-perfect-tool-for-bitcoin-newbies-get-them-a-deposit-card-57303

Or to any other bill the customer holds.
Ok, so you could put the next public address in a series on the bill given for purchase.
vip
Activity: 1386
Merit: 1140
The Casascius 1oz 10BTC Silver Round (w/ Gold B)
January 29, 2012, 10:38:28 PM
#17
or just have a keyring or card with a qr where the merchant could return the change

https://bitcointalksearch.org/topic/the-perfect-tool-for-bitcoin-newbies-get-them-a-deposit-card-57303

Or to any other bill the customer holds.
sr. member
Activity: 252
Merit: 250
January 29, 2012, 07:36:16 PM
#16
I'm not sure I understand the difference between sweeping and importing a private key.

Sweeping is importing a private key and immediately transfering all funds to another address. It's good practice when someone else knows that private key.
legendary
Activity: 924
Merit: 1004
Firstbits: 1pirata
January 29, 2012, 07:35:37 PM
#15
A paper bill is fine, but has one small problem. Unless you know exactly how much your purchase will be, there will be a balance left over on your paper bill. You can't just throw it away after an amount is swept off. You will need to move the balance to a secure address somehow. It would be great to have an automated way to make your bill expire after a predetermined set period of time and the balance is then moved to the next address in a series.

or just have a keyring or card with a qr where the merchant could return the change

https://bitcointalksearch.org/topic/the-perfect-tool-for-bitcoin-newbies-get-them-a-deposit-card-57303
I'm not sure I understand the difference between sweeping and importing a private key.

sweep = import + send amount to really private and secure key
donator
Activity: 1736
Merit: 1014
Let's talk governance, lipstick, and pigs.
January 29, 2012, 07:33:45 PM
#14
A paper bill is fine, but has one small problem. Unless you know exactly how much your purchase will be, there will be a balance left over on your paper bill. You can't just throw it away after an amount is swept off. You will need to move the balance to a secure address somehow. It would be great to have an automated way to make your bill expire after a predetermined set period of time and the balance is then moved to the next address in a series.

or just have a keyring or card with a qr where the merchant could return the change

https://bitcointalksearch.org/topic/the-perfect-tool-for-bitcoin-newbies-get-them-a-deposit-card-57303
I'm not sure I understand the difference between sweeping and importing a private key.
sr. member
Activity: 252
Merit: 250
January 29, 2012, 07:32:45 PM
#13
A paper bill is fine, but has one small problem. Unless you know exactly how much your purchase will be, there will be a balance left over on your paper bill. You can't just throw it away after an amount is swept off. You will need to move the balance to a secure address somehow. It would be great to have an automated way to make your bill expire after a predetermined set period of time and the balance is then moved to the next address in a series.

My initial thought was that the remainder will be sent by the seller to another address you provide (I even thought we might include it in the QR code), basically emulating how you pay with cash right now. I also assumed the buyer trusts the seller.

But your idea of expiration is much better, if it's doable. At a minimum, one could run another sweep after returning from the store ("gather all remainders from my used PaperCoins"), but doing it automatically would be cool.
legendary
Activity: 924
Merit: 1004
Firstbits: 1pirata
January 29, 2012, 07:29:54 PM
#12
A paper bill is fine, but has one small problem. Unless you know exactly how much your purchase will be, there will be a balance left over on your paper bill. You can't just throw it away after an amount is swept off. You will need to move the balance to a secure address somehow. It would be great to have an automated way to make your bill expire after a predetermined set period of time and the balance is then moved to the next address in a series.

or just have a keyring or card with a qr where the merchant could return the change

https://bitcointalksearch.org/topic/the-perfect-tool-for-bitcoin-newbies-get-them-a-deposit-card-57303
donator
Activity: 1736
Merit: 1014
Let's talk governance, lipstick, and pigs.
January 29, 2012, 07:24:54 PM
#11
A paper bill is fine, but has one small problem. Unless you know exactly how much your purchase will be, there will be a balance left over on your paper bill. You can't just throw it away after an amount is swept off. You will need to move the balance to a secure address somehow. It would be great to have an automated way to make your bill expire after a predetermined set period of time and the balance is then moved to the next address in a series.
hero member
Activity: 728
Merit: 500
165YUuQUWhBz3d27iXKxRiazQnjEtJNG9g
January 29, 2012, 07:11:44 PM
#10
This is elegant and easy.  I like it.

The general process can also be done electronically - you can have your phone put up a QR code that provides keys for a few addresses that total the correct amount.  It recreates all the phone security problems, but adds some convenience.

I'd love to see this process become the default.  It would work well regardless of if the buyer wants to use phones or paper.
donator
Activity: 2772
Merit: 1019
January 29, 2012, 07:09:39 PM
#9
I think people printing their own "bitcoin bills" would be a very sustainable idea.  No security would be needed

Merchants would sweep the bills immediately via QR code.  Merchants could give back change by sending it back to one of the bills, or by printing a new bill.

Interesting.

You'd have to sweep the change-bill yourself immediately or trust the merchant. Neither is out of the question, of course.
sr. member
Activity: 252
Merit: 250
January 29, 2012, 06:58:13 PM
#8
Bitaddress.org was meant for you to save and run offline.  It is a single self-contained html file with inline javascript and no external references or links.  Save to your hard disk, notice it still is completely functional when run without an internet connection.

+1 i obviously edited my post to late saying the same thing

Indeed Smiley. So my script duplicates that functionality - but it allow some customization (I hope someone with more talent than me can contribut a getter design). The next script I'll release will make it easier for Electrum users to generate PaperCoins. You will run it like this: "script ...." and it will create a new wallet (so you'll have it later if you want to, but separate from your main one), transfer funds, generate PDF, all automagically. Later, I want to integrate it into the Electrum client GUI and I'm hoping this topic will attract other client developers who will want to add the same functionality to their software. Then, we can work with POS software developers to add the sweep (+send remainder) functionality. That's my secret plan! Oh wait...
legendary
Activity: 924
Merit: 1004
Firstbits: 1pirata
January 29, 2012, 06:44:10 PM
#7
I use https://www.bitaddress.org to print me some bills. Then i cut them and fund with whatever small amounts i need. I write the value they carry by hand after funding with an android phone.

Yep, I know about them. I ignored online services on purpose (trust issues).

Bitaddress.org was meant for you to save and run offline.  It is a single self-contained html file with inline javascript and no external references or links.  Save to your hard disk, notice it still is completely functional when run without an internet connection.

+1 i obviously edited my post to late saying the same thing
vip
Activity: 1386
Merit: 1140
The Casascius 1oz 10BTC Silver Round (w/ Gold B)
January 29, 2012, 06:42:05 PM
#6
I use https://www.bitaddress.org to print me some bills. Then i cut them and fund with whatever small amounts i need. I write the value they carry by hand after funding with an android phone.

Yep, I know about them. I ignored online services on purpose (trust issues).

Bitaddress.org was meant for you to save and run offline.  It is a single self-contained html file with inline javascript and no external references or links.  Save to your hard disk, notice it still is completely functional when run without an internet connection.
vip
Activity: 1386
Merit: 1140
The Casascius 1oz 10BTC Silver Round (w/ Gold B)
January 29, 2012, 06:40:45 PM
#5
I think people printing their own "bitcoin bills" would be a very sustainable idea.  No security would be needed

Merchants would sweep the bills immediately via QR code.  Merchants could give back change by sending it back to one of the bills, or by printing a new bill.

It would be as simple and as fast as paying with cash or gift cards.

Small risks on both sides:  Merchants are vulnerable to double spending attacks, but for most normal-sized transactions, even just 15 seconds of vigilance on the block chain will rule just about all of it out.  Customers are vulnerable to merchants helping themselves out to any change they return, a risk that can be minimized just by printing small bills so the incentive to steal change would be minimized.
sr. member
Activity: 252
Merit: 250
January 29, 2012, 06:30:45 PM
#4
I use https://www.bitaddress.org to print me some bills. Then i cut them and fund with whatever small amounts i need. I write the value they carry by hand after funding with an android phone.

Yep, I know about them. I ignored online services on purpose (trust issues).
legendary
Activity: 924
Merit: 1004
Firstbits: 1pirata
January 29, 2012, 06:28:07 PM
#3
I use https://www.bitaddress.org to print me some bills. Then i cut them and fund with whatever small amounts i need. I write the value they carry by hand after funding with an android phone. The page script is clients side so the priv keys are in your possession at all times so you can even save the page as html and it will work. I'm not affiliated in any way just using the service.
sr. member
Activity: 266
Merit: 250
The king and the pawn go in the same box @ endgame
January 29, 2012, 06:20:44 PM
#2
intrigued. Watching
sr. member
Activity: 252
Merit: 250
January 29, 2012, 06:15:39 PM
#1
Warning, long post. Skip to last like for LT;DR version.

I though a little about in-store usage of bitcoins and physical bitcoins over the last few days. I actually convinced myself that using physical bitcoins in stores is better than using a smartphone Smiley

* it's definitely faster to take a piece of paper out of your pocket, just like you would a bill, than to take out the phone, unlock it, start the Bitcoin app, enter password, scan a QR code, enter amount, press Send, wait, then wait for the tx confirmation from the store "register". Using physical bitcoins means give a paper to the clerk, who will scan the QR code and sweep the funds and (optionally) send you the remainder (change). 15 seconds versus 2 minutes (2 minutes if the store is kind enough to accept 0-confirmation transactions).

* it's safer for you (the buyer). You only carry with you some bills, no need to store a wallet on your phone. So you can now "safely" install that naked pics app you wanted, without fear of losing your coins.

* it's safer for the seller, too. They don't need to wait for confirmation and a double spend is a lot more difficult to time right. This will allow buying valuable stuff without waiting 1 hour for 6 confirmations.

Having said that, I looked at the physical coins that exist now. They are all very nice (I want to get my hands on a Casascius coin, nao!), but I don't think they will work in real life, because I believe they were created with a few wrong ideas in mind:

* it's assumed they will be passed along untouched. For that reason, the private key is protected with a hologram, so the person receiving can check if it's still untouched. This means the person receiving them knows how to detect a forged/openend hologram.

* as I believe that's not the case (clerk in store, remember? not security/hologram/forgery specialist), then the receiver must check the balance by scanning the QR code. So then, all those holograms are useless...

* they are mighty expensive. One of the reasons stores might accept BTC is because they can dodge card/bank fees - so they can lower their prices. Then why would the buyer pay even more for using a physical Bitcoin? He will probably prefer to pay cash...

* you need to trust the issuer. That's simply too unbitcoiny. Sorry guys, I do believe you're trustworthy, but this is a bad idea.

So here's another idea (it's not new, I'm sure you already know about "cold storage" and I know 1-2 products who have related - paper backup - functions).

Let's use a very simple bill that basically just has on it a QR code of the private key, plus the amount on it (5 BTC, for example). No protection, no fancy logos and colors. Something that you can print on your own cheap inkjet, cut and use in store. Remember they will be used only once, after sweeping the funds, the clerk will throw them away (recycle). Something like this:

http://blog.mybox.ro/wp-content/files/PaperCoins-1327877209.pdf

I'm sure the design can be improved a lot. I created some glabels templates and a bash script to generate PDF files of PaperCoins from a simple CSV file. You can find them here:

https://github.com/ovidiusoft/bitcoin-scripts/tree/master/PaperCoins

I would love to hear you oppinions on this (and maybe get a better design? is 10x5 cm too small?), and also I would like to ask developers what they think about adding such a feature to their clients:

* Option "Create PaperCoins", where the user selects the number of bills to create and amounts on each. The software creates N new addresses, sends the amounts and produces a PDF or prints the bills. Also, mark those addresses as "don't use" except sweep the funds back (if you didn't use the bills for some reason).

I will write another bash script that does exactly this for Electrum. I also have some other random ideas, like:

* encode the "remainder" (change) address into the QR code. For example, the QR code might be a string "FUNDSKEY=,VALIDAMOUNT=,REMAINDERADDRESS=
". This needs discussion, as the software used in stores needs to know about it.

* it would be nice if developers will consider using some design standards, like: bill should be rectangle, amount is in the left/center of the bill, QR code on the right, (if printed) remainder address on the back of the bill. I am thinking it would be easier for the sellers - they will easily recognize a bitcoin bill, no matter who/what printed it.

That's all. What do you think?

Update: See this post https://bitcointalksearch.org/topic/m.723880 for a script for Electrum users, that automatically creates new PaperCoins addresses and funds them. Also see README file at the URL above.

Update 2: Some ideas about the QR code format: https://github.com/ovidiusoft/bitcoin-scripts/blob/master/PaperCoins/QR-code-format.txt

TL;DR ? Download PDF in 1st link, print, cut. PaperCoins!
Jump to: