YAML Metadata Warning:empty or missing yaml metadata in repo card

Check out the documentation for more information.

KangarooPy — solver Pollard's Kangaroo pentru puzzle-uri publice pe blockchain

Solver ECDLP (metoda Pollard's Kangaroo / lambda) pe secp256k1, în Python pur, pentru puzzle-uri publice sancționate — ex. Bitcoin Puzzle Transactions, unde creatorul a publicat deliberat intervalul și cheia publică, invitând la rezolvare.

⚠ Etică/legale: instrumentul rezolvă DOAR intervale cu cheie publică ȘI interval cunoscut/autorizat. NU poate descoperi chei private de portofele străine dintr-o adresă — matematic imposibil (2^256 chei) și furt.

Utilizare

# 1. validează nucleul criptografic contra 4 vectori REALI on-chain (instant)
python kangaroo_solver.py verify

# 2. test end-to-end: k sintetic generat și recuperat exact
python kangaroo_solver.py selftest --bits 40 --threads 2

# 3. rezolvă un puzzle din tabel (necesită pubkey cunoscut)
python kangaroo_solver.py solve --puzzle 40 --threads 8

# 4. pubkey + interval propriu
python kangaroo_solver.py solve --pubkey 03... --bits 50 --threads 8
python kangaroo_solver.py solve --pubkey 03... --a 0x100000 --b 0x200000

# 5. listează puzzle-urile cunoscute
python kangaroo_solver.py puzzles

Cum funcționează

  • 2 herzi (tame: d·G, d∈[a,b); wild: P + d·G, d∈[−W/2, W/2)) — porniri după pseudocodul JeanLucPons/Kangaroo
  • 256 sărituri cu distribuție geometrică, media ≈ √W/2, alese determinist din x
  • Distinguished Points (x % 2^dp == 0) partajate între procese
  • Inversare modulară în lot (Montgomery trick) — o singură inversare per pas de turmă
  • Coliziune tame/wild → k ∈ {±(d_t−d_w), ±(d_t+d_w)}, filtrat pe interval, verificat cu k·G == pubkey
  • Multiprocessing (un proces per nucleu), gmpy2 opțional pentru viteză

Performanță măsurată (sandbox cpu-basic, 2 nuclee)

Test Rezultat
verify — 4 vectori reali (#85, #105, #110, #115) PASS
selftest 32-bit PASS — cheie recuperată exact
selftest 36-bit PASS — cheie recuperată exact
selftest 40-bit PASS în 8s, 2.6M pași (teorie: 2.1·√W ≈ 1.5M) ✓
Viteză ~315k pași/s pe 2 nuclee

Limite onește (Python pur, CPU)

Lățime interval W Timp estimat per nucleu
2^36 secunde
2^40 ~10 s
2^44 ~1 min
2^48 ~3 min
2^52 ~11 min
2^60 ~3 ore
2^84+ ani — necesită CUDA (RCKangaroo)

Status live puzzle-uri (verificat on-chain, octombrie 2026)

#120, #125, #130, #135: CHERCHITE (rezolvate de altcineva). #140–#160: NESOLVATE, pubkey cunoscut. Cel mai mic target: #140 (14 BTC) — ~1.6×10²¹ operații așteptate → milioane de ani pe laptop; realist doar ferme de GPU-uri în pool. Comandă de verificare status:

python kangaroo_solver.py fetchpub --address <addr>

Adresele non-multiplu de 5 nu au pubkey → nerezolvabile cu kangaroo.

Unde ai șanse REALE pe un laptop

În seriile clasice, toate țintele mici sunt rezolvate — dar în community apar constant puzzle-uri noi de 40–70 biți cu premii (fezabile pe laptop). Urmărește:

  • bitcointalk thread 5517607 (RCKangaroo) — hub-ul actual al vânătorilor
  • bitcointalk thread 5244940 (JeanLucPons Kangaroo)
  • bitcointalk thread 5322040 (keyhunt — BTC + Ethereum)

Workflow când apare o țintă nouă:

python kangaroo_solver.py fetchpub --address <addr>    # status + pubkey
python kangaroo_solver.py solve --pubkey <hex> --bits <N> --threads 8

Starea curentă a seriei oficiale (verificată on-chain): #140–#160 nesolvate, cel mai mic target #140 (~1.6×10²¹ op) → infezabil pe laptop.

Validare

  • verify: soluțiile publicate ale puzzle-urilor #85, #105, #110, #115 reproduc pubkey-urile on-chain — nucleul secp256k1 + parsarea pubkey verificate contra datelor reale.
  • selftest: k aleator generat în interval, pubkey derivat, apoi recuperat exact de solver (32/36/40 biți) — algoritmul de căutare verificat end-to-end.
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support