In a ZKP (Zero Knowledge Proof) system, multiple types of proofs can be generated for the same proving task. The verifier can only verify a state transition when all the generated proofs are verified. The types of proofs include ZK-SNARK, ZK-STARK, SGX, and so on.
Vitalik proposed the multi-prover design in a speech.
Especially, SGX proof is a type of proof guaranteed by hardware. It eliminates the need for complex proving computations using special hardware to execute code and ensure honest computation securely.
To run SGX, the prover must have a dedicated machine with SGX support.
It's because ZK-EVM or ZK-VM won't be bug-free for a long time. The multi-prover system can avoid the error state being mistakenly verified by error-proof. Requiring and verifying all different proofs guarantees a much safer condition.
Here is a picture to illustrate the meaning of multi-prover.
Prover operators then face a significant challenge. The ZKP project needs provers to generate multiple proofs simultaneously (to save gas fees) or at different times (like Taiko’s progressive hybrid rollup design) for the same block. It becomes difficult for individual or institutional operators to have ZK and SGX prover capability.
ZKPool can act as a super-prover by aggregating proofs from independent SGX and ZK provers and then sending the aggregated proofs to the verifier.
Therefore, each individual can use either ZK provers or SGX provers exclusively.
Furthermore, in a multi-prover system, by comparing different proofs off-chain before submitting, we can save on-chain costs. The decentralization of off-chain multi-prover benefits such honest comparison.
ZKPool aims to support different Zero-Knowledge Proof (ZKP) projects. It enables using different kinds of provers to generate proofs for various projects, thereby maximizing hardware utilization.
This is how ZKPool benefits the multi-prover based ZK-rollup.
We are firmly convinced that a multi-prover approach is crucial for the development and success of the ZK-rollup ecosystem and other ZK-related applications, such as ZK-bridge and ZK-oracles.
Taiko's progressive hybrid rollup design: https://github.com/taikoxyz/taiko-mono/pull/14705
Multi-prover introduction from Taiko: https://taiko.mirror.xyz/Kx1Mp4WJjd83K1KDEwp1pM7xi9QmpSahxJg3S_N7NE4
Vitalik's proposal on "Multi-Prover for Rollup Security,": https://www.youtube.com/watch?v=6hfVzCWT6YI