Bitcoin Forum
June 19, 2019, 08:00:59 PM *
News: Latest Bitcoin Core release: 0.18.0 [Torrent] (New!)
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 »  All
  Print  
Author Topic: Bitgen - tool for addresses, signatures, encryption and transactions  (Read 6413 times)
bit22gen
Jr. Member
*
Offline Offline

Activity: 45
Merit: 1


View Profile
July 03, 2015, 03:24:32 PM
Last edit: March 31, 2017, 08:34:09 PM by bit22gen
Merited by Financisto (1)
 #1

Bitgen is a command line tool for bitcoin addresses and transactions.

This is the project home page:
http://bitgen.org/

Bitgen can generate bitcoin addresses in different ways and supports generating postscript files with the generated addresses.
Bitgen can also do many other bitcoin related tasks, such as decoding bitcoin transactions and scripts.
1560974459
Hero Member
*
Offline Offline

Posts: 1560974459

View Profile Personal Message (Offline)

Ignore
1560974459
Reply with quote  #2

1560974459
Report to moderator
1560974459
Hero Member
*
Offline Offline

Posts: 1560974459

View Profile Personal Message (Offline)

Ignore
1560974459
Reply with quote  #2

1560974459
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1560974459
Hero Member
*
Offline Offline

Posts: 1560974459

View Profile Personal Message (Offline)

Ignore
1560974459
Reply with quote  #2

1560974459
Report to moderator
1560974459
Hero Member
*
Offline Offline

Posts: 1560974459

View Profile Personal Message (Offline)

Ignore
1560974459
Reply with quote  #2

1560974459
Report to moderator
1560974459
Hero Member
*
Offline Offline

Posts: 1560974459

View Profile Personal Message (Offline)

Ignore
1560974459
Reply with quote  #2

1560974459
Report to moderator
ikydesu
Hero Member
*****
Offline Offline

Activity: 686
Merit: 500

fb.com/Bitky.shop | Bitcoin Merch!Premium Quality!


View Profile WWW
July 03, 2015, 04:39:07 PM
 #2

Can you explain more the details about this project? Where the address come? It's mean from the wallet? How to manage the address?


~iki
bit22gen
Jr. Member
*
Offline Offline

Activity: 45
Merit: 1


View Profile
July 03, 2015, 04:55:55 PM
 #3

In the easiest setup, the bitgen software can generate random numbers by using the /dev/random generator.

To use this method, just give the following command:
./bitgen random

This will give you ps-files with the private key and public address (as well as text files with the same information).

However, it is also possible to generate a random number manually, and give that to bitgen.
If you throw a 6-sided dice 100 times, this will give you 256 bits of entropy, which is used to calculate the private key.

Throwing a single dice 100 times is a bit tedious, but if you throw 10 dice 10 times, this is actually quickly done.

Why not letting /dev/random generate the random number then?

Subverting random number generation is a wet dream of espionage agencies.
/dev/random is probably generating good random numbers, but you never know....
The NSA may know some weakness in the default random number generator.

For large amounts of money, throwing the 10 dice yourself will make you sleep well at night.

The algorithm in bitgen for converting from a base-6 number to a base 2 number is very simple,
and the source code is provided so anyone can verify the calculation.

For example, the following bitgen command will generate a bitcoin private key from 100 dice throws:

./bitgen dice 5123512351523523525525252552531523515235123512531523512355525253566616166262661 662626626363663636363



melisande
Sr. Member
****
Offline Offline

Activity: 434
Merit: 250



View Profile
July 04, 2015, 05:42:19 AM
 #4

This is a beautiful master piece but it seems it is not working on Linux yet, also how safe is the fund stored in the account.
hexafraction
Sr. Member
****
Offline Offline

Activity: 378
Merit: 250

Tips welcomed: 1CF4GhXX1RhCaGzWztgE1YZZUcSpoqTbsJ


View Profile
July 04, 2015, 07:41:46 PM
 #5

also how safe is the fund stored in the account.

The source is available to you, go and check Smiley

It's as strong as your entropy. If you decide to be lazy about rolling dice and enter the pattern 111111... for the dice rolls, not so secure. If you use your system's entropy pool, more so.

Also, compiling it works for me (with basic build environment). What distro/compiler are you using, nd what issues are you having?

I have recently become active again after a long period of inactivity. Cryptographic proof that my account has not been compromised is available.
bit22gen
Jr. Member
*
Offline Offline

Activity: 45
Merit: 1


View Profile
August 24, 2015, 08:33:52 PM
 #6

Bitgen 0.5 has been released:

http://bitcoin-gen.org/

The new 0.5 release adds support for:
* Mnemonics
* Invoice generation
* Mini private key
* Hierarchical random address generation (for advanced users)
* Vanity addresses (Experimental support)

alwinlinzee
Sr. Member
****
Offline Offline

Activity: 434
Merit: 250



View Profile
August 26, 2015, 01:24:24 PM
 #7

In the easiest setup, the bitgen software can generate random numbers by using the /dev/random generator.

To use this method, just give the following command:
./bitgen random

This will give you ps-files with the private key and public address (as well as text files with the same information).

However, it is also possible to generate a random number manually, and give that to bitgen.
If you throw a 6-sided dice 100 times, this will give you 256 bits of entropy, which is used to calculate the private key.

Throwing a single dice 100 times is a bit tedious, but if you throw 10 dice 10 times, this is actually quickly done.

Why not letting /dev/random generate the random number then?

Subverting random number generation is a wet dream of espionage agencies.
/dev/random is probably generating good random numbers, but you never know....
The NSA may know some weakness in the default random number generator.

For large amounts of money, throwing the 10 dice yourself will make you sleep well at night.

The algorithm in bitgen for converting from a base-6 number to a base 2 number is very simple,
and the source code is provided so anyone can verify the calculation.

For example, the following bitgen command will generate a bitcoin private key from 100 dice throws:

./bitgen dice 5123512351523523525525252552531523515235123512531523512355525253566616166262661 662626626363663636363




Though your explanations are beautiful but I still can not get how I can use this tool for bitcoin cold storage.

Jeremycoin
Legendary
*
Offline Offline

Activity: 980
Merit: 1003


𝓗𝓞𝓓𝓛


View Profile
August 26, 2015, 04:27:24 PM
 #8

Do we need an Internet Connection to generate a new address?
Who knows it could be offline Grin

Faucet used to be profitable
bit22gen
Jr. Member
*
Offline Offline

Activity: 45
Merit: 1


View Profile
August 26, 2015, 07:26:26 PM
 #9


Quote
Though your explanations are beautiful but I still can not get how I can use this tool for bitcoin cold storage.

Bitgen generates a bitcoin address and the corresponding private key.
(The private key is given in various forms, WIF, QR-code, mnemonic etc.)

In the simplest case, use for example the following command:
 $ bitgen random

The key information is saved in postscript/pdf-files as well as txt files.

To use it for cold storage, simply send bitcoins to the public address, and keep the postscript files in several safe places,
possible printed out on paper.

When the bitcoins should be used after the cold storage period, a wallet can be used to redeem to funds with the private key.
Most wallets can be used for that purpose.

For example, in electrum use "Import private key".
In the "android bitcoin app", use "Sweep paper wallet".

Bitgen is similar to for example bitaddress.org, but is used from the command line instead of in a web browser.
This makes it easy to use from for example a raspberry pie, or outdated PC hardware.

Ideally, the computer used for cold storage key generation should never be connected to the internet
since that is a security risk.

Bitgen is completely offline, and should be used without any network connection.
RGBKey
Hero Member
*****
Offline Offline

Activity: 840
Merit: 629


rgbkey.github.io/pgp.txt


View Profile WWW
August 26, 2015, 11:36:22 PM
 #10

Interesting, just another tool for generating addresses? Can it do vanity addresses? It would be nice to have a tool other than vanitygen.
OBAViJEST
Hero Member
*****
Offline Offline

Activity: 714
Merit: 500



View Profile WWW
September 04, 2015, 04:31:24 AM
 #11

The NSA may know some weakness in the default random number generator.

The NSA definitely knows how to crack stuff like this...but would they really bother with users like us? We're small fries  Grin
Financisto
Hero Member
*****
Offline Offline

Activity: 575
Merit: 561

0=m


View Profile WWW
September 13, 2015, 11:51:53 AM
 #12

Bitgen version 0.4 has been released:

http://bitcoin-gen.org/

The bitgen software generates bitcoin addresses from a given or generated random number.
The generated addresses can be used for cold storage.


I've just added this precious piece of software to my list here (if you don't mind):

https://bitcointalk.org/index.php?topic=1164163.0

Tens of features, very well done! Congratulations for the effort!

Do you have any Github/Gitlab repository for that?

If not, I suggest that you create one.

Keep up the good work.

0=m BitcoinTalk's Escrow Providers: Ranking & Blacklist 0=m If you think freedom matters, please help keeping these privacy projects alive (donating some coins): Tor 0=m Tails 0=m Qubes OS 0=m Whonix 0=m ProtonMail 0=m Tutanota 0=m VeraCrypt 0=m PrivacyTools.io m=0
bit22gen
Jr. Member
*
Offline Offline

Activity: 45
Merit: 1


View Profile
September 18, 2015, 08:20:43 PM
 #13

Interesting, just another tool for generating addresses? Can it do vanity addresses? It would be nice to have a tool other than vanitygen.

Yes, it supports vanity addresses, but it is currently too slow be be very useful.
That will improve in future versions.

Quote
I've just added this precious piece of software to my list here (if you don't mind):

https://bitcointalk.org/index.php?topic=1164163.0

Tens of features, very well done! Congratulations for the effort!

Do you have any Github/Gitlab repository for that?

If not, I suggest that you create one.

Keep up the good work.

Thanks for adding the software there.

The comments regarding the brainwallet address generation are very valid.
It would be easy to use a sentence that is predictable and therefore results in low entropy.
Salt and KDF would certainly improve the security, should hopefully be included before version 1.0 is released.






bit22gen
Jr. Member
*
Offline Offline

Activity: 45
Merit: 1


View Profile
September 18, 2015, 08:55:45 PM
 #14

Version 0.6 of the bitgen package has been released:

http://bitcoin-gen.org/

This version supports compressed public keys, although it still generates uncompressed by default.

The major new feature in this release is support for signature generation and verification.
This functionality is included in a separate command line application: bitsig.

Unlike bitgen, the bitsig application is stateful and stores a keychain in a local database.

With this keychain it is possible to sign and verify both messages and files.
Bitsig currently support the Armory, InputsIo and Multibit message signature formats.

It also introduces a new file format for full file signatures. This makes is possible to use
bitsig instead of PGP for file signatures.

To create a new private key for signature generation, the same methods are possible as in bitgen.
The easiest method to generate a private key is the following
 $ bitsig random

This generates a random private key for you and stores it in the keychain.

To sign a message using the multibit format the following command can be used:

$ bitsig signMultibit "My message".

This will give an output similar to the following:


-----BEGIN BITCOIN SIGNED MESSAGE-----
My message
-----BEGIN BITCOIN SIGNATURE-----
Version: Bitcoin-qt (1.0)
Address: 1oqJSLKdZThXreezwtdNjMM2QTG3xwE2h

G6XuhBvnDHKoYabdFdxT5ZwcSJQPCwy8D65EBC+sGdedQvhGrZ2V5R9LWSLfRrYws+zUi7hf6yi9Nkb36/Db92Q=
-----END BITCOIN SIGNATURE-----


To verify the message, use the following command (with the proper file name):
$ bitsig verifyMultibit B98F3492.multibit

This will print the following:
=====================
Verifying signature...
Verify OK for multibit file
Signature address: 1oqJSLKdZThXreezwtdNjMM2QTG3xwE2h
=====================

Importing public addresses is done with "bitsig import" for example:
$ bitsig import 1Bb2NBwDrqUUBHcGsHYTArDqLJ7ECGNe33 Bob

Then a hash checksum has to be specified for security reasons:
$ bitsig import 1Bb2NBwDrqUUBHcGsHYTArDqLJ7ECGNe33 Bob B374DD02

The bitgen package is now signed with my signature public key which is:

1L5TnzknDGZuHde9Uz8mBjZAq6tz8MnN97

The signatures are stored in "bitsig" files.
http://bitcoin-gen.org/bitgen_0.6.tar.gz.bitsig

In order to use the PGP-like functionality and verify the integrity of the archive,
the following command can be used:

$ bitsig verify bitgen_0.6.tar.gz bitgen_0.6.tar.gz.bitsig 1L5TnzknDGZuHde9Uz8mBjZAq6tz8MnN97

But even better is to store the address in the keychain for future use:

$ bitsig import 1L5TnzknDGZuHde9Uz8mBjZAq6tz8MnN97 bit22gen
$ bitsig import 1L5TnzknDGZuHde9Uz8mBjZAq6tz8MnN97 bit22gen 5981B032

When the address is stored, the address need not be specified:
$ bitsig verify bitgen_0.6.tar.gz bitgen_0.6.tar.gz.bitsig

This will give:
==============================
The signed file      : bitgen_0.6.tar.gz
The signature file   : bitgen_0.6.tar.gz.bitsig
Calculated address   : 1L5TnzknDGZuHde9Uz8mBjZAq6tz8MnN97
No public address given, looking in keychain
Found the address in the keychain
Verifying signature....
Verify OK for address: 1L5TnzknDGZuHde9Uz8mBjZAq6tz8MnN97
Address alias: bit22gen
==============================
Financisto
Hero Member
*****
Offline Offline

Activity: 575
Merit: 561

0=m


View Profile WWW
September 19, 2015, 02:51:03 AM
Last edit: September 20, 2015, 05:30:36 AM by Financisto
 #15

Interesting, just another tool for generating addresses? Can it do vanity addresses? It would be nice to have a tool other than vanitygen.
This one has tons of features over vanitygen.

[...]
Salt and KDF would certainly improve the security, should hopefully be included before version 1.0 is released.
Nice to hear that. It's good to see that you worry about security.

BTW thanks for developing that dice feature to help improve random key generation. It's almost like Diceware feature. It's very helpful!

Consider creating a Github/Gitlab repository for Bitgen.

0=m BitcoinTalk's Escrow Providers: Ranking & Blacklist 0=m If you think freedom matters, please help keeping these privacy projects alive (donating some coins): Tor 0=m Tails 0=m Qubes OS 0=m Whonix 0=m ProtonMail 0=m Tutanota 0=m VeraCrypt 0=m PrivacyTools.io m=0
sorryforthat
Hero Member
*****
Offline Offline

Activity: 770
Merit: 500



View Profile
September 19, 2015, 03:36:21 AM
 #16

Interesting, just another tool for generating addresses? Can it do vanity addresses? It would be nice to have a tool other than vanitygen.

Yes, it supports vanity addresses, but it is currently too slow be be very useful.
That will improve in future versions.


With this, will there be any work on getting a vanity pool set up. We currently only have one option to choose from and new updated pool might get some attention
bit22gen
Jr. Member
*
Offline Offline

Activity: 45
Merit: 1


View Profile
September 20, 2015, 09:46:09 PM
 #17

Here are example pdf files generated with bitgen:

http://bitcoin-gen.org/sample_private.pdf

http://bitcoin-gen.org/sample_share.pdf


WingTsun
Member
**
Offline Offline

Activity: 119
Merit: 10

❖ Bitcoin Enthusiast / Developer ❖


View Profile
September 21, 2015, 12:12:58 AM
 #18

Looks like something new and unique. Good job! Wink
But there are code issues. You have an error already in your first like of code.

❖ Professional Bitcoin Developer ❖ Ignore the negative feedback ❖
RussianRaibow
Hero Member
*****
Offline Offline

Activity: 630
Merit: 500

I AM A SCAMMER


View Profile WWW
September 21, 2015, 12:28:47 AM
 #19

Given from and to addresses along with the amount to send, can this tool create raw Tx ?

I AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMERI AM A SCAMMER
bit22gen
Jr. Member
*
Offline Offline

Activity: 45
Merit: 1


View Profile
September 21, 2015, 04:48:25 PM
 #20

Quote
Given from and to addresses along with the amount to send, can this tool create raw Tx ?

It does not handle transactions, but that may be added in the future.
Current development focus is bitcoin address handling and features related to that.

Pages: [1] 2 3 »  All
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!