Author

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

jr. member
Activity: 35
Merit: 1
Is there any code for scanning address in sequence using GPU?
member
Activity: 499
Merit: 38
Quote
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........

Khm... Is there Python ECDSA (for secp256k1) library works with CUDA cores? I searched and didn't find.

You have to write your own.
I don't like the existing solutions in C++ either.
Whether it is SECP256K1.cpp or OpenSSL
There are too many calls through the various libraries.
My goal is to do it all from one single cpp file using only GMP.
member
Activity: 275
Merit: 20
the right steps towerds the goal
hi there,

could we get a copy? hmm if not ok, but want to try your nicely made software piece,
you have a github.. or so. anyway thanks a lot.

This involves many third-party commands, here the output of a local server, .exe, and several self-made modules are being taken on a one display, so it is difficult to share it at the moment. I will make it easier and upload on GitHub in the future
newbie
Activity: 4
Merit: 0
Quote
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........

Khm... Is there Python ECDSA (for secp256k1) library works with CUDA cores? I searched and didn't find.
full member
Activity: 431
Merit: 105
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.

hi there,

could we get a copy? hmm if not ok, but want to try your nicely made software piece,
you have a github.. or so. anyway thanks a lot.
member
Activity: 499
Merit: 38
Thank you, colleagues, for suggesting Rust and C  Cool, 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):
    

@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++. Grin


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.
newbie
Activity: 4
Merit: 0
Thank you, colleagues, for suggesting Rust and C  Cool, but for educational purposes, what is specifically required is Python code for CUDA that can brute-force keys.
hero member
Activity: 630
Merit: 731
Bitcoin g33k
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.
member
Activity: 499
Merit: 38
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.

It is 20 times faster in Rust  then Python/Numba

https://github.com/Rust-GPU/Rust-CUDA

https://github.com/Rust-GPU/Rust-CUDA/blob/master/guide/src/guide/getting_started.md


But there is a 0 puzzle script written in Rust.
There is this one here as an example
https://bitcointalksearch.org/topic/m.63539973
jr. member
Activity: 56
Merit: 2
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) ?
newbie
Activity: 4
Merit: 0
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.
member
Activity: 275
Merit: 20
the right steps towerds the goal
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  Cry Cry I should have taken these green letters seriously.

I hope Tepan has some new idea Roll Eyes
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
Has anyone ever figured out what the #64 and #120 keys were, up to now?
jr. member
Activity: 77
Merit: 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 Wink, thanks!
member
Activity: 275
Merit: 20
the right steps towerds the goal
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.
member
Activity: 239
Merit: 53
New ideas will be criticized and then admired.
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.

Code:
#@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()
newbie
Activity: 3
Merit: 0
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
jr. member
Activity: 77
Merit: 1
Quote
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.
full member
Activity: 1162
Merit: 237
Shooters Shoot...
Quote
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.
member
Activity: 275
Merit: 20
the right steps towerds the goal

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.
Jump to: