-
Notifications
You must be signed in to change notification settings - Fork 473
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
An idea for increasing speed #149
Comments
Because of these identical 0-F characters, I prefer random search. There are two options for how this can be done:
We will wait for an answer. |
I have some work for this is not implemented yet, im testing it
The correct bloom filter creation is critical for the correct work of the BSGS algorimth i CAN'T skip any element in the bloom filter, the bloom filter will remain intact, for more information see https://andrea.corbellini.name/2015/06/08/elliptic-curve-cryptography-breaking-security-and-a-comparison-with-rsa/ As you said Direct scalar multiplication is in average 128 times slower than Point addition. my idea for this approach with BSGS is the next: lets to suppose that BSGS can test some 48 bits in one single cycle the range is 120bits example:
So the Im using some deterministic approach for this only using values that match with some percentage of bits in 1 , so if you only want test values between Some list of the values to be use as BASE RANGE for BSGS is the next:
They may look some biased but is because the set of restrictions:
Yes those values can be selected at request, the good thing is that you can set the minimum and maximum average values of bits in 1 so if you don't found anything with What you thing guys about this approach ? Regards! |
I have no knowledge of C++ and English, just a little logic.
If you cannot remove the excess from the filter, you can do something similar at the output, skip and not transform further.
Primitively, it will skip 100 times faster than converting unnecessary values with the same characters to public. XXXXXXXXXXXXXXXXXXYYYYYYYYYYYY I agree xxx is more important to skip. Since x can be equal to the week (month, year) of the empty search |
I don't understand the dotted algorithm. |
For puzzles |
Because is the way that the BSGS algorithm works, there is no other way, i've thinking in that for more than one year and there is no other way, if you know some other way please let me know. Please READ: https://andrea.corbellini.name/2015/06/08/elliptic-curve-cryptography-breaking-security-and-a-comparison-with-rsa/ if you don't know English please use some web page to translate it to your language.
No, BSGS doesn't work in that way you need to have all the b Points in the Cache (Bloomfilter) |
Thanks for the clarification, it is difficult to read the formulas for elliptic curves, I will study a little. There is an idea to use video card memory instead of RAM. |
I don't code for GPU because I don't have GPU, so why I going to code something if i will never use it? Also i need access a GPU to test the code for GPU.... I don't have a desktop computer, I only have one old laptop from 5 years ago, i can't put a GPU there. |
Let's hope fortune smiles at you or a donate has arrived for a new pc. |
Speed question: Take a Rotor-Cuda search at (ripmd160) GPU. We calculate the speed: If you take the base of all coins (302,000,000 addresses) all.bin, the speed will be even higher ... BGBS is only good for finding one puzzle 32-160 bit. This is the fastest solution to date. If you are looking for a 160-bit puzzle, then it is better to do it with the address base. Since theoretically in 160 bits there can be all privat keys from all addresses from the base. It would be cool if the BGBS algorithm searched the address base (ripmd160) with a speed exceeding the GPU. Do you think I counted correctly? I would like to hear your opinion on this. |
Hi, yes rmd hashes has more probability to be found that is true.
Yes, but it is not possible we cannot do any math operarion with rmd hashes. |
It's clear about BGBS. |
It is called P2PKH ( Pay to Public Key Hash) if the hash match it will works, doesn't matter if the publickey doesn't match |
Hi albertobsd!
There is an idea how to speed up the search for a given range in Keyhunt.
I had a hypothesis
Example: time ./keyhunt -m bsgs -t 6 -f tests/in.txt -r 49dccfd96dc5df56487436f5a1b18c4f5d340000000000000000000000000000:49dccfd96dc5df56487436f5a1b18c4f5d34ffffffffffffffffffffffffffff
In a sequential search, you will often find 4,5,6,7,8 ... of the same characters in succession.
I studied almost all private keys on which there were coins, none of which has 4 or more symbols in succession. There are exceptions when you manually create an address from a private key.
As in the English language, not words in which 4 identical letters go in succession.
An example of identical symbols:
49dccfd96dc5df56487436f5a1b18c4f5d34f65ddb48cb5aaaaa000000000000
49dccfd96dc5df56487436f5a1b18c4f5d34f65ddb48cb5e0000077770000000
49dccfd96dc5df56487436f5a1b18c4f5d34f65ddb48cb5e00000ffffff00000
If we assume that here the last a is equal to the month of the search
49dccfd96dc5df56487436f5a1b18c4f5d34f65ddb48cb5aaa**[a]**a000000000000
Then it turns out this month wasted.
If you remove all the same symbols, the speed will increase symmetrically.
49dccfd96dc5df56487436f5a1b18c4f5d34f65ddb48cb5eeee0000000000000 all keys after eeee are invalid.
(eeee0000000000000->eeeefffffffffffff)
Other examples:
FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141 all keys after FFFF are invalid.
7777 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF all keys after 7777 are invalid.
1234 1111 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF all keys after 1111 are invalid.
1234 5111 1FFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF all keys after 1111 are invalid.
What I suggest:
Search the private keys variable for identical symbols and replace them with +1.
Example: 49dccfd96dc5df56487436f5a1b18c4f5d34f65ddb48cb5aaaaa000000000000 change aaa to aab total search speed × 2.
49dccfd96dc5df56487436f5a1b18c4f5d34f65ddb48cb5aaaba000000000001
I know that an additional search for identical characters (prefixes) may reduce the speed by ~ 5-10%
The total travel time will be less by -30-50%.
I tried to implement this in LostCoins there is multithreading, GPU, I didn't have enough C++ knowledge.
You can output the range 1- ffffffff to a file and see how many times 3,4,5,6,7... characters were dropped in a row.
If you increase the range, the same ones will drop out symmetrically more often + intermediate ones. BitCoinCore randomizes private keys, there are almost no identical symbols in a row in random.
As far as I understand, the keyhunt algorithm creates bloom filters from hexadecimal data hashes for a private key. If we remove all incorrect values from the filter in which there are 4 or more identical symbols.
First, the filter will weigh less memory.
Secondly, the speed will increase.
Thank you for reading, I tried to write clearly.
It is interesting to hear your opinion
The text was updated successfully, but these errors were encountered: