So this is my attempt at searching key sub-ranges. If you know the key begins with 0x20 then I was searching for "13zb" and keys that printed 0x20-0x3f are noted. I went through various puzzles, some already solved and broke the key ranges down into sub-ranges. Hopefully you will find this useful.
import multiprocessing
import base58
import secrets
from bitcoin import privtopub, pubtoaddr
def vint():
puzzle_66 = "13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so"
btc = ""
while btc[:len(puzzle_66)] != puzzle_66:
alphabet = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
untext = "".join(secrets.choice(alphabet) for i in range (12))
text = '11111111111111111111111' + 'C' + untext #23 1's 'C' is the parameter you can change.
base58Str = base58.b58decode(text).hex()
pubKey = privtopub(base58Str)
btc = pubtoaddr(pubKey)
f = open("keys.txt", "a")
f.write(base58Str + "\n")
f.close()
b = open("btc.txt", "a")
b.write(btc + "\n")
b.close()
print(base58Str)
print(pubKey)
print(btc)
processes = []
for _ in range(1):
p1 = multiprocessing.Process(target=vint)
p1.start()
processes.append(p1)
for process in processes:
process.join()
LINK to text files with key sub-ranges.
https://drive.google.com/drive/folders/176gIM6ACTyZg5Ux5Adsu-kP5S3LspLcU?usp=drive_linkI don't know python, but I found a bug.
The range is not correct, but that's half the problem.
Will it save keys.txt ? base58Str is declared local?
It will be right, who knows?
import multiprocessing
import base58
import secrets
from bitcoin import * # from bitcoin import privtopub, pubtoaddr
def vint():
puzzle_66 = "13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so"
btc = ""
base58Str = "" # ?
pubKey = "" # ?
while btc != puzzle_66: #while btc[:len(puzzle_66)] != puzzle_66:
alphabet = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
untext = "".join(secrets.choice(alphabet) for i in range (11))
#text = '11111111111111111111111' + 'C' + untext #23 1's 'C' is the parameter you can change.
text = '11111111111111111111111' + '3' + untext
base58Str = base58.b58decode(text).hex()
pubKey = privtopub(base58Str)
pubKey = encode_pubkey(pubKey, 'hex_compressed') # !!!!!!!! ADD THE !!!!!!!!
btc = pubtoaddr(pubKey)
#print (base58Str)
#print (btc)
#print (btc[:len(puzzle_66)])
print (pubKey)
f = open("keys.txt", "a")
f.write(base58Str + "\n")
f.close()
b = open("btc.txt", "a")
b.write(btc + "\n")
b.close()
print(base58Str)
print(pubKey)
print(btc)
if __name__ == '__main__':
th = 2
processes = []
for _ in range(th):
p1 = multiprocessing.Process(target=vint)
p1.start()
processes.append(p1)
print ('Start thread: ', _)
for process in processes:
process.join()
Try replacing the != condition with == In the first script
And error 3 - the public key is not compressed.
Who writes them here on purpose, right?
Corrected. To check, I edited the script for bit 28.
The adjusted script works. I haven't checked the speed, need to add a counter. ~2 Kkeys/s