Next scheduled rescrape ... never
Version 1
Last scraped
Edited on 04/04/2025, 08:40:21 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?

also, "private_key = puzzle_end ^ xor_masks[puzzle]" is useless given that you xor the end of the range which is all 1s with the "mask", so in reality your "mask" is the opposite bits of the private key ALWAYS...meaning it gives you nothing!

Thanks
Original archived Re: Bitcoin puzzle transaction ~32 BTC prize to who solves it
Scraped 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