This section sketches how a distributed Nova prover might look like and what kind of performance we can expect.
The following can be simulated in a server with N threads. Alternatively, it can be done in a distributed fashion, either in a controlled data center environment, or in a permissionless environment. As we move from a single server to a data center to a permissionless network we can expect more participants/total parallelization capacity, at the cost of higher latency and complexity.
In cases where we don't have
A base level computation involves three folds - aggregated, primary and secondary circuit.
The three folds of the par case are folding the left running instance with the left new instance, that for the right and then folding the result of those two folds.
This merges two nodes where each node has a running instance and new instance.
At the very top of the tree a CompressedSNARK is generated, either by the coordinator or the first available worker.
If we have N execution steps and N workers, we can roughly expect the following overhead:
L
If
To reduce load on coordinator we can also send this to predefined worker, assuming equal load. For example, worker 2 could send its result to worker 1, etc. This assumes that (i) workers are reliable (ii) each worker finishes in about the same time.
Also note that we change field for each level in the tree, which may incur extra overhead.