Collection of solver implementations targeting the Bitcoin Puzzle Transaction challenge series. Includes algebraic, probabilistic, and heuristic approaches across CPU and GPU, with a CUDA kernel for batch scalar multiplication on RTX 4070 (Ada Lovelace, SM 89).
bitcoin-puzzle-solvers/
├── bitcoin_sat_encoder.py # Full SAT encoding of the privkey-to-hash160 pipeline (ECC + SHA-256 + RIPEMD-160)
├── pollard_rho_puzzle160.py # Pollard Rho with partitioned walk function for Puzzle 160
├── puzzle135_hybrid_ai.py # TensorFlow-guided hybrid solver for Puzzle 135
├── puzzle140_solver.py # Targeted solver for Puzzle 140
├── puzzle160_16fold_attack.py # 16th-root-of-unity symmetry reduction for Puzzle 160
├── puzzle160_crt_solver.py # CRT-based decomposition solver
├── puzzle160_signature_search.py # Signature-based pattern search
├── puzzle71_exhaustive.py # Exhaustive enumeration for Puzzle 71
├── puzzle_solver.py # General-purpose puzzle solver framework
└── scanners/
├── adaptive_cpu.py # Adaptive CPU scanner with dynamic range partitioning
├── ancient_node_finder.py # Discovery of old Bitcoin nodes with weak validation
├── bitcoin_node_scanner.py # Bitcoin P2P protocol node scanner
├── brain_wallet_recovery.py # Brain wallet passphrase recovery
├── btc_personal_scanner.py # Personal address monitoring scanner
├── btc_scanner.py # General blockchain scanner
├── btc_scanner_v2.py # Improved scanner with batch processing
├── epsilon_scanner.py # Epsilon-neighborhood key scanner
├── epsilon_scanner_fast.py # Optimized epsilon scanner
├── layered_scanner.py # Multi-layer scanning strategy
└── secp256k1_cuda.cu # CUDA kernel: batch scalar multiplication (4x64-limb, modular arithmetic)
- Pollard Rho: Cycle-finding random walk on the elliptic curve group with configurable partition function
- SAT Encoding: Converts the full Bitcoin address derivation pipeline (scalar multiplication, SHA-256, RIPEMD-160) into conjunctive normal form
- Neural Hybrid: TensorFlow model trained to predict high-fitness regions for guided search
- 16-Fold Symmetry: Exploits primitive 16th roots of unity in the scalar field to reduce search space
- CUDA Kernel: 256-bit modular arithmetic with 4x64-limb representation, precomputed generator table, compiled for SM 89 (Ada Lovelace)
- Python 3.10+
- Core:
coincurveorecdsa,gmpy2,numpy - GPU: CUDA toolkit,
nvccwith SM 89 support - Optional:
tensorflow,base58,psutil
Andrew Dorman Independent Researcher -- Southlake, TX GitHub: ACD421