Pages:
Author

Topic: Keyhunt - development requests - bug reports - page 16. (Read 14735 times)

copper member
Activity: 1330
Merit: 899
🖤😏
On github I found that  '' Almost all bitcoin addresses with a balance are in the 254-256 BITs range. ''

Is This True ? Best range is -b 256 ?


It is a probabilistic distribution bit 256 is the Half of the whole key space, bit 255 is a quater and bit 254 is have a 12.5% of the whole range, if you add those values it is 50% + 25% + 12.5% that is 87.5%
How did you come up with those numbers? 256 is two times of 255, and 255 bit is x2 of 254 bit. Searching in 2^256 decreases the chance of finding a single address/key by 2^96. I just haven't figured a way to only search 160 bit range in order to get all com/uncompressed keys. Let me know if you do.😉
hero member
Activity: 862
Merit: 662
On github I found that  '' Almost all bitcoin addresses with a balance are in the 254-256 BITs range. ''

Is This True ? Best range is -b 256 ?


It is a probabilistic distribution bit 256 is the Half of the whole key space, bit 255 is a quater and bit 254 is have a 12.5% of the whole range, if you add those values it is 50% + 25% + 12.5% that is 87.5%
full member
Activity: 1162
Merit: 237
Shooters Shoot...
This is probably a stupid question but:

Is it possible to use Baby-step giant-step algorithm to mine Bitcoin? Like is it possible? Since this algorithm runs in peta/keys, we can use this for mining and easily bruteforce 19 bits and get to find a correct hash for the blockheader and get easy 100k euros.

If not possbile, why not?

Thanks
As albert0bsd said, they are not the same.

But I wanted to figure out how you figured, "for mining and easily bruteforce 19 bits..."?? 19 Bits? 19 bits would only be 4 leading zeros. The latest block is 00000000000000000006b68d2acbb26adbe3f0ffe653ec08cb3469b3729dda59; that is 19 leading zeros or 76 bits. Big difference.
hero member
Activity: 862
Merit: 662
This is probably a stupid question but:

Is it possible to use Baby-step giant-step algorithm to mine Bitcoin? Like is it possible? Since this algorithm runs in peta/keys, we can use this for mining and easily bruteforce 19 bits and get to find a correct hash for the blockheader and get easy 100k euros.

If not possbile, why not?

Thanks

No is not possible, because mining is just bruteforcing the sha256 until get some zeros in the begging of the resulting hash, it can't have any math shortcut.
hero member
Activity: 630
Merit: 731
Bitcoin g33k
This is a good place to start to satisfy your question(s)
member
Activity: 194
Merit: 14
This is probably a stupid question but:

Is it possible to use Baby-step giant-step algorithm to mine Bitcoin? Like is it possible? Since this algorithm runs in peta/keys, we can use this for mining and easily bruteforce 19 bits and get to find a correct hash for the blockheader and get easy 100k euros.

If not possbile, why not?

Thanks
member
Activity: 117
Merit: 32
hello albert did you manage to adapt keyhunt for a GPU version ? which should be faster
No. However, depending on what you want to use, BSGS, Search for private keys, Kangaroo, etc. there are existing programs that incorporate GPUs. Example, BSGS = BSGS Cuda; Kangaroo = Kangaroo by JLP.  For searching for private keys, there are many GPU options.
I am looking for a bsgs GPU version with random which reads an incoming file not in sequence. I used before this one
https://github.com/Etayson/BSGS-cuda
but it doesn't offer random and read incoming file in sequential not random. On the other hand, on a single PubKey search, its speed can reach 2 ExaKey/s VS 82 PetaKey/s (KeyHunt) for me for the same search.
hero member
Activity: 630
Merit: 731
Bitcoin g33k
There is also KeyHunt-Cuda available, but it's not from Alberto as far as I know
full member
Activity: 1162
Merit: 237
Shooters Shoot...
hello albert did you manage to adapt keyhunt for a GPU version ? which should be faster
No. However, depending on what you want to use, BSGS, Search for private keys, Kangaroo, etc. there are existing programs that incorporate GPUs. Example, BSGS = BSGS Cuda; Kangaroo = Kangaroo by JLP.  For searching for private keys, there are many GPU options.
member
Activity: 117
Merit: 32
hello albert did you manage to adapt keyhunt for a GPU version ? which should be faster
hero member
Activity: 862
Merit: 662
i know it take milions years heh but it is good range ?

Half of the keys are in that range (actually is the half of the whole range)
newbie
Activity: 10
Merit: 2
Yes, the 256-bit range would be best. As long as you could bring some countless light years of patience  Grin

i know it take milions years heh but it is good range ?
hero member
Activity: 630
Merit: 731
Bitcoin g33k
Yes, the 256-bit range would be best. As long as you could bring some countless light years of patience  Grin
newbie
Activity: 10
Merit: 2
On github I found that  '' Almost all bitcoin addresses with a balance are in the 254-256 BITs range. ''

Is This True ? Best range is -b 256 ?
jr. member
Activity: 75
Merit: 2
To get the best results out of keyhunt, what exactly do you need - powerful CPU, RAM, what else?
What would be the best hardware combination (the one you can buy in store for relatively reasonable
amount of money and not some Google supercomputer) to get it to the maximum?
Epyc, Threadripper, i9? Anything else?
hero member
Activity: 862
Merit: 662
BSGS mode is only for publickeys. That is why you get that speed.

For puzzle 66 is not possible yet because we don't have the publickey, with the publickey it will be solved in some 5-8 minutes in CPU.

I don't know anything about keyhunt-cuda, i think that program don't have BSGS mode but i don't know becuase i never use it.

BTW, NEVER run executables files from untrusted sources. My recomendation is always compile the programs from source code from the Original developer.

Regards!
newbie
Activity: 74
Merit: 0
Hi, where i can find the keyhunt cuda exe for test it on windows , i tried but i found only simple keyhunt.exe and i want to try for puzzle #66 , i tried this

Code:
keyhunt.exe -m bsgs -f tests/120.txt -b 120 -R -k 256
 and i get 6 Petakeys/s , but i want to test gpu, anyone can help me with this? but for #66 address not for #120

hero member
Activity: 862
Merit: 662
In a small range, it seems the my program is faster than yours, on higher range the viceversa.

Yes I notice the same, this is really interesting I should check your code to see if i can learn something to boost the current speeds.

Good job!
legendary
Activity: 1932
Merit: 2077
.....

That is 4.5 Petakeys per second this will solve 64 bits in 4,094 Seconds
...

In that post I show a test solving the puzzle 70 with a single thread and near 32GB of RAM it took me 9 hrs to solve it


Ok, thanks for the answer.

On my current laptop (i7-12700H + 16GB), with my software, I can scan an entire  2^60 range in less than 2 minutes (116 seconds), using 8 GB.

To scan the entire 2^60 range, we need to compaire 2^29 baby steps against 2^30 giant steps.

I create a table for baby steps: 2^29 elements (64 bits each: 32 bits for the private key + 32 bits for the x-coordinate) -> total 2^35 bit -> 2^32 bytes -> 4 GB;

I use 8 GB of Ram for the table (the double) to minimize collisions (half table is empty).

Then I compute 2^30 giant steps.

My program doesn't write / read on ssd.

It takes 120 seconds to compute (2^29 bs + 2^30 gs) , about 30 seconds for the table and 90 seconds to compute 2^30 elements and check in the table.

The speed to create the keys is about 2^24 keys/s, the check against the table increase the time by 50%.



To work in higher range the program needs to create multiple table; for example, to cover an entire 2^64 range, the program splits the 2^31 baby steps in 4 table of 2^29 elements. Each table is compared against 2^32 giant steps.  

So it computes: 4 * (2^29 bs + 2^32 gs) = about 16 the time to explore a 2^60 range (2^29 bs + 2^30 gs), then 32 minutes.


If I had the double of ram, I would need to compute only 2 * (2^30 bs + 2^32 gs) = about 8  the time to resolve a 2^60 range (2^29 bs + 2^30 gs) : 2minutes * 8 = 16 minutes.


In a small range, it seems the my program is faster than yours, on higher range the viceversa.
hero member
Activity: 862
Merit: 662
How do you compute the speed?

If you search a 2^40 interval in 1 s you compute 1 Terakeys/s ?

How long it takes to scan a 2^64 interval (with 1 thread)?

According to your premise 2^40 interval (1,099,511,627,776 keys) in 1 Second yes is more of less @ 1 Terakey/s (1,000,000,000,000 )

To compute 2^64 we only need 2^24 times the time of (2^40) this is like 16,777,216 seconds or 4660 hours.

But why limit the speed to 1 Terakey per second?

The next is keyhunt with 8GB of RAM with a single thread:

Code:
albertobsd:~/keyhunt$ ./keyhunt -m bsgs -f tests/120.txt -b 120 -q -s 1 -R -S -k 512 -t 1
[+] Version 0.2.211117 SSE Trick or treat ¡Beta!, developed by AlbertoBSD
[+] Quiet thread output
[+] Stats output every 1 seconds
[+] Random mode
[+] K factor 512
[+] Thread : 1
[+] Mode BSGS random
[+] Opening file tests/120.txt
[+] Added 1 points from file
[+] Bit Range 120
[+] -- from : 0x800000000000000000000000000000
[+] -- to   : 0x1000000000000000000000000000000
[+] N = 0x100000000000
[+] Bloom filter for 2147483648 elements : 7361.33 MB
[+] Bloom filter for 67108864 elements : 230.04 MB
[+] Bloom filter for 2097152 elements : 7.19 MB
[+] Allocating 32.00 MB for 2097152 bP Points
[+] Reading bloom filter from file keyhunt_bsgs_4_2147483648.blm .... Done!
[+] Reading bloom filter from file keyhunt_bsgs_6_67108864.blm .... Done!
[+] Reading bP Table from file keyhunt_bsgs_2_2097152.tbl .... Done!
[+] Reading bloom filter from file keyhunt_bsgs_7_2097152.blm .... Done!
[+] Total 337875525169053696 keys in 75 seconds: ~4 Pkeys/s (4505007002254049 keys/s)

That is 4.5 Petakeys per second this will solve 64 bits in 4,094 Seconds

2^64 = 18,446,744,073,709,551,616 keys
bewteen 4505007002254049 keys/ s = 4064 Seconds, near 68 minutes

In my laptop i use to get 20 Petakeys/s with 8 threads and 8 GB of RAM, yes i know it is not lineal but some CPU intructions are shared per Physical core

BY THE WAY:

I write some post about your speed time ago:

https://bitcoin.albertobsd.dev/2021/12/puzzle-70-one-sigle-thread.html

In that post I show a test solving the puzzle 70 with a single thread and near 32GB of RAM it took me 9 hrs to solve it

Please check it. Thanks!

And with some math and probabilistic tricks i manage to solve 75 bits in 8 hrs:

https://twitter.com/albertobsd/status/1465540963128987651

But actually the time should be less because in that screenshot half of the time was used to generate the Bloom filter and creat the auxiliar files.

Pages:
Jump to: