Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

--worker command slows down number of tries/s #356

Closed
alexwaltz opened this issue May 21, 2022 · 3 comments
Closed

--worker command slows down number of tries/s #356

alexwaltz opened this issue May 21, 2022 · 3 comments

Comments

@alexwaltz
Copy link

I was using btcrecover on multiple servers, and I noticed that when using the --worker command, the number of tries slows down.
The more workers I use the worst it is.

This behavior is consistent on Mac and Ubuntu.

Also persists with --enable-opencl or just using CPU.

I read a comment in another issue saying that this may be because of the structure of the token list, anchor files.
If so can anyone explain why this is, and what would be a good practice to use in the future?

I was trying to crack a 12 word seed, where 2 of the words are completely unknown, and other ones had multiple candidates.
The tokenlist file used on the servers was structured as such.
(I used the software to crack this bounty, so I'm fine with sharing the exact file I used)

^1^buyer
^2^city ^2^forest ^2^tree ^2^roof ^2^address ^2^cabin ^2^chimney ^2^estate ^2^lawn ^2^mansion ^2^nature ^2^outdoor ^2^outside ^2^village ^2^property ^2^region ^2^road ^2^rural ^2^wood
^3^wolf ^3^alpha ^3^animal ^3^moon ^3^vicious ^3^wild
ALL BIP39 words the ^4^ prefix in front of each word
^5^drastic
^6^dust ^6^flower ^6^powder ^6^chalk ^6^dune ^6^debris ^6^dirt ^6^salt ^6^purity ^6^sample ^6^sand ^6^speed ^6^crystal ^6^dose
^7^opinion
^8^park
^9^oven ^9^cook ^9^food ^9^kitchen ^9^fire ^9^stove ^9^gas
^10^start
^11^rural
ALL BIP39 words with the ^12^ in front of each word.

Maybe worth mentioning I also used --no-dupchecks

@3rdIteration
Copy link
Owner

This is normal, you are hiring bottleneck on seed/password generation.

@alexwaltz
Copy link
Author

Sorry, but it's not really obvious to me how that is the case.

As I understand the script is deterministic and the --worker command should have the effect of trying seeds from a certain indice onwards.

I am confused as to why is the number of passwords/s decreases.

I ran these commands on my Mac with a 2.6 GHz 6-Core Intel Core i7:

  • python3.9 seedrecover.py --no-dupchecks --mnemonic-length 12 --language EN --dsw --wallet-type ethereum --addr-limit 1 --addrs 0x... --tokenlist tokenlist.txt --bip32-path "m/44'/60'/0'/0" --no-eta - 35 kPs/

  • python3.9 seedrecover.py --no-dupchecks --mnemonic-length 12 --language EN --dsw --wallet-type ethereum --addr-limit 1 --addrs 0x... --tokenlist tokenlist.txt --bip32-path "m/44'/60'/0'/0" --no-eta --worker 1/2 - 27 kPs/

  • python3.9 seedrecover.py --no-dupchecks --mnemonic-length 12 --language EN --dsw --wallet-type ethereum --addr-limit 1 --addrs 0x... --tokenlist tokenlist.txt --bip32-path "m/44'/60'/0'/0" --no-eta --worker 1/5 - 14 kPs/

  • python3.9 seedrecover.py --no-dupchecks --mnemonic-length 12 --language EN --dsw --wallet-type ethereum --addr-limit 1 --addrs 0x... --tokenlist tokenlist.txt --bip32-path "m/44'/60'/0'/0" --no-eta --worker 1/10 - 7.5 kPs/

@3rdIteration
Copy link
Owner

3rdIteration commented May 23, 2022

Because it's still generating the same number of potential seeds and skipping hashing the ones that aren't applicable to that particular worker.

For most wallet types this isn't an issue, as hashing is the main bottleneck, but BIP39 seeds bottleneck at seed generation on a single powerful PC.

This could be resolved (and single system performance booster too) by writing a more advanced seed generator.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants