Bitcoin Forum
November 02, 2024, 06:59:10 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 »  All
  Print  
Author Topic: Deterministic Paper Wallet Generator & Bitcoin Utility for Windows (SOURCE)  (Read 11576 times)
casascius (OP)
Mike Caldwell
VIP
Legendary
*
Offline Offline

Activity: 1386
Merit: 1140


The Casascius 1oz 10BTC Silver Round (w/ Gold B)


View Profile WWW
August 03, 2011, 10:55:05 PM
Last edit: August 04, 2011, 02:35:01 AM by casascius
 #1

I have previously published a Casascius Bitcoin Utility... I have added a feature where you can generate your own paper wallets from a passphrase.  This is for Windows, GUI application, written in C#.

With all the crap going on with bitcoin banks, the ability for the average joe to safely obtain and use paper wallets and private keys on paper needs to become more advanced.  That includes the need to not trust anybody - including me as a provider of pre-printed ones.

https://github.com/casascius/Bitcoin-Address-Utility

Example Output:

Code:
Paper Bitcoin Wallet.  Keep private, do not lose, do not allow anyone to make a copy.
Anyone with the passphrase or private keys can steal your funds.

Passphrase was:
Sample passphrase that should not be used for any real Bitcoin money transactions.
Freely give out the Bitcoin address.  The private key after each address is the key needed to
unlock funds sent to the Bitcoin address.

Bitcoin Address #1: 1FiTppJDMta99NvhUEvHpyurCxezf18YMM
Private Key: 5JwH8jmznh4RbyMBYXMwzPL45pnr8FW9TtwunSKfTz1ibyao8Ym

Bitcoin Address #2: 1PECkacG9UQJTY1cg3ytCesWUpNn4ZjcHf
Private Key: 5JGH6VorHZ8T4xYfHfb2SigHW8nnypB71FyP24S2G7aa3WTtVmU

<snip>
Bitcoin Address #9: 13nraMSmZr3ZtYAnMw7HC1HRmvrvTeEc69
Private Key: 5JFThsWbCWuMzjfXR4z11BWBoYH4FBbZSYPeeFj8kgUZ9MeuYKA

Bitcoin Address #10: 14SSLvUepeGs3ozzBWRaQPxVvAa2FXqH7q
Private Key: 5Jk4Ck9oR1KjDDf7hmtnw9k3c3capBmM4Go9iA8Cnm8tELhjUp4


Companies claiming they got hacked and lost your coins sounds like fraud so perfect it could be called fashionable.  I never believe them.  If I ever experience the misfortune of a real intrusion, I declare I have been honest about the way I have managed the keys in Casascius Coins.  I maintain no ability to recover or reproduce the keys, not even under limitless duress or total intrusion.  Remember that trusting strangers with your coins without any recourse is, as a matter of principle, not a best practice.  Don't keep coins online. Use paper or hardware wallets instead.
ffuentes
Member
**
Offline Offline

Activity: 70
Merit: 10


Only a curious passer-by / FirstBits: 13zsc1


View Profile WWW
August 03, 2011, 10:58:19 PM
 #2

Quote
We couldn't find a README for this repository, we strongly recommend adding one.

Listen Radio Libre (Electronica) Donate. (click for details).

Chilean peso VS BTC ahora: http://irage.ca/2btc.php?a=1&c=CLP&r=1

My bitcoin address
cypherdoc
Legendary
*
Offline Offline

Activity: 1764
Merit: 1002



View Profile
August 03, 2011, 11:02:04 PM
 #3

the avg joe doesn't know how to download this from github let alone generate a keypair despite how easy you think this program is.
jackjack
Legendary
*
Offline Offline

Activity: 1176
Merit: 1280


May Bitcoin be touched by his Noodly Appendage


View Profile
August 03, 2011, 11:07:42 PM
 #4

See this for why it's not a good idea: https://bitcointalk.org/index.php?topic=33683.0
If you use that, use a HUGE passphrase

Own address: 19QkqAza7BHFTuoz9N8UQkryP4E9jHo4N3 - Pywallet support: 1AQDfx22pKGgXnUZFL1e4UKos3QqvRzNh5 - Bitcointalk++ script support: 1Pxeccscj1ygseTdSV1qUqQCanp2B2NMM2
Pywallet: instructions. Encrypted wallet support, export/import keys/addresses, backup wallets, export/import CSV data from/into wallet, merge wallets, delete/import addresses and transactions, recover altcoins sent to bitcoin addresses, sign/verify messages and files with Bitcoin addresses, recover deleted wallets, etc.
casascius (OP)
Mike Caldwell
VIP
Legendary
*
Offline Offline

Activity: 1386
Merit: 1140


The Casascius 1oz 10BTC Silver Round (w/ Gold B)


View Profile WWW
August 03, 2011, 11:17:55 PM
 #5

See this for why it's not a good idea: https://bitcointalk.org/index.php?topic=33683.0
If you use that, use a HUGE passphrase

It auto generates a huge passphrase by default. 80 characters.

The passphrase idea is such that I could sell a cheap arduino based gadget or similar that does the same thing, and this utility could be used as a reference implementation to confirm that the gadget produced key pairs according to the published algorithm.

Companies claiming they got hacked and lost your coins sounds like fraud so perfect it could be called fashionable.  I never believe them.  If I ever experience the misfortune of a real intrusion, I declare I have been honest about the way I have managed the keys in Casascius Coins.  I maintain no ability to recover or reproduce the keys, not even under limitless duress or total intrusion.  Remember that trusting strangers with your coins without any recourse is, as a matter of principle, not a best practice.  Don't keep coins online. Use paper or hardware wallets instead.
bbit
Legendary
*
Offline Offline

Activity: 1330
Merit: 1000


Bitcoin


View Profile
August 04, 2011, 12:20:04 AM
 #6

Scam!!!!!


           █████████████████     ████████
          █████████████████     ████████
         █████████████████     ████████
        █████████████████     ████████
       ████████              ████████
      ████████              ████████
     ████████     ███████  ████████     ████████
    ████████     █████████████████     ████████
   ████████     █████████████████     ████████
  ████████     █████████████████     ████████
 ████████     █████████████████     ████████
████████     ████████  ███████     ████████
            ████████              ████████
           ████████              ████████
          ████████     █████████████████
         ████████     █████████████████
        ████████     █████████████████
       ████████     █████████████████
▄▄
██
██
██
██
██
██
██
██
██
██     
██
██
▬▬ THE LARGEST & MOST TRUSTED ▬▬
      BITCOIN SPORTSBOOK     
   ▄▄
██
██
██
██
██
██
██
██
██
██     
██
██
             ▄▄▄▄▀▀▀▀▄
     ▄▄▄▄▀▀▀▀        ▀▄▄▄▄           
▄▀▀▀▀                 █   ▀▀▀▀▀▀▀▄▄
█                    ▀▄          █
 █   ▀▌     ██▄        █          █               
 ▀▄        ▐████▄       █        █
  █        ███████▄     ▀▄       █
   █      ▐████▄█████████████████████▄
   ▀▄     ███████▀                  ▀██
    █      ▀█████    ▄▄        ▄▄    ██
     █       ▀███   ████      ████   ██
     ▀▄        ██    ▀▀        ▀▀    ██
      █        ██        ▄██▄        ██
       █       ██        ▀██▀        ██
       ▀▄      ██    ▄▄        ▄▄    ██
        █      ██   ████      ████   ██
         █▄▄▄▄▀██    ▀▀        ▀▀    ██
               ██▄                  ▄██
                ▀████████████████████▀




  CASINO  ●  DICE  ●  POKER   
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
   24 hour Customer Support   

▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
casascius (OP)
Mike Caldwell
VIP
Legendary
*
Offline Offline

Activity: 1386
Merit: 1140


The Casascius 1oz 10BTC Silver Round (w/ Gold B)


View Profile WWW
August 04, 2011, 02:32:24 AM
 #7

Update:  This can be compiled without needing any development tools installed.  All you need is the .NET Framework, which is almost certainly already on your machine if you run any recent version of Windows.

When you install the .NET Framework, there should be a compiler at C:\Windows\Microsoft.NET\Framework64\v3.5\csc.exe  (Framework instead of Framework64 if you're using 32-bit Windows)

Here is the command line to compile from source.  Put all the .cs files from github in the same directory, along with BouncyCastle.crypto.dll.  Run this from the command line.  It will create bitcoinutility.exe.

C:\Windows\Microsoft.NET\Framework64\v3.5\csc.exe /out:bitcoinutility.exe Bitcoin.cs Form1.cs Form1.designer.cs Program.cs Walletgen.cs Walletgen.Designer.cs /R:BouncyCastle.Crypto.dll


Companies claiming they got hacked and lost your coins sounds like fraud so perfect it could be called fashionable.  I never believe them.  If I ever experience the misfortune of a real intrusion, I declare I have been honest about the way I have managed the keys in Casascius Coins.  I maintain no ability to recover or reproduce the keys, not even under limitless duress or total intrusion.  Remember that trusting strangers with your coins without any recourse is, as a matter of principle, not a best practice.  Don't keep coins online. Use paper or hardware wallets instead.
nhodges
Sr. Member
****
Offline Offline

Activity: 322
Merit: 251


View Profile
August 04, 2011, 02:40:48 AM
 #8

Scam!!!!!

Please point out what line in the source code causes you to truly believe this statement.

ctoon6
Sr. Member
****
Offline Offline

Activity: 350
Merit: 251



View Profile
August 04, 2011, 03:03:14 AM
 #9

THANK YOU!!!!!!!!

i am just so happy i almost have tears  Cry

bbit
Legendary
*
Offline Offline

Activity: 1330
Merit: 1000


Bitcoin


View Profile
August 04, 2011, 03:06:05 AM
 #10

Scam!!!!!

Please point out what line in the source code causes you to truly believe this statement.

Your kidding right?


           █████████████████     ████████
          █████████████████     ████████
         █████████████████     ████████
        █████████████████     ████████
       ████████              ████████
      ████████              ████████
     ████████     ███████  ████████     ████████
    ████████     █████████████████     ████████
   ████████     █████████████████     ████████
  ████████     █████████████████     ████████
 ████████     █████████████████     ████████
████████     ████████  ███████     ████████
            ████████              ████████
           ████████              ████████
          ████████     █████████████████
         ████████     █████████████████
        ████████     █████████████████
       ████████     █████████████████
▄▄
██
██
██
██
██
██
██
██
██
██     
██
██
▬▬ THE LARGEST & MOST TRUSTED ▬▬
      BITCOIN SPORTSBOOK     
   ▄▄
██
██
██
██
██
██
██
██
██
██     
██
██
             ▄▄▄▄▀▀▀▀▄
     ▄▄▄▄▀▀▀▀        ▀▄▄▄▄           
▄▀▀▀▀                 █   ▀▀▀▀▀▀▀▄▄
█                    ▀▄          █
 █   ▀▌     ██▄        █          █               
 ▀▄        ▐████▄       █        █
  █        ███████▄     ▀▄       █
   █      ▐████▄█████████████████████▄
   ▀▄     ███████▀                  ▀██
    █      ▀█████    ▄▄        ▄▄    ██
     █       ▀███   ████      ████   ██
     ▀▄        ██    ▀▀        ▀▀    ██
      █        ██        ▄██▄        ██
       █       ██        ▀██▀        ██
       ▀▄      ██    ▄▄        ▄▄    ██
        █      ██   ████      ████   ██
         █▄▄▄▄▀██    ▀▀        ▀▀    ██
               ██▄                  ▄██
                ▀████████████████████▀




  CASINO  ●  DICE  ●  POKER   
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
   24 hour Customer Support   

▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
ctoon6
Sr. Member
****
Offline Offline

Activity: 350
Merit: 251



View Profile
August 04, 2011, 03:10:21 AM
 #11

Scam!!!!!

Please point out what line in the source code causes you to truly believe this statement.

Your kidding right?

its obviously satire of the current events with UABB and mybitcoin.

edit: also could you provide bins as well, most people will never go through the trouble to compile this.

ctoon6
Sr. Member
****
Offline Offline

Activity: 350
Merit: 251



View Profile
August 04, 2011, 03:20:06 AM
 #12

some problems

Code:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\form>cd..

C:\Users>cd..

C:\>cd keys

C:\keys>C:\Windows\Microsoft.NET\Framework64\v3.5\csc.exe /out:bitcoinutility.ex
e Bitcoin.cs Form1.cs Form1.designer.cs Program.cs Walletgen.cs Walletgen.Design
er.cs /R:BouncyCastle.Crypto.dll
Microsoft (R) Visual C# 2008 Compiler version 3.5.30729.5420
for Microsoft (R) .NET Framework version 3.5
Copyright (C) Microsoft Corporation. All rights reserved.

Bitcoin.cs(81,17): warning CS0162: Unreachable code detected
Bitcoin.cs(90,21): warning CS0162: Unreachable code detected
Bitcoin.cs(109,17): warning CS0162: Unreachable code detected
Bitcoin.cs(120,17): warning CS0162: Unreachable code detected
Bitcoin.cs(129,21): warning CS0162: Unreachable code detected

C:\keys>

when i run the program it seems to work okay until i push generate wallet

casascius (OP)
Mike Caldwell
VIP
Legendary
*
Offline Offline

Activity: 1386
Merit: 1140


The Casascius 1oz 10BTC Silver Round (w/ Gold B)


View Profile WWW
August 04, 2011, 03:30:08 AM
Last edit: August 04, 2011, 03:43:33 AM by casascius
 #13

some problems

...
when i run the program it seems to work okay until i push generate wallet

It's throwing a fit over not having a resource file compiled in.  I am looking up what else needs to be on the command line for that to happen.

EDIT: I have pushed a new commit to remove the dependency on the resource file.  The resource file only had one text string I just moved into the code instead.  The csc.exe compiler may not be able to handle resource files without installing other tools.  Update source and try again.

Companies claiming they got hacked and lost your coins sounds like fraud so perfect it could be called fashionable.  I never believe them.  If I ever experience the misfortune of a real intrusion, I declare I have been honest about the way I have managed the keys in Casascius Coins.  I maintain no ability to recover or reproduce the keys, not even under limitless duress or total intrusion.  Remember that trusting strangers with your coins without any recourse is, as a matter of principle, not a best practice.  Don't keep coins online. Use paper or hardware wallets instead.
cypherdoc
Legendary
*
Offline Offline

Activity: 1764
Merit: 1002



View Profile
August 04, 2011, 04:09:26 AM
 #14

some problems

...
when i run the program it seems to work okay until i push generate wallet

It's throwing a fit over not having a resource file compiled in.  I am looking up what else needs to be on the command line for that to happen.

EDIT: I have pushed a new commit to remove the dependency on the resource file.  The resource file only had one text string I just moved into the code instead.  The csc.exe compiler may not be able to handle resource files without installing other tools.  Update source and try again.

casascius:  don't take me wrong.  i've read your previous threads and puzzles and i think you're an awesome coder who's doing great things for the community. its just that non tech GUI users like me can't utilize complicated command line scripts like you're writing.  its really too bad b/c i love the outcomes of what you're doing.
ctoon6
Sr. Member
****
Offline Offline

Activity: 350
Merit: 251



View Profile
August 04, 2011, 04:15:15 AM
 #15

Code:
C:\keys>C:\Windows\Microsoft.NET\Framework64\v3.5\csc.exe /out:bitcoinutility.ex
e Bitcoin.cs Form1.cs Form1.designer.cs Program.cs Walletgen.cs Walletgen.Design
er.cs /R:BouncyCastle.Crypto.dll
Microsoft (R) Visual C# 2008 Compiler version 3.5.30729.5420
for Microsoft (R) .NET Framework version 3.5
Copyright (C) Microsoft Corporation. All rights reserved.

Bitcoin.cs(81,17): warning CS0162: Unreachable code detected
Bitcoin.cs(90,21): warning CS0162: Unreachable code detected
Bitcoin.cs(109,17): warning CS0162: Unreachable code detected
Bitcoin.cs(120,17): warning CS0162: Unreachable code detected
Bitcoin.cs(129,21): warning CS0162: Unreachable code detected

C:\keys>

i think its working

i push generate wallet and it seems to work.

casascius (OP)
Mike Caldwell
VIP
Legendary
*
Offline Offline

Activity: 1386
Merit: 1140


The Casascius 1oz 10BTC Silver Round (w/ Gold B)


View Profile WWW
August 04, 2011, 04:32:03 AM
 #16

casascius:  don't take me wrong.  i've read your previous threads and puzzles and i think you're an awesome coder who's doing great things for the community. its just that non tech GUI users like me can't utilize complicated command line scripts like you're writing.  its really too bad b/c i love the outcomes of what you're doing.

I could compile it and give binaries but then I run the risk of people saying don't trust it because they can't verify it.  And for good reason.  They would point out that if I were a scammer I could just put a trojan in the binaries and rip you guys off, and with all the ripoffs lately, how can you blame them?  I suppose one thing that sets me apart is I give out my real name and address, but the doubters will be the first to chime in that it could be "fake".

As you recognize, there's a gap between secure, convenient, and cheap.  If you trust me, I sell paper bitcoin wallets in the mail.  That's convenient and cheap, and only insecure to the extent that you're trusting me to not rip you off, otherwise they bulletproof.

If I were to write this program to run on a gadget I could sell you that printed your addresses on a roll of paper, then it'd be secure and convenient, but not cheap.

And of course, compiling these programs is secure and cheap (free), but not convenient.

The closer these three points of the triangle come together, the sooner Bitcoin will take off into the stratosphere.


Companies claiming they got hacked and lost your coins sounds like fraud so perfect it could be called fashionable.  I never believe them.  If I ever experience the misfortune of a real intrusion, I declare I have been honest about the way I have managed the keys in Casascius Coins.  I maintain no ability to recover or reproduce the keys, not even under limitless duress or total intrusion.  Remember that trusting strangers with your coins without any recourse is, as a matter of principle, not a best practice.  Don't keep coins online. Use paper or hardware wallets instead.
ctoon6
Sr. Member
****
Offline Offline

Activity: 350
Merit: 251



View Profile
August 04, 2011, 04:39:41 AM
 #17

build in some sort of way to generate an actual wallet.dat file. it would probably be easier than trying to edit in an existing wallet.dat. and would probably be safer. also what does WIF mean and what exacly do the arrows do, i type some stuff into the 1st fied and push an arrow and it gives a .net error i guess you call it. otherwise people would just use vanitygen, it makes thousands of addresses a second.

casascius (OP)
Mike Caldwell
VIP
Legendary
*
Offline Offline

Activity: 1386
Merit: 1140


The Casascius 1oz 10BTC Silver Round (w/ Gold B)


View Profile WWW
August 04, 2011, 04:40:30 AM
 #18

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I have uploaded a binary I compiled myself to:

http://166.70.147.8/btc/btcaddress.zip

The sha256 hash of the zip file is:
cc515992ca7bcc0a1c42e1527ebdf496ba26338805fe237e7371eaed2c20cf44
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.17 (MingW32)

iQEcBAEBAgAGBQJOOiKeAAoJEFou6PHxF1oje6MIALTPd0R0PopSO7DU7YU7MO1z
bQYEo2B9rsA8Qd3oL4UZ0mcSKOGcb7nyqgd6w7xHO6VcB2cBWT3L3QQRqjJP8p+p
4hwsvRxnvFAm1mlp0ecCc1YMxg0VDIZjCbeB97gGGAe0hh+YU79c2v62u2bIkw0O
nV1cZYJATiohLJXMZCegn1D5bMUYz6EsKGsLDFPNKw5TyMHBYw/lthRGsNKEKKuJ
1P2o7K+mOE7ZbE7+OFip8wazxGaTq4+TW3DxAfRxRXl/9kRnTeaKaMoqElVp5aCk
J8ksq1yYQIwa/+EaO30GxDwp19ZHY8Uz+jBJocPV/hY1itIYVVbXKn6et1QGeck=
=trrV
-----END PGP SIGNATURE-----

Companies claiming they got hacked and lost your coins sounds like fraud so perfect it could be called fashionable.  I never believe them.  If I ever experience the misfortune of a real intrusion, I declare I have been honest about the way I have managed the keys in Casascius Coins.  I maintain no ability to recover or reproduce the keys, not even under limitless duress or total intrusion.  Remember that trusting strangers with your coins without any recourse is, as a matter of principle, not a best practice.  Don't keep coins online. Use paper or hardware wallets instead.
casascius (OP)
Mike Caldwell
VIP
Legendary
*
Offline Offline

Activity: 1386
Merit: 1140


The Casascius 1oz 10BTC Silver Round (w/ Gold B)


View Profile WWW
August 04, 2011, 04:43:01 AM
 #19

build in some sort of way to generate an actual wallet.dat file. it would probably be easier than trying to edit in an existing wallet.dat. and would probably be safer. also what does WIF mean and what exacly do the arrows do, i type some stuff into the 1st fied and push an arrow and it gives a .net error i guess you call it. otherwise people would just use vanitygen, it makes thousands of addresses a second.

Yeah I just don't know how to do that.  Not familiar with working with the Berkeley DB.  And I have heard there's multiple versions of this file format - not sure how much that matters.  I have been using a patched bitcoind I downloaded from BitBills.com to re-import private keys.

WIF = Wallet Import Format = the private key made into a 51-character base58 string that starts with a 5 and contains a checksum to guard against typos.  The format required by the utility from BitBills.

Companies claiming they got hacked and lost your coins sounds like fraud so perfect it could be called fashionable.  I never believe them.  If I ever experience the misfortune of a real intrusion, I declare I have been honest about the way I have managed the keys in Casascius Coins.  I maintain no ability to recover or reproduce the keys, not even under limitless duress or total intrusion.  Remember that trusting strangers with your coins without any recourse is, as a matter of principle, not a best practice.  Don't keep coins online. Use paper or hardware wallets instead.
cypherdoc
Legendary
*
Offline Offline

Activity: 1764
Merit: 1002



View Profile
August 04, 2011, 05:55:07 AM
 #20

whoa, downloaded your binary.  very cool.  you're right; now i'm worried its gonna run some kinda wallet stealer Wink

what do i do at this point?  just send some coin to one of my generated pub keys and save the private key?
Pages: [1] 2 3 »  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!