# Multi Prover

Citrea uses ZK proofs to prove the validity of the state transitions. Full nodes verify the batch proofs produced by the prover. These batch proofs are also used to generate Light Client Proofs for the BitVM-based bridge Clementine.

An idea to make the proof generation process more resilient is to implement a multi-prover system. This approach increases the security as it reduces the chance of a single point of failure algorithm-wise in case there's a vulnerability in a proof system (e.g. soundness).

Currently Citrea has a template multi-prover system implemented using [RISC Zero](https://risczero.com) and [SP1](https://docs.succinct.xyz/docs/introduction). You can check the initial guest code implementation from [here](https://github.com/chainwayxyz/citrea/tree/nightly/guests).

As of Citrea Testnet, SP1 prover is not active, and we are only utilizing RISC Zero. After the mainnet launch, we are planning to activate SP1 prover with additional prover implementations for multi-prover system, with a possible SGX-extension.

***


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.citrea.xyz/future-research/multi-prover.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
