Post
Topic
Board Development & Technical Discussion
Re: VanitySearch (Yet another address prefix finder)
by
elisacat
on 03/01/2021, 18:57:14 UTC
But i thought the way VanitySearch works is similar to bitcrack (sequentially) and not random. Doesn't that mean if 10 people start working on the same string you provided that they would all go through the same exact process and duplication?
It would be a huge security risk to have it run sequentially. Imagine if I were to try to get bc1qw and since it runs sequentially, another person also gets the same bc1qw address.  It has a RNG to ensure the randomness.
Also on a separate note. For argument's sake lets say we run this for nearly 150 years and our grandsons get a match. Isn't there still a high possibility that since you defined only partial public key that the results would not be the exact same key? e.g. you've been waiting 100+ years for 1qwertyuiopBBBBBBOOOOO but your grandson gets 1qwertyuiopBBBBBZZZZZ instead?
Vanity gen brute forces using the given split public key. When it gets the correct solution, it'll produce your part public key and part private key. Give the private key combine with their part private key and the address will be as defined in the pattern.

I see so it works differently from bitcrack then? because the biggest issue with bitcrack was the developer never wanted to add randomness so it would start at a specified sequence and work its way up +1, +1 etc etc
which never made sense to me because users with million + database would all be going through the same numbers so duplicated effort

if Vanitysearch really generates the sequences in calculation randomly that's a big advantage.

Also i didn't understand what you mean by part private key. So in the example of "1qwertyuiop" VanitySearch shows this will take more than 150 years, and the other user wanted to split the effort. But my question is since this is just a partial public key there's no guarantee it will find the exact public key he's looking for in 150 years. It might find a key with last few digits different from what he wants, the only way to get the exact public key is to submit the full public key but then that will change from 150 year estimate to millions.
The author of Bitcrack didn't specifically develop Bitcrack to be used by a pool or a combined effort; so while you speak of "duplicated effort", I don't think that is exact.  He created the program for individuals to search for keys specifically tied to the 100 BTC puzzle/challenge.

So it's up to people to tweak the code or use it in a way to not duplicate effort, like the pool at ttd...effort is not duplicated because users are assigned different ranges to work on.

Adding randomness, to start at a specified sequence...what does that mean? The point of randomness should or could mean not knowing what key the program starts with, or each thread generates/starts at random keys.  I have modified a version of Bitcrack where each GPU thread generates a random key, and then starts searching sequentially from that key. And you can also tell the program to "regenerate" every x amount of keys searched.  

Vanity generates the random base key, but then sequentially (and inverse) searches for xyz prefix. User can use the rekey function to generate a new random base key.

I guess you're right, for it's intended purposes it does the job correctly. Is your version of Bitcrack available publicly or on Github to try? I've attempted something similar, currently i have a python script that generates random hex and feeds it to bitcrack (similar like a batch script) so it will open bitcrack then run for 10 minutes with random x characters changed then repeat etc etc with the option of choosing to randomize the x number of characters from beginning or from the end. So it's a semi random solution since the sharting hash is changed every 10 minutes but bitcrack still runs sequentially for each starting point which i can do nothing about