Edit: The question below is summarized by this question:
I sent you [payment] to run computations. How can I make sure you are actually running the computations?
Thanks to user253751 for this
Edit: TL;DR
I'm currently making an open source application that essentially creates a cluster computer over the internet. This computer network which this application will use will be zero-trust. The problem that I'm running into is that I need to make sure that given computer running an application on a cluster is also itself part of a cluster to make sure that it does its fair share of work.
The solution that I had to this problem was to make the computer first find a single computer on the network (the computer's "partner"). The computer will then send over the application to its partner and vice versa. These two computers will then find nodes for the other's application to run on. If a packet of data is not sent back to the computer within a given amount of time, the connection is closed and the node ls are disconnected.
The problem with this is that a computer could masquerade as running another peers application but only run its own application. Are there any ways I could fix the "partner" approach or are there any completely different approaches that will resolve the initial problem.
Thanks in advance!
Note: all connections will be e2e encrypted and application will be run in a safe virtual environment so please don't tell me to fix this.