Bitcoin Forum
April 24, 2026, 03:09:42 PM *
News: Latest Bitcoin Core release: 30.2 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 ... 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 [442] 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 ... 653 »
  Print  
Author Topic: Bitcoin puzzle transaction ~32 BTC prize to who solves it  (Read 380958 times)
FrozenThroneGuy
Member
**
Offline Offline

Activity: 72
Merit: 43


View Profile
April 09, 2025, 09:03:56 PM
 #8821

Puzzle 69 is the last puzzle for software developer. Next puzzles will be for embedded engineers with hi-end FPGA and people with a huge amount of money for ASIC prototyping. But it is really difficult to develop asic crystal with secp256k1 logic.
Denevron
Newbie
*
Offline Offline

Activity: 121
Merit: 0


View Profile
April 09, 2025, 09:20:35 PM
 #8822

Could you please convert the following Python code to C++ using the libraries in Mutagen? In this code, I am creating a 69-bit binary, but 32 to 35 of them are 1's and 1's can come in a row at most 6 times.  This python speed is very low. I think i can search faster with sha256_avx2 and ripemd160_avx2. However, I don't know C++ and I couldn't figure out how to integrate the codes in the mutagen.


Replace the code in the mutagen to be like this

Code:
#include <random>

thread_local std::mt19937_64 rng(std::random_device{}());

void RandomXor(Int* currentKey, int bit_length, int flip_count) {
    alignas(32) uint64_t flipMasks[4] = {0};

    // Generate random positions and set bits in batches
    for (int i = 0; i < flip_count; ) {
        // Generate 4 random positions at once
        uint64_t rand_positions[4];
        for (int j = 0; j < 4 && i < flip_count; j++, i++) {
            rand_positions[j] = rng() % bit_length;
            int word = rand_positions[j] / 64;
            int bit = rand_positions[j] % 64;
            flipMasks[word] ^= (1ULL << bit);
        }
    }

    // Apply XOR in one AVX2 operation
    __m256i keyVec = _mm256_loadu_si256((__m256i*)currentKey->bits64);
    __m256i maskVec = _mm256_loadu_si256((__m256i*)flipMasks);
    __m256i result = _mm256_xor_si256(keyVec, maskVec);
    _mm256_storeu_si256((__m256i*)currentKey->bits64, result);

    // Clear masks to zero for next iteration
    memset(flipMasks, 0, sizeof(flipMasks));
}

void worker(Secp256K1* secp, int bit_length, int flip_count, int threadId, AVXCounter start, AVXCounter end) {
    const int fullBatchSize = 2 * POINTS_BATCH_SIZE;
    alignas(32) uint8_t localPubKeys[HASH_BATCH_SIZE][33];
    alignas(32) uint8_t localHashResults[HASH_BATCH_SIZE][20];
    alignas(32) int pointIndices[HASH_BATCH_SIZE];

    __m256i target16 = _mm256_loadu_si256(reinterpret_cast<const __m256i*>(TARGET_HASH160_RAW.data()));

    alignas(32) Point plusPoints[POINTS_BATCH_SIZE];
    alignas(32) Point minusPoints[POINTS_BATCH_SIZE];

    for (int i = 0; i < POINTS_BATCH_SIZE; i++) {
        Int tmp;
        tmp.SetInt32(i);
        plusPoints[i] = secp->ComputePublicKey(&tmp);
        minusPoints[i] = plusPoints[i];
        minusPoints[i].y.ModNeg();
    }

    alignas(32) Int deltaX[POINTS_BATCH_SIZE];
    IntGroup modGroup(POINTS_BATCH_SIZE);
    alignas(32) Int pointBatchX[fullBatchSize];
    alignas(32) Int pointBatchY[fullBatchSize];

    CombinationGenerator gen(bit_length, flip_count);
    gen.unrank(start.load());

    AVXCounter count;
    count.store(start.load());

    uint64_t actual_work_done = 0;
    auto last_report = chrono::high_resolution_clock::now();

    while (!stop_event.load() && count < end) {
    Int currentKey;
    currentKey.Set(&BASE_KEY);
    
    RandomXor(&currentKey, bit_length, flip_count);

    string keyStr = currentKey.GetBase16();
    keyStr = string(64 - keyStr.length(), '0') + keyStr;

     #pragma omp critical
    {
        g_threadPrivateKeys[threadId] = keyStr;
    }


No other random implementation will work properly (beyond Puzzle 64); it must be either 128-bit or 256-bit.


=======================================
=========== SOLUTION FOUND ============
=======================================
Private key: 0x1A96CA8D8
Checked 10920739 combinations
Bit flips: 15
Time: 2.86 seconds (00:00:02)
Speed: 31.35 Mkeys/s
Solution saved to puzzle_33_solution.txt

Solved puzzle 33 in 2 seconds with this random code.



well, mutation of random number of bits, interesting idea) let's say you chose to change from 8 to 20 and it randomly drives you this piece of bits)
nomachine
Full Member
***
Offline Offline

Activity: 812
Merit: 134



View Profile
April 09, 2025, 09:41:50 PM
 #8823


well, mutation of random number of bits, interesting idea) let's say you chose to change from 8 to 20 and it randomly drives you this piece of bits)

It is possible to create various variations. You can generate four different XOR masks at once to be bit-flipped using AVX2.

BTC: bc1qdwnxr7s08xwelpjy3cc52rrxg63xsmagv50fa8
kTimesG
Full Member
***
Offline Offline

Activity: 812
Merit: 248


View Profile
April 09, 2025, 09:46:19 PM
 #8824

You guys are aware that XOR-ing some key with some whatever bits, produced in whatever way, is basically the same thing as using some whatever bits as the key, right? That's like, bit logic 101 knowledge.

The "benefit" is that you also have to do a totally useless extra operation to simply get a random number. You're all getting drunk with cold water.

Off the grid, training pigeons to broadcast signed messages.
btc11235
Jr. Member
*
Offline Offline

Activity: 35
Merit: 1


View Profile
April 09, 2025, 10:18:33 PM
 #8825

Puzzle 69 is the last puzzle for software developer. Next puzzles will be for embedded engineers with hi-end FPGA and people with a huge amount of money for ASIC prototyping. But it is really difficult to develop asic crystal with secp256k1 logic.

You guys are aware that XOR-ing some key with some whatever bits, produced in whatever way, is basically the same thing as using some whatever bits as the key, right? That's like, bit logic 101 knowledge.

The "benefit" is that you also have to do a totally useless extra operation to simply get a random number. You're all getting drunk with cold water.

Half the people here are doing their best to come up with creative ways of gaining any edge, no matter how small, over the otherwise nearly insurmountable odds these puzzles present; and the other half seem to be here just to shit on them and generally be as depressing and defeatist as possible Roll Eyes

Personally, I'm having much more fun learning and expanding my horizons in the first group Cheesy
Denevron
Newbie
*
Offline Offline

Activity: 121
Merit: 0


View Profile
April 09, 2025, 10:31:45 PM
Last edit: April 10, 2025, 01:19:20 AM by Denevron
 #8826


well, mutation of random number of bits, interesting idea) let's say you chose to change from 8 to 20 and it randomly drives you this piece of bits)

It is possible to create various variations. You can generate four different XOR masks at once to be bit-flipped using AVX2.

I mean, I'll enter it as a range, when starting the program we now do -f 8 (for example), and there, for example, -f 8:10 was set, and flips (they are done randomly between 8 and 10 bits, they can change 8 in the iteration, and another 9, and so on  Smiley
papiro08
Newbie
*
Offline Offline

Activity: 15
Merit: 0


View Profile
April 10, 2025, 12:44:58 AM
 #8827

a partial match of 6 bytes is useless in puzzle 135? Roll Eyes
yxlm2003
Newbie
*
Offline Offline

Activity: 8
Merit: 0


View Profile
April 10, 2025, 04:05:30 AM
 #8828

Bitcoin Miner S21 XP Hyd. It should run very fast with this. It would be great if it can be developed to run puzzles firmware https://shop.bitmain.com/zh/product/detail?pid=000202406200044065805TcPB8mt0682 Grin
Bram24732
Member
**
Offline Offline

Activity: 322
Merit: 28


View Profile
April 10, 2025, 04:20:31 AM
 #8829


Half the people here are doing their best to come up with creative ways of gaining any edge, no matter how small, over the otherwise nearly insurmountable odds these puzzles present; and the other half seem to be here just to shit on them and generally be as depressing and defeatist as possible Roll Eyes

Personally, I'm having much more fun learning and expanding my horizons in the first group Cheesy

Personally, I’m just fact checking those ideas with basic math.
Some people can’t do that (and that’s ok not everyone has an PhD) and I would really hate that they spend money based on a phoney theory on the internet. That’s why I call the BS when I see it.
If there is a theory which has merit I’ll be the first one to praise it and implement it to win 69 faster.

I solved 67 and 68 using custom software distributing the load across ~25k GPUs. 4090 stocks speeds : ~8.1Bkeys/sec. Don’t challenge me technically if you know shit about fuck, I’ll ignore you. Same goes if all you can do is LLM reply.
fantom06
Jr. Member
*
Offline Offline

Activity: 49
Merit: 1


View Profile
April 10, 2025, 05:45:07 AM
 #8830

Guys, let's solve puzzles not using a GPU, but using a python script and a couple of CPU processors in 15 minutes.

How do you imagine this?)

The only acceleration would occur if you wrote the .so extensions for ripemd160_avx2 and sha256_avx2 and used them for hashing in Python. And everything else related to EC. However, the CPU can't handle more than 8M keys per core—that's the maximum I've achieved in C++. Dead end.

Hi
Error: Puzzle number must be between 20 and 68
help me figure it out. I launch mutagen and an error appears
I downloaded the new version today
FrozenThroneGuy
Member
**
Offline Offline

Activity: 72
Merit: 43


View Profile
April 10, 2025, 05:57:45 AM
 #8831


Half the people here are doing their best to come up with creative ways of gaining any edge, no matter how small, over the otherwise nearly insurmountable odds these puzzles present; and the other half seem to be here just to shit on them and generally be as depressing and defeatist as possible Roll Eyes

Personally, I'm having much more fun learning and expanding my horizons in the first group Cheesy

Personally, I’m just fact checking those ideas with basic math.
Some people can’t do that (and that’s ok not everyone has an PhD) and I would really hate that they spend money based on a phoney theory on the internet. That’s why I call the BS when I see it.
If there is a theory which has merit I’ll be the first one to praise it and implement it to win 69 faster.
My opinion not about your idea. Puzzles higher than 69 - it is a question about money or hardware like FPGA, AISC.
Have anybody from here tried to switch c++ to verilog via HLS? Or maybe have a few experience into VERILOG?
High level FPGA like Virtex UltraScale+ can boost our speed from gkeys/s to petakeys
Bram24732
Member
**
Offline Offline

Activity: 322
Merit: 28


View Profile
April 10, 2025, 06:05:59 AM
 #8832


Half the people here are doing their best to come up with creative ways of gaining any edge, no matter how small, over the otherwise nearly insurmountable odds these puzzles present; and the other half seem to be here just to shit on them and generally be as depressing and defeatist as possible Roll Eyes

Personally, I'm having much more fun learning and expanding my horizons in the first group Cheesy

Personally, I’m just fact checking those ideas with basic math.
Some people can’t do that (and that’s ok not everyone has an PhD) and I would really hate that they spend money based on a phoney theory on the internet. That’s why I call the BS when I see it.
If there is a theory which has merit I’ll be the first one to praise it and implement it to win 69 faster.
My opinion not about your idea. Puzzles higher than 69 - it is a question about money or hardware like FPGA, AISC.
Have anybody from here tried to switch c++ to verilog via HLS? Or maybe have a few experience into VERILOG?
High level FPGA like Virtex UltraScale+ can boost our speed from gkeys/s to petakeys

I have a  VHDL version of secp256k1 I did for fun back then. It produces good results but never ran it on an actual chip.
But that's not the issue. Even if you had a 10x boost per watt versus a GPU, you would still need to find a way to scale. GPUs are everywhere, FPGAs, not so much.

I solved 67 and 68 using custom software distributing the load across ~25k GPUs. 4090 stocks speeds : ~8.1Bkeys/sec. Don’t challenge me technically if you know shit about fuck, I’ll ignore you. Same goes if all you can do is LLM reply.
fantom06
Jr. Member
*
Offline Offline

Activity: 49
Merit: 1


View Profile
April 10, 2025, 06:31:13 AM
 #8833



Where to rent CPU ?

Is there a link to this program?
fantom06
Jr. Member
*
Offline Offline

Activity: 49
Merit: 1


View Profile
April 10, 2025, 06:41:04 AM
 #8834

Kowala
@Kowala24731
** Announcement **
The Kowala team will start working on BTC69 April 10th. Funding round 1 is ongoing, restricted to BTC67 and BTC68 participants. If there is room for extra capital (i.e the cap of 400k USD is not reached by April 10th) we will open funding to external parties.
Expected time to resolution : 2 to 4 months.
We are letting the world know so that people considering taking part in this brute force competition can decide to participate or not knowing all the facts. We estimate competition’s odds of success to be sub 1%.

Not a profitable investment, for a chance of less than 1% Grin

Everyone has their own risk/reward ratio.
What matters is that people know all the facts.

I would also like to participate, if possible. I think that if everyone launches their video card, then together we would have been able to solve the puzzles long ago. The only question is: "how to implement it so that the reward is divided properly?" Especially since + 100 is almost impossible to solve alone. Together we would all willingly help each other! Isn't that right?
fantom06
Jr. Member
*
Offline Offline

Activity: 49
Merit: 1


View Profile
April 10, 2025, 06:50:53 AM
 #8835


Half the people here are doing their best to come up with creative ways of gaining any edge, no matter how small, over the otherwise nearly insurmountable odds these puzzles present; and the other half seem to be here just to shit on them and generally be as depressing and defeatist as possible Roll Eyes

Personally, I'm having much more fun learning and expanding my horizons in the first group Cheesy

Personally, I’m just fact checking those ideas with basic math.
Some people can’t do that (and that’s ok not everyone has an PhD) and I would really hate that they spend money based on a phoney theory on the internet. That’s why I call the BS when I see it.
If there is a theory which has merit I’ll be the first one to praise it and implement it to win 69 faster.
My opinion not about your idea. Puzzles higher than 69 - it is a question about money or hardware like FPGA, AISC.
Have anybody from here tried to switch c++ to verilog via HLS? Or maybe have a few experience into VERILOG?
High level FPGA like Virtex UltraScale+ can boost our speed from gkeys/s to petakeys

I have a  VHDL version of secp256k1 I did for fun back then. It produces good results but never ran it on an actual chip.
But that's not the issue. Even if you had a 10x boost per watt versus a GPU, you would still need to find a way to scale. GPUs are everywhere, FPGAs, not so much.

I have a theory too
I guess it will be somewhere
from 15321b520000000000
to 1fdffd9fd0000000000
search continues
FrozenThroneGuy
Member
**
Offline Offline

Activity: 72
Merit: 43


View Profile
April 10, 2025, 07:03:01 AM
 #8836


Half the people here are doing their best to come up with creative ways of gaining any edge, no matter how small, over the otherwise nearly insurmountable odds these puzzles present; and the other half seem to be here just to shit on them and generally be as depressing and defeatist as possible Roll Eyes

Personally, I'm having much more fun learning and expanding my horizons in the first group Cheesy

Personally, I’m just fact checking those ideas with basic math.
Some people can’t do that (and that’s ok not everyone has an PhD) and I would really hate that they spend money based on a phoney theory on the internet. That’s why I call the BS when I see it.
If there is a theory which has merit I’ll be the first one to praise it and implement it to win 69 faster.
My opinion not about your idea. Puzzles higher than 69 - it is a question about money or hardware like FPGA, AISC.
Have anybody from here tried to switch c++ to verilog via HLS? Or maybe have a few experience into VERILOG?
High level FPGA like Virtex UltraScale+ can boost our speed from gkeys/s to petakeys

I have a  VHDL version of secp256k1 I did for fun back then. It produces good results but never ran it on an actual chip.
But that's not the issue. Even if you had a 10x boost per watt versus a GPU, you would still need to find a way to scale. GPUs are everywhere, FPGAs, not so much.
Bram, is it possible to give my your work (VHDL SECP256k1)? I will try to update it.
Right now I am doing GPU Cyclone version, it has hashing and comparing to target hash160, on rtx 4060 it has 4.3 Ghash/s, that faster than bitcrack, vanity, etc.
nomachine
Full Member
***
Offline Offline

Activity: 812
Merit: 134



View Profile
April 10, 2025, 07:11:26 AM
 #8837

I launch mutagen and an error appears
I downloaded the new version today

Try again now.

BTC: bc1qdwnxr7s08xwelpjy3cc52rrxg63xsmagv50fa8
fantom06
Jr. Member
*
Offline Offline

Activity: 49
Merit: 1


View Profile
April 10, 2025, 07:24:26 AM
 #8838

I launch mutagen and an error appears
I downloaded the new version today

Try again now.
how to run to make from mutagen.cpp in puzzle_solver
nomachine
Full Member
***
Offline Offline

Activity: 812
Merit: 134



View Profile
April 10, 2025, 07:34:46 AM
 #8839

how to run to make from mutagen.cpp in puzzle_solver

Compile using make.
Rename mutagen to puzzle_solver (or puzzle_solver.exe),
or update the Makefile by changing the line to:
TARGET = puzzle_solver

BTC: bc1qdwnxr7s08xwelpjy3cc52rrxg63xsmagv50fa8
Akito S. M. Hosana
Jr. Member
*
Offline Offline

Activity: 420
Merit: 8


View Profile
April 10, 2025, 07:41:44 AM
 #8840

how to run to make from mutagen.cpp in puzzle_solver

Compile using make.
Rename mutagen to puzzle_solver (or puzzle_solver.exe),
or update the Makefile by changing the line to:
TARGET = puzzle_solver

Can you add Rick Astley's Never Gonna Give You Up to play when the puzzle is solved  Grin
Pages: « 1 ... 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 [442] 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 ... 653 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!