The idea in plain English: A hash function is like a meat grinder — you put any input in (a word, a sentence, anything), and it grinds it into a fixed-length output that looks random. The output (called a "hash") is always the same for the same input, but even a tiny change in the input produces a completely different hash. This puzzle gives you a prefix — a few hex characters like "e7b0" — and you need to find a string whose hash starts with those characters. The only way is to try strings until you find one that works: "aaaaaa", "aaaaab", "aaaaac"... until you get lucky.
Why this really exists: This is exactly how Bitcoin mining works! Bitcoin miners try billions of inputs per second looking for a hash starting with a certain number of zeros. The more zeros required, the harder it is (and the more computing power you need). This is called proof-of-work, and it's also how email spam filters work (Hashcash) — you prove you spent computing effort before sending an email.
Prefix to find: "e7b0" (that's 4 hex chars = 16 bits)
The longer the prefix, the harder it gets. Each extra hex character multiplies the difficulty by 16.
1. Read the target prefix from the puzzle data
2. Start with a counter = 0 (or any starting string)
3. Compute SHA-256 of the counter as a string
4. Convert the hash to hex — check if it starts with the prefix
5. If yes: submit that counter as the answer. If no: increment the counter and repeat
⚠️ In the website, the prefix is capped at 4 hex chars (16 bits) to keep it solvable in under 60 seconds. A longer prefix would take hours on a CPU.
| Hex chars | Bits | Avg attempts | Time (CPU) |
|---|---|---|---|
| 2 | 8 | ~256 | instant |
| 3 | 12 | ~4,096 | ~0.1s |
| 4 | 16 | ~65,536 | ~1-5s |
| 5 | 20 | ~1 million | ~30s |
| 6 | 24 | ~16 million | ~8 min |