Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Add clarfiication on the difference in recursive aggregation circuits #4567

Merged
merged 5 commits into from
Mar 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
use dep::std;

// This circuit aggregates two recursive proofs from `double_verify_proof_recursive`.
// Recursive aggregation is a backend-specific process and it is expected for backends
// to attach any extra data they may need (e.g. aggregation objects) to their proofs.
// Whether the proof we are verifying itself contains a recursive proof is expected to be
// a circuit constant by the barretenberg. Barretenberg hides this circuit constant in the
// proof serialization. Thus, we must have separate circuits for verifying a normal proof and a recursive proof
// with two different proof sizes.
fn main(
verification_key: [Field; 114],
// This is the proof without public inputs attached.
//
// This means: the size of this does not change with the number of public inputs.
// This is the proof without user-specified public inputs attached.
//
// This means: the size of this does not change with the number of public inputs unless
// they have been attached by the backend.
proof: [Field; 109],
public_inputs: pub [Field; 1],
// This is currently not public. It is fine given that the vk is a part of the circuit definition.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
use dep::std;

// This circuit aggregates two proofs from `assert_statement_recursive`.
fn main(
verification_key: [Field; 114],
// This is the proof without public inputs attached.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
use dep::std;

// This circuit aggregates two proofs from `assert_statement_recursive`.
#[recursive]
fn main(
verification_key: [Field; 114],
Expand Down
Loading