Patent ID: 7827596

Claim:
An apparatus comprising: at least one processor; a memory coupled to the at least one processor; a public distributed computing mechanism residing in the memory and executed by the at least one processor, the public distributed computing mechanism comprising: a work unit send mechanism that sends a selected work unit to a client computer system, the selected work unit comprising work unit data that is operated on by client code on the client computer system, wherein the client code computes a first partial result, a second partial result and a completed result for the selected work unit; and a work unit receive mechanism that receives the first partial result, the second partial result and the completed result from the client computer system and performs cryptographic pseudo-random selection of acceptance criteria for the completed result, the acceptance criteria comprising: (A) accepting the completed result as valid; (B) assigning the selected work unit to a trusted client computer system to compute to the first partial result, and comparing the first partial result from the client computer system to the first partial result from the trusted client computer system, and when the first partial result from the client computer system and the first partial result from the trusted client computer system match, accepting as valid the completed result from the client computer system, and when the first partial result from the client computer system and the first partial result from the trusted client computer system do not match, performing a first selection of rejection criteria for the completed result; and (C) assigning the selected work unit to the trusted client computer system to compute to the second partial result, and comparing the second partial result from the client computer system to the second partial result from the trusted client computer system, and when the second partial result from the client computer system and the second partial result from the trusted client computer system match, accepting as valid the completed result from the client computer system, and when the second partial result from the client computer system and the second partial result from the trusted client computer system do not match, performing a second pseudo-random selection of the rejection criteria for the completed result.