<<  >> (p.385)
    Author Topic: Bitcoin puzzle transaction ~32 BTC prize to who solves it  (Read 345936 times)
    dastic
    Jr. Member
    *
    Offline Offline

    Activity: 35
    Merit: 1


    View Profile
    March 05, 2025, 07:38:31 AM
     #7681

    useless_shenanigans part 2:

    Code:
    import hashlib
    import time
    import sympy
    import ecdsa
    import base58
    import random

    # Given constants
    var_hash160dec = 1282931445580409769159733555522242769745473092945
    min_range = 242965459430942930354
    max_range = 276313659744993920795
    addr = '1MVDYgVaSN6iKKEsbzRUAYFrYJadLYZvvZ'

    def match(pk):
        pub_key = ecdsa.SigningKey.from_string(
            pk.to_bytes(32, 'big'), curve=ecdsa.SECP256k1
        ).verifying_key.to_string('compressed')

        return h160 == hashlib.new(
            'ripemd160', hashlib.sha256(pub_key).digest()).digest()

    def gen_subproducts(factors, seen: set, idx=0, prod=1):
        if idx == len(factors):
            if prod > 1 and prod not in seen:
                seen.add(prod)
                if match(prod):
                    print(f'Key found: {hex(prod)}')
                    with open("foundkey.txt", "w") as f:
                        f.write(f"Private key: {hex(prod)}")
                    exit()
            return

        factor, exp = factors[idx]
        for i in range(exp + 1):
            if gen_subproducts(factors, seen, idx + 1, prod * (factor ** i)):
                return True

    def generate_n():
        rand_divisor = random.randint(min_range, max_range)
        return (var_hash160dec/ rand_divisor) * rand_divisor

    # Decode target H160
    h160 = base58.b58decode_check(addr)[1:]
    print(f'Target H160: {h160.hex():>040s}')

    while True:
        n = generate_n()
        print(f'Trying n = {n}')
       
        factors = list(sympy.factorint(n).items())
        seen = set()
       
        if gen_subproducts(factors, seen):
            break





    Why you chose this range?

    min_range = 242965459430942930354
    max_range = 276313659744993920795
Page 384
Viewing Page: 385