Team RBI Programming Contest Entry

Summary & Stats

Thanks! You are helping us win a cloud computing contest. Depending on your browser, you may be helping us a lot or a little, but every bit of help is appreciated and the longer you keep this page open, the more you're helping.

How are you helping? We are looking for a sequence of twelve words from a 1000 word dictionary that, when hashed, is bit-wise closest to a hash of a challenge phrase.

You've Processed 0 permutations
Processing Rate 0 per second
Your Best Distance (Lower is better, like in golf.) 160
Best Distance We've Found (Lower is better, like in golf.)

In our preliminary tests Google Chrome has been able to handle bit-wise operations 2 to 3 times faster than Firefox and Safari. We didn't even bother testing in Internet Explorer.

This is the trend of your processing rate over the past minute or so.

Because the SHA-1 hashing algorithm has an output of 160 bits, we see a bell curve in the distribution of the Hamming distances found between our permutations and the challenge hash. The curve peaks at 80, the mean distance between any two SHA-1 hashes. Most likely the lowest Hamming distance you'll find will be somewhere in the 45 to 50 range, but you might get lucky.

This is the distribution of the SHA distances you've found.

We think that most people will be approaching this contest from a different angle. We think that most people will boot up as many servers as they can and try out their best number-crunching algorithm. Our approach is slightly different and in doing so we answer what we think is a very interesting question: How many volunteers — how viral does this site need to go — to beat out a handful of dedicated, number-crunching servers?

About the Contest

The contest is being put on by Engine Yard. On the morning of July 20th we were given a 1000 word dictionary and a challenge phrase. We are looking for a sequence of twelve words from the 1000 word dictionary that, when hashed, is bit-wise closest to the SHA-1 hash of the challenge phrase.

We have until 6:00pm Pacific Time to find the closest hashed phrase (by closest they mean the smallest Hamming distance), which we must submit on Twitter as a tweet to @engineyard. You can read more about the contest over at Engine Yard.

Our Approach

When this page loads our server hands off twelve random words the client (you). We then have your browser start processing permutations on those twelve words. There are about 100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 different permutations for every twelve word set, so we don't expect any one browser to calculate every permutation in their set. If we find a SHA-1 hash that has a lower Hamming distance than the best one we've found, we send the phrase and the hash back to the server.

Our hope is that with enough people having this page open and running, we will be able to process more permutations than people who are booting up a handful of dedicated number-crunching machines and testing out their best algorithm.

Who We Are

We are Ray Morgan, Bryce Murry and Ian Christian Myers (RBI), three awesome guys who are passionate about the web and technology. All of us work and play at Zappos, where Bryce is a Software Engineer, Ray is a Lead Front-End Developer and Ian is a Front-End Developer.