Bitcoin Forum

Bitcoin => Bitcoin Technical Support => Topic started by: dende93 on May 26, 2019, 10:31:17 AM



Title: How to find the missing word
Post by: dende93 on May 26, 2019, 10:31:17 AM
Hi everyone, sorry if it's not the right section but I made a stupid mistake that is, I sent from a paper wallet 1 LTC to my address on block.io, the problem is that I didn't remember that on this beautiful site, beyond the password to log in you are asked for a pin when you have to do transactions, I don't even remember having created that pin but ok.
I can change the pin as long as I have the 12 magic words, I tried but to my surprise that (stupid I am) I only wrote 11 of them.

So my question is: is there any way to recover the missing word?
I will reward anyone who can get my funds back.


Title: Re: How to find the missing word
Post by: jackg on May 26, 2019, 10:43:22 AM
Have you tried the 11 words? Sometimes if it follows a different spec from bip39 then 11 words might work.

Do you know where this word might be. If it's likely to be at the front or the back then than increases your chances of recovering your funds.
If you know the word is at the front then there is a 2048 number of times you have to search for. If you know the word is at the end then there is 2048, if either at the start or the end then it's 4096.
If you have no idea then it will take 24576 processes in a worst case scenario.

I'm guessing there's probably a script for this bruteforcing, do you know the first address that can be derived?

edit:
this will give you 180 valid seeds apparently: https://github.com/tnkmt/brute.bip39


Title: Re: How to find the missing word
Post by: Coding Enthusiast on May 26, 2019, 11:58:59 AM
this will give you 180 valid seeds apparently: https://github.com/tnkmt/brute.bip39
The code is checking 24*2048=49,152 (https://github.com/tnkmt/brute.bip39/blob/b71fa1853c63fa10a8a007a1bca4bec1c42e3e99/brute.py#L38-L44) seeds and (based on my calculations) about 5% of them are valid which means 2,457 valid seeds! I may be missing something but 180 seems very strange to me.
BTW it is a very slow algorithm, not that it matters with this small number.


Title: Re: How to find the missing word
Post by: HCP on May 26, 2019, 12:04:12 PM
It's going to be very difficult to brute force that... block.io generates MultiSig addresses using a combination of the 12 word mnemonic and the "secret PIN". So, attempting to use something like the "seedrecovery" script in btcrecover will not work, as it will not be able to simply convert the mnemonic "guess" to a seed and then generate an address from that seed and compare to a known address... :-\

So, you would need to manually create all the valid seeds possible using your "11 words" as the base... then manually "test" the values in the "Settings" page to try and change the secret PIN.

I had a quick look at the brute.bip39 tool, and while it will generate valid BIP39 seeds... it doesn't generate only 180 valid combinations. Because you only have a 12 word mnemonic (instead of 24 words) it ends up generating somewhere in the 1400-1600 range of valid seeds! :o :o :o... so that is going to take a while to work through, but I would say that it is certainly doable in a few days/weeks :P


Title: Re: How to find the missing word
Post by: jackg on May 26, 2019, 12:25:42 PM
this will give you 180 valid seeds apparently: https://github.com/tnkmt/brute.bip39
The code is checking 24*2048=49,152 (https://github.com/tnkmt/brute.bip39/blob/b71fa1853c63fa10a8a007a1bca4bec1c42e3e99/brute.py#L38-L44) seeds and (based on my calculations) about 5% of them are valid which means 2,457 valid seeds! I may be missing something but 180 seems very strange to me.
BTW it is a very slow algorithm, not that it matters with this small number.

If you check the readme it says you can gmake it search for 12 words instead of 24.


Title: Re: How to find the missing word
Post by: HCP on May 26, 2019, 10:28:21 PM
If you check the readme it says you can gmake it search for 12 words instead of 24.
Yes, you can... and I like said... The number of valid seeds generated falls in the 1400-1600 range. I tested it with an actual block.io 12 word seed... and tried 4 tests (deleting the first word, last word and a couple of "random" words from the middle).

First word: 1586 valid seeds generated
Last word: 1532 valid seeds generated
Random Word test1: 1456 valid seeds generated
Random Word test2: 1580 valid seeds generated


Title: Re: How to find the missing word
Post by: dende93 on July 19, 2019, 08:11:40 AM
Thank you all for your advice! Finally I managed to find the unknown pin, after an endless series of attempts. Obviously it was the most impossible to remember of all! Thanks again!