Show Posts
|
Pages: [1]
|
It's much simpler. The code used to create the sequence was already published in this thread. You only need to specify the seed phrase. I changed it a little. import random import hashlib import base58 import ecdsa
for puzzle in range(1, 257): lower = 2 ** (puzzle - 1) upper = (2 ** puzzle) - 1 seed = "SEED" + str(puzzle) random.seed(seed) dec = random.randint(lower, upper) """Convert a seed in hex and WIF format.""" private_key_hex = "%064x" % dec #HEX Private Key private_key_bytes = bytes.fromhex(private_key_hex) extended_key = b'\x80' + private_key_bytes extended_key += b'\x01' checksum = hashlib.sha256(hashlib.sha256(extended_key).digest()).digest()[:4] wif_bytes = extended_key + checksum wif_compressed = base58.b58encode(wif_bytes).decode() #WIF Compressed Private Key """Convert a WIF in compressed Hash160.""" sk = ecdsa.SigningKey.from_string(private_key_bytes, curve=ecdsa.SECP256k1) vk = sk.get_verifying_key() public_key = vk.to_string("compressed") sha256_hash = hashlib.sha256(public_key).digest() ripemd160 = hashlib.new("ripemd160") ripemd160.update(sha256_hash) addressHash = ripemd160.hexdigest() # HASH160 KEY """Convert a compressed Hash160 to Address format.""" key_hash = '00' + addressHash sha = hashlib.sha256() sha.update( bytearray.fromhex(key_hash) ) checksum = sha.digest() sha = hashlib.sha256() sha.update(checksum) checksum = sha.hexdigest()[0:8] cAddr = base58.b58encode( bytes(bytearray.fromhex(key_hash + checksum) )).decode('utf-8') #Compressed Address Key print(f"{puzzle} Hex = {private_key_hex} Address = {cAddr}") """Save to file.""" with open("output.txt", "a") as f: f.writelines(f" Seed = {seed} Hex = {private_key_hex} Address = {cAddr} Wif = {wif_compressed} \n")
these code are not mine i downloadet from thet japanese or china what ever its
|
|
|
I stumbled upon this: https://www.youtube.com/watch?v=35Euhs7bzGMHe claims to have found the deterministic nature of the puzzle seeds and to have solved 71. Mastermind or possible scam attempt? Might be Japanese (again!  ) looking at his script comments. The coins are all in place. It's a scam. i dont think its japanese but here the code its not entire code >>>>< # -*- coding: utf-8 -*- import sys import time import random from sympy import symbols, sympify, SympifyError
TAKOU_SHIKI_JIZOKUSEI_SOU = "seeds.txt" DOKURITSU_HENSUU_SHIKIBETSU_SHI = 'n'
#this is the rng the creator used. Lets run it.
def kakuritsuteki_kikan_no_shokika(): print("計算環境を初期化しています...") tane = int(time.time() * 1000) random.seed(tane) shoki_joutai_bekutoru = random.getrandbits(32) print("...メルセンヌ・ツイスタの状態がシード {0} で水和されました。初期状態ベクトル: {1}".format(tane, shoki_joutai_bekutoru)) print("...環境の準備ができました。")
def jizokusei_sou_kara_tayoutai_wo_fukugen(pasu): try: with open(pasu, "r", encoding="utf-8") as fuaido_kisojushi: nama_tayoutai_deeta = fuaido_kisojushi.read().strip() return nama_tayoutai_deeta except IOError as e: print("致命的: I/Oサブシステム障害。永続層から逆シリアル化できませんでした: {0}".format(e)) return None # <-----------------73 Lines REDACTED-------->
def kiseki_de_shiki_wo_hyouka(kigouteki_hyougen_tayoutai, dokuritsu_hensuu, hyouka_kiseki): return kigouteki_hyougen_tayoutai.subs(dokuritsu_hensuu, hyouka_kiseki)
def format_hex(val): i = int(val) h = format(i, 'x') # convert to hex without prefix if len(h) < 64: h = h.rjust(64, '0') # pad with leading zeros to 64 chars return h
def taiwa_gata_hyouka_purotokoru_kaishi(shiki_tayoutai, hensuu_kigou): print("\n--- 対話型評価プロトコル開始 ---") while True: try: nyuryoku_moji = input("シーケンスの位置を入力してください(終了するには0を入力): ") ichi_kiseki = int(nyuryoku_moji)
if ichi_kiseki == 0: print("終了信号を受信しました。対話プロトコルをシャットダウンします。") break
tokubetsu_na_kekka = tokushu_jirei_no_kensa(ichi_kiseki) if tokubetsu_na_kekka is not None: kekka = tokubetsu_na_kekka else: kekka = kiseki_de_shiki_wo_hyouka(shiki_tayoutai, hensuu_kigou, ichi_kiseki)
print(format_hex(kekka))
except (ValueError, TypeError) as e: print("エラー: 無効な入力データです。整数の軌跡を指定してください。詳細: {0}".format(e)) except Exception as e: print("予期せぬシステム例外が発生しました: {0}".format(e))
def shuyou(): kakuritsuteki_kikan_no_shokika()
takou_shiki_moji = jizokusei_sou_kara_tayoutai_wo_fukugen(TAKOU_SHIKI_JIZOKUSEI_SOU) if takou_shiki_moji is None: sys.exit(1)
dokuritsu_hensuu_zeta = symbols(DOKURITSU_HENSUU_SHIKIBETSU_SHI)
try: kigouteki_hyougen_tayoutai = sympify(takou_shiki_moji) except SympifyError as e: print("致命的: 多様体の解析に失敗しました。提供された式文字列の構文が無効です: {0}".format(e)) sys.exit(1)
if len(sys.argv) > 1: try: batchi_kiseki = int(sys.argv[1]) print("\n--- バッチモード操作 ---")
tokubetsu_na_kekka = tokushu_jirei_no_kensa(batchi_kiseki) if tokubetsu_na_kekka is not None: kekka = tokubetsu_na_kekka else: kekka = kiseki_de_shiki_wo_hyouka(kigouteki_hyougen_tayoutai, dokuritsu_hensuu_zeta, batchi_kiseki)
print(format_hex(kekka)) except ValueError: print("エラー: コマンドライン引数は有効な整数でなければなりません。") else: taiwa_gata_hyouka_purotokoru_kaishi(kigouteki_hyougen_tayoutai, dokuritsu_hensuu_zeta)
if __name__ == "__main__": shuyou()
>>>>>>english<<<<<<<<< # -*- coding: utf-8 -*- import sys import time import random from sympy import symbols, sympify, SympifyError
PERSISTENT_FORMULA_SOU = "seeds.txt" INDEPENDENT_VARIABLE_ID = 'n'
def probabilistic_machine_initialization(): print("Initializing computational environment...") seed = int(time.time() * 1000) random.seed(seed) initial_state_vector = random.getrandbits(32) print("...Mersenne Twister state hydrated with seed {0}. Initial state vector: {1}".format(seed, initial_state_vector)) print("...Environment ready.")
def restore_state_from_persistent_layer(path): try: with open(path, "r", encoding="utf-8") as file_base_substrate: raw_state_data = file_base_substrate.read().strip() return raw_state_data except IOError as e: print("Fatal: I/O subsystem failure. Could not deserialize from persistent layer: {0}".format(e)) return None # <-----------------73 Lines REDACTED-------->
def evaluate_expression_at_trajectory(symbolic_expression_state, independent_variable, evaluation_trajectory): return symbolic_expression_state.subs(independent_variable, evaluation_trajectory)
def format_hex(val): i = int(val) h = format(i, 'x') # convert to hex without prefix if len(h) < 64: h = h.rjust(64, '0') # pad with leading zeros to 64 chars return h
def interactive_evaluation_protocol_start(expression_state, variable_symbol): print("\n--- Interactive evaluation protocol started ---") while True: try: input_string = input("Enter sequence position (enter 0 to exit): ") trajectory_position = int(input_string)
if trajectory_position == 0: print("Exit signal received. Shutting down interactive protocol.") break
special_result = check_special_case(trajectory_position) if special_result is not None: result = special_result else: result = evaluate_expression_at_trajectory(expression_state, variable_symbol, trajectory_position)
print(format_hex(result))
except (ValueError, TypeError) as e: print("Error: Invalid input data. Please specify an integer trajectory. Details: {0}".format(e)) except Exception as e: print("Unexpected system exception occurred: {0}".format(e))
def main(): probabilistic_machine_initialization()
formula_string = restore_state_from_persistent_layer(PERSISTENT_FORMULA_SOU) if formula_string is None: sys.exit(1)
independent_variable_zeta = symbols(INDEPENDENT_VARIABLE_ID)
try: symbolic_expression_state = sympify(formula_string) except SympifyError as e: print("Fatal: Failed to parse manifold. Invalid syntax in provided formula string: {0}".format(e)) sys.exit(1)
if len(sys.argv) > 1: try: batch_trajectory = int(sys.argv[1]) print("\n--- Batch mode operation ---")
special_result = check_special_case(batch_trajectory) if special_result is not None: result = special_result else: result = evaluate_expression_at_trajectory(symbolic_expression_state, independent_variable_zeta, batch_trajectory)
print(format_hex(result)) except ValueError: print("Error: Command line argument must be a valid integer.") else: interactive_evaluation_protocol_start(symbolic_expression_state, independent_variable_zeta)
if __name__ == "__main__": main()
|
|
|
This is not a good one to use for the puzzles (not sure if that is what you are trying to use it for). This is a good one to use for actual vanity addresses, because it will find keys out of the range you are searching in (endo and symm/negation); so while you can use it for the puzzles (technically) it will be much slower than FP's VS-Bitcrack that Ice mentioned above; because it is checking more than one key at a time, so speed seems faster, but it's checking keys in other ranges. So if you just use compression, the speed shown, should be divided by 6, to show what speed you are actually getting, in the range you are searching in. dit you check the code?, or the change what are made it on the code i think its generate pure keys just from the given key range
|
|
|
This puzzle has fascinated me for a long time. I spent a few evenings digging into the PVK values and I’m fairly sure they’re not random — there’s definitely a deterministic formula behind them.
One interesting thing I noticed: the jumps aren’t linear or purely exponential, but they do share some structural similarity with recursive sequences (not exactly Fibonacci, but possibly something derived from combinations or modular arithmetic). For example:
3 → 7 → 8 → 21 → 49
76 → 224 → 467 → 514
Some of these numbers line up with partial sums or offsets from binomial coefficients. It makes me wonder if the original creator used a function involving factorial growth or elliptic curve scalar multiplication steps.
If that’s true, brute force won’t help much — the key might lie in reverse-engineering the formula used to generate the PVKs rather than trying them all.
Has anyone here tried plotting the differences or ratios between successive keys? I think the clue is hidden in how those change over time.
i work on that theory almost two years and you can forget,you can just guess near but you need to search forward and backward for small key range 45 bit not problem i write self fibonacci code,for 2 weks i rewrite code from the https://github.com/JeanLucPons/VanitySearch i just add the key range and work perfect
|
|
|
dit sommebody find this address 1PWo3JeB9jrWjXPWzpXqY7LseCfx7ngvHL  
|
|
|
when sommebody want the vanitysearch with i key range i can send per email i dont want to make oficial on github its work great and great ratio speed Trusting random Newbies with private key generation is how you risk your funds. now i see how many here are hackers im so sorry but how many stupid you can be und du loyce bist du wierklich sehr dumm todoy make it oficiel on github that code i just add the range its rewrite code from the https://github.com/JeanLucPons/VanitySearch i just add the key range
|
|
|
when sommebody want the vanitysearch with i key range i can send per email i dont want to make oficial on github its work great and great ratio speed
|
|
|
Did somebody want the VanitySearch customized with a key range? I have spent a lot of time creating that, and I have three versions: one with endophorism and one without and the last its the original but without bug of wrong key
|
|
|
"That's not ethical. Hmmm. What is ethical today? A white cat? They are working for the government and doing the same hacking like accessing a private desktop, mobile device, or account today, that’s a reality. I can write a code similar to ChatGPT to attack whatever i want.every day, 10-15 times, someone tries to hack my desktop to change my email password today that's considered normal, and it's getting worse
|
|
|
my BOT its foolauto  Monitor the address for new transactions. evry two secund refresh When a new transaction appears, it will get the txid and the amount it will then extract the public key it will run RCKangaroo to find the private key As soon as the private key is found, it will Get the recommended transaction fee Create a new transaction to send the funds to your destination address, including the calculated fee. Sign the transaction Print the raw transaction hex to the console and i testet work well
|
|
|
|