Author

Topic: Bitcoin puzzle transaction ~32 BTC prize to who solves it - page 181. (Read 229859 times)

newbie
Activity: 18
Merit: 0

@unpluggedcoin I see so much potentials in this code... I need to know how we can further get something to work by mapping one point to another on the curve so even if x coordinates is not going to hit, maybe the double or subtracted or divided would... we can work together if you want... though still very new with the curve but I'm trying my best... I must admit.

To all who are using my script and have doubts!

First of all, the script is not some kind of magical idea or trick no nothing! It is simplest subtraction of equal amount in parts! The script won't generate any points itself into checkpoints.txt file. You have to provide it both checkpoints.txt and xy.txt files. It will only generate j_value.txt file in which it will be saving number of iterations (you'll know what they are in a minute). The script is a simplest possible kangaroo sort of thing and nothing else. Let me explain again:
Suppose our puzzle pub key has the private key 1593 and its bit range is between 1024 to 2048.
You have its public key x and y coordinates in decimal format in xy.txt file in same directory.
You have checkpoints.txt file in which you have public key x coordinate only in decimal (1 per line).
These are the public keys of starting private keys. In our example suppose they are 2 to 11. Now you have 10 x coordinates in checkpoints.txt file. (The important point why I gave it a shot is that I liked the idea of doubling the checkpoints while keeping it single because starting 10 private keys and last 10 private keys have same x coordinates. So if you subtract public key of 15 (15 is private key) from the public key of 10 (10 is private key) you'll get the public key of n-4 whose x coordinate must be same as of 5.
back to our example So you place initial 11 public keys x coordinates in checkpoints.txt file.
Script loads checkpoints.txt file and subtracts from it equal parts in one iteration and write 1 in j_value.txt file. I writes 2 after second iteration and so on. So if power goes out or anything happens and system is off, your script will start from where it left. Here is our example working:
pubkeys 2-11 are loaded.
You can change your settings, i'll just show what I did back there:
As we know the range it is between 1024 and 2048 (For puzzle 125 I divided the starting range into 100,000 parts, so scripts single iteration has 100,000 parts, (these are sort of subtraction jumps) in our example suppose we pick 16 equal jumps and we divide range into 10 parts so one subtraction is subtracting 102 (there is always be a whole number in EC don't worry about perfect numbers). Let's run it,

1593-102=1491 (script matches this point within checkpoints.txt file, NO MATCH)
1491-102=1389 (NO MATCH)
1389-102=1287=(NO MATCH)
.
.
.
165-102=63 (NO MATH)

1st iteration completed. The script writes 1 in j_value.txt file. NOW script subtracts 11 from your puzzle pub key and then starts iteration:

1593-11= 1582 (Now this replaces the starting point, now please don't asks how you would get back to original pub key, be mindful)

1582-102=1480 (NO MATCH)
1480-102=1378 (NO MATCH)
.
.
.
154-102=52 (NO MATCH)

It will certainly be touching the checkpoint BUT WHEN NO BODY CAN TELL FOR CERTAIN!

I saw someone commented on my script saying how script generated checkpoints and stuff,, please study pub key generation before using this script



Few pages earlier OP himself asked if someone needed help to upgrade system and stuff like that, I saw people bashing other people, sort of disappointing! I did asked him if I could have access to a strong CPU with more RAM and few TB HARD, I could have cracked puzzle 125, considering the time I ran those script on my dual core with upgraded 8 RAM.
copper member
Activity: 1330
Merit: 899
🖤😏

because at first you made mention of something quote "you should find any relation between similar addresses and their public/ private keys with  their sha256 hashes"... with that said, what kind of relationship are you talking about? besides that, I thought hashes are one way and cannot be calculated the other way unlike the EC curve that is based solely on the SECP256K1 implementations, one point linking to another point on the curve... I might be wrong though. Can you expatiate how we can successfully find the relation between addresses and their hashes...

Anything is always possible and I always keep a good faith...

Don't go after hashes and addresses, that is  for tech giants not for puzzle solvers, anyone trying to find relations between addresses and hashes is lifting more than he could/ should, because after breaking 2 hash functions which is equal to breaking a 256 bit key, you will have to deal with the public key, you could however solve 66 up to 124 in a few month using kangaroo but breaking 2 hash functions is not something easy.

A group effort is needed to partially break ECC and solve the keys 130, 135 etc, it doesn't matter if someone uses our ideas to solve the puzzles and keep the coins, what matters is us throwing as big as we can find at ECC's window to see when it cracks.

And when we start seeing cracks on the glass, we could think of more protection before billions of dollars and millions of lives are ruined.😉
jr. member
Activity: 75
Merit: 5

You can use key subtracter by alberto, https://bitcointalksearch.org/topic/keysubtracter-test-development-requests-bug-reports-5360656

You could use a known public key and use -a - s with -r 0:f  -n 30 to have 15 + and -15 of your known public key, however use -z and -x to have only x coordinates, then you can convert them all to decimal.
[/quote]

Great... thanks for this
You are a life saver
I am drastically learning so much as the day goes by...
jr. member
Activity: 75
Merit: 5
jr. member
Activity: 75
Merit: 5
Speaking of spamming the topic with unimportant content!

When you guys realize that in order to find a key based on address alone, first you'd need to break rmd160, then sha256 to get the public key and then find the private key based on the public key, since only public key and private key are directly related mathematically.

What you should do instead now that you are using your time, you should find any relation between similar addresses and their public/ private keys with  their sha256 hashes, at least this way you are one step closer to solving 66 etc, because you won't have to face rmd160.

However, trying to do that will require more power and time than solving the puzzle #160.

So don't waste your time on something that difficult, try finding ways to go around the EC rules and break/ bend them either completely or partially.


For example, this is a method to partially break EC :

Divide a point by e.g, 5, then divide n by 5, and then add the result of p/5 to n/5, if your point is not divisible by 5 depending on the last digit of the private key, the division result differs.

Demonstration :
823 / 5 = 164.6
Now all you need is to extract 0.6 of n in secp256k1 and keep it for next operation, then after dividing 823 by 5, you just divide n by 5 and add the result of 823/5 to n/5 + 6/10 of n = 164

But what happens if we divide 822 / 5 = 164.4, just follow the previous steps this time extract 4/10 of n to add to your second result.

We just broke EC by simple math operations, though when your key is large and unknown, the fraction could be any percentage of n, but if you divide by 2 up to 9, since any key can only have 0 up to 9 on it's last digit, 1 out of 10 division + n/th + n/remainder will work.



I could never find these things out if I was still working on addresses and hashes.😉




Quote
what I need to know is, how to get the checkpoints for the puzzle 130 and how many checkpoints do i need their x coordinates in the checkpoints? Also will the code print the target public key's equivalent private key or will it save it to a file? Thanks as we all learning...

You can use key subtracter by alberto, https://bitcointalksearch.org/topic/keysubtracter-test-development-requests-bug-reports-5360656

You could use a known public key and use -a - s with -r 0:f  -n 30 to have 15 + and -15 of your known public key, however use -z and -x to have only x coordinates, then you can convert them all to decimal.

Your ideas are always nailing it bro, but for the sake of clarification, can we be sure which parts we need to work with? Puzzle 66 or 130? because at first you made mention of something quote "you should find any relation between similar addresses and their public/ private keys with  their sha256 hashes"... with that said, what kind of relationship are you talking about? besides that, I thought hashes are one way and cannot be calculated the other way unlike the EC curve that is based solely on the SECP256K1 implementations, one point linking to another point on the curve... I might be wrong though. Can you expatiate how we can successfully find the relation between addresses and their hashes...

Anything is always possible and I always keep a good faith...
jr. member
Activity: 75
Merit: 5

Also for checkpoint.txt I just need to paste x coordinates on one line per key and save their private keys?  What else do I need to change on the script?

I appreciate it.

Edit, I got it running, I just need to know what to change for addition and subtraction, should I put values in decimal? And why it won't show anything on screen? Lol it just blinks endlessly.

Here is how to tune script as per your needs:
1. xy.txt file must have x and y coordinates in decimal format with a single space between them, as I clarified earlier.
2. In checkpoints.txt file you don't need to save their private keys, why? that is whole point, because we keep starting 100 million or 1 billion pub keys' x coordinates which will work as 2 billions, so it is obvious that their private keys are from 2 to 1 billion or the last 1 billion.
3. There are 3 things that you can change, step size to be subtracted, number of steps, and number of iterations.
all these are in numbers not in points.
4. Finally, why script was blinking, is because it was loading checkpoints.txt file, In my case I had 8 GB RAM with around 5.5 GB checkpoints.txt file, on a dual core system. It was taking around half an hour before printing steps.... Be patient, if no error occur, it will start printing within half an hour.

I was also able to update the existing code to utilize almost all available CPU in your machine though leaving space for other activities and it's now 10 times faster...

Code:
from multiprocessing import Pool, cpu_count

Pcurve = 2**256 - 2**32 - 2**9 - 2**8 - 2**7 - 2**6 - 2**4 -1 # The proven prime
N=0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 # Number of points in the field
Acurve = 0; Bcurve = 7 # These two defines the elliptic curve. y^2 = x^3 + Acurve * x + Bcurve
Gx = 55066263022277343669578718895168534326250603453777594175500187360389116729240
Gy = 32670510020758816978083085130507043184471273380659243275938904335757337482424
GPoint = (Gx,Gy) # This is our generator point. Trillions of dif ones possible

def modinv(a, n=Pcurve):
    lm, hm = 1, 0
    low, high = a % n, n
    while low > 1:
        ratio = high // low
        nm, new = hm - lm * ratio, high - low * ratio
        lm, low, hm, high = nm, new, lm, low
    return lm % n

def ECadd(a, b):
    if a == 'O':
        return b
    if b == 'O':
        return a
    if a == b:
        LamAdd = ((3 * a[0] * a[0] + Acurve) * modinv(2 * a[1], Pcurve)) % Pcurve
    else:
        LamAdd = ((b[1] - a[1]) * modinv(b[0] - a[0], Pcurve)) % Pcurve
    x = (LamAdd * LamAdd - a[0] - b[0]) % Pcurve
    y = (LamAdd * (a[0] - x) - a[1]) % Pcurve
    return (x, y)


def ECsub(a, b):
    if b == 'O':
        return a
    if isinstance(a, str):
        a = tuple(map(int, a.split()))
    if isinstance(b, str):
        b = tuple(map(int, b.split()))
    neg_b = (b[0], -b[1] % Pcurve)
    return ECadd(a, neg_b)


def ECmul(a, b):
    result = 'O'
    while b > 0:
        if b % 2 == 1:
            result = ECadd(result, a)
        a = ECadd(a, a)
        b = b // 2
    return result

# Read the x, y coordinates from xy.txt
with open("xy.txt", "r") as f:
    x, y = map(int, f.read().strip().split())
    point = (x, y)

# Read the checkpoint x-coordinates from checkpoints.txt
with open("checkpoints.txt", "r") as f:
    checkpoints = set(map(int, f.read().strip().split()))

filename_out = "results.txt"


sub_count = 0


# read the last value of j from file
try:
    with open("j_value.txt", "r") as f:
        last_j_value = int(f.readline())
except:
    last_j_value = 0

def process_iteration(args):
    j, last_j_value, point, checkpoints, filename_out = args
    found_match = False
    sub_count = 160000000 * j
    for k in range(100001):
        if k == 0:
            pass
        else:
            sub_count += 212676479325586539664609129644855
        result = ECmul(GPoint, sub_count)
        result = ECsub(point, result)
        print(sub_count)
        if result[0] in checkpoints:
            with open(filename_out, "w") as f_out:
                subtractions = sub_count // 212676479325586539664609129644855
                f_out.write("{} {} {}".format(result[0], result[1], subtractions))
            found_match = True
            break
    return found_match

def main():
    # Read the x, y coordinates from xy.txt
    with open("xy.txt", "r") as f:
        x, y = map(int, f.read().strip().split())
        point = (x, y)

    # Read the checkpoint x-coordinates from checkpoints.txt
    with open("checkpoints.txt", "r") as f:
        checkpoints = set(map(int, f.read().strip().split()))

    filename_out = "results.txt"

    # read the last value of j from file
    try:
        with open("j_value.txt", "r") as f:
            last_j_value = int(f.readline())
    except:
        last_j_value = 0

    # Determine the number of processes to use
    num_processes = min(cpu_count(), 8)  # You can adjust the number of processes

    args_list = [(j, last_j_value, point, checkpoints, filename_out) for j in range(last_j_value, 10000001)]

    with Pool(processes=num_processes) as pool:
        results = pool.map(process_iteration, args_list)

    if any(results):
        print("Found match!")
    else:
        print("No match found.")

if __name__ == "__main__":
    main()

All we need now is the checkpoint generation techniques to have enough checkpoints for the code to run even faster and maximize RAM usage
copper member
Activity: 1330
Merit: 899
🖤😏
Speaking of spamming the topic with unimportant content!

When you guys realize that in order to find a key based on address alone, first you'd need to break rmd160, then sha256 to get the public key and then find the private key based on the public key, since only public key and private key are directly related mathematically.

What you should do instead now that you are using your time, you should find any relation between similar addresses and their public/ private keys with  their sha256 hashes, at least this way you are one step closer to solving 66 etc, because you won't have to face rmd160.

However, trying to do that will require more power and time than solving the puzzle #160.

So don't waste your time on something that difficult, try finding ways to go around the EC rules and break/ bend them either completely or partially.


For example, this is a method to partially break EC :

Divide a point by e.g, 5, then divide n by 5, and then add the result of p/5 to n/5, if your point is not divisible by 5 depending on the last digit of the private key, the division result differs.

Demonstration :
823 / 5 = 164.6
Now all you need is to extract 0.6 of n in secp256k1 and keep it for next operation, then after dividing 823 by 5, you just divide n by 5 and add the result of 823/5 to n/5 + 6/10 of n = 164

But what happens if we divide 822 / 5 = 164.4, just follow the previous steps this time extract 4/10 of n to add to your second result.

We just broke EC by simple math operations, though when your key is large and unknown, the fraction could be any percentage of n, but if you divide by 2 up to 9, since any key can only have 0 up to 9 on it's last digit, 1 out of 10 division + n/th + n/remainder will work.



I could never find these things out if I was still working on addresses and hashes.😉




Quote
what I need to know is, how to get the checkpoints for the puzzle 130 and how many checkpoints do i need their x coordinates in the checkpoints? Also will the code print the target public key's equivalent private key or will it save it to a file? Thanks as we all learning...

You can use key subtracter by alberto, https://bitcointalksearch.org/topic/keysubtracter-test-development-requests-bug-reports-5360656

You could use a known public key and use -a - s with -r 0:f  -n 30 to have 15 + and -15 of your known public key, however use -z and -x to have only x coordinates, then you can convert them all to decimal.
jr. member
Activity: 75
Merit: 5

Also for checkpoint.txt I just need to paste x coordinates on one line per key and save their private keys?  What else do I need to change on the script?

I appreciate it.

Edit, I got it running, I just need to know what to change for addition and subtraction, should I put values in decimal? And why it won't show anything on screen? Lol it just blinks endlessly.

Here is how to tune script as per your needs:
1. xy.txt file must have x and y coordinates in decimal format with a single space between them, as I clarified earlier.
2. In checkpoints.txt file you don't need to save their private keys, why? that is whole point, because we keep starting 100 million or 1 billion pub keys' x coordinates which will work as 2 billions, so it is obvious that their private keys are from 2 to 1 billion or the last 1 billion.
3. There are 3 things that you can change, step size to be subtracted, number of steps, and number of iterations.
all these are in numbers not in points.
4. Finally, why script was blinking, is because it was loading checkpoints.txt file, In my case I had 8 GB RAM with around 5.5 GB checkpoints.txt file, on a dual core system. It was taking around half an hour before printing steps.... Be patient, if no error occur, it will start printing within half an hour.


I also see these numbers running on my screen

"3612735354303738549282715285277151885
3612948030783064135822379894406796740
3613160707262389722362044503536441595
3613373383741715308901709112666086450
3613586060221040895441373721795731305
3613798736700366481981038330925376160
3614011413179692068520702940055021015
3614224089659017655060367549184665870
3614436766138343241600032158314310725
3614649442617668828139696767443955580
3614862119096994414679361376573600435
3615074795576320001219025985703245290
3615287472055645587758690594832890145
3615500148534971174298355203962535000
3615712825014296760838019813092179855
3615925501493622347377684422221824710
3616138177972947933917349031351469565"...

I have about 40 randomly generated x coordinates within the 130 bits space in the checkpoints.txt
jr. member
Activity: 75
Merit: 5

Also for checkpoint.txt I just need to paste x coordinates on one line per key and save their private keys?  What else do I need to change on the script?

I appreciate it.

Edit, I got it running, I just need to know what to change for addition and subtraction, should I put values in decimal? And why it won't show anything on screen? Lol it just blinks endlessly.

Here is how to tune script as per your needs:
1. xy.txt file must have x and y coordinates in decimal format with a single space between them, as I clarified earlier.
2. In checkpoints.txt file you don't need to save their private keys, why? that is whole point, because we keep starting 100 million or 1 billion pub keys' x coordinates which will work as 2 billions, so it is obvious that their private keys are from 2 to 1 billion or the last 1 billion.
3. There are 3 things that you can change, step size to be subtracted, number of steps, and number of iterations.
all these are in numbers not in points.
4. Finally, why script was blinking, is because it was loading checkpoints.txt file, In my case I had 8 GB RAM with around 5.5 GB checkpoints.txt file, on a dual core system. It was taking around half an hour before printing steps.... Be patient, if no error occur, it will start printing within half an hour.

I understand it until this far and I already fulfilled the first requirements for the xy.txt with my target public key in decimal with a space between the x and y coordinates but I need to ask a question concerning the checkpoints as this is where I am currently stuck. New to the ECC curve but drastically learning as the day goes by... what I need to know is, how to get the checkpoints for the puzzle 130 and how many checkpoints do i need their x coordinates in the checkpoints? Also will the code print the target public key's equivalent private key or will it save it to a file? Thanks as we all learning...
jr. member
Activity: 75
Merit: 5
newbie
Activity: 18
Merit: 0

Also for checkpoint.txt I just need to paste x coordinates on one line per key and save their private keys?  What else do I need to change on the script?

I appreciate it.

Edit, I got it running, I just need to know what to change for addition and subtraction, should I put values in decimal? And why it won't show anything on screen? Lol it just blinks endlessly.

Here is how to tune script as per your needs:
1. xy.txt file must have x and y coordinates in decimal format with a single space between them, as I clarified earlier.
2. In checkpoints.txt file you don't need to save their private keys, why? that is whole point, because we keep starting 100 million or 1 billion pub keys' x coordinates which will work as 2 billions, so it is obvious that their private keys are from 2 to 1 billion or the last 1 billion.
3. There are 3 things that you can change, step size to be subtracted, number of steps, and number of iterations.
all these are in numbers not in points.
4. Finally, why script was blinking, is because it was loading checkpoints.txt file, In my case I had 8 GB RAM with around 5.5 GB checkpoints.txt file, on a dual core system. It was taking around half an hour before printing steps.... Be patient, if no error occur, it will start printing within half an hour.
newbie
Activity: 18
Merit: 0


Really nice one, too bad I don't know how to run scripts, I'm just a windows person used to double click on exe files. 😅


Just copy the code and paste in notepad and save it as myscript.py (it would run on python), save in your folder, open folder, type CMD in address bar above and press ENTER, command prompt terminal will open, type there
>python myscript.py
and hit enter the script will run, you'll see step or jumps prints, chill!
If I had merits I would give you many! Thank you for teaching me something new.

I have some questions if you have the time, should I convert x, y coordinates of my target and paste in x,y.txt like x coordinate on first line and y on second line?

Also for checkpoint.txt I just need to paste x coordinates on one line per key and save their private keys?  What else do I need to change on the script?

I appreciate it.

Edit, I got it running, I just need to know what to change for addition and subtraction, should I put values in decimal? And why it won't show anything on screen? Lol it just blinks endlessly.

No it won't work! First of all you need to understand how python thing works, any single extra space or comma would messup and script would show error! You can clearly see files nomenclatures inside the script itself. like xy.txt file not x,y.txt file,, checkpoints.txt etc... Now about your question, in xy.txt file x and y coordinates should be in decimal format with a single space between them, no comma or () just simply x coordinate single space and y coordinate both in one line!
Further in checkpoints.txt file, in every line there is only single x coordinate per line in decimal format!
jr. member
Activity: 50
Merit: 1
member
Activity: 275
Merit: 20
the right steps towerds the goal
============================= Puzzle 66 Total keys = (36,893,488,147,419,103,232) ===================================

Unique Randomm range: 3f3382a0000000000:3f3382a0fffffffff
Total scanned ranges: 40024
Remning keys decimal: 36,891,997,482,113,866,837
Scanned keys decimal: 1,490,665,305,236,394
Remaining percentage: 99.99595954359404%
Scanneddd percentage: 0.004040456405959958%

Lastt Found Address : 13zb1hQbZAEHh3WmZFkavbM47xrJzuf3MH  33FD61EF68878923E
Puzzl Sarch Address : 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so.._________________
Prfix Match Address : ^^^^^^^^
Charr Match Totalss : 8
Total Found Address : 2010


VanBitCrackenS v1.0
Keyspace start=3F3382A0000000000
Keyspace   end=3F3382A0FFFFFFFFF
Search: 15 prefixes (Lookup size 15) [Compressed]
Started at Thu Aug 17 14:32:34 2023
CPU threads used: 0
GPU: GPU #0 NVIDIA GeForce RTX 3060 Ti (38x128 cores) Grid(304x512)
1118.326 MK/s (GPU 1118.326 MK/s) (2^36.25) [00:01:13 Elapsed Time][0]
[EXIT] Reached end of keyspace.

Finish at Thu Aug 17 14:33:48 2023

============================= Puzzle 66 Total keys = (36,893,488,147,419,103,232) ===================================

Unique Randomm range: 2028d0ed000000000:2028d0edfffffffff
Total scanned ranges: 40025
Remning keys decimal: 36,891,997,413,394,390,102
Scanned keys decimal: 1,490,734,024,713,129
Remaining percentage: 99.99595935732953%
Scanneddd percentage: 0.004040642670474881%

Lastt Found Address : 13zb1hQbZAEHh3WmZFkavbM47xrJzuf3MH  33FD61EF68878923E
Puzzl Sarch Address : 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so.._________________
Prfix Match Address : ^^^^^^^^
Charr Match Totalss : 8
Total Found Address : 2010


VanBitCrackenS v1.0
Keyspace start=2028D0ED000000000
Keyspace   end=2028D0EDFFFFFFFFF
Search: 15 prefixes (Lookup size 15) [Compressed]
Started at Thu Aug 17 14:34:09 2023
CPU threads used: 0
GPU: GPU #0 NVIDIA GeForce RTX 3060 Ti (38x128 cores) Grid(304x512)
1123.593 MK/s (GPU 1123.593 MK/s) (2^36.25) [00:01:13 Elapsed Time][0]
[EXIT] Reached end of keyspace.

Finish at Thu Aug 17 14:35:23 2023

============================= Puzzle 66 Total keys = (36,893,488,147,419,103,232) ===================================

Unique Randomm range: 291cc519000000000:291cc519fffffffff
Total scanned ranges: 40026
Remning keys decimal: 36,891,997,344,674,913,367
Scanned keys decimal: 1,490,802,744,189,864
Remaining percentage: 99.99595917106501%
Scanneddd percentage: 0.004040828934989804%

Lastt Found Address : 13zb1hQbZAEHh3WmZFkavbM47xrJzuf3MH  33FD61EF68878923E
Puzzl Sarch Address : 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so.._________________
Prfix Match Address : ^^^^^^^^
Charr Match Totalss : 8
Total Found Address : 2010


VanBitCrackenS v1.0
Keyspace start=291CC519000000000
Keyspace   end=291CC519FFFFFFFFF
Search: 15 prefixes (Lookup size 15) [Compressed]
Started at Thu Aug 17 14:35:44 2023
CPU threads used: 0
GPU: GPU #0 NVIDIA GeForce RTX 3060 Ti (38x128 cores) Grid(304x512)
1117.955 MK/s (GPU 1117.955 MK/s) (2^36.25) [00:01:13 Elapsed Time][0]
[EXIT] Reached end of keyspace.

Finish at Thu Aug 17 14:36:58 2023

============================= Puzzle 66 Total keys = (36,893,488,147,419,103,232) ===================================

Unique Randomm range: 2ad441a9000000000:2ad441a9fffffffff
Total scanned ranges: 40027
Remning keys decimal: 36,891,997,275,955,436,632
Scanned keys decimal: 1,490,871,463,666,599
Remaining percentage: 99.9959589848005%
Scanneddd percentage: 0.004041015199504727%

Lastt Found Address : 13zb1hQbZAEHh3WmZFkavbM47xrJzuf3MH  33FD61EF68878923E
Puzzl Sarch Address : 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so.._________________
Prfix Match Address : ^^^^^^^^
Charr Match Totalss : 8
Total Found Address : 2010


VanBitCrackenS v1.0
Keyspace start=2AD441A9000000000
Keyspace   end=2AD441A9FFFFFFFFF
Search: 15 prefixes (Lookup size 15) [Compressed]
Started at Thu Aug 17 14:37:18 2023
CPU threads used: 0
GPU: GPU #0 NVIDIA GeForce RTX 3060 Ti (38x128 cores) Grid(304x512)
1117.107 MK/s (GPU 1117.107 MK/s) (2^36.25) [00:01:13 Elapsed Time][1]
[EXIT] Reached end of keyspace.

Finish at Thu Aug 17 14:38:33 2023

============================= Puzzle 66 Total keys = (36,893,488,147,419,103,232) ===================================

Unique Randomm range: 24bf5a43000000000:24bf5a43fffffffff
Total scanned ranges: 40028
Remning keys decimal: 36,891,997,207,235,959,897
Scanned keys decimal: 1,490,940,183,143,334
Remaining percentage: 99.99595879853598%
Scanneddd percentage: 0.00404120146401965%

Lastt Found Address : 13zb1hQbU5nSfRJRqPD4vM4rzsqNJVRkVU  2AD441A91FD312E69
Puzzl Sarch Address : 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so.._________________
Prfix Match Address : ^^^^^^^^              ^    ^
Charr Match Totalss : 10
Total Found Address : 2011


VanBitCrackenS v1.0
Keyspace start=24BF5A43000000000
Keyspace   end=24BF5A43FFFFFFFFF
Search: 15 prefixes (Lookup size 15) [Compressed]
Started at Thu Aug 17 14:38:53 2023
CPU threads used: 0
GPU: GPU #0 NVIDIA GeForce RTX 3060 Ti (38x128 cores) Grid(304x512)
1124.087 MK/s (GPU 1124.087 MK/s) (2^36.25) [00:01:13 Elapsed Time][0]
[EXIT] Reached end of keyspace.

Finish at Thu Aug 17 14:40:08 2023

See the percentage of scanned keys, this is quite painful. Well, until now, I've understood that there's no effective method other than brute forcing. Would anyone be willing to share a scanned range with me, but not fake, completely genuine and clean? Because these 40,000 ranges are absolutely clean
jr. member
Activity: 69
Merit: 2
My second version is slightly improved, but I still have the bottleneck of list cloning. For instance, if I have a 1GB list and I use 4 cores for the search, it uses 4GB of RAM.

Write a separate section of the function for generating the list and call it in your main function.

but my problem is this
Code:
def worker( points....):
   pass

points = set([1,2,3])

num_cores = 4

process = Process(target=worker, args=( points ...))

What happens is that when passing the 'points' list to each core, it gets cloned, resulting in 'num_core * points'.  Sad
newbie
Activity: 23
Merit: 8
My second version is slightly improved, but I still have the bottleneck of list cloning. For instance, if I have a 1GB list and I use 4 cores for the search, it uses 4GB of RAM.

Write a separate section of the function for generating the list and call it in your main function.
jr. member
Activity: 69
Merit: 2
Hello everyone, as I mentioned a few days ago, I'm currently working on searching for a public key. I found the speeds of the bsgs algorithm interesting, and despite not being a professional and also being a novice in Python, I will soon post my version of the software. Currently, I'm solving case #50 in approximately 19 seconds.

A skilled Python developer could please tell me how I can check if an item is in a list using multiprocessing without cloning the list for each worker? This is my current bottleneck and prevents me from increasing the speed. Thank you in advance!

My second version is slightly improved, but I still have the bottleneck of list cloning. For instance, if I have a 1GB list and I use 4 cores for the search, it uses 4GB of RAM.
newbie
Activity: 25
Merit: 2
Code:
import os

file1 = open("C:\Users\kimi_\OneDrive\Desktop\Puzzle\sample1.txt","r")

file2 = open("C:\Users\kimi_\OneDrive\Desktop\Puzzle\sample1.txt","r")

file3 = open('Sample3.bat', "w")

file3.write("@echo [off]" + '\n')

for line in file1:
    file3.write(line)

for line in file2:
    file3.write(line)



file3.write(""KeyHunt-Cuda -m address --coin btc --range" + " + for line in file1 + " ":" " + for line in file2 + "" 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so'\n'")

file1.close()
file2.close()   
file3.close()

Any Python pro here can help me with this dirty simple code but I just couldn't solve it.
File1 = Start Range
File2 = End Range
File3 = Batch File

I have a long starting range in File1 and ending range in File2. I hope to use some python coding to create automatically for a batch file to search. For example, Line 1 in File 1 is A123000 and File 2 is A123FFF. So I want to create starting range of File 1 line 1 and ending range File 2 line 1, output in File3 batch file. I think it's pretty easy for pro python out there but I really not good in coding. Thanks in advance.

Code:
data = data2 = "";

# Reading data from file1
with open('sample1.txt') as fp:
data = fp.read()

# Reading data from file2
with open('sample2.txt') as fp:
data2 = fp.read()

# Merging 2 files
# To add the data of file2
# from next line


with open ('sample3.bat', 'a') as fp:
fp.write("@echo [off]" + '\n')
fp.writelines("KeyHunt-Cuda -m address --coin btc --range " + data + ":" + data2 + "13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so" '\n')

Can someone help to look at what did I do wrong because the output as below?

@echo [off]
KeyHunt-Cuda -m address --coin btc --range aaaa
bbbb
cccc:ddd
eee
fff13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so


File 1
aaaa
bbbb
cccc

File 2
ddd
eee
fff

I hope to get an output of KeyHunt-Cuda -m address --coin btc --range aaaa:ddd 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so

Anyone can teach me a solution on how to code it?

I already found the answer. Thanks anyway.
newbie
Activity: 25
Merit: 2
Code:
import os

file1 = open("C:\Users\kimi_\OneDrive\Desktop\Puzzle\sample1.txt","r")

file2 = open("C:\Users\kimi_\OneDrive\Desktop\Puzzle\sample1.txt","r")

file3 = open('Sample3.bat', "w")

file3.write("@echo [off]" + '\n')

for line in file1:
    file3.write(line)

for line in file2:
    file3.write(line)



file3.write(""KeyHunt-Cuda -m address --coin btc --range" + " + for line in file1 + " ":" " + for line in file2 + "" 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so'\n'")

file1.close()
file2.close()   
file3.close()

Any Python pro here can help me with this dirty simple code but I just couldn't solve it.
File1 = Start Range
File2 = End Range
File3 = Batch File

I have a long starting range in File1 and ending range in File2. I hope to use some python coding to create automatically for a batch file to search. For example, Line 1 in File 1 is A123000 and File 2 is A123FFF. So I want to create starting range of File 1 line 1 and ending range File 2 line 1, output in File3 batch file. I think it's pretty easy for pro python out there but I really not good in coding. Thanks in advance.

Code:
data = data2 = "";

# Reading data from file1
with open('sample1.txt') as fp:
data = fp.read()

# Reading data from file2
with open('sample2.txt') as fp:
data2 = fp.read()

# Merging 2 files
# To add the data of file2
# from next line


with open ('sample3.bat', 'a') as fp:
fp.write("@echo [off]" + '\n')
fp.writelines("KeyHunt-Cuda -m address --coin btc --range " + data + ":" + data2 + "13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so" '\n')

Can someone help to look at what did I do wrong because the output as below?

@echo [off]
KeyHunt-Cuda -m address --coin btc --range aaaa
bbbb
cccc:ddd
eee
fff13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so


File 1
aaaa
bbbb
cccc

File 2
ddd
eee
fff

I hope to get an output of KeyHunt-Cuda -m address --coin btc --range aaaa:ddd 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so

Anyone can teach me a solution on how to code it?
copper member
Activity: 1330
Merit: 899
🖤😏


Really nice one, too bad I don't know how to run scripts, I'm just a windows person used to double click on exe files. 😅


Just copy the code and paste in notepad and save it as myscript.py (it would run on python), save in your folder, open folder, type CMD in address bar above and press ENTER, command prompt terminal will open, type there
>python myscript.py
and hit enter the script will run, you'll see step or jumps prints, chill!
If I had merits I would give you many! Thank you for teaching me something new.

I have some questions if you have the time, should I convert x, y coordinates of my target and paste in x,y.txt like x coordinate on first line and y on second line?

Also for checkpoint.txt I just need to paste x coordinates on one line per key and save their private keys?  What else do I need to change on the script?

I appreciate it.

Edit, I got it running, I just need to know what to change for addition and subtraction, should I put values in decimal? And why it won't show anything on screen? Lol it just blinks endlessly.
Jump to: