I've tried AMD Ryzen 9 7950X - 4.5GHZ, 16c/32th + 128GB - 4ek on start, reaches 6ek after week
I have ~120 Ekeys/s in BSGS/keyhunt on AMD after used the AOCC compiler I've been tweaking linux for months to get every atom out of Dual CPU configuration. #RT kernel wget -qO - https://dl.xanmod.org/archive.key | sudo gpg --dearmor -o /usr/share/keyrings/xanmod-archive-keyring.gpg echo 'deb [signed-by=/usr/share/keyrings/xanmod-archive-keyring.gpg] http://deb.xanmod.org releases main' | sudo tee /etc/apt/sources.list.d/xanmod-release.list sudo apt-get -y update && sudo apt install linux-xanmod-rt-x64v3 sudo apt install -y tuned tuned-utils tuned-utils-systemtap sudo tuned-adm profile latency-performance cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor should be performance for all cores /etc/default/grub quiet msr.allow_writes=on nosoftlockup mce=ignore_ce skew_tick=1 clocksource=hpet iommu=soft noresume mitigations=off nmi_watchdog=0 Nvme config (It must be a good Heatsink on Nvme, otherwise it goes over 50 C/I have had white smoke from them more than once - SAMSUNG MZVL2512HCJQ.) sudo nvme smart-log /dev/nvme0 | grep -i '^temperature' temperature : 42 C Temperature Sensor 1 : 42 C Temperature Sensor 2 : 50 C /etc/fstab ext4 noatime,nodiratime,errors=remount-ro,inode_readahead_blks=0 0 1 AMD EPYC config wrmsr -a 0xc0011020 0x4400000000000 wrmsr -a 0xc0011021 0x4000000000040 wrmsr -a 0xc0011022 0x8680000401570000 wrmsr -a 0xc001102b 0x2040cc10 And so on and on....This is only part of it.
|
|
|
AVX512 and so on maybe can bring a 50% speed-up, nothing to write home about. Benchmarked OpenSSL / Apple CommonCrypto and fast SHA with SSE3.2 intrinsics (last one was like 10% faster, probably because of inlining). I would bet that the CPUs that have hardware support for SHA instructions are actually used by the SHA routines available from the system APIs, and we wouldn't need to hack them ourself. For AVX you'd actually need a distributed scheduling: https://github.com/minio/sha256-simdI achieved a 20% performance increase in Keyhunt on Zen3 architecture compared to GCC versions 12, 13, and 14. To compile with Clang, I used the AOCC compiler located at /opt/AMD/aocc-compiler-4.2.0/bin/clang. However, it was essential to remove all Intel intrinsics (_builtin_ia32) from the code since these intrinsics are specific to Intel processors and incompatible with AMD processors. In my case, I need to rewrite both the SHA and RIPEMD implementations for Zen3 to achieve a significant performance boost. Imagine achieving a 70% performance increase! Additionally, optimizing for Zen4 by leveraging its specific architectural features can lead to even greater efficiency gains.
|
|
|
Is it non-pointless even if writing it in assembler?
The necessary double SHA-256 hashing in Bitcoin's address generation process is substantially slower than EC operations, ensuring that even perfect optimization of point additions will not eliminate the hashing bottleneck. Therefore, whatever assembler optimizations and algorithmic tricks you can imagine to push the boundaries, they do not overcome the inherent speed limits imposed by modular inversion and hashing. Double SHA-256 hashing is the ultimate bottleneck
|
|
|
It takes a thousand GPUs to make something serious. Everything else is just kidding
Why GPU? BSGS works on CPU. btw, what's more important RAM or CPU? I've tried AMD Ryzen 9 7950X - 4.5GHZ, 16c/32th + 128GB - 4ek on start, reaches 6ek after week Intel Core i7-11700K 3.6GHZ, 8c/16th + 128GB - only 2ek, no growth Intel Core i7-11700K 3.6GHZ, 8c/16th + 64GB - around 1ek, no growth E5-2670v3 2.3 GHz 12c/24th + 256GB - 7ek on start Why RAM ? How much storage is required for a hash table for a search space of Puzzle 130? Each entry in the hash table will contain a key (of 256 bits) and a pointer (of 80 bits) to the corresponding data. So, each entry requires 256 bits + 80 bits = 336 bits. Total bits required for hash table = 336 bits per entry * 2^130 entries Total bits = 336 * 2^130 To convert bits to petabytes: 1 petabyte (PB) = 8 * 10^15 bits So, total petabytes (PB) = (336 * 2^130) / (8 * 10^15) Total petabytes (PB) ≈ 42 PB RAM It is not possible to get such amount of ram in the next 80 years.
|
|
|
i have a simple alghoritm with cpu in python , you can test it import bitcoin import ecdsa
def private_key_to_public_key(private_key): sk = ecdsa.SigningKey.from_string(bytes.fromhex(private_key), curve=ecdsa.SECP256k1) vk = sk.get_verifying_key() compressed_public_key = vk.to_string("compressed").hex() return compressed_public_key
bitcoin_address = bitcoin.pubtoaddr(public_key)
Why use Bitcoin and ECDSA imports? They're so slow, it feels like a waste of time. Instead, utilize ICE (import secp256k1 as ice) for this function and the Bitcoin address line: def private_key_to_public_key(private_key): priv_int = int(private_key, 16) return ice.scalar_multiplication(priv_int) and bitcoin_address = ice.pubkey_to_address(0, True, public_key) It's approximately 10 times faster than ECDSA. But even that is miserable if you attack the dinosaur numbers. The more you delve into Python, the more apparent it becomes that searching for Puzzle 66 through it is pointless. Perhaps someone knowingly obscures things by selling Python scripts as the ultimate solution.
|
|
|
That's why I strongly believe #130 will be found next, not #66. Much more room for breakthroughs and exploration there, and while the complexity seems similar it runs WAY, way faster (no hashing nonsense).
btw we need a ton of signatures to break ECDSA, we only have one here. And the nonces are deterministic (checked), so we're screwed.
can you explain more about? I didn't get it, sorry Now I need go back to work... see you later That's not my quote. But regardless, I can say that none of the puzzles will be solved soon. It takes a thousand GPUs to make something serious. Everything else is just kidding or when discussion derails into "who has bigger dick" babble
|
|
|
We need to develop a multi-threaded algorithm with the following structure: Thread 1: This thread generates starting keys and stores them in a global array. Thread 2: This thread retrieves keys from the global array, computes the corresponding points and RIPEMD-160 hashes, and then stores the resulting HASH160 values into another global array. Threads 3 and 4: These comparator threads read several hundred addresses from a file and compare them with the HASH160 values stored in the global array. Each thread operates independently without relying on the others, potentially improving overall performance. They will work separately. Maybe it will be faster this way? I don't know. this is a pool, right? a pool of checking addresses. https://tosc.iacr.org/index.php/ToSC/article/view/11282/10814You can find the Git code for the 43-step differential comparator here: https://github.com/Peace9911/ripemd160_attackThis is far better than gazing into a crystal ball or magic circle.
|
|
|
We need to develop a multi-threaded algorithm with the following structure: Thread 1: This thread generates starting keys and stores them in a global array. Thread 2: This thread retrieves keys from the global array, computes the corresponding points and RIPEMD-160 hashes, and then stores the resulting HASH160 values into another global array. Threads 3 and 4: These comparator threads read several hundred addresses from a file and compare them with the HASH160 values stored in the global array. Each thread operates independently without relying on the others, potentially improving overall performance. They will work separately. Maybe it will be faster this way? I don't know.
|
|
|
all those transactions seem to have the same ways generate password/OP codes, too, so he would need to spend all of them at the same time.
If this is not a BS and is true.... He used used a custom method like: "Type 1 Deterministic Wallet" from here: https://bitcointalk.org/index.php?topic=19137.0Masked with leading 000...0001 to set difficulty. Bad news - if is Greg Maxwell creator of this puzzle password is 30 characters long and so complex that it will take you a couple of million years to crack.
|
|
|
not a bad working code! Are you thinking on implementing multi threading? I know this is not comparable with GPU but its not bad at all Congrats! I already have a (several different) multicore versions somewhere on my profile. Solves up to Puzzle 50. Here for example: https://bitcointalk.org/index.php?topic=1306983.msg62884789#msg62884789But I won't give you false hope that this script can solve anything above 50. It's simply beyond the reach of python's capabilities. You have to program in C++ yourself if the current scripts do not meet your needs. Even in C++ you have to be realistic - you need thousands of GPUs to solve puzzle 130.
|
|
|
I have 205288 hops per second in python on single core my friend...... It will work from 1 - 256 bit . But it is impossible to solve any Puzzle above 50 with this for a lifetime. import time import os import sys import random import gmpy2
if os.name == 'nt': os.system('cls') else: os.system('clear') t = time.ctime() sys.stdout.write(f"\033[?25l") sys.stdout.write(f"\033[01;33m[+] Kangaroo: {t}\n") sys.stdout.flush()
modulo = gmpy2.mpz(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F) order = gmpy2.mpz(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141) Gx = gmpy2.mpz(0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798) Gy = gmpy2.mpz(0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8)
# Define Point class class Point: def __init__(self, x=0, y=0): self.x = gmpy2.mpz(x) self.y = gmpy2.mpz(y)
PG = Point(Gx, Gy) Z = Point(0, 0) # zero-point, infinite in real x, y - plane
def add(P, Q, p=modulo): if P == Z: return Q elif Q == Z: return P elif P.x == Q.x and (P.y != Q.y or P.y == 0): return Z elif P.x == Q.x: m = (3 * P.x * P.x) * gmpy2.invert(2 * P.y, p) % p else: m = (Q.y - P.y) * gmpy2.invert(Q.x - P.x, p) % p x = (m * m - P.x - Q.x) % p y = (m * (P.x - x) - P.y) % p return Point(x, y)
def mul2(P, p=modulo): if P == Z: return Z m = gmpy2.f_mod(3 * P.x * P.x * gmpy2.invert(2 * P.y, p), p) x = gmpy2.f_mod(m * m - 2 * P.x, p) y = gmpy2.f_mod(m * (P.x - x) - P.y, p) return Point(x, y)
def mulk(k, P=PG, p=modulo): if k == 0: return Z elif k == 1: return P elif k % 2 == 0: return mulk(k // 2, mul2(P, p), p) else: return add(P, mulk((k - 1) // 2, mul2(P, p), p), p)
def X2Y(X, y_parity, p=modulo): X_cubed = gmpy2.powmod(X, 3, p) X_squared = gmpy2.powmod(X, 2, p) tmp = gmpy2.f_mod(X_cubed + 7, p) Y = gmpy2.powmod(tmp, gmpy2.f_div(gmpy2.add(p, 1), 4), p) if y_parity == 1: Y = gmpy2.f_mod(-Y, p) return Y
def comparator(A, Ak, B, Bk): result = set(A).intersection(set(B)) if result: sol_kt = A.index(next(iter(result))) sol_kw = B.index(next(iter(result))) HEX = "%064x" % abs(Ak[sol_kt] - Bk[sol_kw]) dec = int(HEX, 16) total_time = time.time() - starttime print('\n[+] total time: %.2f sec' % (total_time)) t = time.ctime() print(f"\033[32m[+] PUZZLE SOLVED: {t} \033[0m") print(f"\033[32m[+] Private key (dec) : {dec} \033[0m") with open("KEYFOUNDKEYFOUND.txt", "a") as file: file.write("\n\nSOLVED " + t) file.write(f"\nTotal Time: {total_time:.2f} sec") file.write(f"\nRandom seed: {seed}") file.write("\nPrivate Key (decimal): " + str(dec)) file.write("\nPrivate Key (hex): " + HEX) file.write( "\n-------------------------------------------------------------------------------------------------------------------------------------------\n" ) file.close() return True else: return False
def check(P, Pindex, DP_rarity, A, Ak, B, Bk): modulo_val = P.x % DP_rarity if modulo_val == 0: A.append(gmpy2.mpz(P.x)) Ak.append(gmpy2.mpz(Pindex)) return comparator(A, Ak, B, Bk) else: return False
# Generate a list of powers of two for faster access
def generate_powers_of_two(hop_modulo): return [gmpy2.mpz(1 << pw) for pw in range(hop_modulo)]
def search(P, W0, DP_rarity, Nw, Nt, hop_modulo, upper_range_limit, lower_range_limit, powers_of_two): solved = False t = [gmpy2.mpz(lower_range_limit + gmpy2.mpz(random.randint(0, upper_range_limit - lower_range_limit))) for _ in range(Nt)] T = [mulk(ti) for ti in t] dt = [gmpy2.mpz(0) for _ in range(Nt)] w = [gmpy2.mpz(random.randint(0, upper_range_limit - lower_range_limit)) for _ in range(Nw)] W = [add(W0, mulk(wk)) for wk in w] dw = [gmpy2.mpz(0) for _ in range(Nw)] print('[+] tame and wild herds are prepared') Hops, Hops_old = 0, 0 t0 = time.time()
# Memoization dictionary memo = {}
while not solved: for k in range(Nt): Hops += 1 pw = T[k].x % hop_modulo if pw not in memo: memo[pw] = powers_of_two[pw] dt[k] = memo[pw] solved = check(T[k], t[k], DP_rarity, T, t, W, w) if solved: break t[k] += dt[k] T[k] = add(P[int(pw)], T[k]) if solved: break for k in range(Nw): Hops += 1 pw = W[k].x % hop_modulo if pw not in memo: memo[pw] = powers_of_two[pw] dw[k] = memo[pw] solved = check(W[k], w[k], DP_rarity, W, w, T, t) if solved: break w[k] += dw[k] W[k] = add(P[int(pw)], W[k]) if solved: break t1 = time.time() if (t1 - t0) > 5: print('\r[+] Hops: %.0f h/s' % ((Hops - Hops_old) / (t1 - t0)), end='', flush=True) t0 = t1 Hops_old = Hops print('[+] Hops:', Hops) return 'sol. time: %.2f sec' % (time.time() - starttime)
# Configuration for the puzzle puzzle = 40 compressed_public_key = "03a2efa402fd5268400c77c20e574ba86409ededee7c4020e4b9f0edbee53de0d4" kangaroo_power = 4 lower_range_limit = 2 ** (puzzle - 1) upper_range_limit = (2**puzzle) - 1
DP_rarity = 1 << int(((puzzle - 2*kangaroo_power)/2 - 2)) hop_modulo = ((puzzle - 1) // 2) + kangaroo_power Nt = Nw = 2**kangaroo_power
# Precompute powers of two for faster access powers_of_two = generate_powers_of_two(hop_modulo)
T, t, dt = [], [], [] W, w, dw = [], [], []
if len(compressed_public_key) == 66: X = gmpy2.mpz(compressed_public_key[2:66], 16) Y = X2Y(X, gmpy2.mpz(compressed_public_key[:2]) - 2) else: print("[error] pubkey len(66/130) invalid!")
W0 = Point(X,Y) starttime = oldtime = time.time()
print(f"[+] [Puzzle]: {puzzle}") print(f"[+] [Lower range limit]: {lower_range_limit}") print(f"[+] [Upper range limit]: {upper_range_limit}")
#Random seed Config seed = os.urandom(9).hex() print(f"[+] [Random seed]: {seed}") random.seed(seed)
Hops = 0
P = [PG] for k in range(255): P.append(mul2(P[k])) print('[+] P-table prepared')
solved = False search(P, W0, DP_rarity, Nw, Nt, hop_modulo, upper_range_limit, lower_range_limit, powers_of_two)
print('[+] Average time to solve: %.2f sec' % ((time.time()-starttime))) - Kangaroo: Thu May 16 13:33:48 2024
- [Puzzle]: 40
- [Lower range limit]: 549755813888
- [Upper range limit]: 1099511627775
- [Random seed]: 9b76a9623bd76fb8cc
- P-table prepared
- tame and wild herds are prepared
- Hops: 205288 h/s
- total time: 6.92 sec
- PUZZLE SOLVED: Thu May 16 13:33:55 2024
- Private key (dec) : 1003651412950
- Hops: 1416585
- Average time to solve: 6.92 sec
It needs to be converted into C++ or Rust so that it can solve problems up to puzzle 120.
|
|
|
If anyone is using keyhunt on an AMD processor, try compiling it with AOCC. I got a +13% performance increase on Zen2 architecture compared to GCC-12, 13 and 14. It would be interesting to see tests on Zen4 architecture. https://www.amd.com/en/developer/aocc.htmlI have a zillion errors when compiling with Clang . Need to remove all Intel Intrinsics (__builtin_ia32_) in code . These intrinsics are specific to Intel processors and are not compatible with AMD processors.
|
|
|
It's more likely to find a $1 million lotto ticket using Dowsing than to solve this Puzzle.
|
|
|
My idea is to see if the pseudo-randomicity of the numbers gave some clues, like I did as a work 10 years ago.
@zahid888 already tried that and I did the same. You can't imagine what we all tried. I even went back to 2015 and created seeds. seed_value = 946665180 #(use this seed you will get the same pvk as below) random.seed(seed_value) seed = str(seed_value) aa = random.randrange(2**255,2**256) key = Key.from_int(aa) addr256 = key.address hex256 = "%00x" % aa a = random.randrange(2**65,2**66) key = Key.from_int(a) addr66 = key.address hex66 = "%00x" % a b = random.randrange(2**66,2**67) key = Key.from_int(b) addr67 = key.address hex67 = "%00x" % b Address 1 : 1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH | Private Key : 1 Address 2 : 1CUNEBjYrCn2y1SdiUMohaKUi4wpP326Lb | Private Key : 3 Address 3 : 19ZewH8Kk1PDbSNdJ97FP4EiCjTRaZMZQA | Private Key : 7 Address 4 : 1EhqbyUMvvs7BfL8goY6qcPbD6YKfPqb7e | Private Key : 8 Address 5 : 1E6NuFjCi27W5zoXg8TRdcSRq84zJeBW3k | Private Key : 15 Address 6 : 1PitScNLyp2HCygzadCh7FveTnfmpPbfp8 | Private Key : 31 Address 7 : 1McVt1vMtCC7yn5b9wgX1833yCcLXzueeC | Private Key : 4c Address 8 : 1M92tSqNmQLYw33fuBvjmeadirh1ysMBxK | Private Key : e0 Address 9 : 1CQFwcjw1dwhtkVWBttNLDtqL7ivBonGPV | Private Key : 1d3 Address 10 : 1LeBZP5QCwwgXRtmVUvTVrraqPUokyLHqe | Private Key : 202 Address 11 : 1PgQVLmst3Z314JrQn5TNiys8Hc38TcXJu | Private Key : 483 Address 12 : 1DBaumZxUkM4qMQRt2LVWyFJq5kDtSZQot | Private Key : a7b Address 13 : 1Pie8JkxBT6MGPz9Nvi3fsPkr2D8q3GBc1 | Private Key : 1460 Address 14 : 1ErZWg5cFCe4Vw5BzgfzB74VNLaXEiEkhk | Private Key : 2930 Address 15 : 1QCbW9HWnwQWiQqVo5exhAnmfqKRrCRsvW | Private Key : 68f3 Address 16 : 1BDyrQ6WoF8VN3g9SAS1iKZcPzFfnDVieY | Private Key : c936 Address 17 : 1HduPEXZRdG26SUT5Yk83mLkPyjnZuJ7Bm | Private Key : 1764f Address 18 : 1GnNTmTVLZiqQfLbAdp9DVdicEnB5GoERE | Private Key : 3080d Address 19 : 1NWmZRpHH4XSPwsW6dsS3nrNWfL1yrJj4w | Private Key : 5749f Address 20 : 1HsMJxNiV7TLxmoF6uJNkydxPFDog4NQum | Private Key : d2c55 Address 21 : 14oFNXucftsHiUMY8uctg6N487riuyXs4h | Private Key : 1ba534 Address 22 : 1CfZWK1QTQE3eS9qn61dQjV89KDjZzfNcv | Private Key : 2de40f Address 23 : 1L2GM8eE7mJWLdo3HZS6su1832NX2txaac | Private Key : 556e52 Address 24 : 1rSnXMr63jdCuegJFuidJqWxUPV7AtUf7 | Private Key : dc2a04 Address 25 : 15JhYXn6Mx3oF4Y7PcTAv2wVVAuCFFQNiP | Private Key : 1fa5ee5 Address 26 : 1JVnST957hGztonaWK6FougdtjxzHzRMMg | Private Key : 340326e Address 27 : 128z5d7nN7PkCuX5qoA4Ys6pmxUYnEy86k | Private Key : 6ac3875 Address 28 : 12jbtzBb54r97TCwW3G1gCFoumpckRAPdY | Private Key : d916ce8 Address 29 : 19EEC52krRUK1RkUAEZmQdjTyHT7Gp1TYT | Private Key : 17e2551e Address 30 : 1LHtnpd8nU5VHEMkG2TMYYNUjjLc992bps | Private Key : 3d94cd64 Address 31 : 1LhE6sCTuGae42Axu1L1ZB7L96yi9irEBE | Private Key : 7d4fe747 Address 32 : 1FRoHA9xewq7DjrZ1psWJVeTer8gHRqEvR | Private Key : b862a62e Address 33 : 187swFMjz1G54ycVU56B7jZFHFTNVQFDiu | Private Key : 1a96ca8d8 Address 34 : 1PWABE7oUahG2AFFQhhvViQovnCr4rEv7Q | Private Key : 34a65911d Address 35 : 1PWCx5fovoEaoBowAvF5k91m2Xat9bMgwb | Private Key : 4aed21170 Address 36 : 1Be2UF9NLfyLFbtm3TCbmuocc9N1Kduci1 | Private Key : 9de820a7c Address 37 : 14iXhn8bGajVWegZHJ18vJLHhntcpL4dex | Private Key : 1757756a93 Address 38 : 1HBtApAFA9B2YZw3G2YKSMCtb3dVnjuNe2 | Private Key : 22382facd0 Address 39 : 122AJhKLEfkFBaGAd84pLp1kfE7xK3GdT8 | Private Key : 4b5f8303e9 Address 40 : 1EeAxcprB2PpCnr34VfZdFrkUWuxyiNEFv | Private Key : e9ae4933d6 Address 41 : 1L5sU9qvJeuwQUdt4y1eiLmquFxKjtHr3E | Private Key : 153869acc5b Address 42 : 1E32GPWgDyeyQac4aJxm9HVoLrrEYPnM4N | Private Key : 2a221c58d8f Address 43 : 1PiFuqGpG8yGM5v6rNHWS3TjsG6awgEGA1 | Private Key : 6bd3b27c591 Address 44 : 1CkR2uS7LmFwc3T2jV8C1BhWb5mQaoxedF | Private Key : e02b35a358f Address 45 : 1NtiLNGegHWE3Mp9g2JPkgx6wUg4TW7bbk | Private Key : 122fca143c05 Address 46 : 1F3JRMWudBaj48EhwcHDdpeuy2jwACNxjP | Private Key : 2ec18388d544 Address 47 : 1Pd8VvT49sHKsmqrQiP61RsVwmXCZ6ay7Z | Private Key : 6cd610b53cba Address 48 : 1DFYhaB2J9q1LLZJWKTnscPWos9VBqDHzv | Private Key : ade6d7ce3b9b Address 49 : 12CiUhYVTTH33w3SPUBqcpMoqnApAV4WCF | Private Key : 174176b015f4d Address 50 : 1MEzite4ReNuWaL5Ds17ePKt2dCxWEofwk | Private Key : 22bd43c2e9354 Address 51 : 1NpnQyZ7x24ud82b7WiRNvPm6N8bqGQnaS | Private Key : 75070a1a009d4 Address 52 : 15z9c9sVpu6fwNiK7dMAFgMYSK4GqsGZim | Private Key : efae164cb9e3c Address 53 : 15K1YKJMiJ4fpesTVUcByoz334rHmknxmT | Private Key : 180788e47e326c Address 54 : 1KYUv7nSvXx4642TKeuC2SNdTk326uUpFy | Private Key : 236fb6d5ad1f43 Address 55 : 1LzhS3k3e9Ub8i2W1V8xQFdB8n2MYCHPCa | Private Key : 6abe1f9b67e114 Address 56 : 17aPYR1m6pVAacXg1PTDDU7XafvK1dxvhi | Private Key : 9d18b63ac4ffdf Address 57 : 15c9mPGLku1HuW9LRtBf4jcHVpBUt8txKz | Private Key : 1eb25c90795d61c Address 58 : 1Dn8NF8qDyyfHMktmuoQLGyjWmZXgvosXf | Private Key : 2c675b852189a21 Address 59 : 1HAX2n9Uruu9YDt4cqRgYcvtGvZj1rbUyt | Private Key : 7496cbb87cab44f Address 60 : 1Kn5h2qpgw9mWE5jKpk8PP4qvvJ1QVy8su | Private Key : fc07a1825367bbe Address 61 : 1AVJKwzs9AskraJLGHAZPiaZcrpDr1U6AB | Private Key : 13c96a3742f64906 Address 62 : 1Me6EfpwZK5kQziBwBfvLiHjaPGxCKLoJi | Private Key : 363d541eb611abee Address 63 : 1NpYjtLira16LfGbGwZJ5JbDPh3ai9bjf4 | Private Key : 7cce5efdaccf6808 Address 64 : 16jY7qLJnxb7CHZyqBP8qca9d51gAjyXQN | Private Key : f7051f27b09112d4 Address 65 : 18ZMbwUFLMHoZBbfpCjUJQTCMCbktshgpe | Private Key : 1a838b13505b26867 Address 66 : 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so | Private Key : 387c50c59d006cb6c Address 67 : 1BY8GQbnueYofwSuFAT3USAhGjPrkxDdW9 | Private Key : 592a47c5ab1061e43 Address 68 : 1MVDYgVaSN6iKKEsbzRUAYFrYJadLYZvvZ | Private Key : fda8f781ccd4ff6ae Address 69 : 19vkiEajfhuZ8bs8Zu2jgmC6oqZbWqhxhG | Private Key : 1254ea927aa155e362 Address 70 : 19YZECXj3SxEZMoUeJ1yiPsw8xANe7M7QR | Private Key : 349b84b6431a6c4ef1 Address 71 : 1PWo3JeB9jrGwfHDNpdGK54CRas7fsVzXU | Private Key : 4549883a4b8e41ee27 Address 72 : 1JTK7s9YVYywfm5XUH7RNhHJH1LshCaRFR | Private Key : 96e9ffb86f063ac90f Address 73 : 12VVRNPi4SJqUTsp6FmqDqY5sGosDtysn4 | Private Key : 1fe3269c8497d2a3558 Address 74 : 1FWGcVDK3JGzCC3WtkYetULPszMaK2Jksv | Private Key : 32b341493caffcfdced Address 75 : 1J36UjUByGroXcCvmj13U6uwaVv9caEeAt | Private Key : 4c5ce114686a1336e07 Address 76 : 1DJh2eHFYQfACPmrvpyWc8MSTYKh7w9eRF | Private Key : e0ec4c57a9730ba3456 Address 77 : 1Bxk4CQdqL9p22JEtDfdXMsng1XacifUtE | Private Key : 1a89227bbf7abc81eca1 Address 78 : 15qF6X51huDjqTmF9BJgxXdt1xcj46Jmhb | Private Key : 3a628a0f437029402a4b Address 79 : 1ARk8HWJMn8js8tQmGUJeQHjSE7KRkn2t8 | Private Key : 51524a91846f364c07e9 Address 80 : 1BCf6rHUW6m3iH2ptsvnjgLruAiPQQepLe | Private Key : ea1a5c66dcc11b5ad180 Address 81 : 15qsCm78whspNQFydGJQk5rexzxTQopnHZ | Private Key : 1d6999b30325155a69c16 Address 82 : 13zYrYhhJxp6Ui1VV7pqa5WDhNWM45ARAC | Private Key : 21b79322fc2d647c23779 Address 83 : 14MdEb4eFcT3MVG5sPFG4jGLuHJSnt1Dk2 | Private Key : 61a4a05e63b568e7c0e1d Address 84 : 1CMq3SvFcVEcpLMuuH8PUcNiqsK1oicG2D | Private Key : d928eef05dac219dd9b75 Address 85 : 1Kh22PvXERd2xpTQk3ur6pPEqFeckCJfAr | Private Key : 11720c4f018d51b8cebba8 Address 86 : 1K3x5L6G57Y494fDqBfrojD28UJv4s5JcK | Private Key : 351b269e4ae6c33ac26e9a Address 87 : 1PxH3K1Shdjb7gSEoTX7UPDZ6SH4qGPrvq | Private Key : 6b1f244fd690dc02078a45 Address 88 : 16AbnZjZZipwHMkYKBSfswGWKDmXHjEpSf | Private Key : d04e8cc3d0ebf4aa556561 Address 89 : 19QciEHbGVNY4hrhfKXmcBBCrJSBZ6TaVt | Private Key : 1b075a589d9b373dbee1584 Address 90 : 1L12FHH2FHjvTviyanuiFVfmzCy46RRATU | Private Key : 2ce00bb2136a445c71e85bf Address 91 : 1EzVHtmbN4fs4MiNk3ppEnKKhsmXYJ4s74 | Private Key : 467de4d9a8dfb892e24c5e3 Address 92 : 1AE8NzzgKE7Yhz7BWtAcAAxiFMbPo82NB5 | Private Key : a8e38ba8d5c519d249a91f4 Address 93 : 17Q7tuG2JwFFU9rXVj3uZqRtioH3mx2Jad | Private Key : 111fa8ca379d43d0a7011357 Address 94 : 1K6xGMUbs6ZTXBnhw1pippqwK6wjBWtNpL | Private Key : 2e162610a9519b0fb3f21e62 Address 95 : 19eVSDuizydXxhohGh8Ki9WY9KsHdSwoQC | Private Key : 527a792b183c7f64a0e8b1f4 Address 96 : 15ANYzzCp5BFHcCnVFzXqyibpzgPLWaD8b | Private Key : 9ff2c3e21420cbd06598e94e Address 97 : 18ywPwj39nGjqBrQJSzZVq2izR12MDpDr8 | Private Key : 1a329279f0f598d0c2f6221a6 Address 98 : 1CaBVPrwUxbQYYswu32w7Mj4HR4maNoJSX | Private Key : 2ade793d9d8e8d2af68ff2a46 Address 99 : 1JWnE6p6UN7ZJBN7TtcbNDoRcjFtuDWoNL | Private Key : 557d0d384f0d74310bac1c97e Address 100 : 1KCgMv8fo2TPBpddVi9jqmMmcne9uSNJ5F | Private Key : af55fc59c335c8ec67ed24826 Address 101 : 1CKCVdbDJasYmhswB6HKZHEAnNaDpK7W4n | Private Key : 10943bb3468629859af2be1c11 Address 102 : 1PXv28YxmYMaB8zxrKeZBW8dt2HK7RkRPX | Private Key : 210f601b8c4b6ed2d15ebb708c Address 103 : 1AcAmB6jmtU6AiEcXkmiNE9TNVPsj9DULf | Private Key : 5b32c65863f1261c4f6d5d41f0 Address 104 : 1EQJvpsmhazYCcKX5Au6AZmZKRnzarMVZu | Private Key : 9b5f22dec48d499b7e71baeac4 Address 105 : 1CMjscKB3QW7SDyQ4c3C3DEUHiHRhiZVib | Private Key : 16f14fc2054cd87ee6396b33df3 Address 106 : 18KsfuHuzQaBTNLASyj15hy4LuqPUo1FNB | Private Key : 3bee2c1d9b268e0e0239864a8a9 Address 107 : 15EJFC5ZTs9nhsdvSUeBXjLAuYq3SWaxTc | Private Key : 7a402bac7f2cf31e67128c8c96a Address 108 : 1HB1iKUqeffnVsvQsbpC6dNi1XKbyNuqao | Private Key : 9e8155c01771f37972f0785ffd2 Address 109 : 1GvgAXVCbA8FBjXfWiAms4ytFeJcKsoyhL | Private Key : 166e1a3bda0c24e1411ea76b46af Address 110 : 12JzYkkN76xkwvcPT6AWKZtGX6w2LAgsJg | Private Key : 35c0d7234df7deb0f20cf7062444 Address 111 : 1824ZJQ7nKJ9QFTRBqn7z7dHV5EGpzUpH3 | Private Key : 50216035bc5af18f93f26dd3ad43 Address 112 : 18A7NA9FTsnJxWgkoFfPAFbQzuQxpRtCos | Private Key : cc7ca57aa8c63ddfd21b99c9f7bd Address 113 : 1NeGn21dUDDeqFQ63xb2SpgUuXuBLA4WT4 | Private Key : 1968e5658c446ffdac9fc7f5f1877 Address 114 : 174SNxfqpdMGYy5YQcfLbSTK3MRNZEePoy | Private Key : 28a19351507823b49ccf9482d14fd Address 115 : 1NLbHuJebVwUZ1XqDjsAyfTRUPwDQbemfv | Private Key : 60f4d11574f5deee49961d9609ac6 Address 116 : 1MnJ6hdhvK37VLmqcdEwqC3iFxyWH2PHUV | Private Key : d68c67b6ba39d8e9f021e0cfb0024 Address 117 : 1KNRfGWw7Q9Rmwsc6NT5zsdvEb9M2Wkj5Z | Private Key : 1403a281b838ab018d995f34535e69 Address 118 : 1PJZPzvGX19a7twf5HyD2VvNiPdHLzm9F6 | Private Key : 3ea8878a4895c67b9663508054f9d2 Address 119 : 1GuBBhf61rnvRe4K8zu8vdQB3kHzwFqSy7 | Private Key : 55bea8b24225cb4deb8e60778e56e4 Address 120 : 17s2b9ksz5y7abUm92cHwG8jEPCzK3dLnT | Private Key : 9c6d18023ecc489fbe834d9e4c77be Address 121 : 1GDSuiThEV64c166LUFC9uDcVdGjqkxKyh | Private Key : 1afbc9330c6d24c216c2c724afe3041 Address 122 : 1Me3ASYt5JCTAK2XaC32RMeH34PdprrfDx | Private Key : 3b4a6a58a386e8f8af95b37a731cf0e Address 123 : 1CdufMQL892A69KXgv6UNBD17ywWqYpKut | Private Key : 7a81240304f073409c7c83ed835a315 Address 124 : 1BkkGsX9ZM6iwL3zbqs7HWBV7SvosR6m8N | Private Key : d6ab2da3c82a77af1751b5345779f01 Address 125 : 1PXAyUB8ZoH3WD8n5zoAthYjN15yN5CVq5 | Private Key : 10e8b9b8178295319cc4f0c6b59c593a Address 126 : 1AWCLZAjKbV1P7AHvaPNCKiB7ZWVDMxFiz | Private Key : 3334725acd4d98307a93cdac0f1bdcd1 Address 127 : 1G6EFyBRU86sThN3SSt3GrHu1sA7w7nzi4 | Private Key : 43d877dd04ec427bc79c23d83e3eb96b Address 128 : 1MZ2L1gFrCtkkn6DnTT2e4PFUTHw9gNwaj | Private Key : a7b1f24732e21cdd77bfb1a242c3322a Address 129 : 1Hz3uv3nNZzBVMXLGadCucgjiCs5W9vaGz | Private Key : 14ef6f7157739304a430913fcf6e5271a Address 130 : 1Fo65aKq8s8iquMt6weF1rku1moWVEd5Ua | Private Key : 33a6cf5dbaf6e47b2d0c093c16adf1b96 Address 131 : 16zRPnT8znwq42q7XeMkZUhb1bKqgRogyy | Private Key : 6b8c15626827c392ab0f5d6f72603d0f8 Address 132 : 1KrU4dHE5WrW8rhWDsTRjR21r8t3dsrS3R | Private Key : ef7fe2606a4143dad471531c53772442c Address 133 : 17uDfp5r4n441xkgLFmhNoSW1KWp6xVLD | Private Key : 15f76157508d9779fc8e238e1c247142d7 Address 134 : 13A3JrvXmvg5w9XGvyyR4JEJqiLz8ZySY3 | Private Key : 22a188673b96b20e974a76fd1491e46866 Address 135 : 16RGFo6hjq9ym6Pj7N5H7L1NR1rVPJyw2v | Private Key : 69bca5a75a461a887acb92fa817109ea60 Address 136 : 1UDHPdovvR985NrWSkdWQDEQ1xuRiTALq | Private Key : ebf06065edf1bfef22eb1ceb1445ea2940 Address 137 : 15nf31J46iLuK1ZkTnqHo7WgN5cARFK3RA | Private Key : 1030d7cbbde282b3963e0867b46477f1a7d Address 138 : 1Ab4vzG6wEQBDNQM1B2bvUz4fqXXdFk2WT | Private Key : 2a436e594a1920216b6ff44c364c40658ef Address 139 : 1Fz63c775VV9fNyj25d9Xfw3YHE6sKCxbt | Private Key : 70f361f75fafddd6de4e9553649f1cef19e Address 140 : 1QKBaU6WAeycb3DbKbLBkX7vJiaS8r42Xo | Private Key : d926936f1916b648b87bc6848ff00427df7 Address 141 : 1CD91Vm97mLQvXhrnoMChhJx4TP9MaQkJo | Private Key : 1b7a40209d5455e7eb68b32b08ca26339231 Address 142 : 15MnK2jXPqTMURX4xC3h4mAZxyCcaWWEDD | Private Key : 31f79cab2773d5a3b645be903ca3b2b23e95 Address 143 : 13N66gCzWWHEZBxhVxG18P8wyjEWF9Yoi1 | Private Key : 687f4cadbc80e2c78dda03a6058bbf8dbe20 Address 144 : 1NevxKDYuDcCh1ZMMi6ftmWwGrZKC6j7Ux | Private Key : b81a70baf88bdaf1317291647da3b55e0cfd Address 145 : 19GpszRNUej5yYqxXoLnbZWKew3KdVLkXg | Private Key : 1098ff29646926325b1bac056edadf8829c8c Address 146 : 1M7ipcdYHey2Y5RZM34MBbpugghmjaV89P | Private Key : 3921b30212882e51870788c74bbede2b2cf2f Address 147 : 18aNhurEAJsw6BAgtANpexk5ob1aGTwSeL | Private Key : 76e7f2a4d2e68993021313746c8ab4e757961 Address 148 : 1FwZXt6EpRT7Fkndzv6K4b4DFoT4trbMrV | Private Key : fa8e7dddfd0b95ec5c29f3a3272cdfbdbe19d Address 149 : 1CXvTzR6qv8wJ7eprzUKeWxyGcHwDYP1i2 | Private Key : 1fe964248beacee112de2f98f3ef5fd3b2f9a4 Address 150 : 1MUJSJYtGPVGkBCTqGspnxyHahpt5Te8jy | Private Key : 2244ac925edc90e3689ce1dec59a936a8aebb0 Address 151 : 13Q84TNNvgcL3HJiqQPvyBb9m4hxjS3jkV | Private Key : 5a4489ed3c6c4db505137e42e54fff6c3fb43f Address 152 : 1LuUHyrQr8PKSvbcY1v1PiuGuqFjWpDumN | Private Key : a18cf844e23a302151bb419e120c22d83673c3 Address 153 : 18192XpzzdDi2K11QVHR7td2HcPS6Qs5vg | Private Key : 1c6aa58e6b25bbcbf933a63b0e383c3915b5558 Address 154 : 1NgVmsCCJaKLzGyKLFJfVequnFW9ZvnMLN | Private Key : 3efa3bddcf768c78e3baeacbc22213f2ae255b4 Address 155 : 1AoeP37TmHdFh8uN72fu9AqgtLrUwcv2wJ | Private Key : 4ee6da4952d54368fe767f4ee7d302a9fbf7133 Address 156 : 1FTpAbQa4h8trvhQXjXnmNhqdiGBd1oraE | Private Key : aa2c3f950f806de831775eb53b3e3797279a5cf Address 157 : 14JHoRAdmJg3XR4RjMDh6Wed6ft6hzbQe9 | Private Key : 12e434ad3465e69c3ccd3dd1c1e2ff461066396c Address 158 : 19z6waranEf8CcP8FqNgdwUe1QRxvUNKBG | Private Key : 239856ce86999133eb532fa6650076bf4ca343bf Address 159 : 14u4nA5sugaswb6SZgn5av2vuChdMnD9E5 | Private Key : 4b3dcbbbe1dc5b7529e118c00da635e33ae2ae8b Address 160 : 1NBC8uXJy1GiJ6drkiZa1WuKn51ps7EPTv | Private Key : 87da417e72fef42b438bb6516cb259fb3ed015c7
|
|
|
I can't find any way to add the rule backward (child structure to parent key) I have zero idea how to do it .... even chatgpt and mistral said is impossible ( i have questions about it , take as a grain of salt) And no, a potato pc can't do all this smiths... I'm saying because I have a simple potato laptop and god knows how bad is going The result will always be the same, whether you use the range as a decimal number and generate random numbers there, or whether you use log(2) as a different notation. You could also chase the numbers through other algorithms. Some will work faster and that is the only advantage.
|
|
|
So.....here is a new toy. puzzle 66 private key is from 65.00000000000000 to 65.99999999999999 Log(2) import math import sys import secp256k1 as ice
# Function to convert Log(2) to decimal number def log2_to_decimal(log2_value): return 2 ** log2_value
# Range of Log(2) values start_log2 = 65.00000000000000 end_log2 = 65.99999999999999
# Number of decimal places for Log(2) decimal_places = 15
target_caddr = "13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so"
# Iterate through the range and calculate decimal numbers for i in range(int(start_log2 * 10**decimal_places), int((end_log2 + 10**-decimal_places) * 10**decimal_places)): log2_value = i / 10**decimal_places decimal_number = log2_to_decimal(log2_value) HEX = "%064x" % int(decimal_number) dec = int(HEX, 16) caddr = ice.privatekey_to_address(0, True, dec) message = "\r[+] {}".format(dec) messages = [] messages.append(message) output = ''.join(messages) + "\r" sys.stdout.write(output) sys.stdout.flush() if caddr == target_caddr: wifc = ice.btc_pvk_to_wif(HEX) print(wifc) break This experimental log(2) method skips decimal numbers on the fly as desired in "decimal_places" . . . Maybe someone can guess on luck what the "decimal_places" number is (from 1 to 17) .
|
|
|
If you guys are saying that pubkey is enough to take over any puzzle tx, then it can be done with any tx that is in mempool.
It is possible, but it requires knowledge of the private key range with a minimum precision width of Puzzle 30 scale, so that you could brute-force the private key on a potato PC. The key thing here is that we know the exact ranges of the keys for puzzles. And on too big like Puzzle 130, that factor doesn't help us either. Due to lack of hardware.
|
|
|
No problem, I will upload a full video of these on YouTube in an hour. Bugs and cracks always appear somewhere and from where no one thought of it, and sometimes they are very simple and very unexpected.
Oh, it sounds like we're invited for a thrilling YouTube premiere! Who knew the drama of consecutive keys from a wallet could be so riveting? And here I was, thinking that bugs and cracks only appeared in poorly written software and manuals. Who knows what secrets lie hidden in the labyrinth of ones and zeros? Only time will tell, my friend, only time will tell. But hey, you've got a keen eye for the unexpected - who knows, maybe your next video will uncover the secret of the universe hidden in the digits of pi.
|
|
|
|