# Efficient proof system for proving Ethereum full consensus

To enable fast prover time for proving Ethereum full nodes, we use our efficient proof system, deVirgo. deVirgo is the distributed version of the [Virgo](https://eprint.iacr.org/2019/1482.pdf) protocol, and is designed to parallelize the GKR protocol by distributing the computation across multiple machines. With deVirgo, zkBridge can support swift and flexible interoperability between different blockchains without relying on external trust assumptions. zkBridge also uses recursive proof to prove that the previously generated proof by deVirgo proves the corresponding block headers. The proof recursion reduces the on-chain verification cost to about 220K gas on any EVM-compatible blockchain network.

The key insight of deVirgo is to explore the nature that the verification of Ethereum full consensus can be represented as a data-parallel circuit. Suppose there is a data-parallel arithmetic circuit 𝐶 as well as N machines. The deVirgo proof system can divide the data-parallel circuit into N sub-circuits, with each machine computing only one sub-circuit. Verification of Ethereum full consensus is such a data-parallel circuit, and it can contain more than 30k of identical signature verification algorithms and hashes.

Central to deVirgo is a technique to distribute the sumcheck. In deVirgo, the sumcheck protocol is divided into two phases. In Phase 1, each machine processes their own sub-circuit and collectively generates one aggregated proof. The remaining work will be small enough for a single machine, which executes Phase 2 that concludes the distributed sumcheck.


---

# 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.zkbridge.com/proving-ethereum-full-pos-consensus-in-zk/efficient-proof-system-for-proving-ethereum-full-consensus.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.
