Bitcoin Forum
November 04, 2024, 12:32:52 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2]  All
  Print  
Author Topic: Is there a bech32 vanity address generator?  (Read 700 times)
nullius
Copper Member
Hero Member
*****
Offline Offline

Activity: 630
Merit: 2614


If you don’t do PGP, you don’t do crypto!


View Profile WWW
February 03, 2018, 05:55:12 AM
 #21

Slightly offtopic question; please followup-to this thread:

If you want code to look at and see how it is done then check out sipa's implementation of Bech32. It has almost all the programming languages you want.

Yes, that’s where I got the C code for my bech32 shell utility.  I mentioned sipa’s code above, but omitted to link it.  (The one time I don’t...)

Do you know if anybody has written a quality C implementation of error correction?  I’ve been intending to port sipa’s Javascript demonstration code for that purpose; but if somebody else already did (or wrote good new code), I don’t wish to duplicate efforts.

This would not be useful for address generators, vanity or otherwise; but it would be very useful for my bech32 shell utility, as well as some other things I have in the pipeline.

Kakmakr
Legendary
*
Offline Offline

Activity: 3542
Merit: 1965

Leading Crypto Sports Betting & Casino Platform


View Profile
February 03, 2018, 06:22:56 AM
 #22

Apologies for the slow reply.  Catching up here a bit out of order:

Is there currently a generator that creates normal Bech32 {SegWit} paper wallets? The http://www.bitaddress.org/ is still creating old legacy Bitcoin addresses. By normal, < I meant to say not Vanity addresses >

If we want to move to SegWit / Bech32, then these tools must be readily available. A lot of people are forced to use dodgy online wallet providers to create these SegWit addresses. <Most of these cannot even be signed by the owner of the coins>  

I didn’t mention, my “vanity” generator sort of started as a bulk Segwit address generator which grew a regex loop.  It can rapidly output however many hundreds or thousands of addresses you may desire, “3” nested or Bech32, in a shell script friendly format with each line containing an address and the corresponding private key WIF.  It’s made for piping to something else, for specialized use cases only.  I didn’t mention this, because I strongly encourage users to use only HD wallets (other than for vanity addresses, of course).

See below re easyseed.

There is. As you're in with the chipmixer campaign, darkstar posted one (maybe try checking that thread). I'm not sure what it is exactly, you could always PM him also.

Mine probably does similarly to what I presume ChipMixer’s would do:  Fast bulk generation of pairs of addresses and WIFs.

I don't think programming a proof-of-concept vanity address generator in C would be that hard, if we use core's library to generate the keys. Optimization could come later, but implementing Bech32 in C would not be that difficult.

It’s not hard—at least, up to that point, it isn’t.  Mine started as an afternoon project.  There’s no need to implement Bech32 itself:  I just use sipa’s Bech32 reference code, the same as I used in my bech32 shell utility (Github).



Kakmakr, for safe paper wallet use:  I’ve considered adding BIP 32 derivation to easyseed (Github).  That would do what you want, in an HD wallet you could back up with a mnemonic phrase in your choice from eight languages.  easyseed’s creation was motivated by my own need for secure, simple code to use on an airgap machine—no saved webpage junk!  Much if not most of its development process has been testing; and in that process, I caught a bug in the BIP 39 French wordlist.  But as of now, the most it will give you is a BIP 39 mnemonic phrase and the corresponding BIP 32 master extended private key.

This is solid, working code.  If I were to add BIP 32 derivation so it could generate addresses, would that suit your needs for airgap/paper wallet use?

On the regex, would if/else statements in plain text solve it or just make it much worse.

The original vanitygen runs much slower in regex mode, right? It would be better to first attempt to run in a "prefix mode" like vanitygen if possible that just checks the equality of the first characters, and doesn't evaluate a regular expression.

I could add that; but first, I should work on getting code published.

Also, I think a higher priority is thread support.  Right now, I simply run one instance per CPU core; this is a probabilistic process, so there is no need for synchronization of state.  Threads should be simple here, but may have problems cross-platform—what do you think, RGBKey?


I use Windows, I could compile/test if needed.

Thanks.  I will initially put something Unix-only on Github, then work on making ready for some sort of Windows version.  What is your Windows development environment?  I think I need to try going the mingw route, due to use of POSIX getopt(), POSIX regex, etc.


What's efi/MBR? I only know MBR as being a register on an OS.

Edit: oh is it to do with hard drives (I did a Google search).

It doesn’t have to do with hard drives, so much as with how the computer finds the OS on boot media and hands off control to it (roughly speaking).  My favoured OS (FreeBSD) packages two different sets of install images; and if you use the new-stuff-only one with an older computer, it will behave much as you described.  That’s why I thought of it.  (Side note:  I spoke imprecisely:  It’s really MBR vs. GPT and BIOS vs. EFI; but all these issues are related.  Setting the record straight for other readers/searchers. </offtopic>)


I should probably spend less time on the forum and more time on code.


Edit:  Added a hyperlink to sipa’s reference C code.

Thanks for the comprehensive and detailed answer, but unfortunately this is still not user-friendly enough for the average Bitcoin user out there. Yes, I think it would be nice if this could be done in a nice GUI interface and not in a console or raw code.

The guys who created http://www.bitaddress.org/ did a pretty good job to make it idiot friendly.  Grin

The wallet generator at https://walletgenerator.net/ is even better, because they added a bunch of Alt coins too. <very handy>

Hope you see this from the Users perspective and not the developer <technical> ^smile^


..Stake.com..   ▄████████████████████████████████████▄
   ██ ▄▄▄▄▄▄▄▄▄▄            ▄▄▄▄▄▄▄▄▄▄ ██  ▄████▄
   ██ ▀▀▀▀▀▀▀▀▀▀ ██████████ ▀▀▀▀▀▀▀▀▀▀ ██  ██████
   ██ ██████████ ██      ██ ██████████ ██   ▀██▀
   ██ ██      ██ ██████  ██ ██      ██ ██    ██
   ██ ██████  ██ █████  ███ ██████  ██ ████▄ ██
   ██ █████  ███ ████  ████ █████  ███ ████████
   ██ ████  ████ ██████████ ████  ████ ████▀
   ██ ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ ██
   ██            ▀▀▀▀▀▀▀▀▀▀            ██ 
   ▀█████████▀ ▄████████████▄ ▀█████████▀
  ▄▄▄▄▄▄▄▄▄▄▄▄███  ██  ██  ███▄▄▄▄▄▄▄▄▄▄▄▄
 ██████████████████████████████████████████
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█  ▄▀▄             █▀▀█▀▄▄
█  █▀█             █  ▐  ▐▌
█       ▄██▄       █  ▌  █
█     ▄██████▄     █  ▌ ▐▌
█    ██████████    █ ▐  █
█   ▐██████████▌   █ ▐ ▐▌
█    ▀▀██████▀▀    █ ▌ █
█     ▄▄▄██▄▄▄     █ ▌▐▌
█                  █▐ █
█                  █▐▐▌
█                  █▐█
▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀█
▄▄█████████▄▄
▄██▀▀▀▀█████▀▀▀▀██▄
▄█▀       ▐█▌       ▀█▄
██         ▐█▌         ██
████▄     ▄█████▄     ▄████
████████▄███████████▄████████
███▀    █████████████    ▀███
██       ███████████       ██
▀█▄       █████████       ▄█▀
▀█▄    ▄██▀▀▀▀▀▀▀██▄  ▄▄▄█▀
▀███████         ███████▀
▀█████▄       ▄█████▀
▀▀▀███▄▄▄███▀▀▀
..PLAY NOW..
Coding Enthusiast
Legendary
*
Offline Offline

Activity: 1040
Merit: 2785


Bitcoin and C♯ Enthusiast


View Profile WWW
February 03, 2018, 02:08:47 PM
 #23

Do you know if anybody has written a quality C implementation of error correction?

Haven't seen any yet.

Projects List+Suggestion box
Donate: 1Q9s or bc1q
|
|
|
FinderOuter(0.19.1)Ann-git
Denovo(0.7.0)Ann-git
Bitcoin.Net(0.26.0)Ann-git
|
|
|
BitcoinTransactionTool(0.11.0)Ann-git
WatchOnlyBitcoinWallet(3.2.1)Ann-git
SharpPusher(0.12.0)Ann-git
nullius
Copper Member
Hero Member
*****
Offline Offline

Activity: 630
Merit: 2614


If you don’t do PGP, you don’t do crypto!


View Profile WWW
February 12, 2018, 06:09:56 PM
Merited by RGBKey (3)
 #24

Please see:  segvan: Segwit vanity address & bulk address generator

Github: https://github.com/nym-zone/segvan

jackg (OP)
Copper Member
Legendary
*
Offline Offline

Activity: 2856
Merit: 3071


https://bit.ly/387FXHi lightning theory


View Profile
February 12, 2018, 06:17:00 PM
 #25


Aha! You finally managed to perfect and upload it then? I'll test it when I open up a Linux machine. Might also try to convert it to use in Windows (probably by translating the code to one in Windows that'll run fast enough).
nullius
Copper Member
Hero Member
*****
Offline Offline

Activity: 630
Merit: 2614


If you don’t do PGP, you don’t do crypto!


View Profile WWW
February 12, 2018, 06:25:31 PM
 #26


Aha! You finally managed to perfect and upload it then? I'll test it when I open up a Linux machine. Might also try to convert it to use in Windows (probably by translating the code to one in Windows that'll run fast enough).

It didn’t take so long to get it onto Github.  Unfortunately, I’ve been spending too much time posting on the forum. <g>

It’s not perfect—far from it.  (Nothing which is missing documentation could be “perfect”!)  But core functionality is solid.  I tried building and running it on Linux before pushing it onto Github.  It should do fine for you there; and even a slow machine can produce addresses such as you now see in my signature, if you leave it crunching away for a few weeks.  I will try to cook up a Windows version.

Please direct follow-ups to the segvan thread.

Pages: « 1 [2]  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!