Post
Topic
Board Bitcoin Discussion
Re: == Bitcoin challenge transaction: ~1000 BTC total bounty to solvers! ==UPDATED==
by
proenca
on 11/04/2025, 16:49:39 UTC
Simple code to search 69 wallet

import os
import random
import hashlib
import ecdsa
import base58

TARGET_ADDRESS = "19vkiEajfhuZ8bs8Zu2jgmC6oqZbWqhxhG"
MIN_RANGE = int("100000000000000000", 16)
MAX_RANGE = int("1fffffffffffffffff", 16)

def private_key_to_address(priv_key_hex):
    # Gerar chave privada como bytes
    priv_key_bytes = bytes.fromhex(priv_key_hex)

    # Gerar chave pública (comprimida)
    sk = ecdsa.SigningKey.from_string(priv_key_bytes, curve=ecdsa.SECP256k1)
    vk = sk.verifying_key
    pubkey_point = vk.pubkey.point
    x = pubkey_point.x()
    y = pubkey_point.y()
    prefix = b'\x02' if y % 2 == 0 else b'\x03'
    pubkey_compressed = prefix + x.to_bytes(32, 'big')

    # Hash da chave pública
    sha256_1 = hashlib.sha256(pubkey_compressed).digest()
    ripemd160 = hashlib.new('ripemd160', sha256_1).digest()

    # Prefixo de endereço (0x00 para Mainnet)
    prefix_ripemd160 = b'\x00' + ripemd160

    # Checksum
    checksum = hashlib.sha256(hashlib.sha256(prefix_ripemd160).digest()).digest()[:4]

    # Endereço final em Base58
    binary_address = prefix_ripemd160 + checksum
    address = base58.b58encode(binary_address).decode()

    return address

def generate_random_private_key():
    return random.randint(MIN_RANGE, MAX_RANGE)

while True:
    rand_key_int = generate_random_private_key()
    priv_key_hex = f"{rand_key_int:064x}"
    address = private_key_to_address(priv_key_hex)
    print(f"Addr: {address}")
   
    if address == TARGET_ADDRESS:
        print("\n=== MATCH FOUND! ===")
        print(f"Private Key: {priv_key_hex}")
        break