Post
Topic
Board Bitcoin Discussion
Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
by
tmar777
on 04/04/2025, 08:10:05 UTC
1. I still cannot understand how and why this work...can you elaborate on this please?
2. what do you mean by "At least I know that if you have the correct base key for the right bit flip?
thanks

Python code:
Code:
xor_masks = {
    67: 0b1100111100000011110111001010001111100110101111010011111001010001,
    66: 0b10111110011010001001010001011000011010100101000011100101000010001,
    65: 0b101011111000111010011101100101011111010010011011001011110011000,
    64: 0b100011111010111000001101100001001111011011101110110100101011,
    63: 0b1100110001101000010000001001010011001100001001011111110111,
    62: 0b100111000010101010111110000101001001111011100101010000010001,
    61: 0b110000110110100101011100100010111101000010011011011011111001,
    60: 0b111111100001011110011111011010110010011000010001000001,
    59: 0b10110110100100110100010001111000001101010100101110110000,
    58: 0b100111001100010100100011110101101111001110110010111011110,
    57: 0b10100110110100011011011111000011010100010100111100011,
    56: 0b1100010111001110100100111000101001110110000000000100000,
    55: 0b10101010000011110000001100100100110000001111011101011,
    54: 0b11100100100000100100100101010010100101110000010111100,
    53: 0b111111110000111011100011011100000011100110110010011,
    52: 0b1000001010001111010011011001101000110000111000011,
    51: 0b101011111000111101011110010111111111011000101011,
    50: 0b1110101000010101111000011110100010110110010101011,
    49: 0b100010111110100010010100111111101010000010110010,
    48: 0b10100100001100100101000001100011100010001100100,
    47: 0b100110010100111101111010010101100001101000101,
    46: 0b100010011111001111100011101110010101010111011,
    45: 0b11011101000000110101111010111100001111111010,
    44: 0b11111110101001100101001011100101001110000,
    43: 0b10100001011000100110110000011101001101110,
    42: 0b10101110111011110001110100111001001110000,
    41: 0b1010110001111001011001010011001110100100,
    40: 0b1011001010001101101101100110000101001,
    39: 0b11010010100000011111001111110000010110,
    38: 0b1110111000111110100000101001100101111,
    37: 0b100010101000100010101001010101101100,
    36: 0b11000100001011111011111010110000011,
    35: 0b1101010001001011011110111010001111,
    34: 0b10110101100110100110111011100010,
    33: 0b1010110100100110101011100100111,
    32: 0b1000111100111010101100111010001,
    31: 0b10101100000001100010111000,
    30: 0b10011010110011001010011011,
    29: 0b1000000111011010101011100001,
    28: 0b10011011101001001100010111,
    27: 0b1010100111100011110001010,
    26: 0b101111111100110110010001,
    25: 0b1011010000100011010,
    24: 0b1000111101010111111011,
    23: 0b1010101001000110101101,
    22: 0b100100001101111110000,
    21: 0b1000101101011001011,
    20: 0b101101001110101010,
    19: 0b101000101101100000,
    18: 0b1111011111110010,
    17: 0b1000100110110000,
    16: 0b11011011001001,
    15: 0b1011100001100,
    14: 0b1011011001111,
    13: 0b101110011111,
    12: 0b10110000100,
    11: 0b1101111100,
    10: 0b111111101,
    9: 0b101100,
    8: 0b11111,
    7: 0b110011,
    6: 0b1110,
    5: 0b1010,
    4: 0b111,
    3: 0b0,
    2: 0b0,
    1: 0b0
}

def generate_private_keys():
    print("Puzzle | Private Key")
    print("-------------------")
    for puzzle in range(1, 68):
        if puzzle in xor_masks:
            puzzle_end = 2**puzzle - 1
            private_key = puzzle_end ^ xor_masks[puzzle]
            print(f"{puzzle:6} | {private_key}")
        else:
            print(f"{puzzle:6} | (Missing XOR mask)")

generate_private_keys()


Is it clearer now? If not, then nothing.  Grin

Hi, still no understand why this works...and why it is more efficient than bruteforcing.
The masks I suppose are the result of Mutagen?
Can you take please two minutes to explain in full?
Thanks