scroll-tech/scroll-prover

The technical details of how Scroll-prover works?

vosibop opened this issue · 0 comments

  1. Zero-knowledge proofs: Scroll-prover utilizes techniques from cryptography called "zero-knowledge proofs" to verify the validity of transactions. These proofs ensure that transactions executed on Scroll were valid without revealing their actual data. Essentially, the prover convinces the verifier (a smart contract on the Ethereum mainnet) that everything happened correctly without divulging sensitive information.

  2. zkEVM circuits: To achieve this, Scroll-prover translates transactions into special mathematical structures called "circuits." These circuits encode the logic and rules that govern the transactions, essentially mimicking the Ethereum Virtual Machine (EVM) execution.

  3. Proving process:

Circuit generation: Once translated, Scroll-prover generates "witness data" which acts as proof that the circuit executed correctly. This data includes intermediate states, memory details, and other information specific to the transactions.
Proving: The prover then performs complex cryptographic computations on the witness data to generate a concise "proof" – a short string of data that mathematically convinces the verifier of the circuit's validity.
Verification: The proof is sent to the mainnet, where the verifier executes the circuit itself (without the original witness data) and compares the outcome with the provided proof. If they match, the transactions are deemed valid and accepted on the mainnet.
4. Optimizations: Scroll-prover employs various optimizations to improve efficiency and scalability:

Batching: Proofs are aggregated for multiple transactions, reducing gas costs and communication overhead.
Hardware acceleration: Specialized hardware like GPUs or FPGAs can accelerate proof generation, further increasing speed.
Circuit delegation: Complex circuits can be broken down into smaller, more manageable ones, improving efficiency.
Further exploration:

If you're interested in diving deeper, here are some resources:

Scroll Technical Blog: https://scroll.mirror.xyz/
Scroll Prover Github Repository: https://github.com/scroll-tech/scroll-prover
Zero-knowledge Proofs Explained: https://www.technologyreview.com/