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.
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^