Skip to content

chore(acir)!: Move is_recursive flag to be part of the circuit definition#4221

Merged
vezenovm merged 34 commits into
masterfrom
mv/is-recursive-on-circuit
Feb 1, 2024
Merged

chore(acir)!: Move is_recursive flag to be part of the circuit definition#4221
vezenovm merged 34 commits into
masterfrom
mv/is-recursive-on-circuit

Conversation

@vezenovm

@vezenovm vezenovm commented Jan 25, 2024

Copy link
Copy Markdown
Contributor

Resolves #4222

Currently in order to specify whether we want to use a prover that produces SNARK recursion friendly proofs, we must pass a flag from the tooling infrastructure. This PR moves it be part of the circuit definition itself.

The flag now lives on the Builder and is set when we call create_circuit in the acir format. The proof produced when this flag is true should be friendly for recursive verification inside of another SNARK. For example, a recursive friendly proof may use Blake3Pedersen for hashing in its transcript, while we still want a prove that uses Keccak for its transcript in order to be able to verify SNARKs on Ethereum.

However, a verifier does not need a full circuit description and should be able to verify a proof with just the verification key and the proof. An is_recursive_circuit field was thus added to the verification key as well so that we can specify the accurate verifier to use for a given proof without the full circuit description.

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

No open projects
Archived in project

Development

Successfully merging this pull request may close these issues.

Remove is_recursive flag

5 participants