I finally found how the puzzle was made. I searched the internet for mathematical methods, and there are many, I haven't tested them all yet. I thought maybe someone has a better idea. But I think this hypothesis can work. I haven't finished everything yet. But I can only show one part. Maybe someone has a better idea. I think the creator used mersenne prime numbers (514 = 2 × 257)
bitwise test key = previous_key << n + k ( 21 = 8 << 1 + 5)
arithmetic sequences 3 → 7 → 8 → 21 deltas +4, +1, +13) I wrote more code with the help of AI of course because it can find every error in the code faster and also information. But my idea is that the creator used raylicite methods for every 3 or 5 or 8 address. I haven't tested everything yet. But I want to share it with you. Maybe someone has an idea. But definitely more brains, more ideas and success. one thing is certain that the addresses are generated with some patterns, I have the method for the first 10 addresses,i am currently writing the code for the rest.
ps..
please write your opinion, i m very interested.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Apr 29 16:24:01 2025
@author: blackangel
"""
import hashlib
from coincurve import PrivateKey
# Known solved private keys (puzzle_number: hex_private_key)
SOLVED_KEYS = {
1: '0000000000000000000000000000000000000000000000000000000000000001',
2: '0000000000000000000000000000000000000000000000000000000000000003',
3: '0000000000000000000000000000000000000000000000000000000000000007',
4: '0000000000000000000000000000000000000000000000000000000000000008',
5: '0000000000000000000000000000000000000000000000000000000000000015',
#6: '0000000000000000000000000000000000000000000000000000000000000031',
7: '000000000000000000000000000000000000000000000000000000000000004c',
#8: '00000000000000000000000000000000000000000000000000000000000000e0',
#9: '00000000000000000000000000000000000000000000000000000000000001d3',
#10: '0000000000000000000000000000000000000000000000000000000000000202',
11: '0000000000000000000000000000000000000000000000000000000000000483',
#12: '0000000000000000000000000000000000000000000000000000000000000a7b',
13: '0000000000000000000000000000000000000000000000000000000000001460',
#14: '0000000000000000000000000000000000000000000000000000000000002930',
15: '00000000000000000000000000000000000000000000000000000000000068f3',
16: '000000000000000000000000000000000000000000000000000000000000c936',
17: '000000000000000000000000000000000000000000000000000000000001764f',
18: '000000000000000000000000000000000000000000000000000000000003080d',
19: '000000000000000000000000000000000000000000000000000000000005749f',
20: '00000000000000000000000000000000000000000000000000000000000d2c55',
}
# -------------------------------------------------------------------------------
# Hypothesis 1: Mersenne-like numbers (2^n - 1)
# -------------------------------------------------------------------------------
def test_mersenne_hypothesis():
print("\nHypothesis 1: Mersenne numbers (2^n - 1)")
matches = 0
for puzzle_number in SOLVED_KEYS:
expected_key = (2 ** puzzle_number) - 1
expected_hex = format(expected_key, '064x')
actual_hex = SOLVED_KEYS[puzzle_number]
if expected_hex == actual_hex:
matches += 1
print(f" Puzzle {puzzle_number}: MATCH (Expected {expected_hex})")
else:
print(f" Puzzle {puzzle_number}: FAIL (Expected {expected_hex}, Actual {actual_hex})")
print(f"Matches: {matches}/{len(SOLVED_KEYS)}")
# -------------------------------------------------------------------------------
# Hypothesis 2: Hash-based generation (SHA-256 of puzzle number)
# -------------------------------------------------------------------------------
def test_hash_hypothesis():
print("\nHypothesis 2: SHA-256 of puzzle number")
matches = 0
for puzzle_number in SOLVED_KEYS:
#compute SHA-256 of puzzle number ( "5" -> hash)
data = str(puzzle_number).encode()
hash_hex = hashlib.sha256(data).hexdigest()
# Truncate to 64 hex chars (32 bytes) to match private key format
expected_hex = hash_hex[:64]
actual_hex = SOLVED_KEYS[puzzle_number]
if expected_hex == actual_hex:
matches += 1
print(f" Puzzle {puzzle_number}: MATCH (Hash {hash_hex})")
else:
print(f" Puzzle {puzzle_number}: FAIL (Hash {hash_hex}, Actual {actual_hex})")
print(f"Matches: {matches}/{len(SOLVED_KEYS)}")
# -------------------------------------------------------------------------------
# Hypothesis 3: Bitwise shift with increment
# -------------------------------------------------------------------------------
def test_bitwise_hypothesis():
print("\nHypothesis 3: Bitwise shift + increment")
matches = 0
prev_key = 0
for puzzle_number in sorted(SOLVED_KEYS.keys()):
actual_key = int(SOLVED_KEYS[puzzle_number], 16)
if puzzle_number == 1:
expected_key = 1
else:
expected_key = (prev_key << 1) + 1 # e.g., 1 -> 3 (0b11), 3 -> 7 (0b111)
if expected_key == actual_key:
matches += 1
print(f" Puzzle {puzzle_number}: MATCH (Expected {hex(expected_key)})")
else:
print(f" Puzzle {puzzle_number}: FAIL (Expected {hex(expected_key)}, Actual {hex(actual_key)})")
prev_key = actual_key
print(f"Matches: {matches}/{len(SOLVED_KEYS)}")
# -------------------------------------------------------------------------------
# Hypothesis 4: Address generation from private key (for verification)
# -------------------------------------------------------------------------------
def generate_address(private_key_hex):
private_key = PrivateKey.from_hex(private_key_hex)
public_key = private_key.public_key.format().hex()
return public_key # Simplified for demonstration
# -------------------------------------------------------------------------------
# Main Execution
# -------------------------------------------------------------------------------
if __name__ == "__main__":
print("Testing hypotheses for private key generation...")
# Test Hypothesis 1: Mersenne numbers
test_mersenne_hypothesis()
# Test Hypothesis 2: Hash-based generation
test_hash_hypothesis()
# Test Hypothesis 3: Bitwise shift
test_bitwise_hypothesis()
# Example: Generate address for Puzzle 1's key
puzzle_1_key = SOLVED_KEYS[1]
print(f"\nExample: Address for Puzzle 1 (Public Key): {generate_address(puzzle_1_key)}")
%runfile /home/blackangel/untitled20.py --wdir
Testing hypotheses for private key generation...
Hypothesis 1: Mersenne numbers (2^n - 1)
Puzzle 1: MATCH (Expected 0000000000000000000000000000000000000000000000000000000000000001)
Puzzle 2: MATCH (Expected 0000000000000000000000000000000000000000000000000000000000000003)
Puzzle 3: MATCH (Expected 0000000000000000000000000000000000000000000000000000000000000007)
Puzzle 4: FAIL (Expected 000000000000000000000000000000000000000000000000000000000000000f, Actual 0000000000000000000000000000000000000000000000000000000000000008)
Puzzle 5: FAIL (Expected 000000000000000000000000000000000000000000000000000000000000001f, Actual 0000000000000000000000000000000000000000000000000000000000000015)
Puzzle 7: FAIL (Expected 000000000000000000000000000000000000000000000000000000000000007f, Actual 000000000000000000000000000000000000000000000000000000000000004c)
Puzzle 11: FAIL (Expected 00000000000000000000000000000000000000000000000000000000000007ff, Actual 0000000000000000000000000000000000000000000000000000000000000483)
Puzzle 13: FAIL (Expected 0000000000000000000000000000000000000000000000000000000000001fff, Actual 0000000000000000000000000000000000000000000000000000000000001460)
Puzzle 15: FAIL (Expected 0000000000000000000000000000000000000000000000000000000000007fff, Actual 00000000000000000000000000000000000000000000000000000000000068f3)
Puzzle 16: FAIL (Expected 000000000000000000000000000000000000000000000000000000000000ffff, Actual 000000000000000000000000000000000000000000000000000000000000c936)
Puzzle 17: FAIL (Expected 000000000000000000000000000000000000000000000000000000000001ffff, Actual 000000000000000000000000000000000000000000000000000000000001764f)
Puzzle 18: FAIL (Expected 000000000000000000000000000000000000000000000000000000000003ffff, Actual 000000000000000000000000000000000000000000000000000000000003080d)
Puzzle 19: FAIL (Expected 000000000000000000000000000000000000000000000000000000000007ffff, Actual 000000000000000000000000000000000000000000000000000000000005749f)
Puzzle 20: FAIL (Expected 00000000000000000000000000000000000000000000000000000000000fffff, Actual 00000000000000000000000000000000000000000000000000000000000d2c55)
Matches: 3/14
Hypothesis 2: SHA-256 of puzzle number
Puzzle 1: FAIL (Hash 6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b, Actual 0000000000000000000000000000000000000000000000000000000000000001)
Puzzle 2: FAIL (Hash d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35, Actual 0000000000000000000000000000000000000000000000000000000000000003)
Puzzle 3: FAIL (Hash 4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce, Actual 0000000000000000000000000000000000000000000000000000000000000007)
Puzzle 4: FAIL (Hash 4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a, Actual 0000000000000000000000000000000000000000000000000000000000000008)
Puzzle 5: FAIL (Hash ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d, Actual 0000000000000000000000000000000000000000000000000000000000000015)
Puzzle 7: FAIL (Hash 7902699be42c8a8e46fbbb4501726517e86b22c56a189f7625a6da49081b2451, Actual 000000000000000000000000000000000000000000000000000000000000004c)
Puzzle 11: FAIL (Hash 4fc82b26aecb47d2868c4efbe3581732a3e7cbcc6c2efb32062c08170a05eeb8, Actual 0000000000000000000000000000000000000000000000000000000000000483)
Puzzle 13: FAIL (Hash 3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278, Actual 0000000000000000000000000000000000000000000000000000000000001460)
Puzzle 15: FAIL (Hash e629fa6598d732768f7c726b4b621285f9c3b85303900aa912017db7617d8bdb, Actual 00000000000000000000000000000000000000000000000000000000000068f3)
Puzzle 16: FAIL (Hash b17ef6d19c7a5b1ee83b907c595526dcb1eb06db8227d650d5dda0a9f4ce8cd9, Actual 000000000000000000000000000000000000000000000000000000000000c936)
Puzzle 17: FAIL (Hash 4523540f1504cd17100c4835e85b7eefd49911580f8efff0599a8f283be6b9e3, Actual 000000000000000000000000000000000000000000000000000000000001764f)
Puzzle 18: FAIL (Hash 4ec9599fc203d176a301536c2e091a19bc852759b255bd6818810a42c5fed14a, Actual 000000000000000000000000000000000000000000000000000000000003080d)
Puzzle 19: FAIL (Hash 9400f1b21cb527d7fa3d3eabba93557a18ebe7a2ca4e471cfe5e4c5b4ca7f767, Actual 000000000000000000000000000000000000000000000000000000000005749f)
Puzzle 20: FAIL (Hash f5ca38f748a1d6eaf726b8a42fb575c3c71f1864a8143301782de13da2d9202b, Actual 00000000000000000000000000000000000000000000000000000000000d2c55)
Matches: 0/14
Hypothesis 3: Bitwise shift + increment
Puzzle 1: MATCH (Expected 0x1)
Puzzle 2: MATCH (Expected 0x3)
Puzzle 3: MATCH (Expected 0x7)
Puzzle 4: FAIL (Expected 0xf, Actual 0x8)
Puzzle 5: FAIL (Expected 0x11, Actual 0x15)
Puzzle 7: FAIL (Expected 0x2b, Actual 0x4c)
Puzzle 11: FAIL (Expected 0x99, Actual 0x483)
Puzzle 13: FAIL (Expected 0x907, Actual 0x1460)
Puzzle 15: FAIL (Expected 0x28c1, Actual 0x68f3)
Puzzle 16: FAIL (Expected 0xd1e7, Actual 0xc936)
Puzzle 17: FAIL (Expected 0x1926d, Actual 0x1764f)
Puzzle 18: FAIL (Expected 0x2ec9f, Actual 0x3080d)
Puzzle 19: FAIL (Expected 0x6101b, Actual 0x5749f)
Puzzle 20: FAIL (Expected 0xae93f, Actual 0xd2c55)
Matches: 3/14
Example: Address for Puzzle 1 (Public Key): 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798