I am curious as to how software developers solved the problem of having clients in a distributed computing network working on a particular problem have answers verified. I
ll relate this to what I am doing. I am making a distributed client/server program which works to factor semiprimes using basic trial division. The server sends each client a trial interval to check and see if the answer is in that interval.
The problem though is that after my server sends out the computational request for that interval to the particular client it waits for a response represented by a 'f' for failed and 's' for success depending on if the client found the factor in that interval. But what is stopping a malcious user from writing a program which plays the protocol to simply send an 'f' directly after the server sends its request making the server think the client legitametly checked the interval when in fact it didnt and the answer could have been in that interval screwing over the entire process. In a world where malicious hacking exists you can't exactly trust all clients to be there to help and I am wondering how professionals combated this problem.