Pages:
Author

Topic: Pollard's kangaroo ECDLP solver - page 61. (Read 60095 times)

full member
Activity: 431
Merit: 105
April 26, 2021, 07:26:39 PM
guys anyone got a way to add a find a text *string i am searching for the puzzle address while inside golang.

// Get compressed and uncompressed addresses
      caddr, _ := btcutil.NewAddressPubKey(public.SerializeCompressed(), &chaincfg.MainNetParams)
      uaddr, _ := btcutil.NewAddressPubKey(public.SerializeUncompressed(), &chaincfg.MainNetParams)

      // Print keys
      fmt.Printf("%x %34s %34s\n", padded, uaddr.EncodeAddress(), caddr.EncodeAddress())
      fmt.Printf( "count:%v\n", count );
   }

somewhere in the area in the text above. thanks so much in advance

the result of what i am doing is outputting this on my screen
000000000000000000000000000000000000000000000000c249fdd32778046b 1HCeANYVqecNUkQGVnczXdjq2PjgtBdvDo 1JxXytq4KSJFgMZit8gZcRiiUZCYiQdoNR
count:14000000000000001131

but then like if found, We Found It! yippie something like text.
jr. member
Activity: 76
Merit: 4
April 26, 2021, 06:20:42 PM
Quote
One problem is that when it goes to save I get an illegal memory operation and it shuts down. The few times it did save the save work was 1.5 GB (a whole lot of points) and after the 2nd or 3rd save it would get the illegal memory operation so i just have the save work for 3 days. i don't want to do the entire keyspace on these larger puzzles because the electric could go off or some other issue and have to start over, rather just do a smaller slice. The smaller keys did not do that because it found them before 3o seconds and 50 is not that big of a keyspace as 120
You shouldn't get a memory code on save.  Here's what I would do. Run the precompiled version and see if it does the same thing; see if you get memory error or the MK/s rate is the same.

It's always better to do the whole slice, not smaller ones because you will actually wind up doing more work/longer run time breaking it up into smaller chunks AND the biggest issue is, you really won't know if the key is in a smaller slice unless you let it run for 6+ times the expected operations and even then, you still may not know.

What is the link to the compiled version. I will try it, must be the 256 bit version for comparison, that is the one I am using not the 128 version.
full member
Activity: 1232
Merit: 242
Shooters Shoot...
April 26, 2021, 05:19:13 PM
Quote
One problem is that when it goes to save I get an illegal memory operation and it shuts down. The few times it did save the save work was 1.5 GB (a whole lot of points) and after the 2nd or 3rd save it would get the illegal memory operation so i just have the save work for 3 days. i don't want to do the entire keyspace on these larger puzzles because the electric could go off or some other issue and have to start over, rather just do a smaller slice. The smaller keys did not do that because it found them before 3o seconds and 50 is not that big of a keyspace as 120
You shouldn't get a memory code on save.  Here's what I would do. Run the precompiled version and see if it does the same thing; see if you get memory error or the MK/s rate is the same.

It's always better to do the whole slice, not smaller ones because you will actually wind up doing more work/longer run time breaking it up into smaller chunks AND the biggest issue is, you really won't know if the key is in a smaller slice unless you let it run for 6+ times the expected operations and even then, you still may not know.
full member
Activity: 1232
Merit: 242
Shooters Shoot...
April 26, 2021, 05:15:07 PM
Yes I compiled it a few days ago and noticed it was going extremely fast so I tried it on a few puzzles that had been solved 30 35 40 and it found them on seconds except for 50 which took about 20 minutes so it seems to be working (used the entire keyspace for those). I was scanning the entire keyspace. this time I am trying 120 and I was just scanning 65% to 75% which was estimated at 15 hrs, now 50% to 65% which shows an estimate of 18 hrs. not sure if I should just scan the entire keyspace at once which has a 6 to 7 day estimate
I just don't think something is right, with MK/s, which will affect your solve time; meaning it will show a few days when it could be a few years.

For lower bits like 30, 35, 40, those will be quick, even on a CPU it will take less than a second. 50 shouldn't take that long, even with CPU.

What GPU or CPU are you using?
jr. member
Activity: 76
Merit: 4
April 26, 2021, 05:02:00 PM
Yes I compiled it a few days ago and noticed it was going extremely fast so I tried it on a few puzzles that had been solved 30 35 40 and it found them on seconds except for 50 which took about 20 minutes so it seems to be working (used the entire keyspace for those). I was scanning the entire keyspace. this time I am trying 120 and I was just scanning 65% to 75% which was estimated at 15 hrs, now 50% to 65% which shows an estimate of 18 hrs. not sure if I should just scan the entire keyspace at once which has a 6 to 7 day estimate

One problem is that when it goes to save I get an illegal memory operation and it shuts down. The few times it did save the save work was 1.5 GB (a whole lot of points) and after the 2nd or 3rd save it would get the illegal memory operation so i just have the save work for 3 days. i don't want to do the entire keyspace on these larger puzzles because the electric could go off or some other issue and have to start over, rather just do a smaller slice. The smaller keys did not do that because it found them before 3o seconds and 50 is not that big of a keyspace as 120
full member
Activity: 1232
Merit: 242
Shooters Shoot...
April 26, 2021, 04:07:44 PM
So if I am searching a keyspace and the count say Count 2^60.86 and that exceeds the expected
Range width: 2^116
Jump Avg distance: 2^57.96
Number of kangaroos: 2^17.60
Expected operations: 2^59.99
then does it mean it has finished searching the range inputted and I should check another portion of the keyspace?

[21295663.60 MK/s][GPU 21295655.80 MK/s][Count 2^60.86][Dead 0][1.4d (Avg 14:58:43)][2.0/4.0MB]  B]
No, it is an estimate.  Do you know if the key is in the range you are looking for?

Also, your MK/s seems extremely high.

The B] is a carry over from the MB]
jr. member
Activity: 76
Merit: 4
April 26, 2021, 02:55:48 PM
So if I am searching a keyspace and the count say Count 2^60.86 and that exceeds the expected
Range width: 2^116
Jump Avg distance: 2^57.96
Number of kangaroos: 2^17.60
Expected operations: 2^59.99
then does it mean it has finished searching the range inputted and I should check another portion of the keyspace?

[21295663.60 MK/s][GPU 21295655.80 MK/s][Count 2^60.86][Dead 0][1.4d (Avg 14:58:43)][2.0/4.0MB]  B]
jr. member
Activity: 76
Merit: 4
April 26, 2021, 02:48:22 PM
Thanks for the response I already read your similar response on another post. I am still trying to get an answer regarding the "B]" that appears after a while on long keyspaces. i tried to upload an image of what I am talking about but seems they blocked the google drive address
full member
Activity: 1232
Merit: 242
Shooters Shoot...
April 26, 2021, 02:41:26 PM
Three questions,
Is there any way to see the current keyspace being worked on like some type of  command that prints out in intervals the progress like "continue.txt" on bitcrack. I know there is save.work but this is not readable.
and what does the "B]" stand for at the end of the command line? picture here of the B.
Why in some keyspaces searches are there many dead kangaroos?

Current keyspace is the entire keyspace. The Tames and Wilds start at different random points and hop looking for DPs.  So if you are searching from 0:FFFFFFFFFF ; then kangaroos will be spread out all over the range. The progress is group ops or total DPs found. It is readable if you use python script loaded in this thread.  But it will not help you determine "progress"; total ops/DPs are your progress.

If you are in a small range (especially if using a GPU), you may get many dead kangaroos because you have many kangaroos hopping around in a small keyspace so many of them will be landing on the same points. Dead kangaroos can also happen if you are searching for a key that does not exist in the keyspace being searched.
jr. member
Activity: 76
Merit: 4
April 26, 2021, 02:33:47 PM
Three questions,
Is there any way to see the current keyspace being worked on like some type of  command that prints out in intervals the progress like "continue.txt" on bitcrack. I know there is save.work but this is not readable.
and what does the "B]" stand for at the end of the command line? picture here of the B.
Why in some keyspaces searches are there many dead kangaroos?
jr. member
Activity: 82
Merit: 8
April 26, 2021, 11:37:54 AM
Quote
Thanks
but, I still not understand code
why GetBase10() not convert hex to decimal
that mean I use wrong code
(sorry I am not programmer)

Code:
   printf("\nP.x   %s\n" , P.x.GetBase10().c_str() );

you must use  %s  , not %d

Improve and optimize the project "Kangaroo , VanitySearch " , maybe requires several  years of learn VC++
member
Activity: 406
Merit: 47
April 26, 2021, 10:31:39 AM
like sample
GetBase16() result = P.x.: 59EF0C8304BB2FDB2C0F18B262EBDBCB992D0B4CB7AE92358C22406740862D78
GetBase10() result = P.x.: -1235795984
Base10 should be = 40678206325600170710078198845059231036639843417349082810943540381348337692024

Code:
  Int privKey;
  privKey.SetBase16("00000000000000000000000000000000000000000000000000000000000000FF");
  printf("A: %s \n", privKey.GetBase10().c_str());
  privKey.SetBase16("59ef0c8304bb2fdb2c0f18b262ebdbcb992d0b4cb7ae92358c22406740862d78");
  printf("B: %s \n", privKey.GetBase10().c_str());
  privKey.SetBase16("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141");
  printf("spec256k1 MAX value: %s \n", privKey.GetBase10().c_str());

=====output Decimal:=====
A: 255
B: 40678206325600170710078198845059231036639843417349082810943540381348337692024
spec256k1 MAX value: 115792089237316195423570985008687907852837564279074904382605163141518161494337




Thanks
but, I still not understand code

I use code from  jacky19790729

I print like this

printf("\nP.x   %064s\n" , P.x.GetBase16().c_str() );

and I change 16 to 10

printf("\nP.x   %d\n" , P.x.GetBase10().c_str() );


result = P.x.: 59EF0C8304BB2FDB2C0F18B262EBDBCB992D0B4CB7AE92358C22406740862D78
result = P.x.: -1235795984

for this I convert from hex to decimal by manual
40678206325600170710078198845059231036639843417349082810943540381348337692024
https://www.rapidtables.com/convert/number/hex-to-decimal.html

why GetBase10() not convert hex to decimal

that mean I use wrong code
(sorry I am not programmer)
jr. member
Activity: 82
Merit: 8
April 26, 2021, 09:38:27 AM
like sample
GetBase16() result = P.x.: 59EF0C8304BB2FDB2C0F18B262EBDBCB992D0B4CB7AE92358C22406740862D78
GetBase10() result = P.x.: -1235795984
Base10 should be = 40678206325600170710078198845059231036639843417349082810943540381348337692024

Code:
  Int privKey;
  privKey.SetBase16("00000000000000000000000000000000000000000000000000000000000000FF");
  printf("A: %s \n", privKey.GetBase10().c_str());
  privKey.SetBase16("59ef0c8304bb2fdb2c0f18b262ebdbcb992d0b4cb7ae92358c22406740862d78");
  printf("B: %s \n", privKey.GetBase10().c_str());
  privKey.SetBase16("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141");
  printf("secp256k1 MAX value: %s \n", privKey.GetBase10().c_str());

=====output Decimal:=====
A: 255
B: 40678206325600170710078198845059231036639843417349082810943540381348337692024
secp256k1 MAX value: 115792089237316195423570985008687907852837564279074904382605163141518161494337


member
Activity: 406
Merit: 47
April 26, 2021, 06:57:19 AM

how to use function GetBase10() on kangaroo

I copy GetBase16() and change to  GetBase10()
I using GetBase10() with display %d  but it is show wring

GetBase10() convert to decimal right?
( and GetBase16() convert to hex)

I compare by print out next line

like sample
GetBase16() result = P.x.: 59EF0C8304BB2FDB2C0F18B262EBDBCB992D0B4CB7AE92358C22406740862D78
GetBase10() result = P.x.: -1235795984


Base10 should be = 40678206325600170710078198845059231036639843417349082810943540381348337692024
member
Activity: 406
Merit: 47
April 26, 2021, 03:51:12 AM

My goal is not to race the quiz.


I like to have a name on Wikipedia records
https://en.wikipedia.org/wiki/Discrete_logarithm_records
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
April 26, 2021, 01:54:17 AM



Receive input when playing the Kangaroo executable
Please modify the program so that the kangaroo can run it.


The reason is that Bitcoin 1% is an integer
99% was done with the decimal point key.


0.0573619 =0x822557f3ae9c29d0940e305bbcc30babe59d36ccfad2ebc972a323a8acefefc8, 0x1d5954c43bc29bd412c887d67759a0465aca7b7ce5195212b671e2ba21094dd1
0.0573619 * 10,000,000 = 573619
priv(573619) = 0x3ec274bef2990b86b8c0740faf90c11e15b8b1891c110063e3d15f05ea9bd23, 0x273f184f12a2a029c0643628561f670de859013a7dd0ef0382d86463f4b75435


I guess if you want to scale all calculations down by 1/10 or 1/100, you can replace the point in the SetBase16 code above with the one for 0.1G or 0.01G.

So, do you want to change the program to look for 0.1G, 1G, 10G, 100G points like this? (I can not read CJK languages so it is hard for me to understand the last screenshot, can you explain what's going on in there?)

To my understanding you have these values [for example]:

0.0573619 <-- this is a private key "A"
10,000,000  <-- this is some kind of multiplier I think
1505297...the value in green   <--- a private key
0x822557f3ae9c29d0940e305bbcc30babe59d36ccfad2ebc972a323a8acefefc8, 0x1d5954c43bc29bd412c887d67759a0465aca7b7ce5195212b671e2ba21094dd1
^-- this is the public key for 1505297...?  Huh Or for 0.0573619?

So is this 1505297... private key multiplied by 10 million to get the 573619 private key? Or more likely you're multiplying their pubkeys to get that privkey, am I understanding you correctly?

What is the relation between these private keys?
573619
0.0573619
1505297...
0x15cf751db (I saw this in your second screenshot, not sure what this is I'm assuming a hex version of a privkey)?

Friends will hear this story for the first time.
However, I did a lot of tests and found these things.

My goal is not to race the quiz.
Many people are sad because they have lost their private keys.
I think you can solve this problem with a newly developed calculator

Well, I can understand that we are multiplying public keys A and B to get C, but what's special about the relation between their private keys (private key A and C in particular, why use a large number to get 573619?)



is there any way to jump over some numbers for example never use numer 3 or number 1?

Skipping particular kangaroo values? I think it will be hard to exclude specific values because they are all very large and random, but I guess you could find some group of numbers that match a pattern and sequence and do another hop for those, without making them a distinguished point.
newbie
Activity: 28
Merit: 1
April 26, 2021, 12:40:59 AM
is there any way to jump over some numbers for example never use numer 3 or number 1?
member
Activity: 406
Merit: 47
April 25, 2021, 01:45:46 PM


Is this bolded number and point corresponding to G? Because this will make the problem easier to understand. I'm not really sure what you're trying to do when you say "oscillator".

I'm assuming you took the modular inverse G*(10G)-1 to get the 0.1 result? (And not just did straight up division of the 10 by the 1 Smiley)

I don't really see the point of using G/10 as the generator point for Kangaroo but it's technically possible if you edit the jump table.

I think lostbitcoin need to be show python modify code to can easy compare with C++ code, what want to do
member
Activity: 406
Merit: 47
April 25, 2021, 01:43:57 PM
I don't understand "kangaroos"
 


try read description on  JeanLucPons Kangaroo github

explain about how kangaroos works with images illustration figure

https://github.com/JeanLucPons/Kangaroo


legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
April 25, 2021, 01:30:48 PM
I want to do a test.
Part of the oscillator
0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798, 0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8

I'd like to know that this is the most basic so it shouldn't be modified
For testing purposes, I want to change this public key value and run the kangaroo.

1 = 0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798, 0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8

10 = 0xa0434d9e47f3c86235477c7b1ae6ae5d3442d49b1943c2b752a68e2a47e247c7, 0x893aba425419bc27a3b6c7e693a24c696f794c2ed877a1593cbee53b037368d7
1/10 = 0.1

0.1= 0x8c6154856794fcd5ee79ba8c96b7dd980e289a6b93a52d50dbdb9388a4c75604, 0x8fa03512509c5caa2238ef16720c9b787961e695e5401a6f5df6817ad0032d5c
priv = (81054462466121336796499689506081535496986294995352433067823614199062713046036)

Is this bolded number and point corresponding to G? Because this will make the problem easier to understand. I'm not really sure what you're trying to do when you say "oscillator".

I'm assuming you took the modular inverse G*(10G)-1 to get the 0.1 result? (And not just did straight up division of the 10 by the 1 Smiley)

I don't really see the point of using G/10 as the generator point for Kangaroo but it's technically possible if you edit the jump table.
Pages:
Jump to: