Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
nomachine
on 10/03/2025, 19:18:55 UTC
No one can easily 'jump around' elliptic curve (EC) coordinates because they carry critical information about the point's location.

You went too hardcore. This is what I'm assuming:

- generate EC starting pubkeys according to how many threads will run and the size of the range to scan
- copy them to GPU memory
- scan the range (one or more kernel calls), mark matching prefixes above XX bits (XX depends on range size)
- extract results after each run; maybe break earlier from finishing scanning the range if we are lucky (don't make all the kernel calls to finish the range)


Do you mean something like this? Let me express myself through pseudocode:
Code:
// Precompute starting keys
std::vector<Point> startingKeys = generateStartingKeys(totalRange, subrangeSize);

// Transfer to GPU
gpuMemory.copyToDevice(startingKeys);

// Launch GPU kernels
for (int i = 0; i < numSubranges; i += skipOffset) {
    gpuKernel<<<numBlocks, threadsPerBlock>>>(startingKeys[i], subrangeSize, criteria);
    gpuMemory.copyToHost(results);

    if (results.hasMatch()) {
        processResults(results);
        break; // Early termination
    }

    skipOffset = calculateSkipOffset(results); // Adjust skip offset dynamically
}

It requires extensive GPU programming, including:

Kernels, Threads, Blocks, and Grids: Understanding the hierarchical organization of threads in CUDA (or similar frameworks).
Memory Management: Efficiently transferring data between the CPU (host) and GPU (device).

You need ~ 20 weeks (for a highly optimized, scalable implementation).

And the outcome of this entire process remains uncertain.  Grin