I like the concept of untrusted distributed computing.
Imagine that you can pool your computer into the cloud, – and when you go offline, you can continue to have tasks running based on the resources you pooled into the cloud.
Is this possible in a secure way? And what would such a cloud computer look like conceptually?
There is no central authority. The way to be sure that there are no cheating or fake computation is to let the nodes check eachother, and then we can get a statistical guarantee that the computation is correct, when there are enough nodes.
Nodes has unpredictably deterministic pseudorandom addresses, – and all addresses are found in the beginning of each era. This makes adresses random.
A neighbourhood is collection of nodes with neighbour addresses.
Computations are executed on all nodes in a neighbourhood. The nodes cannot cheat as they check eachother.
Only nodes with a minimum amount of credits can execute computations. This way we can make a penalty, if a node tries to cheat.
Nodes can earn credits via computations, or by checking results / running the cloud.
The nodes keeps track of a distributed block-chain-like datastructure, which contains
- (timestamp, node/task-id) confirmed events
- (task/node-id, timestamp) confirmed events
Notice that data structure may be incomplete, – online nodes has to make their relevant data available (including path), but unused parts may expire.