Bitcoin Forum
November 02, 2024, 01:03:54 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 [4] 5 »  All
  Print  
Author Topic: Printing bitcoins, an implementation  (Read 17782 times)
myrkul
Hero Member
*****
Offline Offline

Activity: 532
Merit: 500


FIAT LIBERTAS RVAT CAELVM


View Profile WWW
February 23, 2011, 01:39:42 PM
 #61

Also, I like the idea of issuing my own paper money and the way US FRNs smell. Bitcoins don't smell, one of their few drawbacks.

I view it as a benefit, eau d'Cocaine and ass-crack isn't exactly my cup of tea. Wink I can, however, see the draw of issuing your own paper money.

One thing, though: the biggest benefit of debit cards is their convenience and speed. Would a bitcoin debit card be able to compete? the current credit/debit card system works thus:

Cust. swipes card
merchant transmit card data to operating company (visa, MC, etc)
Data is passed to issuing bank
Bank checks if customer has available balance (or credit, as the case may be)
If yes, bank places hold on funds
bank sends response (approve/deny) back to operating company
Operating company sends response back to merchant
At the end of the day, the merchant totals up all his actual charges, and sends them to the operating company(ies)
the operating company confirms the transaction with the issuing bank
customer's balance is updated, and the hold is removed

One example of this is, at some gas stations, the pump "authorizes" for $50, to make sure you have enough in your account to cover if you fill up your tank. Let's say you only buy $20 worth, though... That $50 hold is still there, until the gas station closes out it's books for the day and sends the finalized $20 charge.

Seeing as Bitcoin combines those two transactions when you attempt to spend some, and the confirmation doesn't come until another block is made... Can it keep up?

BTC1MYRkuLv4XPBa6bGnYAronz55grPAGcxja
Need Dispute resolution? Public Key ID: 0x11D341CF
No person has the right to initiate force, threat of force, or fraud against another person or their property. VIM VI REPELLERE LICET
TiagoTiago
Hero Member
*****
Offline Offline

Activity: 616
Merit: 500


Firstbits.com/1fg4i :)


View Profile
February 23, 2011, 02:24:50 PM
 #62

The bank would be a computer that holds the wallet of the customer, it would fire the transaction as soon as requested, it would take the usual time for BTC online transfers but if the wallet holder is reliable, the busyness places would believe when the bank says the customer has funds and the transaction is gonna take place.

(I dont always get new reply notifications, pls send a pm when you think it has happened)

Wanna gimme some BTC/BCH for any or no reason? 1FmvtS66LFh6ycrXDwKRQTexGJw4UWiqDX Smiley

The more you believe in Bitcoin, and the more you show you do to other people, the faster the real value will soar!

Do you like mmmBananas?!
FatherMcGruder
Sr. Member
****
Offline Offline

Activity: 322
Merit: 250



View Profile WWW
February 23, 2011, 02:45:28 PM
 #63

I view it as a benefit, eau d'Cocaine and ass-crack isn't exactly my cup of tea. Wink
I know of no finer scent then that of debauchery and broken dreams.

Quote
I can, however, see the draw of issuing your own paper money.

One thing, though: the biggest benefit of debit cards is their convenience and speed. Would a bitcoin debit card be able to compete? the current credit/debit card system works thus:

Cust. swipes card
merchant transmit card data to operating company (visa, MC, etc)
Data is passed to issuing bank
Bank checks if customer has available balance (or credit, as the case may be)
If yes, bank places hold on funds
bank sends response (approve/deny) back to operating company
Operating company sends response back to merchant
At the end of the day, the merchant totals up all his actual charges, and sends them to the operating company(ies)
the operating company confirms the transaction with the issuing bank
customer's balance is updated, and the hold is removed

One example of this is, at some gas stations, the pump "authorizes" for $50, to make sure you have enough in your account to cover if you fill up your tank. Let's say you only buy $20 worth, though... That $50 hold is still there, until the gas station closes out it's books for the day and sends the finalized $20 charge.

Seeing as Bitcoin combines those two transactions when you attempt to spend some, and the confirmation doesn't come until another block is made... Can it keep up?
I would think that a bitcoin card would work just like a typical debit card, except the transfer of funds arrives an hour later instead of a day later, and the bank and operating company would probably be one in the same. The vendor would have to trust that entity.

The bank would be a computer that holds the wallet of the customer, it would fire the transaction as soon as requested, it would take the usual time for BTC online transfers but if the wallet holder is reliable, the busyness places would believe when the bank says the customer has funds and the transaction is gonna take place.
Perhaps the customer's home computer or smart phone could act as the bank/operating entity. The vendor would just have to make sure somehow that the customer doesn't run cheating software. Is that possible?

Use my Trade Hill referral code: TH-R11519

Check out bitcoinity.org and Ripple.

Shameless display of my bitcoin address:
1Hio4bqPUZnhr2SWi4WgsnVU1ph3EkusvH
TiagoTiago
Hero Member
*****
Offline Offline

Activity: 616
Merit: 500


Firstbits.com/1fg4i :)


View Profile
February 23, 2011, 03:43:55 PM
Last edit: February 23, 2011, 04:59:55 PM by TiagoTiago
 #64

I don't think so, at least not without additional network traffic being required on the store's own equippment confirming things with the block chain and stuff; resources would be better spent by having the store use their own machines to read the customer's card (in whatever form it might be presented, smart card, RFID, bluetooth enabled smartphone etc) and talk with a trusted bank/operator confirming the presence of funds and instructing the initiation of the transfer on behalf of the customer.

(I dont always get new reply notifications, pls send a pm when you think it has happened)

Wanna gimme some BTC/BCH for any or no reason? 1FmvtS66LFh6ycrXDwKRQTexGJw4UWiqDX Smiley

The more you believe in Bitcoin, and the more you show you do to other people, the faster the real value will soar!

Do you like mmmBananas?!
FatherMcGruder
Sr. Member
****
Offline Offline

Activity: 322
Merit: 250



View Profile WWW
February 23, 2011, 04:10:58 PM
 #65

What if the card stores an actual wallet.dat file, and the vendor just loads it into his client to make the transaction? On a separate network, he could rapidly confirm with other vendors that a multi-spend isn't going on. If the vendors' computers could talk, it would go like this in the case of a good transfer:
Computer 1: beep boop Hey guys, I have this wallet here with 200BTC, trying to transfer 5BTC. Does that check out?
Other computers: boop beep We think so. We have no evidence that the value on that wallet is inaccurate.
In the case of a bad transfer:
Computer 1: beep boop Hey guys, I have this wallet here with 200BTC, trying to transfer 5BTC. Does that check out?
Other computers: boop beep Nope. Within the last ten minutes, that wallet just transferred some bitcoins to one of us and claimed that it also held a value of 200BTC. Fail.

Use my Trade Hill referral code: TH-R11519

Check out bitcoinity.org and Ripple.

Shameless display of my bitcoin address:
1Hio4bqPUZnhr2SWi4WgsnVU1ph3EkusvH
TiagoTiago
Hero Member
*****
Offline Offline

Activity: 616
Merit: 500


Firstbits.com/1fg4i :)


View Profile
February 23, 2011, 05:04:13 PM
 #66

That would involve trusting the the store to not clone your wallet, they alreayd do it with regular credit cards....

If you at least needs some sort of challange/response or the very least password or signature from the owner of the account that gets verified by the bank/operator, then things get more secure.

(I dont always get new reply notifications, pls send a pm when you think it has happened)

Wanna gimme some BTC/BCH for any or no reason? 1FmvtS66LFh6ycrXDwKRQTexGJw4UWiqDX Smiley

The more you believe in Bitcoin, and the more you show you do to other people, the faster the real value will soar!

Do you like mmmBananas?!
JollyGreen
Newbie
*
Offline Offline

Activity: 42
Merit: 0


View Profile
February 24, 2011, 10:03:18 AM
 #67

Dang, someone just took the 6.66 BTC!  Congrats to the winner.  I'm working on some java code and will release after I can verify it works.
Binford 6100
Hero Member
*****
Offline Offline

Activity: 504
Merit: 504


PGP OTC WOT: EB7FCE3D


View Profile
February 24, 2011, 10:28:21 AM
 #68

Dang, someone just took the 6.66 BTC!  Congrats to the winner.  I'm working on some java code and will release after I can verify it works.

that's bad style, but on the other hand, your fault for printing it plain text

better joke would be to "steal" just a few percent to lower the value a bit.
not to make it completely worthless

You can't build a reputation on what you are going to do.
JollyGreen
Newbie
*
Offline Offline

Activity: 42
Merit: 0


View Profile
February 24, 2011, 10:43:06 AM
 #69

Dang, someone just took the 6.66 BTC!  Congrats to the winner.  I'm working on some java code and will release after I can verify it works.

that's bad style, but on the other hand, your fault for printing it plain text

better joke would be to "steal" just a few percent to lower the value a bit.
not to make it completely worthless

I didn't print anything in plain text... Smiley
mgiuca
Newbie
*
Offline Offline

Activity: 25
Merit: 7


View Profile
February 24, 2011, 10:46:47 AM
 #70

Dang, someone just took the 6.66 BTC!  Congrats to the winner.  I'm working on some java code and will release after I can verify it works.
Ah, sorry Jolly. I just got it again. I was bugged that my previous attempt couldn't get public keys out of private keys. Spent another couple of hours working on it, and wrote a tool to take a 32-byte private key and turn it into the full 279-byte DER key.

Had to trawl through the OpenSSL codebase for hours to find out how to do this. There are almost zero comments in that code, and absolutely none in the headers. Insane.

I've put my code online here:
https://code.launchpad.net/~mgiuca/+junk/bitcoin-import

I'd be interested to see what your code does when you put it up. Does yours use the Bitcoin wallet, or are you making your own transactions?
Hal
VIP
Sr. Member
*
Offline Offline

Activity: 314
Merit: 4176



View Profile
February 24, 2011, 10:28:28 PM
 #71

The online QR encoder at http://zxing.org/w/decode.jspx works on the 6.66 Bitcoin note above, while it failed on the earlier ones. Helps to encode less data probably. Here's what it decodes to:

   bitcoin:priv=4RPhNpsD95XcjXG4637DwTNgQLh2eqQ7r7hH5yeLA16F;amount=6.660000;

On the other thread, Mike and Gavin suggested an important optimization: Include an optional block number where the address first appears. Otherwise the recipient has to scan the entire block chain to find transactions for that address, which can reportedly take a couple of minutes on a slow machine. Including the starting block number means you only have to scan from there, which will be very fast assuming it's a relatively new address.

Hal Finney
krepta3000
Member
**
Offline Offline

Activity: 92
Merit: 10


View Profile
March 08, 2011, 04:50:11 AM
Last edit: March 08, 2011, 05:08:36 AM by krepta3000
 #72

I'm not a coder, or developer, and I am feeling lost here.  Sure, I downloaded stuff to install on linux that will enable me to print a certain amount of bitcoins in paper form, but I have not installed all these packages and run the python application.  Even if I did, is there another application for Reading a bill and then inserting the data into a wallet.dat?  If I manually insert data into a wallet.dat, how would I actually do it?  I've looked at the contents of my wallet.dat file, it's a confusing jumble of Hex stuff to me.  Until you developer types come up with an Easy tool to use to both print, and read, these Bitcoin bills, I think I'm going to be too lost to even attempt it.  Someone please develop a linux Package, that installs all the dependencies, or something.  Sheesh.

I went to the website and uploaded a fresh wallet containing only .20 BTC, and it quickly gave me a PDF file, and some other file I don't know what to do with.  I like the PDF, and printed it.  Very cool. Smiley
mgiuca
Newbie
*
Offline Offline

Activity: 25
Merit: 7


View Profile
March 13, 2011, 01:28:36 AM
 #73

I'm not a coder, or developer, and I am feeling lost here.  Sure, I downloaded stuff to install on linux that will enable me to print a certain amount of bitcoins in paper form, but I have not installed all these packages and run the python application.  Even if I did, is there another application for Reading a bill and then inserting the data into a wallet.dat?  If I manually insert data into a wallet.dat, how would I actually do it?  I've looked at the contents of my wallet.dat file, it's a confusing jumble of Hex stuff to me.  Until you developer types come up with an Easy tool to use to both print, and read, these Bitcoin bills, I think I'm going to be too lost to even attempt it.  Someone please develop a linux Package, that installs all the dependencies, or something.  Sheesh.
Software development takes time. The idea of printing bitcoins is just one idea that people are toying with, and this forum thread is the very first time someone has seriously attempted it. Accordingly, we have written some of the very first software that can read it back in, but it's just command-line tools. You can't expect us to polish it up into a proper user-friendly UI with a Linux package and so on, when really we are just experimenting with an idea that might not work.

As I said above, I have provided the reader software online that I wrote. It isn't pretty, but you can get it working on the command-line as follows:
1. You will need Bazaar, Git, build essentials and libssl (sudo apt-get install bzr git build-essential libssl-dev).
2. See https://code.launchpad.net/~mgiuca/+junk/bitcoin-import, with further instructions here.
3. As instructed on my page, type: bzr branch lp:~mgiuca/+junk/bitcoin-import -- this will create a new directory called bitcoin-import wherever you are.
4. You also need Gavin's BitcoinTools if you haven't already got it. Type: git clone git://github.com/gavinandresen/bitcointools.git
5. Unfortunately, if you use Ubuntu, the supplied version of pycrypto will not work, so you need to get the full version here and set that up as per its installation instructions.
6. cd into bitcoin-import and type: make

Now the instructions for use, as given in privkeyimport.py:

1. Get the private key you wish to import in a text file. To do this, you either need to download the PDF of the printed money in a reader that can select the text and copy it, then paste it into a text file, OR get a QR code reader and paste the output text into a file. Whitespace is not important.
2. Run privkeyimport.py KEYFILE. This will write the key into your Bitcoin wallet. Use -n to just print without writing to the wallet.
3. Run bitcoin -rescan to ensure any transactions belonging to the imported key are added to the transaction list and balance.

As you can see, it requires a lot of technical fiddling, but no programming. Cleaner solutions will appear in time.
FatherMcGruder
Sr. Member
****
Offline Offline

Activity: 322
Merit: 250



View Profile WWW
March 13, 2011, 06:25:45 PM
 #74

As I said above, I have provided the reader software online that I wrote. It isn't pretty, but you can get it working on the command-line as follows:
1. You will need Bazaar, Git, build essentials and libssl (sudo apt-get install bzr git build-essential libssl-dev).
2. See https://code.launchpad.net/~mgiuca/+junk/bitcoin-import, with further instructions here.
3. As instructed on my page, type: bzr branch lp:~mgiuca/+junk/bitcoin-import -- this will create a new directory called bitcoin-import wherever you are.
4. You also need Gavin's BitcoinTools if you haven't already got it. Type: git clone git://github.com/gavinandresen/bitcointools.git
5. Unfortunately, if you use Ubuntu, the supplied version of pycrypto will not work, so you need to get the full version here and set that up as per its installation instructions.
6. cd into bitcoin-import and type: make

Now the instructions for use, as given in privkeyimport.py:

1. Get the private key you wish to import in a text file. To do this, you either need to download the PDF of the printed money in a reader that can select the text and copy it, then paste it into a text file, OR get a QR code reader and paste the output text into a file. Whitespace is not important.
2. Run privkeyimport.py KEYFILE. This will write the key into your Bitcoin wallet. Use -n to just print without writing to the wallet.
3. Run bitcoin -rescan to ensure any transactions belonging to the imported key are added to the transaction list and balance.

As you can see, it requires a lot of technical fiddling, but no programming. Cleaner solutions will appear in time.
Thank you for the summary!

Use my Trade Hill referral code: TH-R11519

Check out bitcoinity.org and Ripple.

Shameless display of my bitcoin address:
1Hio4bqPUZnhr2SWi4WgsnVU1ph3EkusvH
bitcoinex
Sr. Member
****
Offline Offline

Activity: 350
Merit: 252


probiwon.com


View Profile WWW
March 17, 2011, 04:34:03 AM
Last edit: March 17, 2011, 04:48:08 AM by bitcoinex
 #75

Encourage to use a DataMatrix!

QR-code is more proprietary than DataMatrix and DataMatrix fully implemented in very good open source library and utils called 'dmtx'.

Also DataMatrix supports real 8 bit encoding, but QR-code is really not:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=604882

QR-code has one advantage - it is recognizable by 'typical users'.



New bitcoin lottery: probiwon.com
- Moжeт, ты eщё и в Heвидимyю Pyкy Pынкa вepyeшь? - Зaчeм жe вepoвaть в тo, чтo мoжнo нaблюдaть нeпocpeдcтвeннo?
TiagoTiago
Hero Member
*****
Offline Offline

Activity: 616
Merit: 500


Firstbits.com/1fg4i :)


View Profile
March 18, 2011, 08:43:55 PM
 #76

Does it got error correction, like, could i replace a big part of it with an image of my choice and still have it work like how happens with QR code? And is it at least as easy to dentify and read by devices as QR code?

(I dont always get new reply notifications, pls send a pm when you think it has happened)

Wanna gimme some BTC/BCH for any or no reason? 1FmvtS66LFh6ycrXDwKRQTexGJw4UWiqDX Smiley

The more you believe in Bitcoin, and the more you show you do to other people, the faster the real value will soar!

Do you like mmmBananas?!
bitcoinex
Sr. Member
****
Offline Offline

Activity: 350
Merit: 252


probiwon.com


View Profile WWW
March 18, 2011, 09:55:14 PM
 #77

Does it got error correction, like, could i replace a big part of it with an image of my choice and still have it work like how happens with QR code? And is it at least as easy to dentify and read by devices as QR code?

Yes. All the same, only the DataMatrix uses a little less space

New bitcoin lottery: probiwon.com
- Moжeт, ты eщё и в Heвидимyю Pyкy Pынкa вepyeшь? - Зaчeм жe вepoвaть в тo, чтo мoжнo нaблюдaть нeпocpeдcтвeннo?
Ian Maxwell
Full Member
***
Offline Offline

Activity: 140
Merit: 101



View Profile WWW
March 20, 2011, 04:36:40 AM
 #78

I've been following this thread with interest, because one of my first ideas for Bitcoin was to use it as a backing for paper notes. These are still useful sometimes for in-person transactions, and would probably be good PR as well, since paper currency is familiar and comfortable. I can see myself tipping a bartender an extra 1 BTC just to get their attention.

I had not thought of printing a private key directly on the note! I'd just figured you could have something like a Bitcoin Reserve Agency printing hard-to-counterfeit promissory notes. Printing the key in invisible ink or under a scratch-off is clever, but I'm not sure it resolves the trust issues that a promissory note system has:
  • You have to trust that the private key will really be there when you go looking for it.
  • You have to trust that the private key will actually match the public key printed on the same note (if a public key is printed). This can be verified retroactively, but by then it's too late.
  • You have to trust that the money will really be linked to the private key.
  • You have to trust that the bill wasn't counterfeited.

All of these issues can be resolved if the issuer creates a hard-to-counterfeit note and maintains a good track record, but the important point is that printing the private key doesn't reduce the amount of trust necessary. All it does is make redemption easier.

Printing a private key also produces unique problems:
  • If some type of note is widely adopted, and then someone finds a new technique of reading the private key without altering the note, there could be an immediate financial crisis. (At best, businesses would have to stop accepting cash until the notes could be replaced).
  • Stolen cash can be immediately redeemed and then destroyed, making recovery difficult or impossible. Arguably this is a feature, not a bug, but it is a tough sell to someone used to the present system.

I've thought about this from a lot of angles, because I really like the idea of self-redeeming notes. But I really can't come up with a solution to these problems that isn't also a solution to the problems that central banks have in the first place. Maybe someone else can.

On the other hand, the scratch-off thing is plenty secure enough for a one-shot "check" that will be redeemed immediately by the recipient. So is a tamper-proof envelope, for that matter.

Ian Maxwell
PGP key | WoT rating
TiagoTiago
Hero Member
*****
Offline Offline

Activity: 616
Merit: 500


Firstbits.com/1fg4i :)


View Profile
March 20, 2011, 10:42:30 AM
 #79

They wouldn't have to stop accepting alltogether, they would just need to cash in in the contents of the presented wallet before considering the payment as having been effectuated(sp?), it would reduce the trust people have on the notes though, and probably in Bitcoin as a whole (most people don't know the difference between their web browser and the whole Internet, or even that they aren't the same thing)

(I dont always get new reply notifications, pls send a pm when you think it has happened)

Wanna gimme some BTC/BCH for any or no reason? 1FmvtS66LFh6ycrXDwKRQTexGJw4UWiqDX Smiley

The more you believe in Bitcoin, and the more you show you do to other people, the faster the real value will soar!

Do you like mmmBananas?!
krepta3000
Member
**
Offline Offline

Activity: 92
Merit: 10


View Profile
March 25, 2011, 05:26:05 PM
 #80

They wouldn't have to stop accepting alltogether, they would just need to cash in in the contents of the presented wallet before considering the payment as having been effectuated(sp?), it would reduce the trust people have on the notes though, and probably in Bitcoin as a whole (most people don't know the difference between their web browser and the whole Internet, or even that they aren't the same thing)

I have a friend who, for years, thought the Internet was called Netscape.  It was incredibly hard for me to convince him that Netscape is just the name of a web browser, that there are plenty of browsers out there, and that the World Wide Web of pages he thinks is the Internet is actually only one Aspect of what the Internet actually is.  It was a major pain.

As for bitcoin printing, I just can't do all that work getting this stuff running.  Once you guys iron out all the kinks and get all this stuff solidly figured out, you have to make it easy for the village idiot to use, and that would probably mean a Windows program, or an iPhone app, or something.  Good luck with that, I'll be waiting with extreme excitement. Smiley
Pages: « 1 2 3 [4] 5 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!