There are a lot of projects out there that rely on the public sphere to process data for them, but I do wonder how they ensure that every computer participating has processed the data properly.
The first one that comes to mind is Bitcoin mining. I know that the Bitcoin network has a mathematical way of verifying that the data has been processed correctly (I'm not going to go into that here).
But, when I think about other projects, such as the SETI@home project, I often wonder how they know that every participant is behaving correctly; how is it that they know the data was actually processed, or that the results being returned are accurate. The only validation I can think of would require them to also process the same data, meaning that the distributed model is moot.
The game of connect four has already been solved, but let's say that someone wanted to develop a project that solved the game of connect four using a distributed public network (the internet). The server would send down a large chunk of data to one machine to process, for example it would send down a starting point and the machine would have to process all possible boards with a depth of 5 and use a predetermined formula for scoring, then return the best move to the server.
- How does the server know that this was the best move using the algorithm?
- How do we guarantee that there isn't a rogue actor that is consuming the service and replacing the predetermined scoring algorithm with a junk one that yields the incorrect best move?