Coding-Enthusiast / FinderOuter

Easy to use bitcoin recovery tool to fix damaged private key, mini-private key, address, BIP38 encrypted key, mnemonic (seed phrase), BIP-32 derivation path, Armory backups, recover passwords and more
MIT License
283 stars 108 forks source link

Time prediction #14

Closed gilblockchain closed 1 year ago

gilblockchain commented 3 years ago

I have a key missing 25 characters, but when it is up to 13 characters, the software shows on the screen that it is optimizing the keys and will not check everything. Because when he misses 25 he doesn't do that? And also because there are no keys, he is checking and missing, will this be implemented? 25 characters missing, that's a lot, do you think that with a 256-core processor extremely possible, I can recover?

i left it a few days, it appeared that it found "a possible key". This was about three times, then he kept checking.

Coding-Enthusiast commented 3 years ago

Whenever the missing characters are all from the end of the private key WIF string the code automatically chooses an optimized method that only has to check a very small fraction of the total variations in normal method. But it can only work if the number of missing keys is small (up to 12 chars for compressed WIFs).
The problem with this optimized method is that when the number of missing chars goes past the limit (eg. 13+) it becomes a lot slower than the normal method. So for anything bigger, the normal method is used automatically.

25 characters missing, that's a lot, do you think that with a 256-core processor extremely possible, I can recover?

A compressed private key WIF is 52 characters, 25 missing is nearly half of it which is more than 100 bits. It is not possible to brute force this.
Currently there is no benchmark option but you can always solve a simpler example to see your CPU speed. For example you can use L53fCHmQhbNp1B4JipfBtfeHZH7cAib*G9oK19*fiFzxH**kz6*K, then do a simple math to get the rough idea how long it would take to finish the search for any other number of missing characters. There are 1.21e44 keys to check for 25-missing chars with the speed of 26 million (you may get different value here) it takes 1.4e29 years to finish the search:
1.21e44/ 26 million / 60 / 60 / 24 / 365 = 1.4e29 years

i left it a few days, it appeared that it found "a possible key". This was about three times, then he kept checking.

This recovery method doesn't check its results against anything since in any normal case there won't be any more than 2 or 3 possible results. It is faster this way and the code will print all the results. In a key with much more number of missing keys the number of valid variations it finds will be a lot bigger.
These are all valid keys with a valid checksum, you'll have to manually check if they match the address you have.

gilblockchain commented 3 years ago

Currently with the software today it would be impossible to discover 25 characters that are missing from the private key? Another thing, does it not work with multi thread?

Coding-Enthusiast commented 3 years ago

Currently with the software today it would be impossible to discover 25 characters that are missing from the private key?

As far as I can tell, yes.

Another thing, does it not work with multi thread?

Yes it does. If you check your CPU usage while FinderOuter is working on such a key it should be using 100% of your CPU.

gilblockchain commented 3 years ago

Does the program use several tasks in each processor core to speed up the process?

Coding-Enthusiast commented 3 years ago

It basically breaks down the entire work into little chunks then requests a new thread from a pool of threads and spreads the work to maximize efficiency.