Post
Topic
Board Development & Technical Discussion
Re: BitCrack - A tool for brute-forcing private keys
by
Markzuberg64
on 22/03/2021, 17:01:52 UTC


Quote

for fast speed I think write to memory first and save one may be better but it require high memory ram, my experience write data to memory still slows same write file
if you want to save file why not use python code generate and save
I guess result is slow same, but try modify one for know from real
one warning you storage will be full very fast
if testing just 100GB and delete
if want to keep recommend to buy minimum 2 TB external storage to keep it
bitcrack generate fast
make sure you computer not working anything may be write to disk like program freeze no respond (work 100% DISK)


In my experience the 2 TB will fill up quickly within 2 min if speed of 15 billion achieved and if i write private key and corresponding public key , i ran a test today with python script which was slow but i was looking for space that it acquires. At 20 Million keypairs , it took around 17 GB space and 1 and half hour . Writing to disk was not a problem since it was not generating at that fast speed but at 15B a minute , it wont be possible since write speed of My SSD is merely 2GBps whereas at 15B its throwing data at 190 Gbps . I hope my calculations are not wrong. Any other suggestions please.


Quote
So you are merely wanting to store private keys and their corresponding public keys, correct? In the same file or separate files?
combined file:
combined.txt
private key   public key

separate files:
privfile1.txt
private key
pubfile 1.txt
public key

In the same file as combined.txt

Quote

Instead of trying to store all the k*G numbers (which is clearly impossible with current commodity storage sizes) why don't you just store all keypairs 2^n and 2^n * G [n is an integer], in other words powers of two?

They are extremely easy to generate since you just have to use successive point doubling, and any private key between G and 2^256*G can be generated fairly quickly by adding points that are powers of two (by looking at the integer multiplier). This is what VanitySearch does when it computes public keys, it makes a jump table with all of these powers of 2 Gs and then looks up the point in a hashtable using the factor as an index.

Can you please explain this ? Suppose i got all 2^n and 2^n*G till required N. Lets take it as 30 for now. In that case if i have to find k*G derived from K 700000003 which is between 2^29 and 2^30 , how would i , since i dont know K value. It will require me to go through all K. Ofcourse it will be easier using point additions and i think this is what existing libraries like secp259k1 do but this wont help in case of looking up thousands of pubkeys at once.

I didn't get your point of jump tables and point lookup in hashtable using factor as index thing. Sounds interesting though.