Skip to content

feat!: verifying civc in tx base#16713

Merged
LeilaWang merged 1 commit intomerge-train/barretenbergfrom
lw/removing_tube
Sep 9, 2025
Merged

feat!: verifying civc in tx base#16713
LeilaWang merged 1 commit intomerge-train/barretenbergfrom
lw/removing_tube

Conversation

@ledwards2225
Copy link
Contributor

@ledwards2225 ledwards2225 commented Sep 2, 2025

Remove the tube and verify hiding_kernel_to_rollup directly in private tx base rollup.

Create a public tube circuit in noir that verifies hiding_kernel_to_public. The public tube proof is verified in the public tx base rollup.

Remove the fake tube vks and use the pre-generated vks in noir-protocol-circuit for verification. All circuits now ensure that the vks are in the vk tree.

Change ClientIvcProof.ts to contain proof fields instead of buffer. The proof fields will be used by the orchestrator to construct the private inputs to be recursively verified in private base or public tube.

@LeilaWang LeilaWang changed the title Update mock circuits. feat!: verifying tube in tx base Sep 8, 2025
@LeilaWang LeilaWang marked this pull request as ready for review September 8, 2025 08:32
@LeilaWang LeilaWang changed the title feat!: verifying tube in tx base feat!: verifying civc in tx base Sep 8, 2025
@LeilaWang LeilaWang requested review from alexghr and ludamad September 8, 2025 14:30
Copy link
Contributor

@alexghr alexghr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The typescript changes look good to me! I'd be interested to see how proving performance changes because the tube proof was run in parallel with the AVM proof. 👍

Does the tx proof size change at all?

Copy link
Contributor Author

@ledwards2225 ledwards2225 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

} else if (flags.verifier_type == "standalone") {
write_standalone_vk(bytecode_path, output_path);
write_standalone_vk(bytecode, output_path);
} else if (flags.verifier_type == "standalone_tail") {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit but this should probably be standalone_hiding

@ludamad
Copy link
Collaborator

ludamad commented Sep 8, 2025

Note we may want to target merge-train/barretenberg with this as I have done some changes relevant here with the write_vk changes. Shouldnt have issues tho

@LeilaWang LeilaWang changed the base branch from next to merge-train/barretenberg September 8, 2025 17:13
@LeilaWang LeilaWang force-pushed the lw/removing_tube branch 2 times, most recently from de0db85 to 00f4577 Compare September 9, 2025 09:46
@LeilaWang LeilaWang added the ci-full Run all master checks. label Sep 9, 2025
@LeilaWang
Copy link
Contributor

@alexghr The public base added more than 10s when verifying civc in it. So I created a noir circuit for public tube so that we can still prove them in parallel.

The private base is still verifying the civc, because the overall time is less:
33s(civc in base) vs 23s(tube) + 17s(tube in base)

But let me know if we prefer to prove them separately, I can add a private tube circuit.

The tx size is smaller now because the size of ClientIvcProof has reduced:
Proof in private-only tx: 97993 -> 92128 (2879 fields)
Proof in public tx: 132775 -> 124864 (3902 fields)

@LeilaWang LeilaWang merged commit 3124936 into merge-train/barretenberg Sep 9, 2025
6 checks passed
@LeilaWang LeilaWang deleted the lw/removing_tube branch September 9, 2025 11:39
github-merge-queue bot pushed a commit that referenced this pull request Sep 9, 2025
BEGIN_COMMIT_OVERRIDE
feat: ZK CIVC  (#16687)
feat!: verifying civc in tx base (#16713)
END_COMMIT_OVERRIDE
federicobarbacovi added a commit that referenced this pull request Sep 19, 2025
Clean up of tube-related files and functions following the move of the
tube to Noir (see
#16400 and
#16713)

Closes AztecProtocol/barretenberg#1523
fcarreiro pushed a commit that referenced this pull request Sep 22, 2025
Clean up of tube-related files and functions following the move of the
tube to Noir (see
#16400 and
#16713)

Closes AztecProtocol/barretenberg#1523
mralj pushed a commit that referenced this pull request Oct 13, 2025
Remove the tube and verify `hiding_kernel_to_rollup` directly in private
tx base rollup.

Create a public tube circuit in noir that verifies
`hiding_kernel_to_public`. The public tube proof is verified in the
public tx base rollup.

Remove the fake tube vks and use the pre-generated vks in
`noir-protocol-circuit` for verification. All circuits now ensure that
the vks are in the vk tree.

Change `ClientIvcProof.ts` to contain proof fields instead of buffer.
The proof fields will be used by the orchestrator to construct the
private inputs to be recursively verified in private base or public
tube.

Co-authored-by: Leila Wang <leizciw@gmail.com>
mralj pushed a commit that referenced this pull request Oct 13, 2025
Clean up of tube-related files and functions following the move of the
tube to Noir (see
#16400 and
#16713)

Closes AztecProtocol/barretenberg#1523
ludamad pushed a commit that referenced this pull request Dec 16, 2025
Remove the tube and verify `hiding_kernel_to_rollup` directly in private
tx base rollup.

Create a public tube circuit in noir that verifies
`hiding_kernel_to_public`. The public tube proof is verified in the
public tx base rollup.

Remove the fake tube vks and use the pre-generated vks in
`noir-protocol-circuit` for verification. All circuits now ensure that
the vks are in the vk tree.

Change `ClientIvcProof.ts` to contain proof fields instead of buffer.
The proof fields will be used by the orchestrator to construct the
private inputs to be recursively verified in private base or public
tube.

Co-authored-by: Leila Wang <leizciw@gmail.com>
ludamad pushed a commit that referenced this pull request Dec 16, 2025
Clean up of tube-related files and functions following the move of the
tube to Noir (see
#16400 and
#16713)

Closes AztecProtocol/barretenberg#1523
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-full Run all master checks.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants