Pages:
Author

Topic: Pollard's kangaroo ECDLP solver - page 87. (Read 60381 times)

sr. member
Activity: 653
Merit: 316
July 05, 2020, 03:01:21 PM
-snip-
but the POW keys found and saved in xxx.txt on the server do not track us
It is no matter pow key solved or main key, xxx.txt wil be deleted.
If solved powkey then cleint app read content of xxx.file and wait while range will be solved.
After bitcrack will quit cleint app send content of xxx.file to the server to submit work.

if solved main key than client app send content to the server immediately.
If solved both key than you submit work + submit key, but any way xxx.file will be deleted from client.
Pow address need only to proof of work client, that he realy check subrange.
server do not save xxxx.txt file. He save only winkey.txt(by default) file where put address and Pk when main key solved.
Also server create database file named personal.db where saved work for each client.
you can use this data base file to pay reward for work(if you want).
DB file it is simple sqlite3 file. You can read it any sqlite viewer.
newbie
Activity: 32
Merit: 0
July 05, 2020, 02:53:52 PM
-snip-
I was trying to compile your "pure basic" server/client script but I don't seem to find this file: Curve64.pb  
-snip-
Here is link to archive https://drive.google.com/file/d/1XMxvxB1FGxfAi7hFMitiQpENUqvabiQ6
it is new version server/client for bitcrack with POW . Archive contain all source files, libs and precompiled applications.
Before use in a big range try in a small.


Hi, where is the xxx.txt file saved?
file xxx.txt saved in the same folder as client app but it immediately deleted when any key solved(pow key or main key), and content of this file send to the server.
Once xxx.txt created by bitcrack client app read content, delete this file and send to the server.


but the POW keys found and saved in xxx.txt on the server do not track us
sr. member
Activity: 653
Merit: 316
July 05, 2020, 02:48:40 PM
-snip-
I was trying to compile your "pure basic" server/client script but I don't seem to find this file: Curve64.pb  
-snip-
Here is link to archive https://drive.google.com/file/d/1XMxvxB1FGxfAi7hFMitiQpENUqvabiQ6
it is new version server/client for bitcrack with POW . Archive contain all source files, libs and precompiled applications.
Before use in a big range try in a small.


Hi, where is the xxx.txt file saved?
file xxx.txt saved in the same folder as client app but it immediately deleted when any key solved(pow key or main key), and content of this file send to the server.
Once xxx.txt created by bitcrack client app read content, delete this file and send to the server.
newbie
Activity: 32
Merit: 0
July 05, 2020, 02:19:05 PM
-snip-
I was trying to compile your "pure basic" server/client script but I don't seem to find this file: Curve64.pb 
-snip-
Here is link to archive https://drive.google.com/file/d/1XMxvxB1FGxfAi7hFMitiQpENUqvabiQ6
it is new version server/client for bitcrack with POW . Archive contain all source files, libs and precompiled applications.
Before use in a big range try in a small.


Hi, where is the xxx.txt file saved?
sr. member
Activity: 653
Merit: 316
July 05, 2020, 12:42:14 PM
About using Endomorphisms in Kangaroo. I think it is not give you result.
Why? becouse you need create new lambda wild herd and beta tame herd.
You get little bit more perfomance due to not point but arithmetic calculation x-coordinate of beta tame kangaroo betax = (x*beta)%p
Maybe I'm wrong, but the advantage there will be minimal.
I mean that betax will never colide with x-coordinate of simple wild DP
You need first create new lambda point from your pub and then produce wild DP from both points (simple pub and lambda point)
In this case x-tame can collide x-wild and x-betatame can collide x-lambdawild.
sr. member
Activity: 653
Merit: 316
July 05, 2020, 12:32:55 PM
-snip-
Maybe...however, I think it depends on the size of the range you are checking, and luck.  My implementation of BSGS, how I use it, will compare to quickness of Kangaroo. If luck is really good, even faster. In lower ranges (say ranges 1 to 80), the way I use BSGS, it is as fast or faster. If I had server client to assign ranges, I think it would be even faster. But Kangaroo is definitely the easiest to use, no modding, just click and let it run.
Simple example:
Range 2^ 64.0
Kangaroo >Expected OP 2^ 33.05491672361811 (n=0.5+math.sqrt(0.25-2*range*math.log(0.5))
So you need totaly calculate 2^ 33.0549 points.

BSGS>2^ 64.0 in worst case, in the best case unknown (dependency where PK lie)  Wink
Ok, let`s for ex. PK lie in middle of the range, so you need calculate 2^ 63.0 points.
Of course you can say that you have a hash table on 2^36 points for ex. And you need only 2^63/2^36 = 2^27 operations.
But you already spent 2^36 operations to create this hashtable.


full member
Activity: 1232
Merit: 242
Shooters Shoot...
July 05, 2020, 12:15:41 PM
I am also can admit that there no faster way to solve public key then kangaroo.
Not bsgs not division point and find public keys of fractional parts .
Not division range in to small subranges and solve each separately.
Only kangaroo as is. In full range is the faster method.
Maybe...however, I think it depends on the size of the range you are checking, and luck.  My implementation of BSGS, how I use it, will compare to quickness of Kangaroo. If luck is really good, even faster. In lower ranges (say ranges 1 to 80), the way I use BSGS, it is as fast or faster. If I had server client to assign ranges, I think it would be even faster. But Kangaroo is definitely the easiest to use, no modding, just click and let it run.
member
Activity: 873
Merit: 22
$$P2P BTC BRUTE.JOIN NOW ! https://uclck.me/SQPJk
July 05, 2020, 11:04:33 AM
I am also can admit that there no faster way to solve public key then kangaroo.
Not bsgs not division point and find public keys of fractional parts .
Not division range in to small subranges and solve each separately.
Only kangaroo as is. In full range is the faster method.

I need a method = my budget bro, i have no 200 Tesla. Im not like full range in Kangaroo, this is not liked idea for me. And Kangaroo not  use endomrphsm in what all priveys only 128 bytes !!! Yes - not more 128 bytes !!! Bat kabgaroo version waht make Jean_Luc not make any priveys to 128 bytes max with endomorphism. And I think symmetry what imposible with endomorphism is to expansuve for pay symmetry for 128 bytes privkey. I hope Jean_Luc implement endomorphism in his Kangaroo - he is super programmer and great man. 
sr. member
Activity: 653
Merit: 316
July 05, 2020, 10:53:47 AM
I am also can admit that there no faster way to solve public key then kangaroo.
Not bsgs not division point and find public keys of fractional parts .
Not division range in to small subranges and solve each separately.
Only kangaroo as is. In full range is the faster method.
member
Activity: 873
Merit: 22
$$P2P BTC BRUTE.JOIN NOW ! https://uclck.me/SQPJk
July 05, 2020, 10:41:12 AM

shifted result> 045b7696358e6ba86341eb97a1f1a6622a4a1f175660b456c7c89562eadf3c4e3dfb73c7828b8de ad960cc92c1bc6c3aef5bf4c8496095b65df554ff98c06ce5e9

it is wrong result because you are using uncompressed public key as pointstr!!!
Use only compressed pubkey in pointstr!

Okey !!! Big Thank You Bro !!!
sr. member
Activity: 653
Merit: 316
July 05, 2020, 10:39:41 AM

shifted result> 045b7696358e6ba86341eb97a1f1a6622a4a1f175660b456c7c89562eadf3c4e3dfb73c7828b8de ad960cc92c1bc6c3aef5bf4c8496095b65df554ff98c06ce5e9

it is wrong result because you are using uncompressed public key as pointstr!!!
Use only compressed pubkey in pointstr!
member
Activity: 873
Merit: 22
$$P2P BTC BRUTE.JOIN NOW ! https://uclck.me/SQPJk
July 05, 2020, 10:37:39 AM
-snip-
Bro, Your code is making what is described there https://bitcointalksearch.org/topic/m.54296078 or something else ?
Python code do exactly what you need (substract startrange from public key). After you will find key, just add to key your startrange and you will get correct PK.


Big Thank You Bro !!!
sr. member
Activity: 653
Merit: 316
July 05, 2020, 10:34:33 AM
-snip-
Bro, Your code is making what is described there https://bitcointalksearch.org/topic/m.54296078 or something else ?
Python code do exactly what you need (substract startrange from public key). After you will find key, just add to key your startrange and you will get correct PK.
member
Activity: 873
Merit: 22
$$P2P BTC BRUTE.JOIN NOW ! https://uclck.me/SQPJk
July 05, 2020, 10:28:00 AM
-snip-
For what you do p+??? I am realy do not understand you. I was explain you how need substract range from pub and then get back.
All values should be by modulo p. But you with p+ do something else..
Edit: and what is it Huh
Code:
pointstr = '043aeb4f818ca91912a3e50d1b3db196696f82713bae00ba2b53c09a23f1d284a085b2197137256def6c05a0f105e1b1eee9c10d23b7a4911040a23e891ebb3dc9'
pointstr should be compressed! becouse after that pt= getuncompressedpub(pointstr)
change
Code:
043aeb4f818ca91912a3e50d1b3db196696f82713bae00ba2b53c09a23f1d284a085b2197137256def6c05a0f105e1b1eee9c10d23b7a4911040a23e891ebb3dc9
to
Code:
033aeb4f818ca91912a3e50d1b3db196696f82713bae00ba2b53c09a23f1d284a0

here is result
Code:
shifted result> 043da25db054a78e5253f461a104759d559526c02565ef9b966662cb0299e95ebc8f068e4c209fc9e9053dfc3419a0cef6bccd931a514aec5900e5a17a031e64a6
result> 043aeb4f818ca91912a3e50d1b3db196696f82713bae00ba2b53c09a23f1d284a085b2197137256def6c05a0f105e1b1eee9c10d23b7a4911040a23e891ebb3dc9

Bro, Your code is making what is described there https://bitcointalksearch.org/topic/m.54296078 or something else ?
sr. member
Activity: 653
Merit: 316
July 05, 2020, 10:26:06 AM
-snip-
Why you in code deduct only Y coordinate ?
-snip-
Because point substraction operation it is addition operation where y-coordinate is negative in deductible point.
Python code give you correct result only if you are used him in correct way.
pointstr should be compressed pub key that start with 02/03 and with length 66bytes(prefix 02/03 +x_coodinate).
pubkey that start with 04 it is uncompressed pub and have length 130 bytes(prefix 04+x_coordinate+y_coordinate).

Edit: to convert uncompressed to compressed or vice versa you can use this tool https://iancoleman.io/bitcoin-key-compression/
in you last example 04d069fa48ccf890d2fed1a0c120be98444d4c1945a624ea625ac8a1a44e0e86b04ef949c7eb631 e6b2d6beac5257f8c3afac94236803ede49a609142faf61a015
this is 03d069fa48ccf890d2fed1a0c120be98444d4c1945a624ea625ac8a1a44e0e86b0
and you should set pointstr = '03d069fa48ccf890d2fed1a0c120be98444d4c1945a624ea625ac8a1a44e0e86b0'

after that you will have correct shifted result
Code:
shifted result> 0474592cdb1af0afc0705a240b0e1edc883a9dc56ed3fc80d71c25c689ff3a20e859ec3168bf6a3952e11f04a729745272254b5e06787626fa0d7b6609cc529505
and back result
Code:
result> 04d069fa48ccf890d2fed1a0c120be98444d4c1945a624ea625ac8a1a44e0e86b04ef949c7eb631e6b2d6beac5257f8c3afac94236803ede49a609142faf61a015
member
Activity: 873
Merit: 22
$$P2P BTC BRUTE.JOIN NOW ! https://uclck.me/SQPJk
July 05, 2020, 10:17:39 AM
-snip-
For what you do p+??? I am realy do not understand you. I was explain you how need substract range from pub and then get back.
All values should be by modulo p. But you with p+ do somesing else..
Edit: and what is it Huh
Code:
pointstr = '043aeb4f818ca91912a3e50d1b3db196696f82713bae00ba2b53c09a23f1d284a085b2197137256def6c05a0f105e1b1eee9c10d23b7a4911040a23e891ebb3dc9'
pointstr should be compressed! becouse after that pt= getuncompressedpub(pointstr)
change
Code:
043aeb4f818ca91912a3e50d1b3db196696f82713bae00ba2b53c09a23f1d284a085b2197137256def6c05a0f105e1b1eee9c10d23b7a4911040a23e891ebb3dc9
to
Code:
033aeb4f818ca91912a3e50d1b3db196696f82713bae00ba2b53c09a23f1d284a0

here is result
Code:
shifted result> 043da25db054a78e5253f461a104759d559526c02565ef9b966662cb0299e95ebc8f068e4c209fc9e9053dfc3419a0cef6bccd931a514aec5900e5a17a031e64a6
result> 043aeb4f818ca91912a3e50d1b3db196696f82713bae00ba2b53c09a23f1d284a085b2197137256def6c05a0f105e1b1eee9c10d23b7a4911040a23e891ebb3dc9

Bro I need this because your code is more simple for me then EC calculator. But then I deduct range in EC calculator I get different result then yours ! And If yor code is calculate falce result this is bad for me, -  and i will be need go back to f*g calculator ))

Why you in code deduct only Y coordinate ? Y coordinate is a TAME kangaroo and TAME Kangaroo insensitive to ranges as I know.

I try relise this teckinks https://bitcointalksearch.org/topic/m.54296078

Your code needed me  for downgrade pubkey bytes light and search for ex. not 100 bytes range but <100 bytes range.


edit:

pointstr should be compressed! becouse after that pt= getuncompressedpub(pointstr)
change

F*ck !!! Thank you, now I understand more. Bro - Big thank you.

But again bro:

Pt pointstr = '04d069fa48ccf890d2fed1a0c120be98444d4c1945a624ea625ac8a1a44e0e86b04ef949c7eb631e6b2d6beac52 57f8c3afac94236803ede49a609142faf61a015'

shifted result> 045b7696358e6ba86341eb97a1f1a6622a4a1f175660b456c7c89562eadf3c4e3dfb73c7828b8de ad960cc92c1bc6c3aef5bf4c8496095b65df554ff98c06ce5e9
result> 0480660a712ad5746acc3104176a2ec22ba05a9f67edea014b3c327f6cf951b0698546081fd9806bebba3bd 608ba6b531546796b3fa3e509d1a6757e4d54a6b203

I cant understand what is a "result>"...



sr. member
Activity: 653
Merit: 316
July 05, 2020, 10:04:17 AM
-snip-
For what you do p+??? I am realy do not understand you. I was explain you how need substract range from pub and then get back.
All values should be by modulo p. But you with p+ do something else..
Edit: and what is it Huh
Code:
pointstr = '043aeb4f818ca91912a3e50d1b3db196696f82713bae00ba2b53c09a23f1d284a085b2197137256def6c05a0f105e1b1eee9c10d23b7a4911040a23e891ebb3dc9'
pointstr should be compressed! becouse after that pt= getuncompressedpub(pointstr)
change
Code:
043aeb4f818ca91912a3e50d1b3db196696f82713bae00ba2b53c09a23f1d284a085b2197137256def6c05a0f105e1b1eee9c10d23b7a4911040a23e891ebb3dc9
to
Code:
033aeb4f818ca91912a3e50d1b3db196696f82713bae00ba2b53c09a23f1d284a0

here is result
Code:
shifted result> 043da25db054a78e5253f461a104759d559526c02565ef9b966662cb0299e95ebc8f068e4c209fc9e9053dfc3419a0cef6bccd931a514aec5900e5a17a031e64a6
result> 043aeb4f818ca91912a3e50d1b3db196696f82713bae00ba2b53c09a23f1d284a085b2197137256def6c05a0f105e1b1eee9c10d23b7a4911040a23e891ebb3dc9
member
Activity: 873
Merit: 22
$$P2P BTC BRUTE.JOIN NOW ! https://uclck.me/SQPJk
July 05, 2020, 09:52:13 AM
-snip-
Bro,

Bresult=addpt(result, (subptx,subpty), p)
print("result> 04%064x%064x"%Bresult)

aagain generate false result. This is not deducted pubkey+starting range, and I kan't understand what is it and why I can't get previous pubkey then I add range what I deleted early

How to minus range and add after and get result: startpubey=Q(pubkey-range)+range Huh

HuhHuhHuh?
1) You have pub key let`s call this point Pt
2) And you have startrange = 0x800000 for ex. Calculate point from startingrange:   x,y = ptmul(g,startrange )
3) make y-coordinate negative using p-y, so you will have point with x,p-y
4) make point addition operation via your pubkey and point from step 3: myX,myY = addpt(Pt, (x,p-y), p)
myX,myY is equil to point Pt from which substract startrange.

If you need getback to Pt value just add to myX,myY  point x,y:   backX,backY = addpt((myX,myY) , (x,y), p)
backX,backY will equil to Pt.

Post here example where you have wrong result.
here is result from python console from example that you post above:
Code:
shifted result> 043aeb4f818ca91912a3e50d1b3db196696f82713bae00ba2b53c09a23f1d284a085b2197137256def6c05a0f105e1b1eee9c10d23b7a4911040a23e891ebb3dc9
result> 047e1238f7b1ce757df94faa9a2eb261bf0aeb9f84dbf81212104e78931c2a19dc625c7118f1c29cb92d28ce0dfd0dc58144fe5572effebc7fee54c4fce3333a6b

uncompressed 047e1238f7b1ce757df94faa9a2eb261bf0aeb9f84dbf81212104e78931c2a19dc625c7118f1c29 cb92d28ce0dfd0dc58144fe5572effebc7fee54c4fce3333a6b
is the same as compressed 037e1238f7b1ce757df94faa9a2eb261bf0aeb9f84dbf81212104e78931c2a19dc


Bro this is first step: ""-" range from Pt

Code:
#CHANGE HERE beginrange and pointstr
beginrange=0x80000000000000000000
pointstr = '037e1238f7b1ce757df94faa9a2eb261bf0aeb9f84dbf81212104e78931c2a19dc'

pt= getuncompressedpub(pointstr)
(subptx,subpty) = ptmul(g, beginrange, p)
result=addpt(pt, (subptx,p-subpty), p)
print("shifted result> 04%064x%064x"%result)

Bresult=addpt(result, (subptx,subpty), p)
print("result> 04%064x%064x"%Bresult)


shifted result> Call THIS POIT Presult - 043aeb4f818ca91912a3e50d1b3db196696f82713bae00ba2b53c09a23f1d284a085b2197137256def6c05a0f105e1b1eee9c10d23b7a4911040a23e891ebb3dc9
result> 047e1238f7b1ce757df94faa9a2eb261bf0aeb9f84dbf81212104e78931c2a19dc625c7118f1c29cb92d28ce0dfd0dc58144fe5572effebc7fee54c4fce3333a6b

After I was change "-" to "+" so : "result=addpt(pt, (subptx,p+subpty), p)" and add range to Presut:

Code:
pointstr = '043aeb4f818ca91912a3e50d1b3db196696f82713bae00ba2b53c09a23f1d284a085b2197137256def6c05a0f105e1b1eee9c10d23b7a4911040a23e891ebb3dc9'

pt= getuncompressedpub(pointstr)
(subptx,subpty) = ptmul(g, beginrange, p)
result=addpt(pt, (subptx,p+subpty), p)
print("shifted result> 04%064x%064x"%result)

Bresult=addpt(result, (subptx,subpty), p)
print("result> 04%064x%064x"%Bresult)

shifted result> CALL THIS POINT P-backresult 041e8e77439c921a460ce4185b864329dcba5960646e93c59d5e7bbbea8dd913fcd83777dec0468c76fdc5b0a4ce879086e66766f520386f9db6e1999d8b0e1ad0
result> 04a3bcf71ae6452d91247af4bd6df4e1fa116150d79535097dcc0a1c772e807ac7af30eb6e7bfad29f1df4664388e2c0900b5a90a5a119ee1dd2ee746c7d42bebe


But P-backresult+range NOT EQUAL(<>) Pt !!!

037e1238f7b1ce757df94faa9a2eb261bf0aeb9f84dbf81212104e78931c2a19dc<>041e8e77439c921a460ce4185b864329dcba5960646e93c59d5e7bbbea8dd913fcd83777dec0468c76fdc5 b0a4ce879086e66766f520386f9db6e1999d8b0e1ad0

You see Huh
sr. member
Activity: 653
Merit: 316
July 05, 2020, 09:28:59 AM
-snip-
Bro,

Bresult=addpt(result, (subptx,subpty), p)
print("result> 04%064x%064x"%Bresult)

aagain generate false result. This is not deducted pubkey+starting range, and I kan't understand what is it and why I can't get previous pubkey then I add range what I deleted early

How to minus range and add after and get result: startpubey=Q(pubkey-range)+range Huh

HuhHuhHuh?
1) You have pub key let`s call this point Pt
2) And you have startrange = 0x800000 for ex. Calculate point from startingrange:   x,y = ptmul(g,startrange )
3) make y-coordinate negative using p-y, so you will have point with x,p-y
4) make point addition operation via your pubkey and point from step 3: myX,myY = addpt(Pt, (x,p-y), p)
myX,myY is equil to point Pt from which substract startrange.

If you need getback to Pt value just add to myX,myY  point x,y:   backX,backY = addpt((myX,myY) , (x,y), p)
backX,backY will equil to Pt.

Post here example where you have wrong result.
here is result from python console from example that you post above:
Code:
shifted result> 043aeb4f818ca91912a3e50d1b3db196696f82713bae00ba2b53c09a23f1d284a085b2197137256def6c05a0f105e1b1eee9c10d23b7a4911040a23e891ebb3dc9
result> 047e1238f7b1ce757df94faa9a2eb261bf0aeb9f84dbf81212104e78931c2a19dc625c7118f1c29cb92d28ce0dfd0dc58144fe5572effebc7fee54c4fce3333a6b

uncompressed 047e1238f7b1ce757df94faa9a2eb261bf0aeb9f84dbf81212104e78931c2a19dc625c7118f1c29 cb92d28ce0dfd0dc58144fe5572effebc7fee54c4fce3333a6b
is the same as compressed 037e1238f7b1ce757df94faa9a2eb261bf0aeb9f84dbf81212104e78931c2a19dc
member
Activity: 873
Merit: 22
$$P2P BTC BRUTE.JOIN NOW ! https://uclck.me/SQPJk
July 05, 2020, 09:12:45 AM
-snip-
What I do wrong ?
Code:
#CHANGE HERE beginrange and pointstr
beginrange=0x80000000000000000000
pointstr = '037e1238f7b1ce757df94faa9a2eb261bf0aeb9f84dbf81212104e78931c2a19dc'

pt= getuncompressedpub(pointstr)
(subptx,subpty) = ptmul(g, beginrange, p)
result=addpt(pt, (subptx,p-subpty), p)
print("shifted result> 04%064x%064x"%result)

Bresult=addpt(result, (subptx,subpty), p)
print("result> 04%064x%064x"%Bresult)

[/quote

Bro,

Bresult=addpt(result, (subptx,subpty), p)
print("result> 04%064x%064x"%Bresult)

aagain generate false result. This is not deducted pubkey+starting range, and I kan't understand what is it and why I can't get previous pubkey then I add range what I deleted early

How to minus range and add after and get result: startpubey=Q(pubkey-range)+range Huh

HuhHuhHuh?
Pages:
Jump to: