Bitcrack
A tool for brute-forcing Bitcoin private keys. The main purpose of this project is to contribute to the effort of solving the Bitcoin puzzle transaction: A transaction with 32 addresses that become increasingly difficult to crack.
there are 2 variants available CL(openCL)and CU(Nvidia CUDA GPU version).CL version is intended for both CPU & AMD GPUs where CU cuda version is specific and optimized for Nvidia GPUs.
root@CryptoXploit:~# git clone https://github.com/CryptoXploit/Bitcrack.git
root@CryptoXploit:~# cd Bitcrack
If you are intended to use Bitcrack on CPU/AMD GPUs go to Bitcrack1 Folder
root@CryptoXploit:~/Bitcrack/Bitcrack1# unzip BitCrack-0.31.zip
root@CryptoXploit:~/Bitcrack/Bitcrack1# cd BitCrack-0.31
root@CryptoXploit:~/Bitcrack/Bitcrack1/BitCrack-0.31#apt-get install opencl-headers build-essential
root@C.3440185:~/Bitcrack/Bitcrack1/BitCrack-0.31$ make BUILD_OPENCL=1
it will throw some error at the end but it will build the clBitCrack binaries in bin folder.navigate to bin
root@C.3440185:~/Bitcrack/Bitcrack1/BitCrack-0.31/bin$
root@C.3439565:~/Bitcrack/Bitcrack1/BitCrack-0.31/bin$ ./clBitCrack
Lets give a try to simple tool run
root@C.3440185:~/Bitcrack/Bitcrack1/BitCrack-0.31/bin$ ./clBitCrack -u 1Mq9RkWLbqQqGDnNDSvCMH6rwtGQyU8JAb
By default the select mode is compressed address and if you wanna search for uncompressed use -u and for both compressed and uncompressed use -c -u
remember compressed scanning rate is higher than uncompressed so if you know the compressed address use it for search for fastest speed
we can see the tool is working fast and hit the key but its not utilizing GPU fully as we can see it uses only 24 MB so we need to play with some of the switch parameters.
GPUs have many cores. Work for the cores is divided into blocks. Each block contains threads.
There are 3 parameters that affect performance: blocks, threads per block, and keys per thread.
blocks: Should be a multiple of the number of compute units on the device. The default is 32.
threads: The number of threads in a block. This must be a multiple of 32. The default is 256.
Keys per thread: The number of keys each thread will process. The performance (keys per second) increases asymptotically with this value. The default is 256. Increasing this value will cause the kernel to run longer, but more keys will be processed.
we are using Nvidia RTX 3090 here so the max. performance configuration for GPU is
Block-896,Threads-256,Keys per thread-832
so lets put it in action. We will see performance counter using both compressed & uncompressed address scan
root@C.3440185:~/Bitcrack/Bitcrack1/BitCrack-0.31/bin$ ./clBitCrack -b 896 -t 256 -p 832 -u 1DvENxFciiBMUztZrBzJskAMCzTAucs3Nr (Uncompressed Address)
root@C.3440185:~/Bitcrack/Bitcrack1/BitCrack-0.31/bin$ ./clBitCrack -b 896 -t 256 -p 832 1uegdvNgbweVbLhs9MR3c3mdiyvbhU9ZA (compressed address)
now we can see with Uncompressed address the performance is hit and only 953.67 MKey/s speed.with compressed address we are getting upto 1169.01 MKey/s.
now lets try with puzzle ranges. Lets try with puzzle #40 whose range is known
root@C.3440185:~/Bitcrack/Bitcrack1/BitCrack-0.31/bin$ ./clBitCrack -b 896 -t 256 -p 832 –keyspace 10000000000:1ffffffffff 1L5sU9qvJeuwQUdt4y1eiLmquFxKjtHr3E
we can periodically save the scanning process which is useful in case of crash or if we need to resume later on.it periodically creates checkpoint after gap of an interval
root@C.3440185:~/Bitcrack/Bitcrack1/BitCrack-0.31/bin$ ./clBitCrack -b 896 -t 256 -p 832 –keyspace 10000000000:1ffffffffff 1L5sU9qvJeuwQUdt4y1eiLmquFxKjtHr3E –continue resume.txt
rerun the tool with same parameters and it will resume after checkpoint
root@C.3440185:~/Bitcrack/Bitcrack1/BitCrack-0.31/bin$ ./clBitCrack -b 896 -t 256 -p 832 –keyspace 10000000000:1ffffffffff 1L5sU9qvJeuwQUdt4y1eiLmquFxKjtHr3E –continue resume.txt
BITCRACK(WINDOWS VERSION)
Click/Scan QR
run bitcrack.exe for available commands
lets make a test with known private key in initial range
D:\IDM\Downloads\Programs>BitCrack.exe -b 256 -t 128 -p 512 -c 14cdNNCAFPz4EfhLWjQHtvCTPCUoRoH9AP
(remember you need to play with -b,-t,-p switches according to your GPU.check how much VRAM it is utilizing. You can modify to get the best possible speed.by default the stride is set to one. Stride means checking address one by one and you can increase stride to any number and the tool will skip those number of checks.
we can see that within seconds it hit the compressed address. Now lets check speed and accuracy on uncompressed address
now lets test bitcrack xpoint mode for checking speed and accuracy
we need to convert known public key to xpoint for that.
for example:-
020e786c4289e09714f79c09be4baa78a5f9c667f2adebf408527f48e658bc12b9(compressed key of address 14cdNNCAFPz4EfhLWjQHtvCTPCUoRoH9AP)
040e786c4289e09714f79c09be4baa78a5f9c667f2adebf408527f48e658bc12b9b1efc5558d233a2c108f35731b42beca8d5ce600f255d9b83c6342d6e04ad99e(Uncompressed key of 1Mz1Fx7EoN8EuARfFRs7cH4qsMp341EAjj)
converting it to xpoint mode we get
0e786c4289e09714f79c09be4baa78a5f9c667f2adebf408527f48e658bc12b9
remember that compressed/uncompressed pubkeys points to same xpoint.xpoint mode works with compressed address only.
D:\IDM\Downloads\Programs>BitCrack.exe -b 256 -t 128 -p 512 -m xpoint 0e786c4289e09714f79c09be4baa78a5f9c667f2adebf408527f48e658bc12b9
now lets test range option in puzzle#64 range
which is 0000000000000000000000000000000000000000000000008000000000000000-000000000000000000000000000000000000000000000000ffffffffffffffff
we chosen one random address in range to test it
D:\IDM\Downloads\Programs>BitCrack.exe -b 256 -t 128 -p 512 –keyspace 8000000000000000:ffffffffffffffff -c 1G484t7rUx4tquKScgXJQdaGVjR7ryThHb
now lets test with 2 addresses
D:\IDM\Downloads\Programs>BitCrack.exe -b 256 -t 128 -p 512 –keyspace 8000000000000000:ffffffffffffffff -c 1G484t7rUx4tquKScgXJQdaGVjR7ryThHb 14Wgq3QDKQVn6EFBkBrdGvuQTfaCbMeCdn