Author

Topic: Bitcoin puzzle transaction ~32 BTC prize to who solves it - page 239. (Read 229433 times)

jr. member
Activity: 67
Merit: 1
I was bored so I made this
Code:
#import pyopencl as cl
#import numpy as np
import secp256k1 as ice
from tqdm import tqdm
import random
import base58
import time
length = 3 #12 length is base58 for 66 address
num = 1 #stack world write one number code run 10 time faster running
randStr = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
for x in tqdm(range(100000000)):
 def randomwords(size,chars):
  return ''.join(random.choice(chars) for _ in range(size))
 def cpu_gen(length,num,randStr):
  str_list=[]
  #cpu_start_time = time.time()
  for i in range(num):
   x0 = str_list.append(randomwords(length,randStr))
   x1 = ''.join(str_list)
   ba = base58.b58decode(x1).hex()
   xx = int(ba,16)
   ke = ice.privatekey_loop_h160(0,0,True,xx).hex()
   if "7025b4efb3ff42eb4d6d71fab6b53b4f4967e3dd" in (ke):
    f=open("collision.txt","a")
    f.write(str(xx)+"-"+(ke)+"\n")
    f.close()
    #cpu_end_time = time.time()  # Get the CPU end time
    #timeGap = cpu_end_time - cpu_start_time
    print(str_list,x1,ba,xx)
    #return timeGap
 cpu_time = cpu_gen(length,num,randStr)
 #print("CPU Time: {0} s".format(cpu_time))
hero member
Activity: 630
Merit: 731
Bitcoin g33k
commenting the if-line results in 2.6 seconds, that helped. However I don't see any GPU utilization. I tried raising num to 50 million, but then the process died before it ended. No result, GPU util = 0%

any clues ?
newbie
Activity: 5
Merit: 0
Code:
[...]
num = 50000000
[...]
#cpu_time = cpu_gen(length, num, randStr)
gpu_time = gpu_gen(length, num, randStr)
print("****************************************************")
print("CPU and GPU execution time comparison")
#print("CPU Time: {0} s".format(cpu_time))
print("GPU Time: {0} s".format(gpu_time))

I was curious to see if and how fast the GPU part is done. So I disabled the CPU part in your code and raised num to 50 million. Before starting I opened my Nvidia System app to monitor the load of my GPU. After about 1.5 sec my Nvidia System Monitor showed
Quote
Used Dedicated Memory: 3531 MB (43%)
GPU Utilization: 0%

that means that data was loaded into the dedicated memory, but GPU utilization remains during the complete run at 0% which is unusual. Whenever I run other tools like VanitySearch, BitCrack, KeyHunt-Cuda, etc. GPU utilization is at 100%. I doubt that everything is running at optimum speed inside the GPU part.

Also, when measuring the execution time it takes 39sec. and not only 0.9sec as stated by the program.

Quote
$ time python3 crewchill.py
GPU Time: 0.9311995506286621 s
****************************************************
Random Strings gnerated by GPU
****************************************************
CPU and GPU execution time comparison
GPU Time: 0.9311995506286621 s

real   0m39,594s
user   0m38,058s
sys   0m3,153s

0.9 seconds is too fast to activate gpu.

39s because you print space.

Code:
for i in range(totChar):
if i>1 and i % length==0:print('' ,end='')    <=hide this print and try again
hero member
Activity: 630
Merit: 731
Bitcoin g33k
Code:
[...]
num = 50000000
[...]
#cpu_time = cpu_gen(length, num, randStr)
gpu_time = gpu_gen(length, num, randStr)
print("****************************************************")
print("CPU and GPU execution time comparison")
#print("CPU Time: {0} s".format(cpu_time))
print("GPU Time: {0} s".format(gpu_time))

I was curious to see if and how fast the GPU part is done. So I disabled the CPU part in your code and raised num to 50 million. Before starting I opened my Nvidia System app to monitor the load of my GPU. After about 1.5 sec my Nvidia System Monitor showed
Quote
Used Dedicated Memory: 3531 MB (43%)
GPU Utilization: 0%

that means that data was loaded into the dedicated memory, but GPU utilization remains during the complete run at 0% which is unusual. Whenever I run other tools like VanitySearch, BitCrack, KeyHunt-Cuda, etc. GPU utilization is at 100%. I doubt that everything is running at optimum speed inside the GPU part.

Also, when measuring the execution time it takes 39sec. and not only 0.9sec as stated by the program.

Quote
$ time python3 crewchill.py
GPU Time: 0.9311995506286621 s
****************************************************
Random Strings gnerated by GPU
****************************************************
CPU and GPU execution time comparison
GPU Time: 0.9311995506286621 s

real   0m39,594s
user   0m38,058s
sys   0m3,153s
newbie
Activity: 5
Merit: 0
Code:
import string
import random
import time
import numpy as np
import pyopencl as cl 
import math   
# You can input here
length = 17  #hex length for 66
num = 1000000
randStr = "abcdefghijklmnopqrstuvwxyz0123456789"

# end of Input


def randomwords(size, chars):
return ''.join(random.choice(chars) for _ in range(size))

def cpu_gen(length, num, randStr):
str_list=[]
cpu_start_time = time.time()  # Get the CPU start time
for i in range(num):
str_list.append(randomwords(length, randStr))
cpu_end_time = time.time()  # Get the CPU end time
timeGap = cpu_end_time - cpu_start_time
print("CPU Time: {0} s".format(timeGap))
print("****************************************************")
print("Random Strings gnerated by CPU")
#print(str_list)
return timeGap

def gpu_gen(length, num, randStr):
#define random basic letters
# radom base length
totChar = length * num
randomIndex = len(randStr)
# parameters of random generation function
# right_index = np.array.randint(randomIndex, size= totChar)
right_index = np.empty(totChar, dtype=str)
ranss = np.array((randStr,))

rand_seed = math.floor(time.time()) % 20
# define the contect to use gpu
ctx = cl.create_some_context(0)
queue = cl.CommandQueue(ctx)
# define flag of the opencl
mf = cl.mem_flags

rand_buff_1 = cl.Buffer(ctx, mf.READ_ONLY | mf.COPY_HOST_PTR, hostbuf=right_index)
rand_str = cl.Buffer(ctx, mf.READ_ONLY | mf.COPY_HOST_PTR, hostbuf=ranss)
program = cl.Program(ctx, """
int mpow(int n, int p){
int s =1;
for(int i=1; i<=p; ++i){
s = s * n;
}
return s;
}
int myRand(int next){
next = ((next * (next % 3) )/50)% 100;
return next;
}
int mabs(int a){
if (a<0){
a = 0-a;
}
return a;
}
int myRandInRange(int next, int min, int max){
int temp;
if (max < min){
temp = max;
max = min;
min = temp;
}
return myRand(next) % (max + 1 - min) + min;
}
__kernel void RandGen(
    __global int *rand_out_buff, __global char *ss, int rand_buff, int seed_buff)
{
 
  int gid = get_global_id(0);

  int temp = mpow(gid, seed_buff) + seed_buff % (gid+1);
 
  int input = myRandInRange(temp, gid * seed_buff, gid * (gid % seed_buff)) + seed_buff;
  input  = mabs(input);
  rand_out_buff[gid] =ss[(input % rand_buff)*4];
}
""").build()

rand_out_buff = cl.Buffer(ctx, mf.WRITE_ONLY, right_index.nbytes)
gpu_start_time = time.time()
event = program.RandGen(queue, right_index.shape, None, rand_out_buff, rand_str, np.int32(randomIndex), np.int32(rand_seed))
event.wait()
rand_list = np.empty_like(right_index)
cl.enqueue_copy(queue, rand_list, rand_out_buff)
gpu_end_time = time.time()  # Get the GPU end time
timeGap = gpu_end_time - gpu_start_time
print("GPU Time: {0} s".format(timeGap))
for i in range(totChar):
if i>1 and i % length==0:print('' ,end='')
#print(rand_list[i], end='')
#print('')
print("****************************************************")
print("Random Strings gnerated by GPU")
return timeGap

cpu_time = cpu_gen(length, num, randStr)
gpu_time = gpu_gen(length, num, randStr)
print("****************************************************")
print("CPU and GPU execution time comparison")
print("CPU Time: {0} s".format(cpu_time))
print("GPU Time: {0} s".format(gpu_time))


 compile this random generator with  ice.secp256k1 to increase speed.
copper member
Activity: 1330
Merit: 899
🖤😏
for those still doing puzzle:) here is WIF 1-65 compressed and uncompressed hope this helps. if so tip me up.

i give up now:(
Why do you have so many uncompressed private keys? Don't you know puzzle transactions use compressed addresses only? Searching for unc addresses and even storing them is a waste of time.
newbie
Activity: 9
Merit: 0
@Andzhig And if we increase one more character of address 16jY7qLJn & 'x' then most binaries are started from '111'

few examples -

16jY7qLJnxLQQRYPX5BLuCtcBs6tvXz8BE   1110000000100110101001101101010100100011010011001000100000110110000   7013536A91A6441B0
16jY7qLJnX9uchnyf26t3QJnsUf78Xdikb   1110010000101000111010000001111110010000001011001101111011100000   E428E81F902CDEE0
16jY7qLJnX9eX8j612s8fnbn6uzR48xjua   1110100000001101111010110011001110101001011001111010000010001111   E80DEB33A967A08F
16jY7qLJnx2EZZumnYFke3GutCrRnHKs1M   111010110100110101001101101010111010101000110011101011001010110000   3AD3536AEA8CEB2B0
16jY7qLJnx2ixrxCnTLSraerkgyB3YYAiT   1110110111111001110011010110000000110101011011011100110000011001   EDF9CD60356DCC19
16jY7qLJnxHBp3dqwV2kzYq1LucfZzgxsH   1110111010111001101010110011001101001101111100100111011100001101   EEB9AB334DF2770D
16jY7qLJnX2cZXJ78wV1ef42e7cLAZJ1Vn   1111111000101000011001011100011011011011111111101100001110000011   FE2865C6DBFEC383
16jY7qLJnxb7CHZyqBP8qca9d51gAjyXQN   1111011100000101000111110010011110110000100100010001001011010100 F7051F27B09112D4


Could this also be some logic?

can you shed more light on this issue

5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73sVHnoWn
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreB1FQ8BZ          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU74sHUHy8S
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreBR6zCMU          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU76rnZwVdz
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreBbMaQX1          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU77MfhviY5
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreD437Nay          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU7Dq8Au4Pv
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreGAk6qMH          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU7Tmu6qHxS
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreKD614Nu          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU7hDgvu64y
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsrebwE4gQs          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU8xvGK1zpm
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsrf5KgGj3x          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUB3vfDKcxZ
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsrfAeGjhSe          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUBTL67V6dE
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsrgQwUiKuq          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUGxXgtm63M
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsrjPKxKjY2          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUW5RtS2JN1
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsrpKArkUBq          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFUspniiQZds
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsrzgDWpY2w          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFVfZyiN5iEG
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEssYRrMCmpZ          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFY5iMZbuRxj
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEstNN85F5Mw          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFbjHrFMWzJp
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsurZXJixkP          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFiHkRsp99uC
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsyJco3YM5Z          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFyWkjT5fywW
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEt4deKgfY59          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rGP2jMrxCfX3
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEtMbVN6VkAe          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rHfuE2Tg4nJW
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEtuQQfBxcrT          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rL6JJvw6XUry
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEubWMgPbZSY          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rP9Ja2dhtxoh
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEw6QwynKpQi          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rVkthFNsQ6i7
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kF2CYofJGeWz          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rtHyNcFoApRd
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kFD3cZqtqDcV          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7siAXycwkwRQg
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kFRPm5LvgRsh          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7tefTXkqGMNis
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kFzbD1oFi4uP          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7wBBz2KJQdASx
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kH9V2Fos6zmj          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M82GSgY8p5EkUe
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kJsZaUF8qWJH          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M89tAnjFUUDRtJ
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kRBGjQsHeT9B          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M8diLSC5MyERoW
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kbqYM38cziku          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M9SmFMSCA4jQRW
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kmidEaBAp5Ee          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9MACNivtz8yMYTd
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3mU31M4JzEsry          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9MDGKrXXQL647jj
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3nfnAFgUF9hzZ          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9MJaAKqns7PN9Ra
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3ohPvCS9khB9n          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9MP7J9oTbu6KuRr
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3sXU9b1haJkT8          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9Mg1Upu7eJAtiDr
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB43UMHpcm3f8ag          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9NRuiZFAX6XciCX
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB4BW8dsj4c9a6g          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9P3MahktLW5315v
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB4htJVTbuNiGA1          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9RMTSCcQzX3EjMZ
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB6ikvy2duGEu2D          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9aFJuCJDo5F6Jm7
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB84u9Cbd5fwdR6          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9gCD9CBomewdcUD
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEBCKvkRRBUtpNdX          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9zzYEemjCVJ3vo9
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEBRhv6ue8TGcLBe          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgdB23bP5LsYN8Krv7
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEBqQAxxEAdgvLgN          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgdCpdGyxm7PWoNQdr
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEC51Sd31pLUWx3i          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgdDrgx63tbte4scLA
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEDg6uLuezrDySzX          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgdLwb42sQhwTBJDnG
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEHAPod6LNRWAZBf          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgdcLTenJYVVVTRzxN
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nELpQuZ1gQQYrZ1J          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgdtUGWxHzvDi28MfR
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEXxDuJBiUbiVA9e          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgejcjwprJ4MAYLw8e
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEiGwVv6mtxTe9ip          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgfXBMYdNVA4EjUMzg
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nFzFBD1zxALEsLqK          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgm9fa43QnU2CpULaK
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nHtVssx1RqUdSdVj          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjguYJTZsntce5oQQrh
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nL8eoQu4hLSpXwa4          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjh5SmqrUoK2mhwSYFV
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nNxiLZixsgdChZjz          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjhHvuTMSDchRp5hktc
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4ngeHA7b4zPaJ3ga1          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjidyYKE5NcJQZYvknA
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nu8VixoNGBCuaLCm          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjjb65nDHeqyjiBaJXv
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4pKxzyzRYGJZF2CUQ          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjqtiAvYTJzYEmqup7b
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4qGMGYDHfP5bxwCnj          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjv2kTamEYQT9BNC7o1
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4vCkbw1TKC5xefUVS          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYkHpsTBP19HvTFqiU6i  
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip55U8L18x1xXBdqu84          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYkzijLsc5qE43yZ5eLV
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip59tGc46u8joQDakRT          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYmLDHsih379uP9zbHSD
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip5obPQhDC8LRVrSnwc          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYpCemuaUp7NigjvtJug
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip78q4h8QmfB6MwMuF1          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYv5Z9J7hv7VYYN3XL3Y
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip9SbPnb1C74XPPH9cU          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qZ6FxoaD5r1kYegmtbaT
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ipCnYRNeQuRFKarWVVs          KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qZM21gaY8WN2CdwnTG57

for those still doing puzzle:) here is WIF 1-65 compressed and uncompressed hope this helps. if so tip me up bc1q7h54ddkhy7c2fxqvhg34jxejpq89e8k483632a

i give up now:(
newbie
Activity: 9
Merit: 0
For half a year I use my cpu to scan for the #67 puzzle. I am 0.000039% scanned addresses of the range ;( A lifetime more to wait. I wonder how many supercomputers out there scan the bitcoin chain for these keys every minute. If you remember the pipeline hack, the FBI had already the privkey for the address used and it was not obtain during a hack or seize.
But Why the 67th puzzle ?.. why not the easier one? I mean the amount of private keys in 66 is unbelievably enormous already .. why go for the double of that gigantic range?
because someone is more likely to find 66 before 67 he doesnt wanna spend a shit ton of time on 66 and someone find it before him so he does 67 by time someone does find 66 he will be at head start( to most people anyway ) thats what i think at least

This analogy may seem smart if we're dealing with normal amounts like million or even billions. But when talking about tens of million trillions, that "head start" gets engulfed to almost nothing. The human mind can't grasp how extremely improbable it is to find ONE address among 73 million trillion ones, let alone double that digit. That being said, why are we still searching?
Because luck and coincidence do happen. But that's just that, you don't need to try outsmarting your odds in order to land on the key. The only factor you need is luck, and you're surely not doing yourself any more favours by doubling the odds against yourself, aka: puzz 67

and im always tryna think of a way to explain that to people you just cant people dont understand cuz its that many numbers lol people who dont know much about btc that is. bitcoins security is literally based on how many numbers it is
sr. member
Activity: 345
Merit: 250
Well in essence, lets say he eventually reaches 0.005 percent when someone hit's 66 on a lucky hit in a year and a bit. if he has large saved segments of what he has searched he can go to tdd/ttd can't remember and say, here are the ranges checked and get his according percentage as was done with 64 when it started. You move from private to a team split. It's the very long game to play. Has it's pro's and cons. 
member
Activity: 185
Merit: 15
Two things you should never abandon: Family & BTC
For half a year I use my cpu to scan for the #67 puzzle. I am 0.000039% scanned addresses of the range ;( A lifetime more to wait. I wonder how many supercomputers out there scan the bitcoin chain for these keys every minute. If you remember the pipeline hack, the FBI had already the privkey for the address used and it was not obtain during a hack or seize.
But Why the 67th puzzle ?.. why not the easier one? I mean the amount of private keys in 66 is unbelievably enormous already .. why go for the double of that gigantic range?
because someone is more likely to find 66 before 67 he doesnt wanna spend a shit ton of time on 66 and someone find it before him so he does 67 by time someone does find 66 he will be at head start( to most people anyway ) thats what i think at least

This analogy may seem smart if we're dealing with normal amounts like million or even billions. But when talking about tens of million trillions, that "head start" gets engulfed to almost nothing. The human mind can't grasp how extremely improbable it is to find ONE address among 73 million trillion ones, let alone double that digit. That being said, why are we still searching?
Because luck and coincidence do happen. But that's just that, you don't need to try outsmarting your odds in order to land on the key. The only factor you need is luck, and you're surely not doing yourself any more favours by doubling the odds against yourself, aka: puzz 67
newbie
Activity: 9
Merit: 0
For half a year I use my cpu to scan for the #67 puzzle. I am 0.000039% scanned addresses of the range ;( A lifetime more to wait. I wonder how many supercomputers out there scan the bitcoin chain for these keys every minute. If you remember the pipeline hack, the FBI had already the privkey for the address used and it was not obtain during a hack or seize.
But Why the 67th puzzle ?.. why not the easier one? I mean the amount of private keys in 66 is unbelievably enormous already .. why go for the double of that gigantic range?
because someone is more likely to find 66 before 67 he doesnt wanna spend a shit ton of time on 66 and someone find it before him so he does 67 by time someone does find 66 he will be at head start( to most people anyway ) thats what i think at least
hero member
Activity: 630
Merit: 731
Bitcoin g33k
Here's an example for python. The program takes the hash160 value as the first argument of the command line call. It then uses this value to generate both the Bitcoin and Dogecoin addresses by using the same value with different version bytes and Base58Check encoding rules.

Code:
#/usr/bin/env python3
# ./hash160_to_address.py
# by citb0in, 2023/Jan/19
import sys
import hashlib
import base58

# hash160
h = sys.argv[1]

# version byte (for Bitcoin "00", for Dogecoin it's "1E")
version_btc = b"\x00"
version_doge = b"\x1E"

# hash160 + version byte
h_btc = version_btc + bytes.fromhex(h)
h_doge = version_doge + bytes.fromhex(h)

# double-sha256
r_btc = hashlib.sha256(h_btc).digest()
r_doge = hashlib.sha256(h_doge).digest()
r_btc = hashlib.sha256(r_btc).digest()
r_doge = hashlib.sha256(r_doge).digest()

# first 4 bytes of sha256(sha256)
checksum_btc = r_btc[:4]
checksum_doge = r_doge[:4]

# hash160 + version byte + checksum
address_btc = h_btc + checksum_btc
address_doge = h_doge + checksum_doge

# base58 conversion to get the address
address_btc = base58.b58encode(address_btc)
address_doge = base58.b58encode(address_doge)

print(f"\n\nHash160 = {h}")
print(f"Bitcoin (BTC) address = {address_btc.decode()}")
print(f"Dogecoin (DOGE) address = {address_doge.decode()}")

Code:
$ python3 hash160_to_address.py 20d45a6a762535700ce9e0b216e31994335db8a5 
Quote
Hash160 = 20d45a6a762535700ce9e0b216e31994335db8a5
Bitcoin (BTC) address = 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so
Dogecoin (DOGE) address = D88gYxMEoumtZSJAC9mwa2EWfm6g3uocon

Now for additional example take the hash160 of puzzle #67 which is 739437bb3dd6d1983e66629c5f08c70e52769371 and calculate the DOGE address:
Code:
$ python3 hash160_to_address.py 739437bb3dd6d1983e66629c5f08c70e52769371
Quote
Hash160 = 739437bb3dd6d1983e66629c5f08c70e52769371
Bitcoin (BTC) address = 1BY8GQbnueYofwSuFAT3USAhGjPrkxDdW9
Dogecoin (DOGE) address = DFgDofYSD4T6CwdVykSc2CLJ9s8A6Bqt97

If you or someone else send some coins to DFgDofYSD4T6CwdVykSc2CLJ9s8A6Bqt97 you will see the same effect.

EDIT:
You can find an extended version of this tool on my github repository. It will also show the native segwit (bech32) address of the hash. I have added also Litecoin as an additional example because I know that Litecoin supports bech32, too. I don't give a **** about shitcoins, it should just serve as programming example to see how this works.

Code:
$ python3 ./hash160_to_coin_addresses.py 20d45a6a762535700ce9e0b216e31994335db8a5
Quote
Hash160 = 20d45a6a762535700ce9e0b216e31994335db8a5
Bitcoin (BTC) address = 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so
Bitcoin (BTC) bech32 address = bc1qyr2956nky56hqr8fuzepdccejse4mw994lyftn
Dogecoin (DOGE) address = D88gYxMEoumtZSJAC9mwa2EWfm6g3uocon
Litecoin (LTC) address = LNDYGuiRbA7fHEoidhmgJH8fzqjeseATsU
Litecoin (LTC) bech32 address = ltc1qyr2956nky56hqr8fuzepdccejse4mw993r7dnr
legendary
Activity: 2534
Merit: 6080
Self-proclaimed Genius
-snip-
I am really suprised of the probability that this can happen.... same key that have a Bitcoin and DOGE addresses both with balance ? it could be the puzzle owner DOGE account ? or maybe that key is derived from some simple schema ??
what do you think ?
If you see any funded address, that doesn't mean that someone knows its private key.
That Dogecoin address is one example, someone just derived the dogecoin address from p66's address then sent dogecoins to it.

In your link, see that "Public Key Hash (Hash 160)" below the address?
That's basically the address when decoded with base58 without the network bytes and checksum.
Simply add any altcoin's network bytes, etc. and encode it with base58check to get the equivalent altcoin address.
hero member
Activity: 862
Merit: 662
The hash rmd160 is the same for almost all chains, yes you can derive the doge address from it the only change is the prefix byte.
newbie
Activity: 1
Merit: 0
Hi everybody,
maybe someone already noticed.. not sure
PUZZLE 66.....
Looking at address "https://privatekeys.pw/address/bitcoin/13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so" I just realized that there is a DOGE coin address  with A BALANCE that has the SAME private key !!!
Does this means that the owner of DOGE address could theoretically take the Bitcoin in puzzle#66 ??
.. in addition...
I am really suprised of the probability that this can happen.... same key that have a Bitcoin and DOGE addresses both with balance ? it could be the puzzle owner DOGE account ? or maybe that key is derived from some simple schema ??
what do you think ?
I tried to search in google for that DOGE address but no relevant info found.
full member
Activity: 1162
Merit: 237
Shooters Shoot...
yes, there is, if you really think automated random created things are really random, then think twice.

Ok, I will ... hold on a second ... finished.

Now, please tell me what the weather in South Florida will be on 2024/Feb/29 at 02:19 PM.
Warmer than what it will be where I am lol...
hero member
Activity: 630
Merit: 731
Bitcoin g33k
yes, there is, if you really think automated random created things are really random, then think twice.

Ok, I will ... hold on a second ... finished.

Now, please tell me what the weather in South Florida will be on 2024/Feb/29 at 02:19 PM.
full member
Activity: 1162
Merit: 237
Shooters Shoot...
Quote
well you saying this stupid thing i know you didnt read my message at all, puzzle 64 start from 8000000000000000 to ffffffffffffffff i say start from eb851eb851eb8000 so yea, i save a lot of time from 8000000000000000 to Eb and the hex started at f7, so go F yourself we are not here making funny or stupid commenting things, so F you and i keep this pattern to myself, Good luck Smiley
Lol...I merely said it because you had a 1 in 8 chance of guessing correctly and you claim you have a good start for #66 but do not share, why? Maybe because you will be wrong? I have trillions of keys checked in each sub 48 bit range; so if you know the first 1 to 5 starting characters for #66, tell us, and I will tell you if it's been checked already.
hero member
Activity: 630
Merit: 731
Bitcoin g33k
it is completely pointless to "guess" or "estimate" a range since the author of the puzzle has already made a clear statement about it --> there IS NO PATTERN  Cool
However good luck to everybody!
full member
Activity: 1162
Merit: 237
Shooters Shoot...


I was checking exatly the same the other day, hi everyone im new into this puzzle, and im obsessed with it. Spend hours and hours looking for a pattern, and there is no pattern as the "owner" mentioned it but i was looking for the already found keys and i think i found something.

If someone is brute forcing this, you need to start from eb851eb851eb8000 to ffffffffffffffff, thats why this is not still be found, the hex is almost at the end of the range. Im bruteforcing this from feb851eb851eb800 to ffffffffffffffff at 25 MKey/s (yes is a little slow but is honest work Tongue ) and i will be checking from the back after finish a range.

I hope this helps anyone, and if i do please share something as i will share to 2 users of this forum (if i find the key) who gives me the idea Smiley


Regards from AR and sorry about my english.

based on what you say to start from that point of the range ?

so i was right, and i think where to start from for puzzle 66, i think i found a pattern. Ive also got a 1080 at a good price so im searching at 240 MKeys/s
Lol...okay, so where to start for puzzle 66? 20000000000000000?
Jump to: