I refer to 5.Cloud computing in the Further Application section of the Ethereum whitepaper, and I wonder how this can be achieved in a decentralized way.
For example, if I have a task that I want to distribute to different nodes and wait for the results, without using an oracle to verify the results, an approach I can think of is to distribute the same task to multiple nodes and compare the collected results, and then take the majority of the answers as the correct answer and reward the nodes giving the correct answer.
If I have to code this logic in a smart contract, I will have to write a contract method for nodes to return the results, and specify the logic of verifying the results in the contract. My concern is, since the blockchain is open and transparent, when a node wants to return the result and waits for reward, the result returned will essentially by visible to all and other nodes can therefore "steal" the result and call the same method with that result without actually doing the computation task.
So how exactly can cloud computing be distributed, verified and rewarded in a decentralized manner when all results are open?
I have also looked into some other posts for ideas, such as Using ethereum to fund distributed cloud computations? and Verifiable computing?. But it seems to me that the problem is really that there is no way to encrypt the results returned from running a computation task and thus prevent others from stealing it without actually doing the work.
Any advice or comment will be appreciated.