Search content
Sort by

Showing 20 of 147 results by user_not_here
Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
user_not_here
on 30/05/2025, 05:28:27 UTC
hopeless:
Scanning 23,298,085,122,481 Electrum v1 seed combinations using 8 cores...
[5.0s] Checked: 5,108,500 | Speed: 1,021,699/s | Progress: 0.000022%
It does not look like your code is actually doing its job. It does not even try to search for the address, this is why the speed is for doing basically nothing.

you did not even try.

Code:
import time
import itertools
from multiprocessing import Pool, cpu_count
import hashlib, struct, base58
from ecdsa import SigningKey, SECP256k1

# === Configuration ===
TARGET_ADDRESS = "1ATUAMkg2y9mFB2fEJCmovt53bsgaiG5Ug"

# breathe black tower truth food liberty moon mask subject proof vote real
position_words = {
    1:  ["food","this", "subject", "breathe", "black", "order", "vote"],
    2:  ["food","this", "subject", "real", "black", "order", "vote"],
    3:  ["food","this", "subject", "breathe", "tower", "order", "vote"],
    4:  ["truth"],
    5:  ["food","this", "subject", "real", "black", "order", "vote"],
    6:  ["liberty"],
    7:  ["moon"],
    8:  ["food","this", "subject", "mask", "black", "order", "vote"],
    9:  ["food","this", "subject", "real", "black", "order", "vote"],
    10: ["food","this", "subject", "real", "black", "order", "proof"],
    11: ["food","this", "subject", "real", "black", "order", "vote"],
    12: ["food","this", "subject", "real", "black", "order", "vote"]
}


REPORT_INTERVAL = 5  # seconds


# === Private key to P2PKH address ===
def private_to_address(priv):
    sk = SigningKey.from_string(priv, curve=SECP256k1)
    pub = b'\x04' + sk.verifying_key.to_string()
    sha = hashlib.sha256(pub).digest()
    ripe = hashlib.new('ripemd160', sha).digest()
    prefixed = b'\x00' + ripe
    checksum = hashlib.sha256(hashlib.sha256(prefixed).digest()).digest()[:4]
    return base58.b58encode(prefixed + checksum).decode()

# === Electrum v1 seed to address ===
def electrum_seed_to_addr(seed_words):
    phrase = ' '.join(seed_words)
    seed = hashlib.sha512(phrase.encode('utf-8')).digest()
    priv_key = seed[:32]
    return private_to_address(priv_key)

# === Combination checker ===
def check_combination(combo):
    if len(set(combo)) < len(combo):  # enforce unique words
        return None
    try:
        address = electrum_seed_to_addr(combo)
        if address == TARGET_ADDRESS:
            return combo
    except:
        return None
    return None

# === Parallel combination scanner ===
def scan_combinations_parallel():
    word_lists = [position_words[i + 1] for i in range(12)]
    total = 1
    for lst in word_lists:
        total *= len(lst)

    print(f"Scanning {total:,} Electrum v1 seed combinations using {cpu_count()} cores...")

    start = time.time()
    last_report = start
    pool = Pool(cpu_count())

    generator = itertools.product(*word_lists)

    for i, result in enumerate(pool.imap_unordered(check_combination, generator, chunksize=1000)):
        now = time.time()
        if now - last_report >= REPORT_INTERVAL:
            elapsed = now - start
            speed = i / elapsed
            progress = (i / total) * 100
            print(f"[{elapsed:.1f}s] Checked: {i:,} | Speed: {speed:,.0f}/s | Progress: {progress:.6f}%")
            last_report = now

        if result:
            print("\nSUCCESS! Valid Electrum seed found:")
            print(" ".join(result))
            print(f"Address: {TARGET_ADDRESS}")
            pool.terminate()
            return

    print("\nDone. No matching Electrum-style mnemonic found.")

# === Main ===
if __name__ == "__main__":
    scan_combinations_parallel()

Scanning 40,353,607 Electrum v1 seed combinations using 8 cores...
[5.0s] Checked: 6,381,000 | Speed: 1,276,035/s | Progress: 15.812713%
[10.0s] Checked: 12,892,272 | Speed: 1,289,032/s | Progress: 31.948252%
[15.0s] Checked: 18,649,000 | Speed: 1,242,677/s | Progress: 46.213961%

SUCCESS! Valid Electrum seed found:
breathe black tower truth food liberty moon mask subject proof vote real
Address: 1ATUAMkg2y9mFB2fEJCmovt53bsgaiG5Ug
Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
user_not_here
on 29/05/2025, 19:36:38 UTC
what kind of speed should i expect when using python to brute force 12 word bip39 seed phrase from word list?
Pure Python implementation should get you maybe like a dozen or two per second, that's all.

it shows around 10000h/s
Sounds like you are doing part of the work only. I was testing the whole thing like getting a list of deterministic keys/addresses and so on.

atleast it found test phrase.
now playing with https://privatekeys.pw/puzzles/0.2-btc-puzzle



hopeless:
Scanning 23,298,085,122,481 Electrum v1 seed combinations using 8 cores...
[5.0s] Checked: 5,108,500 | Speed: 1,021,699/s | Progress: 0.000022%

Don’t waste your time on this  it’s an endless attempt with near zero chance of success. Thhe creator hasn’t updated or even signed the puzzle address. It’s not worth 0.2 BTC; you’re better off sticking with the 32 BTC puzzle instead.


It is useless mess. As i can see it is electrum 1626, but can not find even 12 correct candinates.

advanceed research :
https://github.com/AlberTajuelo/bitcoin-0.2-image-puzzle/tree/master

github had lot of exact words in right position compared to my guess.


Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
user_not_here
on 29/05/2025, 15:38:07 UTC
what kind of speed should i expect when using python to brute force 12 word bip39 seed phrase from word list?
Pure Python implementation should get you maybe like a dozen or two per second, that's all.

it shows around 10000h/s
Sounds like you are doing part of the work only. I was testing the whole thing like getting a list of deterministic keys/addresses and so on.

atleast it found test phrase.
now playing with https://privatekeys.pw/puzzles/0.2-btc-puzzle



hopeless:
Scanning 23,298,085,122,481 Electrum v1 seed combinations using 8 cores...
[5.0s] Checked: 5,108,500 | Speed: 1,021,699/s | Progress: 0.000022%

Don’t waste your time on this  it’s an endless attempt with near zero chance of success. Thhe creator hasn’t updated or even signed the puzzle address. It’s not worth 0.2 BTC; you’re better off sticking with the 32 BTC puzzle instead.


It is useless mess. As i can see it is electrum 1626, but can not find even 12 correct candinates.
Post
Topic
Board Bitcoin Discussion
Re: 0.2 ₿ puzzle
by
user_not_here
on 28/05/2025, 21:08:21 UTC
Hallo allerseits ich bin grad dabei folgende Wörter words = [     "black", "this", "order", "find", "real",  "subject", "food", "truth", "hidden", "future",  "freedom", "power", "moon", "tower", "welcome" ] vollständig miteinander also 455 Kombination mit jeweils  479.001.600 Permutationen durchzusuchen ich werde euch in ein paar Tagen Rückmeldung geben was die Suche gebracht   Hat . 

Hello everyone, I am currently in the process of exhaustively searching through the following words:

words = [ "black", "this", "order", "find", "real", "subject", "food", "truth", "hidden", "future", "freedom", "power", "moon", "tower", "welcome" ]

That means checking all 455 combinations with 479,001,600 permutations each. I will get back to you in a few days with the results of the search.


Invalid BIP39 Words:
hidden
Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
user_not_here
on 28/05/2025, 19:56:26 UTC
what kind of speed should i expect when using python to brute force 12 word bip39 seed phrase from word list?
Pure Python implementation should get you maybe like a dozen or two per second, that's all.

it shows around 10000h/s
Sounds like you are doing part of the work only. I was testing the whole thing like getting a list of deterministic keys/addresses and so on.

atleast it found test phrase.
now playing with https://privatekeys.pw/puzzles/0.2-btc-puzzle

Code:
import itertools
import time
from multiprocessing import Pool, cpu_count
from mnemonic import Mnemonic
from Crypto.Hash import HMAC, SHA512
import hashlib, struct, base58
from ecdsa import SigningKey, SECP256k1

TARGET_ADDRESS = "1KfZGvwZxsvSmemoCmEV75uqcNzYBHjkHZ"
REPORT_INTERVAL = 3  # seconds
mnemo = Mnemonic('english')

# Position-specific word candidates
position_words = {
    1: ["black", "this", "day", "subject", "food", "real", "liberty", "time",
        "proof", "receive", "tower", "moon", "order", "police", "change",
        "vote", "future", "world", "mask"],
    2: ["black", "this", "day", "subject", "food", "real", "liberty", "time",
        "proof", "receive", "tower", "moon", "order", "police", "change",
        "vote", "future", "world", "mask"],
    3: ["black", "this", "day", "subject", "food", "real", "liberty", "time",
        "proof", "receive", "tower", "moon", "order", "police", "change",
        "vote", "future", "world", "mask"],
    4: ["black", "this", "day", "subject", "food", "real", "liberty", "time",
        "proof", "receive", "tower", "moon", "order", "police", "change",
        "vote", "future", "world", "mask"],
    5: ["black", "this", "day", "subject", "food", "real", "liberty", "time",
        "proof", "receive", "tower", "moon", "order", "police", "change",
        "vote", "future", "world", "mask"],
    6: ["black", "this", "day", "subject", "food", "real", "liberty", "time",
        "proof", "receive", "tower", "moon", "order", "police", "change",
        "vote", "future", "world", "mask"],],
    7: ["black", "this", "day", "subject", "food", "real", "liberty", "time",
        "proof", "receive", "tower", "moon", "order", "police", "change",
        "vote", "future", "world", "mask"],,
    8: ["black", "this", "day", "subject", "food", "real", "liberty", "time",
        "proof", "receive", "tower", "moon", "order", "police", "change",
        "vote", "future", "world", "mask"],,
    9: ["black", "this", "day", "subject", "food", "real", "liberty", "time",
        "proof", "receive", "tower", "moon", "order", "police", "change",
        "vote", "future", "world", "mask"],
    10: ["black", "this", "day", "subject", "food", "real", "liberty", "time",
        "proof", "receive", "tower", "moon", "order", "police", "change",
        "vote", "future", "world", "mask"],
    11:["black", "this", "day", "subject", "food", "real", "liberty", "time",
        "proof", "receive", "tower", "moon", "order", "police", "change",
        "vote", "future", "world", "mask"],
    12: ["black", "this", "day", "subject", "food", "real", "liberty", "time",
        "proof", "receive", "tower", "moon", "order", "police", "change",
        "vote", "future", "world", "mask"],

def hmac_sha512(key, data):
    return HMAC.new(key, data, digestmod=SHA512).digest()

def derive_bip44_key(seed):
    hardened = 0x80000000
    key = b'Bitcoin seed'
    I = hmac_sha512(key, seed)
    priv_key, chain = I[:32], I[32:]
    for index in [44 + hardened, 0 + hardened, 0 + hardened, 0, 0]:
        data = b'\x00' + priv_key + struct.pack('>L', index)
        I = hmac_sha512(chain, data)
        priv_key, chain = I[:32], I[32:]
    return priv_key

def private_to_address(priv):
    sk = SigningKey.from_string(priv, curve=SECP256k1)
    pub = b'\x04' + sk.verifying_key.to_string()
    sha = hashlib.sha256(pub).digest()
    ripe = hashlib.new('ripemd160', sha).digest()
    prefixed = b'\x00' + ripe
    checksum = hashlib.sha256(hashlib.sha256(prefixed).digest()).digest()[:4]
    return base58.b58encode(prefixed + checksum).decode()

def bip39_seed_to_addr(seed_words):
    phrase = ' '.join(seed_words)
    seed = mnemo.to_seed(phrase, passphrase="")
    priv = derive_bip44_key(seed)
    return private_to_address(priv)

def check_combination(combo):
    # Reject combinations with duplicate words
    if len(set(combo)) < len(combo):
        return None

    phrase = ' '.join(combo)
    if not mnemo.check(phrase):
        return None

    try:
        address = bip39_seed_to_addr(combo)
        if address == TARGET_ADDRESS:
            return combo
    except Exception:
        return None

    return None

def scan_positional_combinations():
    all_combinations = itertools.product(
        position_words[1], position_words[2], position_words[3],
        position_words[4], position_words[5], position_words[6],
        position_words[7], position_words[8], position_words[9],
        position_words[10], position_words[11], position_words[12]
    )
    total = 6**12
    print(f"Scanning {total:,} combinations using {cpu_count()} cores...")

    start = time.time()
    last_report = start
    pool = Pool(cpu_count())

    for i, result in enumerate(pool.imap_unordered(check_combination, all_combinations, chunksize=100)):
        now = time.time()
        if now - last_report >= REPORT_INTERVAL:
            elapsed = now - start
            speed = i / elapsed
            progress = (i / total) * 100
            print(f"[{elapsed:.1f}s] Checked: {i:,} | Speed: {speed:,.0f}/s | Progress: {progress:.8f}%")
            last_report = now

        if result:
            print("\nSUCCESS! Valid mnemonic found:")
            print(" ".join(result))
            print(f"Address: {TARGET_ADDRESS}")
            pool.terminate()
            return

    print("\nDone. No matching mnemonic found.")

if __name__ == "__main__":
    scan_positional_combinations()

Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
user_not_here
on 28/05/2025, 15:32:24 UTC
what kind of speed should i expect when using python to brute force 12 word bip39 seed phrase from word list?
Pure Python implementation should get you maybe like a dozen or two per second, that's all.

it shows around 10000h/s
Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
user_not_here
on 28/05/2025, 14:33:16 UTC
what kind of speed should i expect when using python to brute force 12 word bip39 seed phrase from word list?
Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
user_not_here
on 27/05/2025, 17:22:34 UTC
answering machine:

When working with elliptic curves like secp256k1, and considering higher-level endomorphic rings or subgroups of specific order (e.g., 149 or 631), you're dealing with subgroups of the elliptic curve group
𝐸
(
𝐹
𝑝
)
E(F
p

 ). Determining whether two points lie in the same subgroup without exhaustively generating the subgroup is a subtle but important question.

Let’s break it down and clarify whether there’s a "quick trick" based solely on
(
𝑥
,
𝑦
)
(x,y) of the points.

✅ What You’re Asking:
Can you quickly determine if two points
𝑃
P and
𝑄
Q on secp256k1 lie in the same subgroup of a given order, like 149 or 631, just by looking at
𝑃
=
(
𝑥
1
,
𝑦
1
)
P=(x
1

 ,y
1

 ) and
𝑄
=
(
𝑥
2
,
𝑦
2
)
Q=(x
2

 ,y
2

 )?

🔍 Short Answer:
No, you cannot definitively determine if two points lie in the same subgroup just by their
𝑥
,
𝑦
x,y coordinates without further computation.
However, there are efficient algebraic techniques (better than full subgroup enumeration) to test subgroup membership.

🧠 Conceptual Explanation:
1. Elliptic Curve Group Structure:
For a curve like secp256k1, the full curve group
𝐸
(
𝐹
𝑝
)
E(F
p

 ) is a large cyclic (or nearly cyclic) abelian group. It can be decomposed into subgroups of different orders.

The endomorphism ring refers to the set of algebraic maps from the curve to itself that preserve structure.

Higher-level endomorphic rings like order 149 or 631 refer to small cyclic subgroups inside the full group.

2. Subgroup Membership Test:
To check whether
𝑃

𝐺
P∈G, where
𝐺
G is a subgroup of known order
𝑛
n, do:

[
𝑛
]
𝑃
=
𝑂
[n]P=O
If true, then
𝑃

𝐺
P∈G.
This is fast with scalar multiplication, especially for small
𝑛
n like 149 or 631.

So if you want to check whether both
𝑃
P and
𝑄
Q are in subgroup of order 149:

text
Kopioi
Muokkaa
Is [149]P = O?
Is [149]Q = O?
If both are, then they lie in the subgroup of order 149 (they may still generate different cyclic subgroups within, though).

3. Using Discrete Logs / Cosets:
If you know a generator
𝐺
G of the subgroup, then:

You can express each point
𝑃
=
[
𝑘
]
𝐺
P=[k]G.

Then points that are scalar multiples of each other lie in the same cyclic subgroup.

But solving for
𝑘
k requires solving the discrete logarithm problem (DLP), which is hard even for small groups unless you brute force or use baby-step giant-step.

4. No Visual Trick from (x, y):
There is no visual or quick coordinate-only check that will tell you definitively whether two points lie in the same subgroup of order 149 or 631 — those coordinates can be totally arbitrary even within the same subgroup.

Even worse: many
𝑥
x-coordinates may correspond to points in different subgroups depending on
𝑦
y, and the same point can belong to multiple subgroups if those subgroups intersect.

✅ Practical Method to Check Subgroup Membership
Given a point
𝑃
P, and a subgroup order
𝑛
n:

python
Kopioi
Muokkaa
def is_in_subgroup(P, n):
    return n * P == INFINITY
And to check whether two points lie in the same subgroup:

python
Kopioi
Muokkaa
def are_in_same_subgroup(P, Q, n):
    return n * P == INFINITY and n * Q == INFINITY
If you want to go further (e.g., check if they generate the same cyclic subgroup), you’d need to:

Confirm both are in the subgroup.

Compute
𝑑
=
gcd

(
𝑘
𝑃
,
𝑘
𝑄
,
𝑛
)
d=gcd(k
P

 ,k
Q

 ,n), where
𝑃
=
[
𝑘
𝑃
]
𝐺
P=[k
P

 ]G,
𝑄
=
[
𝑘
𝑄
]
𝐺
Q=[k
Q

 ]G, and
𝐺
G is a known generator.

But again, solving for
𝑘
𝑃
k
P

  and
𝑘
𝑄
k
Q

  requires solving discrete logs.

🧩 Bonus: Trick Using Pairings (Not Available on secp256k1)
On pairing-friendly curves (e.g., BLS12-381), you can sometimes use pairings to test subgroup membership efficiently. But secp256k1 is not pairing-friendly, so this trick doesn't apply.
Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
user_not_here
on 25/05/2025, 15:55:29 UTC
i dont get the idea of range f6f543.
while all talk, range scanned to be empty
Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
user_not_here
on 23/05/2025, 22:15:36 UTC
AI-generated
23%

Human-written
77%

One of the big reasons sane people don't post here (or retire) is that it's a waste of time to fight against idiocracy (which is exactly where society is heading if everything people are able to do is 2 things: ask AI about shit they're too dumb to learn, and ask AI whether something was written by AI). This is getting too boredom to hear every 2 sentences that "all your posts are AI based". I guess people will eventually lose their brains all together because of that shit. Fuck education and everything related to it.

u forget people use ai to translate
we all do not speak english
Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
user_not_here
on 23/05/2025, 21:26:38 UTC

I’ve got a basic grasp of modular arithmetic, but initially interpreted the situation differently — like, the point −𝑃 −P kinda feels “greater” than 𝑃
P, especially when you look at it through the lens of inversion over the 𝑦 y-axis. 📉📈

Now here’s the spicy bit 🌶️:
If you start walking from − 𝑃 −P, incrementing the private key by 1 each time (i.e., checking for some  𝑘 k where 𝑘⋅𝐺=𝑃 k⋅G=P), you'll actually hit the point 𝑃 P relatively quickly — because they’re connected through the curve’s group order.
But if you go the other way — starting at 𝑃
P, trying to reach −𝑃
−P via +1 steps — you'll have to walk almost the entire group order. 🚶‍♂️🔁

That means direction matters, and that’s something we might be able to leverage. This method gives a hint about the sign or orientation of the point. 👀🧭

🤔 I'm wondering — are there any libs or implementations that let you determine which of two points is “closer to 0” or gives clues about their directional relationship?

Nothin' about this ChatGPT response makes any sense.

There is no point "closer" to 0. The associated point at infinity doesn't exist on the curve, it's an abstract construct, part of the mathematical group. It has no value to be compared against. It's undefined.

There's no such thing as orientation of a point. They're all modular coordinates, under the same field. It makes no sense to talk about signs. We can only speak about the Y parity, but a parity does not mean that a value is above or below some median value, so there is no way to extract any information about the "sign", or the "low"/"high" values based on parity. Let alone extract any information about any relation to some other point.

The scalars of a point and its opposite always have two possible differences, one of them less or equal to N - 1 / 2, the other one the difference to N itself. There is no way to tell whether the shorter difference is going from P to -P, or from -P to P, when the scalars are unknown.

This thread's goin' nowhere lately, only junk questions, n00b code, and fantasies about solving a problem that requires up to 2 million dollars to solve (using the fastest possible methods and hardware) on google colab. wtf Cheesy

AI-generated
23%

AI-generated & AI-refined
0%

Human-written & AI-refined
0%

Human-written
77%
Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
user_not_here
on 23/05/2025, 08:52:13 UTC
Accepted all kind of msgs from feel free share the code
With working output

On file save decimal value of keys

U can send private message
That is full cpu.

https://github.com/brichard19/BitCrack/tree/master/cudaMath
Cuda would look something like:
Code:
// gpu_scan_secp256k1_full.cu
// Full GPU-based secp256k1 -> SHA256 -> RIPEMD160 scanner using actual CUDA ECC and hash implementations
// Dependencies: secp256k1.cuh, sha256.cuh, ripemd160.cuh, ptx.cuh

#include <stdio.h>
#include <stdint.h>
#include <cuda.h>
#include <cuda_runtime.h>

#include "secp256k1.cuh"
#include "sha256.cuh"
#include "ripemd160.cuh"
#include "ptx.cuh"

__device__ bool check_prefix(const uint8_t* h160) {
    return h160[0] == 0xf6 && h160[1] == 0xf5 && h160[2] == 0x43;
}

__global__ void kernel_scan(uint64_t base, uint64_t total_keys) {
    uint64_t idx = blockIdx.x * blockDim.x + threadIdx.x;
    if (idx >= total_keys) return;

    uint64_t priv = base + idx;

    uint256_t seckey;
    set_uint256_from_uint64(seckey, priv);

    secp256k1_pubkey_t pubkey;
    secp256k1_scalar_multiply(pubkey, seckey);

    uint8_t pubkey33[33];
    secp256k1_compress_pubkey(pubkey33, pubkey);

    uint8_t sha_digest[32];
    sha256(pubkey33, 33, sha_digest);

    uint8_t h160[20];
    ripemd160(sha_digest, 32, h160);

    if (check_prefix(h160)) {
        printf("[MATCH] priv=0x%016llx h160=%.2x%.2x%.2x...\n",
               (unsigned long long)priv, h160[0], h160[1], h160[2]);
    }
}

int main(int argc, char** argv) {
    if (argc != 4) {
        printf("Usage: ./gpu_scan <start> <count> <threads_per_block>\n");
        return 1;
    }

    uint64_t start = strtoull(argv[1], nullptr, 0);
    uint64_t count = strtoull(argv[2], nullptr, 0);
    int threads = atoi(argv[3]);

    uint64_t blocks = (count + threads - 1) / threads;

    cudaEvent_t t_start, t_end;
    cudaEventCreate(&t_start);
    cudaEventCreate(&t_end);
    cudaEventRecord(t_start);

    kernel_scan<<<blocks, threads>>>(start, count);
    cudaDeviceSynchronize();

    cudaEventRecord(t_end);
    cudaEventSynchronize(t_end);

    float ms = 0;
    cudaEventElapsedTime(&ms, t_start, t_end);
    printf("\nScanned %llu keys in %.2f s (%.2f MH/s)\n",
           (unsigned long long)count, ms / 1000.0, count / (ms * 1e3));

    return 0;
}

Can u explain step by step with our code
Private msg are accepted

Code depends on CUDA header which are from bitrack.

gpu_scan.exe <start_private_key> <number_of_keys> <threads_per_block>

Example:
gpu_scan.exe 0x1 1000000 256

This command starts scanning from private key 0x1, scans 1,000,000 keys, and uses 256 threads per CUDA block.

Program has not been tested and serves as a framework or starting point.
Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
user_not_here
on 23/05/2025, 06:06:21 UTC
Accepted all kind of msgs from feel free share the code
With working output

On file save decimal value of keys

U can send private message
That is full cpu.
Cuda would look something like:
Code:
// gpu_scan_secp256k1_full.cu
// Full GPU-based secp256k1 -> SHA256 -> RIPEMD160 scanner using actual CUDA ECC and hash implementations
// Dependencies: secp256k1.cuh, sha256.cuh, ripemd160.cuh, ptx.cuh

#include <stdio.h>
#include <stdint.h>
#include <cuda.h>
#include <cuda_runtime.h>

#include "secp256k1.cuh"
#include "sha256.cuh"
#include "ripemd160.cuh"
#include "ptx.cuh"

__device__ bool check_prefix(const uint8_t* h160) {
    return h160[0] == 0xf6 && h160[1] == 0xf5 && h160[2] == 0x43;
}

__global__ void kernel_scan(uint64_t base, uint64_t total_keys) {
    uint64_t idx = blockIdx.x * blockDim.x + threadIdx.x;
    if (idx >= total_keys) return;

    uint64_t priv = base + idx;

    uint256_t seckey;
    set_uint256_from_uint64(seckey, priv);

    secp256k1_pubkey_t pubkey;
    secp256k1_scalar_multiply(pubkey, seckey);

    uint8_t pubkey33[33];
    secp256k1_compress_pubkey(pubkey33, pubkey);

    uint8_t sha_digest[32];
    sha256(pubkey33, 33, sha_digest);

    uint8_t h160[20];
    ripemd160(sha_digest, 32, h160);

    if (check_prefix(h160)) {
        printf("[MATCH] priv=0x%016llx h160=%.2x%.2x%.2x...\n",
               (unsigned long long)priv, h160[0], h160[1], h160[2]);
    }
}

int main(int argc, char** argv) {
    if (argc != 4) {
        printf("Usage: ./gpu_scan <start> <count> <threads_per_block>\n");
        return 1;
    }

    uint64_t start = strtoull(argv[1], nullptr, 0);
    uint64_t count = strtoull(argv[2], nullptr, 0);
    int threads = atoi(argv[3]);

    uint64_t blocks = (count + threads - 1) / threads;

    cudaEvent_t t_start, t_end;
    cudaEventCreate(&t_start);
    cudaEventCreate(&t_end);
    cudaEventRecord(t_start);

    kernel_scan<<<blocks, threads>>>(start, count);
    cudaDeviceSynchronize();

    cudaEventRecord(t_end);
    cudaEventSynchronize(t_end);

    float ms = 0;
    cudaEventElapsedTime(&ms, t_start, t_end);
    printf("\nScanned %llu keys in %.2f s (%.2f MH/s)\n",
           (unsigned long long)count, ms / 1000.0, count / (ms * 1e3));

    return 0;
}

Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
user_not_here
on 22/05/2025, 17:57:51 UTC
Code:
import time
import hashlib
from coincurve import PrivateKey
from Crypto.Hash import RIPEMD160
import psutil
import os
import signal
import sys
import multiprocessing as mp
from bloom_filter2 import BloomFilter
from google.colab import drive

# Mount Google Drive
drive.mount('/content/drive')

# Config
File_NAME = "Puzzle 71.013.000.csv"
DRIVE_FOLDER = "/content/drive/MyDrive/Puzzle71"
file_path = f"{DRIVE_FOLDER}/{File_NAME}"
SCAN_RANGE = 100_000
TARGET_PREFIX = "f6f543"
BLOOM_CAPACITY = 1_000_000
BLOOM_ERROR_RATE = 0.001

# Load known H160 hashes into Bloom filter
KNOWN_H160S = [
    "f6f5431d25bbf7b12e8add9af5e3475c44a0a5b8",
]
bloom = BloomFilter(max_elements=BLOOM_CAPACITY, error_rate=BLOOM_ERROR_RATE)
for h in KNOWN_H160S:
    bloom.add(h)

# Read decimal numbers from CSV
with open(file_path, 'r') as f:
    lines = [line.strip() for line in f if line.strip()]
if lines[0].lower().startswith('value'):
    lines = lines[1:]
Decimal_numbers = [int(line) for line in lines]

def privatekey_to_h160(priv_key_int):
    try:
        priv = PrivateKey.from_int(priv_key_int)
        pubkey = priv.public_key.format(compressed=True)
        sha256 = hashlib.sha256(pubkey).digest()
        ripemd160 = RIPEMD160.new(sha256).digest()
        return ripemd160.hex()
    except Exception:
        return None

def optimize_performance():
    try:
        p = psutil.Process()
        if hasattr(p, "cpu_affinity"):
            p.cpu_affinity(list(range(os.cpu_count())))
        if hasattr(psutil, "REALTIME_PRIORITY_CLASS"):
            p.nice(psutil.REALTIME_PRIORITY_CLASS)
        else:
            p.nice(-20)
    except Exception as e:
        print(f"[!] Optimization warning: {e}")

def signal_handler(sig, frame):
    print("\n[!] Interrupted. Exiting.")
    sys.exit(0)

def check_key(k):
    h160 = privatekey_to_h160(k)
    if h160 and (h160.startswith(TARGET_PREFIX) or h160 in bloom):
        return ('match', k, h160)
    return ('progress', k, h160)

def process_decimal(decimal):
    start = max(1, decimal - SCAN_RANGE)
    end = decimal + SCAN_RANGE
    keys = list(range(start, end + 1))

    processed = 0
    start_time = time.time()
    last_key = None
    last_h160 = None

    ctx = mp.get_context("fork")
    with ctx.Pool(processes=os.cpu_count()) as pool:
        result_iter = pool.imap_unordered(check_key, keys, chunksize=1000)

        for result in result_iter:
            if result[0] == 'match':
                _, key, h160 = result
                print(f"\n**PREFIX MATCH FOUND!** Private key {hex(key)} produces Hash160: {h160}\n")
            elif result[0] == 'progress':
                _, key, h160 = result
                processed += 1
                last_key = key
                last_h160 = h160

    elapsed = time.time() - start_time
    speed = processed / elapsed if elapsed > 0 else 0
    print(f"\nHash160 of the last processed key {hex(last_key)} -> {last_h160}")
    print(f"[✓] Completed Decimal: {Decimal} - Processed {processed} keys in {elapsed:.2f}s (Speed: {speed:.2f} keys/sec)")

def main():
    signal.signal(signal.SIGINT, signal_handler)
    optimize_performance()

    print(f"\nLoaded {len(Decimal_numbers)} Decimal numbers.")
    print(f"Scanning ±{SCAN_RANGE} around each.\nTarget prefix: {TARGET_PREFIX}")
    print(f"Bloom filter contains {len(KNOWN_H160S)} known H160 hashes.\n")

    for decimal in decimal_numbers:
        process_decimal(decimal)

if __name__ == '__main__':
    main()


Help me out to use rotor cuda gpu modules able run on colab
Private key to hash 160

Codes must be inserted properly; otherwise, you are creating an unreadable thread.



Like when people help to learn basics instead of crying AI was there
Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
user_not_here
on 21/05/2025, 21:44:23 UTC
Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
user_not_here
on 17/05/2025, 20:31:53 UTC
basically it's a waste of time, if you want to solve it just invest in a lot of gpu, there's no other way to solve it. Are you tired?

Why stupidy?
Rent
Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
user_not_here
on 16/05/2025, 22:39:38 UTC
When you finnish talking to your self, maybe we continue shit scripts
Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
user_not_here
on 16/05/2025, 22:33:54 UTC
@Benjade, We need a windows version please.  Smiley Obivously this will not work for puzzles but really need that for a specific test

I have.
It is useless, i wont upload shit

Bro, the Cyclone version you shared seems different from the one provided by NoMachine, the command lines don't match

Lady, im not your bro.
Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
user_not_here
on 16/05/2025, 22:09:58 UTC
@Benjade, We need a windows version please.  Smiley Obivously this will not work for puzzles but really need that for a specific test

I have.
It is useless, i wont upload shit
Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
user_not_here
on 16/05/2025, 21:55:35 UTC
This mock is small scale.
Imagine all the fud and shit when i made with altcoins 2012-2018