_Counselor
Member
Offline
Activity: 110
Merit: 61
|
|
August 27, 2023, 07:02:46 AM |
|
increase the search speed of the Pubkeys, dividing the search range.
First of all, let me make it clear that this script is slow and basic, I did it like this in order to explain the range division method.
If you want to apply it quickly, modify keyhunt or other c++ code before compiling to make it work with this method.
The method consists in changing the parameters of the curve by x,y of a higher point (for the script I used pk#100). by default the curve uses pubkey #1 what works in sequence 1,2,3,4.... pubkey #100 which works in sequence 100,200,300,400....
if we want to find pk# 3922 in a range of 2000:6000 in the traditional way we would need to advance +1900 pubkeys In this method we will only need 19 pubkeys (1900/100).
the database is done by subtracting 1 consecutively from the target pubkey (in my case I need to subtract( 1), 100 times because I chose pubkey pk# 100 as divisor.
The trick is in your ability to use fast databases, the more pubkey you store in the database, the higher the divisor will be, therefore the search range is smaller.
I currently don't have what it takes to code in C++ using the quick search methods, my resources are limited to the basics. I currently don't have an up-to-date pc to do the relevant tests (the disadvantages of the third world).
However, later I will share faster methods, ECC tricks.
So basically, you talk about stride option in already existing tools.
|
|
|
|
GR Sasa
Member
Offline
Activity: 199
Merit: 14
|
|
August 27, 2023, 08:47:49 AM |
|
I actually believe and like zahid888 to be an honest man.
especially when he almost cracked #64 year ago, he almost landed on the correct key, but didn't managed to get it.
So, zahid you can be the next one who gets 66!
Edit: /quote I only needed to scan 588 more ranges to achieve 100% completion of scanning.
Do you mean that after scanning those ranged, according to your calculation the #66 key should be guaranteed found?
|
|
|
|
zahid888
Member
Offline
Activity: 275
Merit: 20
the right steps towerds the goal
|
|
August 27, 2023, 09:25:13 AM Last edit: August 27, 2023, 01:02:06 PM by Mr. Big |
|
What senseless thing have I said? What do you think? Has puzzle 66 only been searched by me or others just recently? (after the solution of puzzle 64)?.. ohh come on, If I, alone, can manage to scan 1.5% of the keys, how can you ignore the fact that there are millions of hunters here who are much more powerful than me, who might not even peek into threads like these? I personally know some individuals like that, who even shared scanned ranges with me during puzzle 64, which later turned out to be completely authentic. Anyway, whom am I sharing all these things with? someone who starts his journey with collecting the drops from the faucet and manages only few hashes to mine with USB. My concern with the old folks here is about those developers, when some people used to click on free faucets every hour to gather small amounts, these developers had already created auto bots for these task. When people were collecting small amounts through USB mining, these developers and miners successfully solved solo blocks. I'm talking about such unique developers in this crowd, not finger-waggers. Anyway, no more arguments. I am indifferent to anyone who may have been hurt by my words. Thanks @GR Sasa for your best wishesh.
I know that people won't scan such large ranges; I don't care. My scanning is ongoing between these ranges. However, if someone does scan, please inform me about the proof of work so that there's no overlap in these ranges. Or perhaps I should consider making the repository private🤔
I actually believe and like zahid888 to be an honest man.
especially when he almost cracked #64 year ago, he almost landed on the correct key, but didn't managed to get it.
So, zahid you can be the next one who gets 66!
Edit: /quote I only needed to scan 588 more ranges to achieve 100% completion of scanning.
Do you mean that after scanning those ranged, according to your calculation the #66 key should be guaranteed found?
As I mentioned before, only one file has put me in a 50-50 situation
|
1BGvwggxfCaHGykKrVXX7fk8GYaLQpeixA
|
|
|
citb0in
|
|
August 27, 2023, 09:52:00 AM |
|
in the mean time you could have posted the scanned ranges here into this thread in case you really want to support the community
|
_ _ _ __ _ _ _ __ |_) | / \ / |/ (_ / \ | \ / |_ |_) (_ |_) |_ \_/ \_ |\ __) \_/ |_ \/ |_ | \ __) --> citb0in Solo-Mining Group <--- low stake of only 0.001 BTC. We regularly rent about 5 PH/s hash power and direct it to SoloCK pool. Wanna know more? Read through the link and JOIN NOW
|
|
|
mcdouglasx
Member
Offline
Activity: 330
Merit: 92
New ideas will be criticized and then admired.
|
|
August 27, 2023, 10:26:09 AM |
|
increase the search speed of the Pubkeys, dividing the search range.
First of all, let me make it clear that this script is slow and basic, I did it like this in order to explain the range division method.
If you want to apply it quickly, modify keyhunt or other c++ code before compiling to make it work with this method.
The method consists in changing the parameters of the curve by x,y of a higher point (for the script I used pk#100). by default the curve uses pubkey #1 what works in sequence 1,2,3,4.... pubkey #100 which works in sequence 100,200,300,400....
if we want to find pk# 3922 in a range of 2000:6000 in the traditional way we would need to advance +1900 pubkeys In this method we will only need 19 pubkeys (1900/100).
the database is done by subtracting 1 consecutively from the target pubkey (in my case I need to subtract( 1), 100 times because I chose pubkey pk# 100 as divisor.
The trick is in your ability to use fast databases, the more pubkey you store in the database, the higher the divisor will be, therefore the search range is smaller.
I currently don't have what it takes to code in C++ using the quick search methods, my resources are limited to the basics. I currently don't have an up-to-date pc to do the relevant tests (the disadvantages of the third world).
However, later I will share faster methods, ECC tricks.
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.
|
BTC bc1qxs47ttydl8tmdv8vtygp7dy76lvayz3r6rdahu
|
|
|
digaran
Copper Member
Hero Member
Offline
Activity: 1330
Merit: 899
🖤😏
|
|
August 27, 2023, 10:53:59 AM |
|
Some elliptic curve magic ahead! Public key for 2^256 in secp256k1 : 03dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787 Private key : 000000000000000000000000000000014551231950b75fc4402da1732fc9bebf Public key divided by 2 : 02b23790a42be63e1b251ad6c94fdef07271ec0aada31db6c3e8bd32043f8be384 Private key : 2^255 8000000000000000000000000000000000000000000000000000000000000000 Now we add an even key to our 2^256 : Target Pub 034a4a6dc97ac7c8b8ad795dbebcb9dcff7290b68a5ef74e56ab5edde01bced775 Target Prv 0000000000000000000000000000000000000000000000000000000000008000 Result : pub 02c028224b2c45bd797143e8f32f025e24601ed85f27ef310d7d55020a192ddba5 Prv 000000000000000000000000000000014551231950b75fc4402da1732fca3ebf Divide by 2 , result : 0216ca7e1edb137684b4aa8a41fd0f8a89dcb773b9db807a9f3f864de2161735ff Now subtract pub 2^255 from above, result : 03111d6a45ac1fb90508907a7abcd6877649df662f3b3e2741302df6f78416824a Prv, also real half of our original target : 03111d6a45ac1fb90508907a7abcd6877649df662f3b3e2741302df6f78416824a , 0000000000000000000000000000000000000000000000000000000000004000 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.😉
|
🖤😏
|
|
|
citb0in
|
|
August 27, 2023, 11:42:59 AM |
|
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.
|
_ _ _ __ _ _ _ __ |_) | / \ / |/ (_ / \ | \ / |_ |_) (_ |_) |_ \_/ \_ |\ __) \_/ |_ \/ |_ | \ __) --> citb0in Solo-Mining Group <--- low stake of only 0.001 BTC. We regularly rent about 5 PH/s hash power and direct it to SoloCK pool. Wanna know more? Read through the link and JOIN NOW
|
|
|
_Counselor
Member
Offline
Activity: 110
Merit: 61
|
|
August 27, 2023, 12:33:30 PM |
|
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.
|
|
|
|
digaran
Copper Member
Hero Member
Offline
Activity: 1330
Merit: 899
🖤😏
|
|
August 27, 2023, 01:43:28 PM |
|
you struggle in vain and miserably like many others to solve a puzzle. Find the mistake.
Don't you struggle like all other intelligent individuals hunting this puzzle? If not then that's understandable, no pressure. Around these woods men break under pressure, previous pages are my witness. You might break your nails by passing by. who broke SECP256K1
That's a promise, God willing I'd either deliver on that or die trying.😂 but doesn't want to share his genius findings.
Lol, what genius I use calculator to subtract 176 from 239, not lying. Anyways, do you have something useful that can help solving a puzzle? Stupid question, of course you don't.😘
|
🖤😏
|
|
|
Denis_Hitov
Newbie
Offline
Activity: 49
Merit: 0
|
|
August 27, 2023, 06:53:20 PM |
|
Some elliptic curve magic ahead! Public key for 2^256 in secp256k1 : 03dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787 Private key : 000000000000000000000000000000014551231950b75fc4402da1732fc9bebf Public key divided by 2 : 02b23790a42be63e1b251ad6c94fdef07271ec0aada31db6c3e8bd32043f8be384 Private key : 2^255 8000000000000000000000000000000000000000000000000000000000000000 Now we add an even key to our 2^256 : Target Pub 034a4a6dc97ac7c8b8ad795dbebcb9dcff7290b68a5ef74e56ab5edde01bced775 Target Prv 0000000000000000000000000000000000000000000000000000000000008000 Result : pub 02c028224b2c45bd797143e8f32f025e24601ed85f27ef310d7d55020a192ddba5 Prv 000000000000000000000000000000014551231950b75fc4402da1732fca3ebf Divide by 2 , result : 0216ca7e1edb137684b4aa8a41fd0f8a89dcb773b9db807a9f3f864de2161735ff Now subtract pub 2^255 from above, result : 03111d6a45ac1fb90508907a7abcd6877649df662f3b3e2741302df6f78416824a Prv, also real half of our original target : 03111d6a45ac1fb90508907a7abcd6877649df662f3b3e2741302df6f78416824a , 0000000000000000000000000000000000000000000000000000000000004000 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.😉 It is a pity that such an operation will not work with an odd key))
|
|
|
|
digaran
Copper Member
Hero Member
Offline
Activity: 1330
Merit: 899
🖤😏
|
|
August 28, 2023, 05:41:43 AM |
|
It is a pity that such an operation will not work with an odd key))
Sure it will, if you add an odd key to another odd key ( our 2^256 key is odd ) you'll get an even key and all you have to do is to subtract the following key from the result : a2a8918ca85bafe22016d0b997e4df5f But why bother if you could add or subtract 1G from your odd key and divide it without having to do what I said. You can always divide an odd key, if by 2, you'd have to add n/2 to the result, if by 3, adding n/3 etc to get your actual and correct result.
|
🖤😏
|
|
|
lordfrs
Jr. Member
Offline
Activity: 57
Merit: 1
|
|
August 28, 2023, 06:55:10 AM |
|
It is a pity that such an operation will not work with an odd key))
Sure it will, if you add an odd key to another odd key ( our 2^256 key is odd ) you'll get an even key and all you have to do is to subtract the following key from the result : a2a8918ca85bafe22016d0b997e4df5f But why bother if you could add or subtract 1G from your odd key and divide it without having to do what I said. You can always divide an odd key, if by 2, you'd have to add n/2 to the result, if by 3, adding n/3 etc to get your actual and correct result. sorry my english is not good, i'm trying to understand by translating with translate, this gives me different sentences, so can you write the python code for the division you said.
|
If you want to buy me a coffee
Btc = 3246y1G9YjnQQNRUrVMnaeCFrymZRgJAP7
Doge = DGNd8UTi8jVTVZ2twhKydyqicynbsERMjs
|
|
|
digaran
Copper Member
Hero Member
Offline
Activity: 1330
Merit: 899
🖤😏
|
|
August 28, 2023, 07:39:54 AM |
|
It is a pity that such an operation will not work with an odd key))
Sure it will, if you add an odd key to another odd key ( our 2^256 key is odd ) you'll get an even key and all you have to do is to subtract the following key from the result : a2a8918ca85bafe22016d0b997e4df5f But why bother if you could add or subtract 1G from your odd key and divide it without having to do what I said. You can always divide an odd key, if by 2, you'd have to add n/2 to the result, if by 3, adding n/3 etc to get your actual and correct result. sorry my english is not good, i'm trying to understand by translating with translate, this gives me different sentences, so can you write the python code for the division you said. I'm not a coder but here is the idea. Translate the following. 11/3 = 3.6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666667 Secp256k1 representation of the fraction above : 55555555555555555555555555555554e8e4f44ce51835693ff0ca2ef01215c0 11 decimal 0xb/3 = 55555555555555555555555555555554e8e4f44ce51835693ff0ca2ef01215c4 Subtract both above, result is 0x4.
Now the twisted division I talked about, simple : Target 7, is odd, we add 3 to get 10, divide 10 by 2 = 5, and if we subtract half of 3 = 1.5 from half of 7 = 3.5 we get 2, now we subtract 2 from 5 to get the real half of 7 in secp256k1.
|
🖤😏
|
|
|
artistk
Newbie
Offline
Activity: 5
Merit: 0
|
|
August 28, 2023, 03:53:15 PM |
|
is there any C++ open source script ( CPU or GPU ) to join you in this journey ? Thank you in advance
|
|
|
|
albert0bsd
|
|
August 28, 2023, 04:37:24 PM |
|
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/keyhuntIf you have any questions or feedback, don't hesitate to reach out. Regards
|
|
|
|
mcdouglasx
Member
Offline
Activity: 330
Merit: 92
New ideas will be criticized and then admired.
|
|
August 29, 2023, 02:24:12 AM |
|
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.
|
BTC bc1qxs47ttydl8tmdv8vtygp7dy76lvayz3r6rdahu
|
|
|
DegenHero
Newbie
Offline
Activity: 4
Merit: 0
|
|
August 29, 2023, 12:15:23 PM |
|
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/keyhuntIf 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
|
|
|
|
albert0bsd
|
|
August 29, 2023, 03:44:50 PM |
|
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!
|
|
|
|
citb0in
|
|
August 29, 2023, 03:54:57 PM |
|
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.
|
_ _ _ __ _ _ _ __ |_) | / \ / |/ (_ / \ | \ / |_ |_) (_ |_) |_ \_/ \_ |\ __) \_/ |_ \/ |_ | \ __) --> citb0in Solo-Mining Group <--- low stake of only 0.001 BTC. We regularly rent about 5 PH/s hash power and direct it to SoloCK pool. Wanna know more? Read through the link and JOIN NOW
|
|
|
Denis_Hitov
Newbie
Offline
Activity: 49
Merit: 0
|
|
August 29, 2023, 07:58:56 PM Last edit: August 29, 2023, 09:05:51 PM by Denis_Hitov |
|
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 <module> 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
|
|
|
|
|