It turns out I don't need an answer to the question I asked earlier - a
special case can be used.

The problem is to find a form of hashcash which can't be paralellized.

Alice wants to force Bob to do w 'units' of computation, in such a way
that he can't benefit from parallel machines and she can verify he
actually did the work without redoing it all herself.

There is a standard large prime p which it's hard to compute square roots
modulo which Alice and Bob have agreed on beforehand.

Alice picks some random number s, and tells Bob 

s + 1/s (mod p)

Bob can't compute s because that would involve taking a square root. She
then challenges him to compute f(w) where 

f(n+1) = (f(n))^2 - 2 (mod p)

and 

f(0) = s + 1/s (mod p)

(Ten points to anyone who can figure out where this is headed without
reading the rest.)

Alice is capable of computing f(w) quickly using the formula

f(n) = s^(2^n) + s^(-(2^n)) (mod p)

Which can be easily proven by induction.

Not only does this technique prevent paralellization, but it sets the
amount of work Bob has to do very precisely.

A surprisingly simple result.

-Bram Cohen


Reply via email to