I'm working on a fork of Kangaroo 256 with my own insights and what I think is the best approach.
I’ll be updating this project in my spare time since I have other obligations.
Just to be clear, I’m not against Kangaroo; I just feel like we need something extra to advance future puzzles. I’m aiming to make it efficient.
I’ve made some changes, and you can start testing them now.
The way to use it stays the same.
This thread is self-moderated because these are my ideas, and I’m not looking for random criticism without solid reasoning. Respectful feedback is totally welcome though.
So far, I’ve only tested it on the CPU since I don’t have a GPU, but I’m open to anyone who wants to contribute.
Kangaroo Algorithm: My Take on It
8 replies 345 views
Could you explain your ideas?
Retrieving ideas from the code is a tedious operation.
omega_bearFull Member
Posts: 116 · Reputation: 780
#3Sep 5, 2017, 06:47 AM
Hi Bro. Can you implement multy pubkey support?
ps thank you fo automatic DP selection ,JLP don share info how to select his "UFO secret" right.
the main idea is to achieve higher precision in success rates by properly selecting the Dp and jumps according to the range, ensuring it is sufficiently random for each range without being too random to stray off the path.
The only case I see feasible for searching for multiple public keys in Kangaroo would be if they were all connected to a single point by means of random additions and subtractions to the target.
In this case I would only do an additional addition or subtraction to obtain the private key.
How do YOU determine the "best" DP? It was already in the original code based on x y and z. How do you plan on determining the "best" (properly selecting according to the range)? And how will you know if a random is "too random"? These comments do not make much sense to me, so, please explain.
The multi pub, via additions, is done with each jump. Think about it.
If you add multiple pubs, then you are slowing down the jumps / machine speed. Cobras has been told this many times, there really are no advantages for multi pub. Meaning, if you add 1,000 pubs to the search, to search at once, then your program speed is slowed down by 1,000. I have a GPU program that can check 1,024 pubs, at once. There was no speed up in time solved.
omega_bearFull Member
Posts: 116 · Reputation: 780
#6Sep 8, 2017, 01:21 AM
Maybe be useful
https://bitcointalk.org/index.php?topic=1306983.msg64710806#msg64710806
Selecting the optimal DP might involve a combination of testing and tuning based on statistical analysis or heuristics that allow predicting success at different ranges. Too high a DP might be overly accurate but inefficient, while too low a DP might be fast but inaccurate.
As for the randomness in the jumps, it is necessary to avoid predictable patterns, but too much randomness can result in significant deviations that negatively affect performance.
As for what I mean by "too random", I mean finding a balance in randomness so that it is enough to avoid predictable patterns but not so much as to move away from the target points within larger ranges.
According to Chaos Theory, sensitivity to initial conditions affects probability, so an inappropriate configuration may seem the best option at low ranges, but this does not mean that it is the best for the puzzle 135, 140...
You are right, it would not be efficient to focus on searches for multiple public keys.
Just some feedback, I have built and run the software with cuda 86. It does seem to run with the gpu but it does not find the match on the smaller challenges (50, 55, 60) the CPU seems to come back with the match reliably.
50
SolveKeyCPU Thread 14: 1024 kangaroos Done: Total time 01s
55
SolveKeyCPU Thread 13: 1024 kangaroos [65.43 MK/s][GPU 0.00 MK/s][Count 2^28.96][Dead 2][08s (Avg 06s)][282.3/321.7MB] Done: Total time 08s
60
SolveKeyCPU Thread 09: 1024 kangaroos [61.55 MK/s][GPU 0.00 MK/s][Count 2^30.94][Dead 1][34s (Avg 25s)][1.1/1.2GB] MB] Done: Total time 36s
I will have a bit of a look around when I get some more time.
Thanks for sharing your logs. I'm working on improving it to achieve a 50% higher success rate and optimizing it. Once I get my hands on a GPU, I'll start working on porting it to the GPU version.
Related topics
- Pollard's Kangaroo Pool for tackling the #130 Puzzle 11
- Bitcoin Core displaying coins (UTXOs) in a new tab 13
- Are you in favor of BIP-110? Let's get a Bitcoin poll going. 0
- Erlay seems to have some issues here’s a better proposal for a bitcoin protocol without invites 3
- New Optional Hourglass Implementation is Live 3
- Ways to earn some sats by contributing to bitcoin core development 5