Pages:
Author

Topic: BitCrack - A tool for brute-forcing private keys - page 2. (Read 73904 times)

copper member
Activity: 1330
Merit: 899
🖤😏
You can't search for different address types at once, there is is no need to do that, if addresses have their public keys revealed, you can just generate public keys and compare with your list, tools such as kangaroo and BSGS work with one input at a time, though I know this for sure to be true for kangaroo, but even if a tool operates with several keys in parallel, performance will get lower the more input you have.

But to show you an estimation, you'd need 1000 GPUs to run at 1B key/s for around 850 days non-stop to exhaust the entire 66 bit range, maybe half of that to search 130 public key if you know how to reduce the bit range though.

You should try out with small ranges and input your own selected keys and then start searching, generate 1 billion keys sequentially in 60 bit range and run all the tools you have.

There are already so many discussions about the probability of finding a match, something about using the energy of the sun for billions of years "only to count from 1 to 2^256" and lose to the death of the universe before finishing the simple counting.

Private keys start with 63 zeros and a single 1 like this :

First key:
0x0000000000000000000000000000000000000000000000000000000000000001

To this point, last key  minus 1 :
0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141

Go to a site like private key dot pw, and go to different pages to see it yourself, but never paste or enter your own private key because you will lose your funds.
newbie
Activity: 7
Merit: 0
I understand... I'll think twice about that idea again... Hahaha



Changing the subject radically, to try to try your luck with puzzle 66 and puzzle 130 since 125 was opened, are you trying to use these codes, do not modify main or anything, any improvement that you can make or do you do wrong?


VBCr.exe -begr 20000000000000000 -endr 3ffffffffffffffff -t 6 -dis 4 -r 30000 -drk 1 -i addresses.txt -m 1 -o key.txt -gpu

cuBitCrack.exe -b 96 -t 512 -p 1024 --keyspace 26000000000000000:2ffffffffffffffffff -i addresses.txt -o FOUNDKEY.txt

BSGS
40000000
20000000000000000000000000000000000
3ffffffffffffffffffffffffffffffffff
03633cbe3ec02b9401c5effa144c5b4d22f87940259634858fc7e59b1c09937852


 And another question, from the 1st bitcoin address created to the last, both compressed and decompressed, are 100% of those addresses 100% 256 bits?

There are bitcoin addresses with more than 1 transaction 22,285,749,153

and there are 10,527,367,033 that start with 1 (Compressed and decompressed).
The rest start with bc1 and 3

Let's say I get 10,000 random hex keys per second, if I convert each hex key to its respective address (Compressed, decompressed, bc1 and 3)
What is the chance of getting 1 match against puzzle 66 or 130 using bsgs or kangaroo?



PD From the range 004189374bc6a7ef9db22d0e56041893746922865feb562d1da1bf120f9175e4 it would be 0.09999%
and the 66 puzzle is SO difficult, now I'm realizing what a big number it is.
copper member
Activity: 1330
Merit: 899
🖤😏

PD: Note that I am not trying to hack or do illegal things or steal funds from people's wallets. I want to know when it is said: BTC is safe, how safe it is. My intention is to search for 100% random keys until one matches an address. from btc.txt, whether or not you have a balance, having more than 1 transaction is enough

It doesn't matter what your intentions are, even if you were trying to rob all bitcoiners of their coins, nobody would touch you, actually they would gladly help you through the process, because as you mentioned, puzzle keys are extremely small compared with actual randomly generated keys holding people's funds, to give you something for understanding, just imagine the entire universe and all it's atoms, now all the 160 puzzle keys combined can only occupy something around 1/89th of earth.

Ever since 2015, we are stuck at puzzle 66, you should double the key space size each bit you go up.
If you have been reading these topics for the past few month, you should already know about the size of 2^256.

I just want to save your time, don't bother searching because you will not find a single match, you'd have a chance to win in lottery 1000 times in a row in your life time, but finding a single match? Not a chance.  To test your luck just go buy lottery ticket.

However, there is a +$25m prize, almost as 25 nobel prizes ready for grab, if anyone in the world claims they can hack bitcoin keys, they should try these legitimate puzzles because they are the easiest ones.

A few month from now, I will see you with an electricity bill in your hands.😉
newbie
Activity: 7
Merit: 0
BTC.TXT IS 19 GB AND has 1 btc address in each line)
Snip.....
First of all, don't empty all our addresses when you brute force them all.
Second, why would you want to search for both address types? Searching for uncompressed addresses reduces your speed by 45%, and I don't think any txt file could handle 19GB of text, I mean for windows is 2GB max, larger than that, it won't open, maybe that's the problem. You better to use keyhunt with all ever used public keys, just any key.
Note that to achieve same speed, you can't use python, best is C++. Anyways I like your enthusiasm thinking it can hit a key, maybe you should try....  wait, how can all the addresses with balance occupy 19GB?  How many are there? Can't you make it 2GB to see if it works or not?


and one last question
What's that? Here the post ended what happened?




Hello ! Thank you for answering me first of all, and Hahaha, with a lot of luck, I will be able to obtain 1 or 2 private keys from the BTC.TXT addresses, and in btc.txt all the addresses there are compressed and decompressed, I don't know which ones are decompressed and which ones are compressed

Another thing, in the 19GB, there are all the addresses that have ever received a balance, not those that contain a balance, that would be around 50% or 60% less, I want to focus the search on all the addresses that have ever received btc and that begin with 1 regardless of whether they are compressed or decompressed, to check what the probability would be that someone would find an address already used

But with that 45% data I will then try to specify in btcC.txt, all the compressed bitcoin addresses and thus the file will weigh less, and the speed will increase by not having decompressed addresses


I don't know how to use C++, only python node and some already created programs such as bitcrack VBCr and VanBitCrackenS1, work perfectly and find matches, but as long as the text file weighs less than 2 GB.

I forgot the last question but thank you so much for answering.


Another question, it would be easier to obtain all the public keys of all the btc.txt addresses, which have spent btc, and create pubbtc.txt with all the public keys of their respective wallets, there would be more chances of obtaining a match. Or is it the same if you don't know the hex range where to search? To say that I have been watching these forums, especially the BTC puzzle ones, and I have learned a lot over time about Kangaroo Baby Giants and the other programs, although I believe the account practically 1 day or 2 days ago, I have been seeing these things for months and I am somewhat informed.




PD: Note that I am not trying to hack or do illegal things or steal funds from people's wallets. I want to know when it is said: BTC is safe, how safe it is. My intention is to search for 100% random keys until one matches an address. from btc.txt, whether or not you have a balance, having more than 1 transaction is enough
copper member
Activity: 1330
Merit: 899
🖤😏
BTC.TXT IS 19 GB AND has 1 btc address in each line)
Snip.....
First of all, don't empty all our addresses when you brute force them all.🤣
Second, why would you want to search for both address types? Searching for uncompressed addresses reduces your speed by 45%, and I don't think any txt file could handle 19GB of text, I mean for windows is 2GB max, larger than that, it won't open, maybe that's the problem. You better to use keyhunt with all ever used public keys, just any key.
Note that to achieve same speed, you can't use python, best is C++. Anyways I like your enthusiasm thinking it can hit a key, maybe you should try....  wait, how can all the addresses with balance occupy 19GB?  How many are there? Can't you make it 2GB to see if it works or not?


and one last question
What's that? Here the post ended what happened?😅
newbie
Activity: 7
Merit: 0
Good afternoon, I hope everything is well.

My idea is the following:

I have a BTC.txt file, which has all addresses with a balance greater than 0 starting with 1 (both compressed and uncompressed) (BTC.TXT IS 19 GB AND has 1 btc address in each line)

I want to run bitcrack, VanBitCracken or VBCr which work perfectly, but when I put -i btc.txt, in bitcrack it stays loading for about 6 hours and is removed, and in VanBitCracken and VBCr it doesn't seem to read it directly

I would like to know if I can modify the exe file from either bitcrack, VanBitCracken or VBCr to perform my search or is there another program?


PS: Create a code in python that more or less does the following:

Creates a random 32 byte hex key, then converts it to its respective WIF key both compressed and decompressed, then checks if the compressed and decompressed address of that address matches any address in btc.txt, if so it saves it to found. txt, if it does not find anything it will continue searching until it finds a match OR until it stops the program. What I mean is that in python I have achieved my goal and I would like to do the same but with my gpu

This is the result of my python file WITHOUT GPU and using 4 processors out of 16:

Generated: 20400000 (SHA-256 - HEX)
Last generated key in hexadecimal: 13d0f03fab9c75a97fa6492b8b832b0ce7b11b8cc30f25e8eb1164b9fbc57ded
Compressed Bitcoin address: 1LZfGfy88QjBVkB3DTqpjFwonStb93Bed4
Decompressed Bitcoin address: 1DUXqLAJch8pncVKf63HZBefaKT3b81p5E
Generation rate: 4497.490059165694 keys per second

Generated: 20500000 (SHA-256 - HEX)
Last key generated in hexadecimal: f55599ce4720d4061894e644b99e190ffebb758c7780572e43651e9d622c2f69
Compressed Bitcoin address: 1Nr4BuyWgxS6Bmd4WzUZrkRFZHM6FQcqXp
Decompressed Bitcoin address: 1FgYyC5RAQwr8AUqHH7CP7Sx52avAJYtb
Generation rate: 4572.502992815531 keys per second



PD: I am aware of the difficulty and luck it takes to get 1 match that is very very very unlikely, but I know what I want and that is it Smiley

PD2: If necessary, I could search O randomly OR sequentially, for example I would put from 20% to 40% of the total range, I would scan that range randomly and sequentially for a few days or weeks, and then I would go to the range 40% 60% and so and one last question



Excuse my English, I am from BCN (SPAIN) and I only speak Spanish and Catalan, so my English is translated
member
Activity: 785
Merit: 20
$$P2P BTC BRUTE.JOIN NOW ! https://uclck.me/SQPJk
I don't really understand what you trying to say, but from what I did understand,  here is 2^55 * 2000 = 72057594037927936000   and this is 2^66 =  73786976294838206464  difference between them is = 1729382256910270464

Before I loose my mind, let me give you what you initially asked, searching  2000 ranges with size of 2^55, with speed rate of 1 billion per second will take around 2284 years to brute force.

you understand me right

I asking about time need to....

thank you for you answer
copper member
Activity: 1330
Merit: 899
🖤😏
I don't really understand what you trying to say, but from what I did understand,  here is 2^55 * 2000 = 72057594037927936000   and this is 2^66 =  73786976294838206464  difference between them is = 1729382256910270464

Before I loose my mind, let me give you what you initially asked, searching  2000 ranges with size of 2^55, with speed rate of 1 billion per second will take around 2284 years to brute force.

Edit: with 1000Bk/s, you can search that range in 833 days, and that's not even the entire 66 bit range.
member
Activity: 785
Merit: 20
$$P2P BTC BRUTE.JOIN NOW ! https://uclck.me/SQPJk
Hello

how many time will take search 2000 ranges in 55 bit ?

Thank You

You mean dividing 2^55 by 2000 ranges? Well in that case it would take exactly the same as searching 2^55,  total range, if your ranges have specific size, then you should tell us their size or just multiply your range by 2000 and then divide the result by your speed per second, the answer would be seconds taking to search your range. Then divide 60 to get minutes, again divide by 60 to get hours, then divide by 24 to get days, /365 to get years etc, but you already knew that right?

no, I talk about 2000 pcs of 2**55. "2**55 * 2000 " = ?

??
...


What I'm talk about.

66 puzzle, I know what one of 2000 ranges, differ from 66 ouzzle range for 10 bit, and difference in range 2**55 . My idea was take 2000 end ranges (one by one) and  subtract 2**55 from all of them and search in this 2000 ranged and get 66 puzzzle.....


this example with difference from 66 bit to one of end range is 2**45:

4473851742395 5093917
6674995201175590393
6674990727323847998
25033953356734 5329065
6675015761277204732
6674990727323847998
17273917703686 6208005
6675008001241551684
6674990727323847998
18833788691815 6540667
6675009561112539813
6674990727323847998


4473851742395 -difference betwen end range and 2**66 bit puz ,she is <=2**45;

 5093917 range number
6674995201175590393 -  END  of range

6674990727323847998 - target 2**66 priv
copper member
Activity: 1330
Merit: 899
🖤😏
Hello

how many time will take search 2000 ranges in 55 bit ?

Thank You

You mean dividing 2^55 by 2000 ranges? Well in that case it would take exactly the same as searching 2^55,  total range, if your ranges have specific size, then you should tell us their size or just multiply your range by 2000 and then divide the result by your speed per second, the answer would be seconds taking to search your range. Then divide 60 to get minutes, again divide by 60 to get hours, then divide by 24 to get days, /365 to get years etc, but you already knew that right?
member
Activity: 785
Merit: 20
$$P2P BTC BRUTE.JOIN NOW ! https://uclck.me/SQPJk
Hello

how many time will take search 2000 ranges in 55 bit ?

Thank You
copper member
Activity: 1330
Merit: 899
🖤😏
This paper talks about something about using prime number spirals to break private key cryptography.
Not cool to post a suspicious link to some unknown blog, you should highlight the important parts and post them instead. But something tells me, if who ever wrote that paper knew how to crack private keys, he wouldn't publish it.😉
legendary
Activity: 956
Merit: 1037
That will be nothing wrong until you reach and use with 90c all the time.
Also, the main problem is not the GPU temprature; it is VRM. Do not trust 60 degrees. Check your VRM temps.

79 Degrees at 99%

Edit:

The above was "off the shelf" settings.

Using the fan curve feature in MSI Afterburner I set the GPU fan speed curve to max the GPU fans out @ 70 degrees.

With this new temp curve in place I can maintain a temperature of 70 degrees (+/- 2)  while @ 3,400 Mkeys/s but the card alone is consuming about 435Watt

2nd Edit

After removing the glass side from my PC case leaving the chassis open with a small external fan blowing into the case the card runs @ 3,422 Mkeys/s while maintaining 60 degrees (+/- 1).

The manufacturers documentation for my case states the case should be closed to maintain correct air flow however all temperature readings on the system suggest otherwise, the entire system is running much cooler, the GPU 20 degrees less on average.

So the FINAL answer to the original question is

The Zotac RTX 4090 running Bitcrack2 can process 3,422 Mkeys/s while maintaining 60 degrees with a fan speed floating between 65 to 68%.
member
Activity: 177
Merit: 14
My 2080 once reached 88 Celsius.

I don't think 79 was that bad lol,

but both are hot definitely! Wink
newbie
Activity: 6
Merit: 4
79 Degrees at 99%

Edit:

The above was "off the shelf" settings.

Using the fan curve feature in MSI Afterburner I set the GPU fan speed curve to max the GPU fans out @ 70 degrees.

With this new temp curve in place I can maintain a temperature of 70 degrees (+/- 2)  while @ 3,400 Mkeys/s but the card alone is consuming about 435Watt

2nd Edit

After removing the glass side from my PC case leaving the chassis open with a small external fan blowing into the case the card runs @ 3,422 Mkeys/s while maintaining 60 degrees (+/- 1).

The manufacturers documentation for my case states the case should be closed to maintain correct air flow however all temperature readings on the system suggest otherwise, the entire system is running much cooler, the GPU 20 degrees less on average.

So the FINAL answer to the original question is

The Zotac RTX 4090 running Bitcrack2 can process 3,422 Mkeys/s while maintaining 60 degrees with a fan speed floating between 65 to 68%.
member
Activity: 177
Merit: 14
What was the peak temperature that your 4090 reached using bitcrack?
newbie
Activity: 6
Merit: 4
      So after hours I finally got Bitcrack2 to compile with CUDA and up and running on my new PC i7-13700K 3.4 GHz 16 core running a Zotac RTX 4090.
      BTW to build Bitcrack2 the instructions said you require Microsoft Visual Studio Community 2019, I also had to install 2017 due to a 3rd party file referencing the 2017 runtime, anyway.

      For anyone interested here are some of the Bitcrack settings I played with and the respective stats running on the RTX 4090.

      All use the following config, note the X drive is a Samsung Evo SSD containing nothing but Bitcrack2 and it's respective files.

      X:\BitCrack.exe --continue X:\save.txt --in X:\ImportAddresses.txt --out X:\keysfound.txt --keyspace 300000000000000000:36FFFFFFFFFFFFFFF -b xx -t xx -p xx

      The file "X:\ImportAddresses.txt" contains the single address for comp 66 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so

    • b 256 -t 512 -p 2048 (Crashed)  Undecided
    • b 128 -t 512 -p 3072 (Crashed)  Undecided
    • b 128 -t 512 -p 2048 = 3,407 MKeys/s @ 435Watts = 7.8 Mkeys/s per watt  Smiley
    • b 128 -t 256 -p 2048 = 3,333 MKeys/s @ 447Watts = 7.4 Mkeys/s per watt
    • b 96 -t 512 -p 2048   = 3,000 MKeys/s @ 445Watts = 6.7 Mkeys/s per watt
    • b 96 -t 512 -p 1024   = 2,915 MKeys/s @ 444Watts = 6.5 Mkeys/s per watt
    • b 96 -t 265 -p 1024   = 2,900 MKeys/s @ 435Watts = 6.6 Mkeys/s per watt
    • b 96 -t 128 -p 1024   = 2,354 MKeys/s @ 458Watts = 5.1 Mkeys/s per watt
    • b 64 -t 512 -p 2048   = 2,500 MKeys/s @ 378Watts = 6.6 Mkeys/s per watt
    • b 64 -t 256 -p 2048   = 2,300 MKeys/s @ 357Watts = 6.4 Mkeys/s per watt
    • b 64 -t 128 -p 1024   = 1,605 MKeys/s @ 278Watts = 5.7 Mkeys/s per watt (Fans don't cut in)
    • b 64 -t 128 -p 512     = 1,610 MKeys/s @ 267Watts = 6.0 Mkeys/s per watt (Fans don't cut in)

    In comparison to my other rig running a Xeon Hex core 3.46Ghz plus a GTX 970

    • GTX 970 = b 64 -t 128 -p 512 = 150 MKeys/s (Flat out, it run warm and was the best I could ever get out of it.)

    So the RTX 4090 running flat out is just over 22.6 times faster than my old GTX 970 which is crazy, what would have taken 22.6 years to scan will now take 1 year however in reality I don't think the RTX 4090 could last a year at those temperatures, it literally heated up the room more than my central heating system does.

    If anyone else is running the RTX 4090 it would be interesting to compare Mkeys/s

    [/list][/list]
    member
    Activity: 785
    Merit: 20
    $$P2P BTC BRUTE.JOIN NOW ! https://uclck.me/SQPJk
    Hello guy's

    What computer need for generate numbers in range 2^60 - 2^64 ?

    How long time this work get ?

    PC with 100 cores will generate this numbers in not more then one week ?

    Br
    newbie
    Activity: 4
    Merit: 0
    Hello everyone, I recently purchased a video card, I want to try the search. Tell me, what other alternatives are there ButCrack on CUDA cores?
    member
    Activity: 77
    Merit: 19
    my answer was to nomachine

    his code:

    Code:
    mport os
    import multiprocessing as mp
    from gmpy2 import mpz, powmod
    from bitcoinlib.encoding import addr_to_pubkeyhash, to_hexstring
    from bitcoinlib.keys import HDKey
    from ecdsa import SigningKey, SECP256k1

    def save_key_to_file(private_hex: str):
        with open(f"{private_hex}.txt", "w") as f:
            f.write(private_hex)

    def generate_random_numbers(num_numbers):
        return [os.urandom(32) for _ in range(num_numbers)]

    def search_for_key(start_key_int, stop_key_int, target_address, attempts_per_process, random_numbers):
        for i in range(attempts_per_process):
            current_key_int = mpz(powmod(int.from_bytes(random_numbers[i], 'big'), 1, stop_key_int - start_key_int)) + start_key_int
            ecdsa_private_key = SigningKey.from_secret_exponent(int(current_key_int), curve=SECP256k1)
            key = HDKey(key=ecdsa_private_key.to_string())

            if key.address() == target_address:
                save_key_to_file(key.private_hex)
                print(f"Private key found: {key.private_hex}")
                return key
        return None

    def search_in_range(start_key_int, stop_key_int, target_address, attempts_per_process, random_numbers):
        process_start_key_int = mpz(powmod(int.from_bytes(random_numbers[0], 'big'), 1, stop_key_int - start_key_int)) + start_key_int
        process_stop_key_int = (process_start_key_int + attempts_per_process) % stop_key_int
        search_for_key(process_start_key_int, process_stop_key_int, target_address, attempts_per_process, random_numbers)

    if __name__ == "__main__":
        address = '1FeexV6bAHb8ybZjqQMjJrcCrHGW9sb6uF'

        start_key = '0000000000000000000000000000000000000000000000040000000000000000'
        stop_key = '000000000000000000000000000000000000000000000007ffffffffffffffff'
        start_key_int = mpz(start_key, 16)
        stop_key_int = mpz(stop_key, 16)

        attempts_per_process = 2000000
        num_processes = 8

        random_numbers = generate_random_numbers(attempts_per_process * num_processes)

        processes = []
        for _ in range(num_processes):
            process = mp.Process(target=search_in_range, args=(start_key_int, stop_key_int, address, attempts_per_process, random_numbers))
            processes.append(process)
            process.start()

        for process in processes:
            process.join()

        print(f"Private key not found in the given range after {num_processes * attempts_per_process} attempts.")


    he import :
    Code:
    from bitcoinlib.encoding import addr_to_pubkeyhash, to_hexstring
    from bitcoinlib.keys import HDKey
    from ecdsa import SigningKey, SECP256k1


    and he calculate:

    Code:
    def search_for_key(start_key_int, stop_key_int, target_address, attempts_per_process, random_numbers):
        for i in range(attempts_per_process):
            current_key_int = mpz(powmod(int.from_bytes(random_numbers[i], 'big'), 1, stop_key_int - start_key_int)) + start_key_int
            ecdsa_private_key = SigningKey.from_secret_exponent(int(current_key_int), curve=SECP256k1)
            key = HDKey(key=ecdsa_private_key.to_string())

            if key.address() == target_address:
                save_key_to_file(key.private_hex)
                print(f"Private key found: {key.private_hex}")
                return key
        return None

    so first:
    he calculate :


    Code:
    ecdsa_private_key = SigningKey.from_secret_exponent(int(current_key_int), curve=SECP256k1)
            key = HDKey(key=ecdsa_private_key.to_string())

            if key.address() == target_address:


    which taking time.    Smiley

     
    Pages:
    Jump to: