Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: Chris! on February 19, 2020, 09:46:16 PM



Title: Is it technically possible to create a vanity HD wallet?
Post by: Chris! on February 19, 2020, 09:46:16 PM
I'm asking out of curiosity only. Would it be possible to have a vanity address where the change address follows a sequence?

Example would be bc1qxx1xxxxxxxxxxxxxxxx, bc1qxx2xxxxxxxxxxxxxxxx etc.

If the vanity address was short enough it could easily be computed on a smartphone or laptop (4 or 5 characters) but is it technically possible, or would you need to generate hundreds of thousands of addresses? I suppose either way you'd technically be generating them, even if they don't appear on a GUI.

Anyway, if that's the case, would it somehow be possible to create a sequence of short vanity addresses and import those into a any Bitcoin wallet out there today?


Title: Re: Is it technically possible to create a vanity HD wallet?
Post by: philipma1957 on February 19, 2020, 10:25:48 PM
YEAH you can do it.  Lets say


1957joe0
1957joe1
1957joe2
1957joe3  up to

1957joe9

the above would be pretty easy on a good pc setup


1956judyp   took me 2 days but it is 9 characters



1957joe1 is only 8 characters so it would be faster  to do  all ten

1957joe0
1957joe1
1957joe2  up to

1957joe9  


  i could do this in under 3 days on a risen 9 3900x cpu setup


Title: Re: Is it technically possible to create a vanity HD wallet?
Post by: HCP on February 19, 2020, 10:30:28 PM
I don't see any technically reason as to why you can't search through addresses generated by an HD wallet looking for a desired vanity address and/or "sequence". However, given how many addresses one generally needs to generate to find desired vanity addresses, you'll probably find that your derivation paths for the individual addresses will have outrageous gaps in them:

For instance:
bc1qxx1xxx m/44'/0'/0'/435433
bc1qxx2xxx m/44'/0'/0'/357234931

etc etc... This would make restoring from the HD wallet seed ridiculously difficult unless you had some way to track the individual derivation paths. You might even find that the "next" address in the "sequence" was actually generated previously in a "lower" derivation path value...

I doubt you'll ever find such a sequence where derivation paths are also in sequence (While I'd guess the probability of such a sequence existing is non-zero, I'd also guess it was very very very small :P)

So, I'd think it would be less hassle (both in generating and restoring) to simply find the individual addresses you're after the "normal" way (eg. VanityGen)... and then import those individual private keys into the wallet of your choice.

Convincing the wallet to use those addresses as your "change" address on the other hand... For most wallets, not an easy thing... But I know Bitcoin Core allows you to specify a "custom change address" if you have "coin control" enabled:
https://talkimg.com/images/2023/11/15/z1e2j.png


Title: Re: Is it technically possible to create a vanity HD wallet?
Post by: bitmover on February 20, 2020, 01:07:26 AM


I think this is not a HD wallet, because there is  o relationship between those private keys that you generated.

A deterministic wallet is a wallet which all private keys generated have a mathematical relationship,  so you can only save its seed.

Like that:

Quote
A deterministic wallet is a system of deriving keys from a single starting point known as a seed. The seed allows a user to easily back up and restore a wallet without needing any other information and can in some cases allow the creation of public addresses without the knowledge of the private key. Seeds are typically serialized into human-readable words in a Seed phrase. The BIP 0032 standard for Hierarchical Deterministic Wallets is used by all good wallets as of 2019.
https://en.bitcoin.it/wiki/Deterministic_wallet

https://cdn-images-1.medium.com/max/800/0*4DM1mONpUHnPza0_.png


Title: Re: Is it technically possible to create a vanity HD wallet?
Post by: PrimeNumber7 on February 20, 2020, 02:57:50 AM
An HD wallet has an unlimited number of addresses.

It might not be unreasonable to generate a deterministic wallet that has a sequence of 10 or 20, or some other n number of sequential vanity addresses. Finding two sequential addresses in a deterministic wallet is more difficult than finding two individual addresses, especially if you want the addresses in sequential order in their derivation paths.

For each additional vanity address in your HD wallet that you want, the amount of work required to find a xprivkey for your wallet will increase by one power at a minimum. Even a very simply vanity address will quickly become very difficult to find if you want a sequence of vanity addresses.


Title: Re: Is it technically possible to create a vanity HD wallet?
Post by: nc50lc on February 20, 2020, 04:47:49 AM
You can specify a seed using vanitysearch (based from -ps arg's description) but the results will not have a specified derivation paths.
So restoring them through the mnemonic seed will be nearly impossible.

If you're interested, use this method, it's quite easy:
  • Create a mnemonic seed in https://iancoleman.io/bip39/ ; Save the BIP39 mnemonic and copy the "BIP39 seed" below (you may also save it)
  • Create an input file named "input.txt" (or other name) in vanitysearch's directory containing:
    bc1qxx0
    bc1qxx2
    bc1qxx3
    bc1qxx4
    bc1qxx5
    bc1qxx6
    bc1qxx7
    bc1qxx8
    bc1qxx9
    ...
    bc1qxx999
    You can't use '1' for bech32 addresses, and it have to be 'bc1q'+prefix.
  • Launch Vanityseach with these arguments: vanitysearch -ps <BIP39 seed> -stop -i <input.txt> -o <output.txt>
    You can add -gpu if you have a supported Nvidia Video Card.

Save the output.txt file somewhere safe and import their private keys (the addresses aren't numerically sorted).

Theoretically/Technically, you can use the mnemonic seed to restore them (if vanitysearch really used the specified seed) but...
without the exact derivation path, you'll never know how many Billion+ addresses to generate before you can restore each of those vanity addresses.


Title: Re: Is it technically possible to create a vanity HD wallet?
Post by: pooya87 on February 20, 2020, 05:05:17 AM
You can specify a seed using vanitysearch (based from -ps arg's description) but the results will not have a specified derivation paths.
So restoring them through the mnemonic seed will be nearly impossible.

it would be trivial to change the seed after you found the keys but you will be limited to the number of keys you found. for example i you used a 12 word seed and found a desirable key at 153455 and 984131 then you could add 4 new words to the end of the seed that indicate these indexes:
153455 -> 00000010 01010111 01101111 -> animal unit
984131 -> 00001111 00000100 01000011 -> design market
now you have a mnemonic with 16 words, 12 are the seed and the other 4 are the indexes.


Title: Re: Is it technically possible to create a vanity HD wallet?
Post by: ABCbits on February 20, 2020, 10:18:09 AM
Technically it's possible, you just need to find wallet software or modify source code of wallet software to hide all generated address which doesn't meet your vanity pattern/rules.
But as other mentioned, computational power to find address which match with desired vanity pattern/rules are the biggest problem which makes the idea isn't practical.


Title: Re: Is it technically possible to create a vanity HD wallet?
Post by: Chris! on February 20, 2020, 01:52:28 PM
Technically it's possible, you just need to find wallet software or modify source code of wallet software to hide all generated address which doesn't meet your vanity pattern/rules.
But as other mentioned, computational power to find address which match with desired vanity pattern/rules are the biggest problem which makes the idea isn't practical.

Now if I were to something ridiculously easy to find, like a 2 or 2 character vanity address, is there any way to calculate how difficult that would be over X time?