Hi everyone - just a quick update. (1) the URL is broken because the poster put it wrong (there shouldn't be a slash), not because the site is down. And (2) the github repository linked to is now public, not private. Enjoy the challenge. The first should fall fast.
I don't have time to really look at this at the moment (which is a shame because I love these sorts of puzzles). It looks as though it's pretty much a challenge in brute forcing though. I don't know anything about the algorithms used for the key generation but I'm assuming they're already very battle tested (though not infallible) and an amateur, like myself, isn't going to be able to find any sort of kink in the armour.
Maybe I'm going mad but it seems that Challenge 4 is one of the easier ones - there are only about 3000 keys to generate in that case. The final challenge is obviously leagues above that with 128,063,081,718,016 combinations (by my reckoning - I may have miscalculated).
I found a bug, when you generate a wallet you can press the clear and reset button and the generate button remains enabled. This allows the user to generate a wallet using an empty string.
This is using Chrome 31.0.1650.57 m
All tips greatly received : 1Li2Dq9L49mJmCYcEh4n2eSQ9B6eWKCgBv
Busy with challenge #3, which seems a lot harder than challenge #4.. The amount of username combinations are larger, and there is no specification as to if they only mean "submitters" or also commentators. Also there are no username lists available for reddit so you have to parse it from reddit manually...
Again, the rewards seem a bit skewed from the supplied text file challenge #3 got.
For example, did the OP consider that reddit posts can dissapear? Therre is a max amount of pages you can go through at /r/Bitcoin/
Or did they mean from the top posts? Again, hard puzzle.
If you are interested in earning some bitcoin, there is currently a 25BTC bounty to solve a mysterious leveldb corruption issue on Mac OS X. Inquire the devs on #bitcoin-dev on Freenode for more information.
I wrote a wrapper function around the site generator that took a callback so the next string to test would be called recursively. If a public key matched the public key I was aiming for, I dumped the response to the console, otherwise I just called the wrapper function again.
Then I wrote a function that iterated over a list of strings and output an array with all the possible permutations.
Then I just fed an array of the userids of the top 20 users into that function and fed that function into my wrapper.
I opened 5 browser windows and fed each of them 20 userids to take advantage of multiple cores, but I'm not entirely sure that makes sense to do.
Unfortunately that script would take thousands of years to solve the challenge. Whoever does will need to use a much more creative method - probably something circumventing the need to brute-force.
>This passphrase is the username of someone in the Hacker News top 100 karma list as of November 19, 2013. However, we dropped 2 characters from his or her username.
Yes, of course. But structuring it this way encourages users who wouldn't have otherwise done it to do so. We were prompted to build this feature because of how much money has gone through brainwallet with poor passphrases.
Edit: I was so wrong. Just a bad URL: https://keybase.io/warp