Patent ID: 7600255

Claim:
A method of preventing an attack on a network, the method comprising the computer-implemented steps of: receiving a request to access a resource from a user, wherein the request includes an accumulated work value; wherein the accumulated work value represents a total amount of work previously performed by the user and accumulated across multiple prior requests by the user; receiving a prior keyless user identity value H(i+1,x) in the request comprising a one-time password, wherein H(i+1,x) is computed by the user as a hash chain from a non-shared user secret (x), wherein H(n,x)=h(H(n−1,x)), wherein n>0 and H(0,x)=x, wherein function h is a one-way function that is difficult to invert; receiving a current user identity value H(i,x); verifying that the keyless user identity value properly identifies the user only upon determining that h(H(i,x))==H(i+,x); wherein h comprises a SHA-1 hash algorithm; wherein n is between 10^4 and 10^6; determining whether the accumulated work value exceeds a required work threshold value, and if not, requiring the user to perform a quantity of work as a condition for accessing the resource; providing the user with access to the resource; determining an amount of accumulated work output value to provide to the user based on a volume of data communicated between the resource and the user; and wherein the accumulated work output value represents a second amount of work performed by the user; providing the accumulated work output value to the user.