Hi guys, I happened upon a private key hex while I was decoding a compressed (beginning with L) base58 WIF 52 characters long, that starts with 80 f3 and is 76 hex chars long.
I proceeded with removing the 8 checksum bytes at the end and this left me 68 hex chars, when the 80 at the beginning was removed I got 66 hex chars of a private key beginning with f3.
But I don't think the length is right, no? Private keys are supposed to be 64 hex characters long not 66. Is the F3 some kind of magic byte of sorts?
EDIT: it begins with 80 f3 not 80 fe.
what about '01' at the end, which indicates compressed WIF? https://learnmeabitcoin.com/technical/wif
|
|
|
Brute-force algorithm would be: 1) Let's say WIF starts with K (later - repeat with L) - remove K from the set of letters 2) Calculate combinations from the rest of the letters (51) taking 45 letters (do not use 6 letters for checksum) (18009460) 3) Calculate permutations for each of 45 letters 4) For each permutation try to decode WIF: K + calculated result + fake checksum, which should be ignored (just extract privkey from WIF).
Ideas for optimization: - check which letters are duplicated - check min/max possible WIF (min: KwDiB..., max: L5o...)
Other remarks: Possible prefix & rest of letters: "Kw" "LP5U3WRLvPwDefz4FVMrAJVFtU4u8pj158VSpZF2aaPeY5Qix8", "Kx" "LP5U3WRLvPwDefz4FVMrAJVFtU4u8pj15w8VSpZF2aaPeY5Qi8", "Kz" "LP5U3WRLvPwDef4FVMrAJVFtU4u8pj15w8VSpZF2aaPeY5Qix8", "L1" "P5U3KWRLvPwDefz4FVMrAJVFtU4u8pj5w8VSpZF2aaPeY5Qix8", "L2" "P5U3KWRLvPwDefz4FVMrAJVFtU4u8pj15w8VSpZFaaPeY5Qix8", "L3" "P5UKWRLvPwDefz4FVMrAJVFtU4u8pj15w8VSpZF2aaPeY5Qix8", "L4" "P5U3KWRLvPwDefzFVMrAJVFtU4u8pj15w8VSpZF2aaPeY5Qix8", "L5" "PU3KWRLvPwDefz4FVMrAJVFtU4u8pj15w8VSpZF2aaPeY5Qix8" Additionally, because of https://bitcointalk.org/index.php?topic=5327268.msg56676121#msg56676121 I think we may assume that "i" is not the last character.
|
|
|
Brute-force algorithm would be: 1) Let's say WIF starts with K (later - repeat with L) - remove K from the set of letters 2) Calculate combinations from the rest of the letters (51) taking 45 letters (do not use 6 letters for checksum) (18009460) 3) Calculate permutations for each of 45 letters 4) For each permutation try to decode WIF: K + calculated result + fake checksum, which should be ignored (just extract privkey from WIF).
Ideas for optimization: - check which letters are duplicated - check min/max possible WIF (min: KwDiB..., max: L5o...)
|
|
|
This is my private key in a randomised order relating to this address: LP5U3KWRLvPwDefz4FVMrAJVFtU4u8pj15w8VSpZF2aaPeY5QIx8
'I' on the 50th place - wrong character, not from Base58 set.
|
|
|
Hey, I see you really want to use btcrecover, but did you try the program I mentioned? At least I could clearly tell you how to configure it...
|
|
|
Alphanumeric like all the possible characters 0-9, a-z, A-Z, or it looks like a subset, hex or base58?
|
|
|
Here is the situation with my 12 word bip39 seed phrase
The first 2 words are known and are a lock
I only know one of the the next 4 words and not sure which of the 3rd or 4th position the known word fits
the 7th and 8th are known but not sure of their exact position
same for the 9th and 10th
The last 2 words are known and are a lock
Please take a look at my program: https://github.com/PawelGorny/lostwordif any of ready 'solvers' are suitable to your problem definition. If not, I may try to adapt it to make it ready to run. Let me know if my reasoning is correct, the words configuration is like this: known_word1 known_word2 unknown-any word unknown-any word unknown-any word or word X unknown-any word or word X unknown-any word or word Y unknown-any word or word Y unknown-any word or word Z unknown-any word or word Z known_word11 known_word12
It means that in the worst case you search for 5 completely unknown words * 6 different positions of suspected words, but maybe I do not really understand your situation. Examples above are more optimistic. Anyway I think you may use solver 'POOL' from my app.
|
|
|
Histograms (that at infinity should form a Probability Density Function - but we have have only ~60-70 points) show an interesting behavior at 0.3-0.5 and 0.6-0.8 (and specially 0.82-0.83).
Priviet! I did something like this long time ago ( https://bitcointalk.org/index.php?topic=1306983.msg54879435#msg54879435) BUT: it makes no sense! Somewhere (I do not have time to search for the post) author stated that he generated random private keys and then replaced the beginning with ZEROs, just to keep incrementing ranges. So any statistical approach is useless IMHO.
|
|
|
ONE_UNKNOWN_CHECK_ALL Suitable for seeds where we know the number of words, we know order of words, but we do not know one word. Program checks seeds testing a 'lost' word on each position. This worker generates 10 addresses for the created seed and checks the balance online (using blockchain.info API). Currently it works only with P2PKH
Wouldn't it be faster if you generate all the addresses in advance, and fetch the blockchain.info results for all addresses you want to query and save them in some kind of cache, instead of doing a network request each time addresses are generated? I suspect the network latency in making the request for will dominate the iteration time per key. I think there is limit of addresses to ask (at least using free version of blockchain.info API). Probably it could be better/faster with paid version or other provider, I did not investigate it.
|
|
|
Now program words in two modes: ONE_UNKNOWN
KNOWN_POSITION
Recently I have made some changes and enhancements, so let's summarize the current state: Available search modes: ONE_UNKNOWNSuitable for seeds where we know the number of words, we know order of words, but we do not know one word. Program checks seeds testing a 'lost' word on each position. KNOWN_POSITIONSuitable for seeds where we know the number of words, we know order of words, we do not know one or more words, but we know position of lost word(s). Program checks seeds testing a 'lost' word(s) on specified position(s). ONE_UNKNOWN_CHECK_ALLSuitable for seeds where we know the number of words, we know order of words, but we do not know one word. Program checks seeds testing a 'lost' word on each position. This worker generates 10 addresses for the created seed and checks the balance online (using blockchain.info API). Currently it works only with P2PKH PERMUTATION_CHECKWorker creates all the possible (correct) seeds from the given list of words and checks them using given address and derivation path. PERMUTATIONWorker displays and writes to file all the possible (correct) seeds from the given list of words. (This was requested in topic: https://bitcointalk.org/index.php?topic=5319624.0) POOLSuitable for seeds where we know the number of words, we know order of words and we know potential candidates on each position. Still '?' could be used for the whole dictionary. Additionally I managed to support BIP84, BIP141 (P2WPKH) and BIP32, BIP44 (P2PKH). I also added possibility to search for address not only on one specified position in derivation path, but to specify the range. For details please check readme on github https://github.com/PawelGorny/lostword and corresponding example files.
|
|
|
Figured it out. Thank you ,you gave me a direction. I know what was a problem now bit kill me God I don't understand why it happens. Basically when I scan QR code(And I did it many, many times) there is one small letter "j" that should be capital "J".I found it accidentally by replacing each letter to capital and back. And again it is not a typo it is faulty QR code picture which poses a questions about how reliable the whole QR code implementation ,mechanism is.
Yep, it happens. Take a look at https://github.com/PawelGorny/WifSolver -> solver ALIKE
|
|
|
OK, done in version 0.11. Please check the updated README and example nr 18.
|
|
|
It is possible. Check my program https://github.com/PawelGorny/lostwordCurrently there is option to check all possible seeds with a given words if one word is missing and then check balance online. But to be honest it is not very useful... As I understand you have list of words: word1, word2, word3... word12 and you want to check which combinations are correct (have correct checksum), right? I could do this... technically.... but output will be huge. For 12 words it is doable. For 24? It will take years... http://users.telenet.be/vdmoortel/dirk/Maths/permutations.html
|
|
|
How do you know that what you see is a real result of calculations, not just a movie?
|
|
|
You need Java jre to launch it. Prepare text file with configuration (like in example on github) and then launch from the console java -jar lostword.jar Config.txt
|
|
|
Hello All,
Wondering if I had an old bitcoin paper wallet QR code scanned, never recognized by a generic basic code scanner yet saved in the scanner's history as a few letters and a string of numbers, any way I can reconstruct this QR code from these letters and numbers to a QR code readable by a proper bitcoin paper wallet scanner?
Thank you,
Try this: https://merricx.github.io/qrazybox/
|
|
|
Hi there, i was up to open my wallet but i am missing one word from the seed. I just have 11 words. If any1 know how to guess the missing word i would be very happy to recover my satoshis thank you in advance!!! Check https://github.com/PawelGorny/lostwordThere is option ONE_UNKNOWN_CHECK_ALL which generates seeds and checks balance using blockchain api. The other solution would be to generate all the possible seeds, than addresses and check in offline database, like LoyceV suggested. Of course if you know the position of missing word, it would be much easier... And do you know which address from the derivation path has coins? Is it the first one?
|
|
|
|