Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
0x1FFFFFF
on 25/02/2025, 17:26:33 UTC

puzzle: 66 HuhHuh?? Possibilities : ??



puzzle: 67 HuhHuh?? Possibilities : ??


In my previous two posts, a question mark turned into an answer. As I mentioned, there are 5 to 20 possible starting points, and the answer is...

puzzle: 66 2832ed74 Possibilities : 10         puzzle: 67 730fc235 Possibilities : 13

   Seed : 1198740450 KHex : 2832ed74            Seed : 2113081982 KHex : 730fc235
   Seed : 1869248704 KHex : 2832ed74            Seed : 2179848786 KHex : 730fc235
   Seed : 3920977047 KHex : 2832ed74            Seed : 2620256395 KHex : 730fc235
   Seed : 4138865358 KHex : 2832ed74            Seed : 3559516538 KHex : 730fc235
   Seed : 5491054614 KHex : 2832ed74            Seed : 5559894373 KHex : 730fc235
   Seed : 5889540521 KHex : 2832ed74            Seed : 5960477113 KHex : 730fc235
   Seed : 6227837743 KHex : 2832ed74            Seed : 6204436682 KHex : 730fc235
   Seed : 7311367263 KHex : 2832ed74            Seed : 7016671995 KHex : 730fc235
   Seed : 7442940504 KHex : 2832ed74            Seed : 8305603871 KHex : 730fc235
   Seed : 8850149776 KHex : 2832ed74            Seed : 8560029709 KHex : 730fc235
                                                Seed : 8633074902 KHex : 730fc235
                                                Seed : 9737552820 KHex : 730fc235
                                                Seed : 9997208084 KHex : 730fc235



Hi @zahid888. I am curious about this from last year.. I even write some python script to try to understand this, but still didnt get that :

Code:
import hashlib
from ecdsa import SigningKey, SECP256k1
import binascii
import base58
import random
import time

def set_random_seed(manual_seed=None):
    if manual_seed is not None:
        random.seed(manual_seed)
    else:
        # Auto seed between 1000000000 to 9999999999
        random_seed = random.randint(1000000000, 9999999999)
        random.seed(random_seed)
        print(f"Auto Generated Seed: {random_seed}")

def get_random_private_key(start_range, end_range):
    return random.randint(start_range, end_range)

def private_key_to_public_key(private_key_hex):
    signing_key = SigningKey.from_string(bytes.fromhex(private_key_hex), curve=SECP256k1)
    verifying_key = signing_key.get_verifying_key()
    pub_key = verifying_key.to_string("compressed")
    return pub_key

def public_key_to_address(public_key):
    sha256_hash = hashlib.sha256(public_key).digest()
    ripemd160_hash = hashlib.new('ripemd160')
    ripemd160_hash.update(sha256_hash)
    hash160 = ripemd160_hash.digest()
    version_hash160 = b'\x00' + hash160
    double_sha256 = hashlib.sha256(hashlib.sha256(version_hash160).digest()).digest()
    binary_address = version_hash160 + double_sha256[:4]
    address = base58.b58encode(binary_address).decode('utf-8')
    return address

def generate_address_from_private_key(private_key_int):
    private_key_hex = format(private_key_int, '064x')
    public_key = private_key_to_public_key(private_key_hex)
    address = public_key_to_address(public_key)
    return {
        'private_key': private_key_hex,
        'address': address
    }

def generate_from_bit_range(bit_number):
    start_range = 2 ** (bit_number - 1)
    end_range = (2 ** bit_number) - 1
    private_key_int = get_random_private_key(start_range, end_range)
    result = generate_address_from_private_key(private_key_int)
   
    print(f"\nBit {bit_number}")
    print(f"Range: {hex(start_range)[2:]}:{hex(end_range)[2:]}")
    print(f"Address: {result['address']}")
    print(f"Private Key: {result['private_key']}")
    print("-" * 80)
    return result

def main():
    while True:
        print("\nSelect seed option:")
        print("\n1. Manual seed (input your own number)")
        print("2. Auto seed (random between 1000000000 to 9999999999)")
        print("3. Exit")
       
        choice = input("\nEnter your choice (1-3): ")
       
        if choice == "1":
            try:
                seed = int(input("Enter your seed number: "))
                set_random_seed(seed)
            except ValueError:
                print("Invalid input. Please enter a valid number.")
                continue
        elif choice == "2":
            set_random_seed()
        elif choice == "3":
            print("Exiting program...")
            break
        else:
            print("Invalid choice. Please select 1, 2, or 3.")
            continue
       
        print("\n=== Random Generation from Bit Ranges ===")
        for bit in range(1, 70):
            generate_from_bit_range(bit)

if __name__ == "__main__":
    main()