Pages:
Author

Topic: Deterministic Paper Wallet Generator & Bitcoin Utility for Windows (SOURCE) (Read 11623 times)

sr. member
Activity: 300
Merit: 250

A Mini Private Key Generator included with Bitcoin Wallet could be really useful. Then as long as I have my android phone on me, I could pay anyone in bitcoins even if they dont have a phone to receive them with. I could just use the app to generate a code, and write it down for them on a piece of paper. Upon generation of the code, Bitcoin Wallet would deposit the coins specified into that address.  Bitcoin Wallet could keep track of the address so I can see when the coins are actually withdrawn from the address.  A companion website to teach people how to claim their bitcoins using the code would be helpful too to write down for them next to their code.
member
Activity: 78
Merit: 10
Or you could just send people here, less of a hassle than dealing with python eggs and stuff:

http://www.lfd.uci.edu/~gohlke/pythonlibs/
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
What a pain... I'm glad it finally works
I'll add these instructions for other Win7 users, thanks!

would it be legal to package it all up into an archive and set up all the scripts?
I think so, good idea
sr. member
Activity: 350
Merit: 251
What a pain... I'm glad it finally works
I'll add these instructions for other Win7 users, thanks!

would it be legal to package it all up into an archive and set up all the scripts?
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
What a pain... I'm glad it finally works
I'll add these instructions for other Win7 users, thanks!
sr. member
Activity: 350
Merit: 251
i got it working, since i was running 64 bit i had to go through like 2 work arounds.

if you run x64
use the 2.7 msi package here http://twistedmatrix.com/trac/wiki/Downloads

then go here and grab ez_setup.py

run that shit and go to C:\Python27\Scripts, if you have easy_install.exe your good to go for the next step

download zone.interface here http://twistedmatrix.com/trac/wiki/Downloads#Windows

now run easy_install.exe zope.interface-3.6.4-py2.7-win-amd64.egg you need proper paths too of course

if your pywallet.py dont work then, idk what to say
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
some more issues, im running windows 7 x64 if that matters

Code:
@echo off
pywallet.py --web
pause

Code:
Traceback (most recent call last):
  File "C:\Users\****\Desktop\pywallet\pywallet.py", line 22, in
    from twisted.internet import reactor
  File "C:\Python27\lib\site-packages\twisted\internet\reactor.py", line 37, in

    from twisted.internet import selectreactor
  File "C:\Python27\lib\site-packages\twisted\internet\selectreactor.py", line 1
7, in
    from zope.interface import implements
ImportError: No module named zope.interface
Press any key to continue . . .

i had a derp, on the page is says required, how do i put it in.
Well I don't know actually...
The download page shows "Zope.Interface (required)" just under the Twisted package itself, did you install it?
If that works it's unbelievable it isn't automatically included in the Twisted package...
sr. member
Activity: 350
Merit: 251
some more issues, im running windows 7 x64 if that matters

Code:
@echo off
pywallet.py --web
pause

Code:
Traceback (most recent call last):
  File "C:\Users\****\Desktop\pywallet\pywallet.py", line 22, in
    from twisted.internet import reactor
  File "C:\Python27\lib\site-packages\twisted\internet\reactor.py", line 37, in

    from twisted.internet import selectreactor
  File "C:\Python27\lib\site-packages\twisted\internet\selectreactor.py", line 1
7, in
    from zope.interface import implements
ImportError: No module named zope.interface
Press any key to continue . . .

i had a derp, on the page is says required, how do i put it in.
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
should probably slap that in the wiki or readme or somthing.
I wrote it in the pywallet thread but you're right I'm adding that right now
sr. member
Activity: 350
Merit: 251
i cant get the pywallet to run

Code:
@echo off
pywallet.py --datadir="C:\Users\****\Desktop\pywallet\wallet" --web
pause

Code:
Traceback (most recent call last):
  File "C:\Users\****\Desktop\pywallet\pywallet.py", line 22, in
    from twisted.internet import reactor
ImportError: No module named twisted.internet
Press any key to continue . . .

also i am using 2.7.2 i think
Pywallet needs the twisted python package to work: http://twistedmatrix.com/trac/
Also you don't need to use the datadir flag, everything will be asked in the web interface

should probably slap that in the wiki or readme or somthing.
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
i cant get the pywallet to run

Code:
@echo off
pywallet.py --datadir="C:\Users\****\Desktop\pywallet\wallet" --web
pause

Code:
Traceback (most recent call last):
  File "C:\Users\****\Desktop\pywallet\pywallet.py", line 22, in
    from twisted.internet import reactor
ImportError: No module named twisted.internet
Press any key to continue . . .

also i am using 2.7.2 i think
Pywallet needs the twisted python package to work: http://twistedmatrix.com/trac/
Also you don't need to use the datadir flag, everything will be asked in the web interface
sr. member
Activity: 350
Merit: 251
i cant get the pywallet to run

Code:
@echo off
pywallet.py --datadir="C:\Users\****\Desktop\pywallet\wallet" --web
pause

Code:
Traceback (most recent call last):
  File "C:\Users\****\Desktop\pywallet\pywallet.py", line 22, in
    from twisted.internet import reactor
ImportError: No module named twisted.internet
Press any key to continue . . .

also i am using 2.7.2 i think
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
How mature is pywallet? how likely is it that it just looses coins. or should you only import the keys for immediate spending.
It was created about one month ago
It never broke any wallet afaik, but backups are of course recommended
sr. member
Activity: 350
Merit: 251
Sending private keys via browsers? They are the most critical part of bitcoin it's just crazy
MITM attack, browser history, sniffers if not https, etc........

Just use pywallet, it's infinitely safer and its web interface makes it really simple to import a key

Pywallet is not simple for the average joe, as you know.  Arguably, the entire Bitcoin client is hardly simple for the average joe.  Paper wallets and the ability to redeem them on websites - AT THE TIME OF SPENDING - puts secure Bitcoins in the hands of average Joes and eliminates virtually all of the risk associated with hacking and online wallets.

What can be simpler?
My guide clearly states what to do: "run './pywallet.py --web' then open 'http://localhost:8989' in your brower"
Then, wallet directory, wallet filename, version and format are autofilled, average joe just has to fill the key and clicks the button

A private key is not much different from a Mt.Gox Redeemable Code, it's just that it holds real bitcoins that no one can steal.  The holder of the private key is the holder of the coins, not Mt.Gox or anybody else.

When a private key is entered via browser into a website, it becomes instantly used and invalidated.  The correct action for a website that accepts a private key as a deposit method would be to simply send the entire balance to a different address under its control (possibly using a completely separate instance of bitcoind just for this purpose), and wait for confirmations just like any other external inbound transaction.  So even if a private key could be found in "browser history", it wouldn't matter much.  It would have no money on it.
Absolutely, but in that case the key must be deleted from the wallet to avoid sending funds to it again

MITM attack, browser history, sniffers are all moot for websites that properly implement https.  I am unaware of anybody with plans (or the lack of common sense) to implement a web-based private key redemption utility without offering https.
Even with https, the browser history still contains the key. Maybe I wasn't clear though, I don't talk about navigation history, but form history
Moreover, average joe doesn't know and doesn't care what is https

How mature is pywallet? how likely is it that it just looses coins. or should you only import the keys for immediate spending.
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
Sending private keys via browsers? They are the most critical part of bitcoin it's just crazy
MITM attack, browser history, sniffers if not https, etc........

Just use pywallet, it's infinitely safer and its web interface makes it really simple to import a key

Pywallet is not simple for the average joe, as you know.  Arguably, the entire Bitcoin client is hardly simple for the average joe.  Paper wallets and the ability to redeem them on websites - AT THE TIME OF SPENDING - puts secure Bitcoins in the hands of average Joes and eliminates virtually all of the risk associated with hacking and online wallets.

What can be simpler?
My guide clearly states what to do: "run './pywallet.py --web' then open 'http://localhost:8989' in your brower"
Then, wallet directory, wallet filename, version and format are autofilled, average joe just has to fill the key and clicks the button

A private key is not much different from a Mt.Gox Redeemable Code, it's just that it holds real bitcoins that no one can steal.  The holder of the private key is the holder of the coins, not Mt.Gox or anybody else.

When a private key is entered via browser into a website, it becomes instantly used and invalidated.  The correct action for a website that accepts a private key as a deposit method would be to simply send the entire balance to a different address under its control (possibly using a completely separate instance of bitcoind just for this purpose), and wait for confirmations just like any other external inbound transaction.  So even if a private key could be found in "browser history", it wouldn't matter much.  It would have no money on it.
Absolutely, but in that case the key must be deleted from the wallet to avoid sending funds to it again

MITM attack, browser history, sniffers are all moot for websites that properly implement https.  I am unaware of anybody with plans (or the lack of common sense) to implement a web-based private key redemption utility without offering https.
Even with https, the browser history still contains the key. Maybe I wasn't clear though, I don't talk about navigation history, but form history
Moreover, average joe doesn't know and doesn't care what is https
sr. member
Activity: 350
Merit: 251
Cass:  for max security i assume you'd want to only generate keys on a virgin computer thats never been connected to the internet?  how can i be assured that when i want to spend the coins from a certain key pair that the client will accept the private key?  also the pub key i assume has virtually no chance of colliding with another pub key?  how does the blockchain know of the pub key?   by sending coins to it?

i think the public key is a hash of the private key or something, so you can not realistically make a public key you want. the block chain does not need to know the public/private key. the key gets into the chain when coins get sent to it.

so the blockchain accepts any pub key presented to it that has the correctly signed bitcoin format?

you can send coins to a non existent public key if you want. but then nobody will be able to redeem them. collisions can happen, but it is extremely unlikely. and since its a hash, you can not go in reverse.
legendary
Activity: 1764
Merit: 1002
Cass:  for max security i assume you'd want to only generate keys on a virgin computer thats never been connected to the internet?  how can i be assured that when i want to spend the coins from a certain key pair that the client will accept the private key?  also the pub key i assume has virtually no chance of colliding with another pub key?  how does the blockchain know of the pub key?   by sending coins to it?

i think the public key is a hash of the private key or something, so you can not realistically make a public key you want. the block chain does not need to know the public/private key. the key gets into the chain when coins get sent to it.

so the blockchain accepts any pub key presented to it that has the correctly signed bitcoin format?
sr. member
Activity: 350
Merit: 251
Cass:  for max security i assume you'd want to only generate keys on a virgin computer thats never been connected to the internet?  how can i be assured that when i want to spend the coins from a certain key pair that the client will accept the private key?  also the pub key i assume has virtually no chance of colliding with another pub key?  how does the blockchain know of the pub key?   by sending coins to it?

i think the public key is a hash of the private key or something, so you can not realistically make a public key you want. the block chain does not need to know the public/private key. the key gets into the chain when coins get sent to it.
sr. member
Activity: 321
Merit: 250
Firstbits: 1gyzhw
I haven't read the source yet, but can we get some form of license for this, in case people want to fork and/or transcribe it into to other languages?

It would be cool if it were a license that is compatible with the official client so it can be added as a patch, or added to SafeBit or bitcoin-alt and so on.
legendary
Activity: 1764
Merit: 1002
Cass:  for max security i assume you'd want to only generate keys on a virgin computer thats never been connected to the internet?  how can i be assured that when i want to spend the coins from a certain key pair that the client will accept the private key?  also the pub key i assume has virtually no chance of colliding with another pub key?  how does the blockchain know of the pub key?   by sending coins to it?
Pages:
Jump to: