Author

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

jr. member
Activity: 50
Merit: 1
i have found same 14 digits of hash160 of substraction puzzle 130


1QKZKb6DjAxKkbRycPgC8n9Fs7pPfCZeTv # + 3............................
Hash160:ffcd5c308ebf83ad7ba414b068c69e6192d5a1ab


address that i found, maybe its in that range:
1QKZKb6DjAxS4kGh9RohKCnJisM9geDp5o
Hash160: ffcd5c308ebf83b910d0cd8b853df079c5b07452

pk: 33faa087a4ea5c40e696be9a1c1e8389

but the range is a little big,,,, but for 100 pourcent sure that 130 puzzle is between 30 and 3F
dont waste your time searching in 2 Smiley
so we can say 130 puzzle is located in 330000000000000000000000000000000:3ffffffffffffffffffffffffffffffff range you can search from there

 , im working on that if i found smaller range same 14 digits or more, that will be amazing to search there ..




Some elliptic curve magic ahead!
...
I just enjoy making a simple division difficult and twisted! 🤣, now chop chop start your brain's engine and do some calculation, large fractions could be solved by accounting for the above results, not telling you how.

Dive deep and let your brain solve it.😉

Anyone here knows how to divide a point by 3, 4, 5, 6, 7, 8, 9 and 10 and get a correct result?

Give me a few minutes, you will be amazed, I need to prepare the sample keys on laptop. Stay tuned.😉
Here you go
...

Ps, I will not study to figure out how to divide by 10m and still have a correct result, if I do, I will not share it, that'd be ECC bent and broken totally.

...
Never mind all the above, I have something to twist your minds, take the following key and double, divide, do many other things with it to get really confused about how EC works. 😂

Introducing to you 2^256 of secp256k1

you constantly act as if you are a genius who broke SECP256K1 but doesn't want to share his genius findings. On the other hand, you struggle in vain and miserably like many others to solve a puzzle. Find the mistake.






PS: @digaran, dont reply to me i dont need your answer nether your guessing or anything of you, like what @citb0in tell, you are acting like you are awesome and know everything, 3 months ago im teaching you how to substract from public keys now you say to me old school and bla bla, please bro dont waste my time replying something have nothing to do with puzzle to just say im old school and you do new things, i dont need your answer really bro,,, @citb0in i totally aggree with you
newbie
Activity: 30
Merit: 0
is there any C++ open source script ( CPU or GPU ) to join you in this journey ? Thank you in advance

for CPU you can try my keyhunt program available on github of course it is open source.

https://github.com/albertobsd/keyhunt

If you have any questions or feedback, don't hesitate to reach out.

Regards

I've tried your tool on an old laptop, gave me about 1 Mkey  Grin ouch!

Is there any other way to increase my chances? Any other tools? please

...another laptop
newbie
Activity: 5
Merit: 0
is there any C++ open source script ( CPU or GPU ) to join you in this journey ? Thank you in advance

for CPU you can try my keyhunt program available on github of course it is open source.

https://github.com/albertobsd/keyhunt

If you have any questions or feedback, don't hesitate to reach out.

Regards

I've tried your tool on an old laptop, gave me about 1 Mkey  Grin ouch!

Is there any other way to increase my chances? Any other tools? please
jr. member
Activity: 54
Merit: 1

One last thing, how do I change the generator point in the script above? I even went to ice.secp256k1.py but didn't see x and y for G to change it, is there a way to include a new G in your script?
Thank you so much for teaching us new things.👍

Ps, I have learned that we could use inverse keys to do multiplication on a script which only divides, lol.




Code:
import secp256k1 as ice
from sympy import mod_inverse
N= 115792089237316195423570985008687907852837564279074904382605163141518161494337
target_public_key = "032f3342152eff6aca5e7314db6d3301a28d6a90ddcfd189f96babadc2a053d392"
target = ice.pub2upub(target_public_key)
t=mod_inverse(2,N)
print(ice.point_multiplication(t,target).hex()) # target / 2


https://learnmeabitcoin.com/technical/ecdsa
member
Activity: 239
Merit: 53
New ideas will be criticized and then admired.

Are you sure you know what bsgs is? because I see you confused


You mean Satoshi doesn't know what he is talking about?
I'm 85% certain he is the man himself, very interested in brute force tools and very knowledgeable about math and cryptography.😉

I don't understand friend, I only reply to the user _counselor who says that my idea is the same as BSGS and it is not.




for compressed public keys
Code:
import secp256k1 as ice


target_public_key = "032f3342152eff6aca5e7314db6d3301a28d6a90ddcfd189f96babadc2a053d392"
target = ice.pub2upub(target_public_key)
num = 100 # number of times.
sustract= 1 #amount to subtract each time.
sustract_pub= ice.scalar_multiplication(sustract)
res= ice.point_loop_subtraction(num, target, sustract_pub)
for t in range (num+1):
    h= (res[t*65:t*65+65]).hex()
    hc= ice.to_cpub(h)
    data = open("data-base.txt","a")
    data.write(str(hc)+"\n")
    data.close()


One last thing, how do I change the generator point in the script above? I even went to ice.secp256k1.py but didn't see x and y for G to change it, is there a way to include a new G in your script?
Thank you so much for teaching us new things.👍

Ps, I have learned that we could use inverse keys to do multiplication on a script which only divides, lol.

secp256k1 iceland2k14 It's not open source so you can't modify it and compile it your way.
copper member
Activity: 1330
Merit: 899
🖤😏

Are you sure you know what bsgs is? because I see you confused


You mean Satoshi doesn't know what he is talking about?
I'm 85% certain he is the man himself, very interested in brute force tools and very knowledgeable about math and cryptography.😉
member
Activity: 239
Merit: 53
New ideas will be criticized and then admired.
I made the code basic to express the idea of why changing G+ database is a fast way to scan (it wasn't intended to be fast just forget about it and focus on G, the database, and the range division), if you jump keys you miss the speed of scalar multiplication.
for that reason the random in the current tools is R+incremental (to take advantage of scalar multiplication).

example :
pk=148557384957383058
and your database capacity is 1000000.
changing G to 1000000
you would only have to search
148557384957
while the common is
148557384957383058.
and as I said when posting the script, everything is in the fluidity with which we can scan the database quickly.

This is what is called a Baby-step-Giant-step (BSGS) algorithm. There is many good and optimized implementations of this algorithm, including GPU implementations.
If you generate sequence of 10 successive keys, you can check every 10th key in range to hit some key in sequence, 100 keys - every 100th and so on.
But to achieve this you don't need to change G at all.

Are you sure you know what bsgs is? because I see you confused

https://github.com/albertobsd/keyhunt/issues/132
jr. member
Activity: 54
Merit: 1
1.a file named KEYFOUNDKEYFOUND.txt will be generated in the root of the keyhunt folder
2.in BSGS mode (after it was discovered by others) I found the private key for #64 in 14 minutes, but you can try in rmd160 mode and see what keyfound knows, using the command "./keyhunt -m rmd160 -f tests/1to32.rmd -r 1:FFFFFFFF -l compress -s 5", to convince yourself.
After testing, you choose your own method of use. If you have a PC with at least 64 GB RAM, you can choose the factor -K 4096 and reach 10 Petakeys/second or more in BSGS mode.

bsgs is a bit slow collider finds it in 17 seconds
newbie
Activity: 30
Merit: 0

Thanks, I'll give it a try now!
Two noob  Huh questions please!:

1) How do I know if I got a Hit? And does it save it in a txt file?

2) Has anyone won an address from the puzzles using this? ( excluding the author )

1.a file named KEYFOUNDKEYFOUND.txt will be generated in the root of the keyhunt folder
2.in BSGS mode (after it was discovered by others) I found the private key for #64 in 14 minutes, but you can try in rmd160 mode and see what keyfound knows, using the command "./keyhunt -m rmd160 -f tests/1to32.rmd -r 1:FFFFFFFF -l compress -s 5", to convince yourself.
After testing, you choose your own method of use. If you have a PC with at least 64 GB RAM, you can choose the factor -K 4096 and reach 10 Petakeys/second or more in BSGS mode.
member
Activity: 107
Merit: 61
I made the code basic to express the idea of why changing G+ database is a fast way to scan (it wasn't intended to be fast just forget about it and focus on G, the database, and the range division), if you jump keys you miss the speed of scalar multiplication.
for that reason the random in the current tools is R+incremental (to take advantage of scalar multiplication).

example :
pk=148557384957383058
and your database capacity is 1000000.
changing G to 1000000
you would only have to search
148557384957
while the common is
148557384957383058.
and as I said when posting the script, everything is in the fluidity with which we can scan the database quickly.

This is what is called a Baby-step-Giant-step (BSGS) algorithm. There is many good and optimized implementations of this algorithm, including GPU implementations.
If you generate sequence of 10 successive keys, you can check every 10th key in range to hit some key in sequence, 100 keys - every 100th and so on.
But to achieve this you don't need to change G at all.
copper member
Activity: 1330
Merit: 899
🖤😏

for compressed public keys
Code:
import secp256k1 as ice


target_public_key = "032f3342152eff6aca5e7314db6d3301a28d6a90ddcfd189f96babadc2a053d392"
target = ice.pub2upub(target_public_key)
num = 100 # number of times.
sustract= 1 #amount to subtract each time.
sustract_pub= ice.scalar_multiplication(sustract)
res= ice.point_loop_subtraction(num, target, sustract_pub)
for t in range (num+1):
    h= (res[t*65:t*65+65]).hex()
    hc= ice.to_cpub(h)
    data = open("data-base.txt","a")
    data.write(str(hc)+"\n")
    data.close()


One last thing, how do I change the generator point in the script above? I even went to ice.secp256k1.py but didn't see x and y for G to change it, is there a way to include a new G in your script?
Thank you so much for teaching us new things.👍

Ps, I have learned that we could use inverse keys to do multiplication on a script which only divides, lol.



Besides keyhunt and bitcrack.

What are you guys using here, I see a lot of different script some Python some C++ got confused!

are you guys collecting private keys with one script and checking them on another script?

Also there's no puzzle to think about! just a random guess in a range of private keys? right?
What do you know about elliptic curve math? If you are new, I suggest learning everything you can about *, +, -, / of public keys, without knowing that you'd be searching blindly using BSGS and kangaroo etc, and don't bother searching for #66, #67 etc, unless you know programming and can develop a new and faster brute force tool.
newbie
Activity: 5
Merit: 0

Thanks, I'll give it a try now!
Two noob  Huh questions please!:

1) How do I know if I got a Hit? And does it save it in a txt file?

2) Has anyone won an address from the puzzles using this? ( excluding the author )

Besides keyhunt and bitcrack.

What are you guys using here, I see a lot of different script some Python some C++ got confused!

are you guys collecting private keys with one script and checking them on another script?

Also there's no puzzle to think about! just a random guess in a range of private keys? right?
member
Activity: 239
Merit: 53
New ideas will be criticized and then admired.



Code:
import secp256k1 as ice


target_public_key = "023d62d9d64a7164a2ae6f0561f7e8317e69b4a1ee61048fe768a1316b39b1d3a7"
target = ice.pub2upub(target_public_key)
num = 100 # number of times.
sustract= 1 #amount to subtract each time.
sustract_pub= ice.scalar_multiplication(sustract)
res= ice.point_loop_subtraction(num, target, sustract_pub)
for t in range (num+1):
    h= res[t*65:t*65+65]
    data = open("data-base.txt","a")
    data.write(str(h.hex())+"\n")
    data.close()



Is it possible to make it possible to specify an unlimited number in num?

If set num = 1000000000
That throws an error:

Traceback (most recent call last):
   File "D :\PubSub\PubSub.py", line 8, in
     res= ice.point_loop_subtraction(num, target, sustract_pub).hex()
   File "D :\PubSub\secp256k1.py", line 504, in point_loop_subtraction
     res = _point_loop_subtraction(num, pubkey1_bytes, pubkey2_bytes)
   File "D :\PubSub\secp256k1.py", line 497, in _point_loop_subtraction
     res = (b'\x00') * (65 * num)
MemoryError

this may be because secp256k1 loop stores the result in memory first, and exceeds the capacity of your ram.
choose a smaller amount and then change the target with the last pubkey in the database list (to continue from there).





Code:
import secp256k1 as ice


target_public_key = "023d62d9d64a7164a2ae6f0561f7e8317e69b4a1ee61048fe768a1316b39b1d3a7"
target = ice.pub2upub(target_public_key)
num = 100 # number of times.
sustract= 1 #amount to subtract each time.
sustract_pub= ice.scalar_multiplication(sustract)
res= ice.point_loop_subtraction(num, target, sustract_pub)
for t in range (num+1):
    h= res[t*65:t*65+65]
    data = open("data-base.txt","a")
    data.write(str(h.hex())+"\n")
    data.close()



Is it possible to make it possible to specify an unlimited number in num?

If set num = 1000000000
That throws an error:

Traceback (most recent call last):
   File "D :\PubSub\PubSub.py", line 8, in
     res= ice.point_loop_subtraction(num, target, sustract_pub).hex()
   File "D :\PubSub\secp256k1.py", line 504, in point_loop_subtraction
     res = _point_loop_subtraction(num, pubkey1_bytes, pubkey2_bytes)
   File "D :\PubSub\secp256k1.py", line 497, in _point_loop_subtraction
     res = (b'\x00') * (65 * num)
MemoryError

More importantly, how to get compressed public keys as result? Lol I changed *65:*65+65 to *32:*32+33 but it messed up everything.
The 65 refers to bytes, it is to put each 65 bytes of the result on a different line.

for compressed public keys
Code:
import secp256k1 as ice


target_public_key = "032f3342152eff6aca5e7314db6d3301a28d6a90ddcfd189f96babadc2a053d392"
target = ice.pub2upub(target_public_key)
num = 100 # number of times.
sustract= 1 #amount to subtract each time.
sustract_pub= ice.scalar_multiplication(sustract)
res= ice.point_loop_subtraction(num, target, sustract_pub)
for t in range (num+1):
    h= (res[t*65:t*65+65]).hex()
    hc= ice.to_cpub(h)
    data = open("data-base.txt","a")
    data.write(str(hc)+"\n")
    data.close()

copper member
Activity: 1330
Merit: 899
🖤😏



Code:
import secp256k1 as ice


target_public_key = "023d62d9d64a7164a2ae6f0561f7e8317e69b4a1ee61048fe768a1316b39b1d3a7"
target = ice.pub2upub(target_public_key)
num = 100 # number of times.
sustract= 1 #amount to subtract each time.
sustract_pub= ice.scalar_multiplication(sustract)
res= ice.point_loop_subtraction(num, target, sustract_pub)
for t in range (num+1):
    h= res[t*65:t*65+65]
    data = open("data-base.txt","a")
    data.write(str(h.hex())+"\n")
    data.close()



Is it possible to make it possible to specify an unlimited number in num?

If set num = 1000000000
That throws an error:

Traceback (most recent call last):
   File "D :\PubSub\PubSub.py", line 8, in
     res= ice.point_loop_subtraction(num, target, sustract_pub).hex()
   File "D :\PubSub\secp256k1.py", line 504, in point_loop_subtraction
     res = _point_loop_subtraction(num, pubkey1_bytes, pubkey2_bytes)
   File "D :\PubSub\secp256k1.py", line 497, in _point_loop_subtraction
     res = (b'\x00') * (65 * num)
MemoryError

More importantly, how to get compressed public keys as result? Lol I changed *65:*65+65 to *32:*32+33 but it messed up everything.
newbie
Activity: 49
Merit: 0



Code:
import secp256k1 as ice


target_public_key = "023d62d9d64a7164a2ae6f0561f7e8317e69b4a1ee61048fe768a1316b39b1d3a7"
target = ice.pub2upub(target_public_key)
num = 100 # number of times.
sustract= 1 #amount to subtract each time.
sustract_pub= ice.scalar_multiplication(sustract)
res= ice.point_loop_subtraction(num, target, sustract_pub)
for t in range (num+1):
    h= res[t*65:t*65+65]
    data = open("data-base.txt","a")
    data.write(str(h.hex())+"\n")
    data.close()



Is it possible to make it possible to specify an unlimited number in num?

If set num = 1000000000
That throws an error:

Traceback (most recent call last):
   File "D :\PubSub\PubSub.py", line 8, in
     res= ice.point_loop_subtraction(num, target, sustract_pub).hex()
   File "D :\PubSub\secp256k1.py", line 504, in point_loop_subtraction
     res = _point_loop_subtraction(num, pubkey1_bytes, pubkey2_bytes)
   File "D :\PubSub\secp256k1.py", line 497, in _point_loop_subtraction
     res = (b'\x00') * (65 * num)
MemoryError
hero member
Activity: 630
Merit: 731
Bitcoin g33k
For Mode BSGS that use RAM to store precalcualted data you can reach some Petakeys/s scanning for a single publickey.

... though BSGS speed is not comparable to the standard scanning technique. Just for the sake of correctness, you cannot compare apple speed with pie speed displayed by those tools. I only want to mention this so that no false illusion is created in the reader and he might think that BSGS is the means of choice and thus the holy grail.
hero member
Activity: 862
Merit: 662
I am not coder, so don't know how to build.
Could you please build this for non-coders?
Also how fast is this using CPU?

Thanks

Hi you don't need to be a coder to use the program just follow the instrucctios to compile it under any WSL enviroment.

For CPU my program is one of the fastest available today, Address/rmd160 mode can reach some Millions keys per second on a laptop, up to 100 Millions keys per second on a High end CPU.

For Mode BSGS that use RAM to store precalcualted data you can reach some Petakeys/s scanning for a single publickey.

Regards!
newbie
Activity: 4
Merit: 0
is there any C++ open source script ( CPU or GPU ) to join you in this journey ? Thank you in advance

for CPU you can try my keyhunt program available on github of course it is open source.

https://github.com/albertobsd/keyhunt

If you have any questions or feedback, don't hesitate to reach out.

Regards

I am not coder, so don't know how to build.
Could you please build this for non-coders?
Also how fast is this using CPU?

Thanks
member
Activity: 239
Merit: 53
New ideas will be criticized and then admired.
So basically, you talk about stride option in already existing tools.

Skipping the keys or searching n times is not the same as changing the curve.
Then explain the difference please.

I looked at the piece of code you wrote above, looks like it works like BSGS algorithm, with a very naive implementation.
The first thing that you should do, it is remove curve multiplication at all and replace it with subtraction.
I'm talking about this part: PublicKey = getPublicKey(Seq_Bytes)
Every call of "getPublicKey" is very expensive, no matter which point you're uses as "G".
Just take another point (G*100) as a stride and subtract it from current point on each step. Than you will get 6000, 5900, 5800, 5700 and so on with a great speed improvement. Trying to do the same by replacing the generator point is pretty bad practice, despite the fact that from some side it will certainly work.


I made the code basic to express the idea of why changing G+ database is a fast way to scan (it wasn't intended to be fast just forget about it and focus on G, the database, and the range division), if you jump keys you miss the speed of scalar multiplication.
for that reason the random in the current tools is R+incremental (to take advantage of scalar multiplication).

example :
pk=148557384957383058
and your database capacity is 1000000.
changing G to 1000000
you would only have to search
148557384957
while the common is
148557384957383058.
and as I said when posting the script, everything is in the fluidity with which we can scan the database quickly.
hero member
Activity: 862
Merit: 662
is there any C++ open source script ( CPU or GPU ) to join you in this journey ? Thank you in advance

for CPU you can try my keyhunt program available on github of course it is open source.

https://github.com/albertobsd/keyhunt

If you have any questions or feedback, don't hesitate to reach out.

Regards
Jump to: