satashi_nokamato
Jr. Member
Offline
Activity: 50
Merit: 3
|
 |
February 07, 2024, 04:15:13 PM |
|
@Tepan, could you implement KNN algorithm to your script? it could somewhat help you in predicting a clearer pattern in order to create a map of similar hashes in certain ranges.
You could scan 39 to 40 bit range and categorize similarly found hashes, do that with different hash prefixes in different bit ranges, you might figure out the average probability of certain hashes existing in specific ranges.
Note that KNN algo is a great tool for statistics. it stands for k-nearest neighboring.
|
|
|
|
WanderingPhilospher
Sr. Member
  
Offline
Activity: 1400
Merit: 271
Shooters Shoot...
|
 |
February 07, 2024, 04:35:30 PM |
|
you might figure out the average probability of certain hashes existing in specific ranges. I think you could figure out the probability before scanning any range, especially the first x amount of leading characters/"prefixes". A rough, but close estimate. Take the range size, say 2^40, and merely divide by the size of leading characters (in bits). So if you are wondering about the h160 prefix, "20cb78", and consider each position/character 4 bits, so 6 characters x 4 = 24 bits. Then in a range size of 2^40, you would roughly find 2^40/2^24 = 2^16 h160s starting with "20cb78".
|
|
|
|
Tepan
Jr. Member
Offline
Activity: 82
Merit: 1
|
 |
February 07, 2024, 05:55:09 PM |
|
@Tepan, could you implement KNN algorithm to your script? it could somewhat help you in predicting a clearer pattern in order to create a map of similar hashes in certain ranges.
You could scan 39 to 40 bit range and categorize similarly found hashes, do that with different hash prefixes in different bit ranges, you might figure out the average probability of certain hashes existing in specific ranges.
Note that KNN algo is a great tool for statistics. it stands for k-nearest neighboring.
>> test.py 18ZRLg9BMfAg9WYVWqVDtYdT59QV1PzrJe 18Z 52ea8235174b368df646576fc04eb0d2737057b6 1a000000000000000 1afffffffffffffff000000000000000000000000000000000000000000000001a6f7e55277418662 | Hash 160 52ffb5fad1e2964e0d62d0fb1fba1b2a51959602 | 18ZrjqFukCHggGmF9NHvTHnypz8CWUiesG | 600.90 sec | 000000000000000000000000000000000000000000000001a698bf0141abba89 | Hash 160 52faf3bd9c45c9788dd66c1c3247b9861149342c | 18Zm3BwAm4CNym3KuUUZu3n3vytQ6TXRoU | 700.29 sec | 000000000000000000000000000000000000000000000001a61adda168bf1479 | Hash 160 5304d1f3f9a3e5d191a70656b8cd49f242d91e8e | 18ZxrqALETxJS5eQ834BD8xdLBuLzDztqA | 700.61 sec | 000000000000000000000000000000000000000000000001a64271593ec75f14 | Hash 160 52df324fdd87f86fb67bd415db3fd3c63d70d5a2 | 18ZBnhRYcHxdw4fSDByCb7tMqnCA1n9UxC | 700.87 sec | 000000000000000000000000000000000000000000000001a678bde0e606d586 | Hash 160 52ea8235174b368df646576fc04eb0d2737057b6 | 18ZRLg9BMfAg9WYVWqVDtYdT59QV1PzrJe | 800.39 sec | 000000000000000000000000000000000000000000000001a7d696f300cda2fc | Hash 160 52db4611541a1d382a06279c0a32b45bd1a0bf2b | 18Z768mmb7LCGDjU5xsF5YtPiSvRo5pVvR | 900.63 sec | Similar hash160 found: 52ea8235174b368df646576fc04eb0d2737057b6 =========[Address Found]=========== Private Key: 000000000000000000000000000000000000000000000001a678bde0e606d586 Hash 160: 52ea8235174b368df646576fc04eb0d2737057b6 Address: 18ZRLg9BMfAg9WYVWqVDtYdT59QV1PzrJe 0x1a678bde0e606d586 Compressed Public Key: 02f46cb94bfecf5daf63cd54353c73eb3f7e148ac0f9b8af46e3a94ee8b60e1260 Time taken to find: 0.0000 seconds Speed of keys: 0.0000 keys per second =========[Address Found]=========== thankyou for advice, i make the KNN algorithm work with my previous code but have some trouble with other codes, some confusion call the rest codes to work with scan range, but it's work. i test on 65 bit. mightbe push my luck for 66 for couple weeks.
|
|
|
|
zahid888
Member

Offline
Activity: 331
Merit: 24
the right steps towerds the goal
|
 |
February 07, 2024, 06:06:52 PM |
|
@Tepan, could you implement KNN algorithm to your script? it could somewhat help you in predicting a clearer pattern in order to create a map of similar hashes in certain ranges.
You could scan 39 to 40 bit range and categorize similarly found hashes, do that with different hash prefixes in different bit ranges, you might figure out the average probability of certain hashes existing in specific ranges.
Note that KNN algo is a great tool for statistics. it stands for k-nearest neighboring.
>> test.py 18ZRLg9BMfAg9WYVWqVDtYdT59QV1PzrJe 18Z 52ea8235174b368df646576fc04eb0d2737057b6 1a000000000000000 1afffffffffffffff000000000000000000000000000000000000000000000001a6f7e55277418662 | Hash 160 52ffb5fad1e2964e0d62d0fb1fba1b2a51959602 | 18ZrjqFukCHggGmF9NHvTHnypz8CWUiesG | 600.90 sec | 000000000000000000000000000000000000000000000001a698bf0141abba89 | Hash 160 52faf3bd9c45c9788dd66c1c3247b9861149342c | 18Zm3BwAm4CNym3KuUUZu3n3vytQ6TXRoU | 700.29 sec | 000000000000000000000000000000000000000000000001a61adda168bf1479 | Hash 160 5304d1f3f9a3e5d191a70656b8cd49f242d91e8e | 18ZxrqALETxJS5eQ834BD8xdLBuLzDztqA | 700.61 sec | 000000000000000000000000000000000000000000000001a64271593ec75f14 | Hash 160 52df324fdd87f86fb67bd415db3fd3c63d70d5a2 | 18ZBnhRYcHxdw4fSDByCb7tMqnCA1n9UxC | 700.87 sec | 000000000000000000000000000000000000000000000001a678bde0e606d586 | Hash 160 52ea8235174b368df646576fc04eb0d2737057b6 | 18ZRLg9BMfAg9WYVWqVDtYdT59QV1PzrJe | 800.39 sec | 000000000000000000000000000000000000000000000001a7d696f300cda2fc | Hash 160 52db4611541a1d382a06279c0a32b45bd1a0bf2b | 18Z768mmb7LCGDjU5xsF5YtPiSvRo5pVvR | 900.63 sec | Similar hash160 found: 52ea8235174b368df646576fc04eb0d2737057b6 =========[Address Found]=========== Private Key: 000000000000000000000000000000000000000000000001a678bde0e606d586 Hash 160: 52ea8235174b368df646576fc04eb0d2737057b6 Address: 18ZRLg9BMfAg9WYVWqVDtYdT59QV1PzrJe 0x1a678bde0e606d586 Compressed Public Key: 02f46cb94bfecf5daf63cd54353c73eb3f7e148ac0f9b8af46e3a94ee8b60e1260 Time taken to find: 0.0000 seconds Speed of keys: 0.0000 keys per second =========[Address Found]=========== thankyou for advice, i make the KNN algorithm work with my previous code but have some trouble with other codes, some confusion call the rest codes to work with scan range, but it's work. i test on 65 bit. mightbe push my luck for 66 for couple weeks.  Can i take a look at your code ?
|
1BGvwggxfCaHGykKrVXX7fk8GYaLQpeixA
|
|
|
Tepan
Jr. Member
Offline
Activity: 82
Merit: 1
|
 |
February 07, 2024, 06:07:54 PM Last edit: February 07, 2024, 06:25:36 PM by Tepan |
|
@Tepan, could you implement KNN algorithm to your script? it could somewhat help you in predicting a clearer pattern in order to create a map of similar hashes in certain ranges.
You could scan 39 to 40 bit range and categorize similarly found hashes, do that with different hash prefixes in different bit ranges, you might figure out the average probability of certain hashes existing in specific ranges.
Note that KNN algo is a great tool for statistics. it stands for k-nearest neighboring.
>> test.py 18ZRLg9BMfAg9WYVWqVDtYdT59QV1PzrJe 18Z 52ea8235174b368df646576fc04eb0d2737057b6 1a000000000000000 1afffffffffffffff000000000000000000000000000000000000000000000001a6f7e55277418662 | Hash 160 52ffb5fad1e2964e0d62d0fb1fba1b2a51959602 | 18ZrjqFukCHggGmF9NHvTHnypz8CWUiesG | 600.90 sec | 000000000000000000000000000000000000000000000001a698bf0141abba89 | Hash 160 52faf3bd9c45c9788dd66c1c3247b9861149342c | 18Zm3BwAm4CNym3KuUUZu3n3vytQ6TXRoU | 700.29 sec | 000000000000000000000000000000000000000000000001a61adda168bf1479 | Hash 160 5304d1f3f9a3e5d191a70656b8cd49f242d91e8e | 18ZxrqALETxJS5eQ834BD8xdLBuLzDztqA | 700.61 sec | 000000000000000000000000000000000000000000000001a64271593ec75f14 | Hash 160 52df324fdd87f86fb67bd415db3fd3c63d70d5a2 | 18ZBnhRYcHxdw4fSDByCb7tMqnCA1n9UxC | 700.87 sec | 000000000000000000000000000000000000000000000001a678bde0e606d586 | Hash 160 52ea8235174b368df646576fc04eb0d2737057b6 | 18ZRLg9BMfAg9WYVWqVDtYdT59QV1PzrJe | 800.39 sec | 000000000000000000000000000000000000000000000001a7d696f300cda2fc | Hash 160 52db4611541a1d382a06279c0a32b45bd1a0bf2b | 18Z768mmb7LCGDjU5xsF5YtPiSvRo5pVvR | 900.63 sec | Similar hash160 found: 52ea8235174b368df646576fc04eb0d2737057b6 =========[Address Found]=========== Private Key: 000000000000000000000000000000000000000000000001a678bde0e606d586 Hash 160: 52ea8235174b368df646576fc04eb0d2737057b6 Address: 18ZRLg9BMfAg9WYVWqVDtYdT59QV1PzrJe 0x1a678bde0e606d586 Compressed Public Key: 02f46cb94bfecf5daf63cd54353c73eb3f7e148ac0f9b8af46e3a94ee8b60e1260 Time taken to find: 0.0000 seconds Speed of keys: 0.0000 keys per second =========[Address Found]=========== thankyou for advice, i make the KNN algorithm work with my previous code but have some trouble with other codes, some confusion call the rest codes to work with scan range, but it's work. i test on 65 bit. mightbe push my luck for 66 for couple weeks.  Can i take a look at your code ? sure, i'll dm you, btw your codes looks cool and more advanced! wow!, i'm beginner can you teach ?! #EDIT from my codes provide chance to find the 66 puzle is on 3000000000000000:37fffffffffffffff , below that it's just give same result hash and different 13zb1 address derived from private key. (but it's just speculation.)
|
|
|
|
zahid888
Member

Offline
Activity: 331
Merit: 24
the right steps towerds the goal
|
 |
February 07, 2024, 06:12:36 PM |
|
sure, i'll dm you, btw your codes looks cool and more advanced! wow!, i'm beginner can you teach ?!
Sure, I'll see what else i can do to improve your code.
|
1BGvwggxfCaHGykKrVXX7fk8GYaLQpeixA
|
|
|
WanderingPhilospher
Sr. Member
  
Offline
Activity: 1400
Merit: 271
Shooters Shoot...
|
 |
February 07, 2024, 07:03:31 PM |
|
sure, i'll dm you, btw your codes looks cool and more advanced! wow!, i'm beginner can you teach ?!
#EDIT from my codes provide chance to find the 66 puzle is on 3000000000000000:37fffffffffffffff , below that it's just give same result hash and different 13zb1 address derived from private key. (but it's just speculation.) Tepan, you seem hesitant to share your code, but trust me, what you are doing has already been done, in a much faster programming language, C++; CPU and GPU versions, where you can provide a h160 or address prefix and it will find EVERY collision in a 40 bit range, in less than a minute (depending on GPU setup). Your python script may have some different settings/search criteria, but the bottom line is the same. People are trying to help you speed up your code, in python, because your code is extremely slow. If your python code isn't checking at least 250,000 keys per second, then it desperately needs an overhaul. I can create a python script to do what yours is doing, that will check at least 250,000 keys per second, python only, single core, in less than 10 minutes. But hey, you do you. Zahid888, is the expert at prefix searches...probably has the world's largest prefix database, he can attest to what I am saying to you.
|
|
|
|
Tepan
Jr. Member
Offline
Activity: 82
Merit: 1
|
 |
February 08, 2024, 04:11:16 AM |
|
sure, i'll dm you, btw your codes looks cool and more advanced! wow!, i'm beginner can you teach ?!
#EDIT from my codes provide chance to find the 66 puzle is on 3000000000000000:37fffffffffffffff , below that it's just give same result hash and different 13zb1 address derived from private key. (but it's just speculation.) Tepan, you seem hesitant to share your code, but trust me, what you are doing has already been done, in a much faster programming language, C++; CPU and GPU versions, where you can provide a h160 or address prefix and it will find EVERY collision in a 40 bit range, in less than a minute (depending on GPU setup). Your python script may have some different settings/search criteria, but the bottom line is the same. People are trying to help you speed up your code, in python, because your code is extremely slow. If your python code isn't checking at least 250,000 keys per second, then it desperately needs an overhaul. I can create a python script to do what yours is doing, that will check at least 250,000 keys per second, python only, single core, in less than 10 minutes. But hey, you do you. Zahid888, is the expert at prefix searches...probably has the world's largest prefix database, he can attest to what I am saying to you. no, i'm not hesitant to share my codes, because don't have much time, i know what i'm working on it clearly someone’s has been done before. i'll dm you and zahid888, soon.
|
|
|
|
acrom
Newbie
Offline
Activity: 3
Merit: 0
|
 |
February 08, 2024, 05:06:02 AM |
|
Wow I just did the math to see how long it would really take if you went from start to finish with no stride for puzzle 66 With the start and end params of 20000000000000000...3ffffffffffffffff and a 3080 at 1100 MKeys/s or 1.1 billion keys a second I got 33,539,534,679 seconds 558,992,244 minutes 9,316,537 hours 388,189 days 1,063 years
|
|
|
|
mcdouglasx
|
 |
February 08, 2024, 05:27:05 AM |
|
it is more likely to find a privatekey-publickey pattern than a pattern between privatekey-h160. For mathematical reasons, pubkeys are in their most "basic" section a residue of P, so you could go in scale reducing the search range where you get more matches. This is a vague idea of a possible search. #@mcdouglasx import secp256k1 as ice import random
print("vanity search...")
#03633cbe3ec02b9401c5effa144c5b4d22f87940259634858fc7e59b1c09937852 Target_A = "633cbe3e"
min = 600000000000000000000000000000000000000 max = 1370000000000000000000000000000000000000
while True:
r = random.randint(min, max) A0 = ice.scalar_multiplication(r) A1 = A0.hex() dupuba = A1[2:66] puba = str(dupuba)
if puba.startswith((Target_A)):
print("Match") A2 = ice.to_cpub(A1) data = open("vanity.txt","a") data.write("Pk:"+" "+str(r)+"\n") data.write("cpub:"+" "+str(A2)+"\n"+"\n") data.close()
|
▄▄█████████████████▄▄ ▄█████████████████████▄ ███▀▀█████▀▀░░▀▀███████ ███▄░░▀▀░░▄▄██▄░░██████ █████░░░████████░░█████ ████▌░▄░░█████▀░░██████ ███▌░▐█▌░░▀▀▀▀░░▄██████ ███░░▌██░░▄░░▄█████████ ███▌░▀▄▀░░█▄░░█████████ ████▄░░░▄███▄░░▀▀█▀▀███ ██████████████▄▄░░░▄███ ▀█████████████████████▀ ▀▀█████████████████▀▀ | Rainbet.com CRYPTO CASINO & SPORTSBOOK | | | █▄█▄█▄███████▄█▄█▄█ ███████████████████ ███████████████████ ███████████████████ █████▀█▀▀▄▄▄▀██████ █████▀▄▀████░██████ █████░██░█▀▄███████ ████▄▀▀▄▄▀███████ █████████▄▀▄███ █████████████████ ███████████████████ ███████████████████ ███████████████████ | | | |
▄█████████▄ █████████ ██ ▄▄█░▄░▄█▄░▄░█▄▄ ▀██░▐█████▌░██▀ ▄█▄░▀▀▀▀▀░▄█▄ ▀▀▀█▄▄░▄▄█▀▀▀ ▀█▀░▀█▀
| 10K WEEKLY RACE | | 100K MONTHLY RACE | | | ██
█████
| ███████▄█ ██████████▄ ████████████▄▄ ████▄███████████▄ ██████████████████▄ ░▄█████████████████▄ ▄███████████████████▄ █████████████████▀████ ██████████▀███████████ ▀█████████████████████ ░████████████████████▀ ░░▀█████████████████▀ ████▀▀██████████▀▀ | ████████ ██████████████ |
|
|
|
zahid888
Member

Offline
Activity: 331
Merit: 24
the right steps towerds the goal
|
 |
February 08, 2024, 09:12:45 AM Last edit: February 08, 2024, 09:51:01 AM by zahid888 |
|
Zahid888, is the expert at prefix searches...probably has the world's largest prefix database, he can attest to what I am saying to you.
Yes, perhaps I have the world's highest number of prefixes for puzzle66. And maybe I have conducted the most experiments on prefixes worldwide, whether it be in the form of base58 or hash160. Through these experiments, I have consistently encountered a 50-50 probability of outcomes. Sometimes, a few bytes of a private key match, and at other times, they do not match at all. So, there is no difference between a 'private keys with matched prefixes' and a 'totally random private keys'. I save addresses with prefixes only as a 'proof of work'; beyond that, these addresses serve no further purpose. If your objective is solely to locate addresses with matching prefixes, it would be advisable to opt for the vanity search implemented by WanderingPhilosopher, which is based on multi-GPU counting, rather than attempting to enhance speed in Python, which never ever compete with GPU-counting. Edit :
Anyway, I have scanned about 6.5% of puzzle 66 keys individually, I need your best wishes, and a lot of good wishes from my side to all of you. 
|
1BGvwggxfCaHGykKrVXX7fk8GYaLQpeixA
|
|
|
Tepan
Jr. Member
Offline
Activity: 82
Merit: 1
|
 |
February 08, 2024, 10:40:02 AM Merited by NotATether (1) |
|
sure, i'll dm you, btw your codes looks cool and more advanced! wow!, i'm beginner can you teach ?!
Sure, I'll see what else i can do to improve your code. i already make some display looks clean and more likely like your display codes on terminal  i'll send the python files, i hope you can help me  , thanks!
|
|
|
|
NotATether
Legendary
Offline
Activity: 2086
Merit: 8899
Search? Try talksearch.io
|
 |
February 08, 2024, 10:47:01 AM |
|
Has anyone ever figured out what the #64 and #120 keys were, up to now?
|
|
|
|
zahid888
Member

Offline
Activity: 331
Merit: 24
the right steps towerds the goal
|
 |
February 08, 2024, 11:21:44 AM |
|
Has anyone ever figured out what the #64 and #120 keys were, up to now?
Obviously not, this was just my wishful thinking when I had less experience ⬇ 16jY7qLJXAVFd7AJXJ5N8xT9DEs24NDaXV F7051F24C01D5BB2 16jY7qLJnxb7CHZyqBP8qca9d51gAjyXQN F7051F27B09112D4 feeling too much unlucky  I should have taken these green letters seriously. I hope Tepan has some new idea 
|
1BGvwggxfCaHGykKrVXX7fk8GYaLQpeixA
|
|
|
vklimin
Newbie
Offline
Activity: 4
Merit: 0
|
 |
February 08, 2024, 11:31:56 AM |
|
For educational purposes. Can anyone provide Python code for iterating through private keys in a specified range that works with CUDA? Or a link to such a resource. Thank you.
|
|
|
|
AndrewWeb
Jr. Member
Offline
Activity: 77
Merit: 3
|
 |
February 08, 2024, 01:48:45 PM |
|
Wow I just did the math to see how long it would really take if you went from start to finish with no stride for puzzle 66 With the start and end params of 20000000000000000...3ffffffffffffffff and a 3080 at 1100 MKeys/s or 1.1 billion keys a second I got 33,539,534,679 seconds 558,992,244 minutes 9,316,537 hours 388,189 days 1,063 years
Then 1000 billion keys a second would take one year (31,536,000 seconds) ?
|
|
|
|
|
citb0in
|
 |
February 08, 2024, 04:40:04 PM |
|
if you like the maximum possible speed than you need to go for C. This is primarily because C is a compiled language, while Python is an interpreted language. That means C code is compiled directly into machine code, which can be executed directly by the computer's hardware. On the other hand, Python code is interpreted, meaning that it's translated into bytecode by the Python interpreter and executed line by line at runtime. Additionally Python utilizes automatic memory management via garbage collection which can introduce overhead.
Frankly speaking, go for C if you like to achieve the best performnce. While C tends to be faster than Python in terms of raw performance, Python offers advantages such as ease of use. And as already mentioned, Rust is also interesting because it combines the performance of languages like C with the safety and concurrency features of modern languages.
|
Some signs are invisible, some paths are hidden - but those who see, know what to do. Follow the trail - Follow your intuition - [bc1qqnrjshpjpypepxvuagatsqqemnyetsmvzqnafh]
|
|
|
vklimin
Newbie
Offline
Activity: 4
Merit: 0
|
 |
February 08, 2024, 06:52:40 PM |
|
Thank you, colleagues, for suggesting Rust and C  , but for educational purposes, what is specifically required is Python code for CUDA that can brute-force keys.
|
|
|
|
nomachine
|
 |
February 09, 2024, 12:09:02 PM Last edit: February 09, 2024, 12:28:52 PM by nomachine |
|
Thank you, colleagues, for suggesting Rust and C  , but for educational purposes, what is specifically required is Python code for CUDA that can brute-force keys. @numba.jit....To use Numba to compile the performance-critical parts of code into machine code. But this will not work with large numbers over puzzle 64 example @njit def add_numba(P, Q, p=modulo): <source elided> @njit ^ This error may have been caused by the following argument(s): - argument 0: Int value is too large: 110560903758971929709743161563183868968201998016819862389797221564458485814982 - argument 2: Int value is too large: 115792089237316195423570985008687907853269984665640564039457584007908834671663 Numba does not support big int. It is essentially limited to integer types that are supported by numpy. The max integer width is currently limited to 64-bit. GMP is the best option for now. Numba have limitations regarding the types it supports for GPU computations. If you need to work with big integers or other types not supported by Numba directly, you might need to use PyCUDA or other libraries specifically designed for CUDA programming in Python. And you’ll still need to write the kernel in CUDA C++.  There is no instant solution and it all boils down to the fact that you have to know C++ or some other compiled language like Rust........ And even if you know C++ very well, it's not easy to play with such big numbers. I ran into a lot of bugs in my early attempts.
|
BTC: bc1qdwnxr7s08xwelpjy3cc52rrxg63xsmagv50fa8
|
|
|
|