You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The original version of ClientIvc automatically appended recursive verifiers to each circuit. This was simple but did not allow the proof/vkey witnesses used in noir to be properly connected to those involved in the kernel completion logic in the backend. The new paradigm splits kernel completion (recursive verification, databus consistency checks) and 'accumulation' (folding, merge proving) into two separate components. The kernel completion logic will only be triggered in practice by the presence of verify_proof() calls in the noir kernel circuits.
Since these calls are not currently present in the noir kernel programs, the IVC scheme has been temporarily equipped with an auto_verify_mode which automatically executes the kernel completion logic on every second circuit (i.e. those assumed to be kernels). This allows for thorough testing of the IVC logic until the verify_proof() calls can be added back to the kernels.
Completing the integration of the new IVC scheme involves (at minimum):
adding appropriate verify_proof() calls to noir kernel circuits
logic for constructing dummy oink/PG proofs for use in the verify_proof() calls
logic for constructing valid VKs based on the IVC logic
ensuring that the PG recursive verifier is independent of proof size (similar to Honk rec verifier)
It's likely that the typescript ivc_integration_tests are the best place to begin testing the complete integration.
The text was updated successfully, but these errors were encountered:
Removes auto verify mode from `ClientIVC`. Auto verify mode was a
temporary feature designed to append kernel logic (recursive
verifications etc.) to kernel circuits generated from noir kernel
programs before the `verify_proof()` calls were integrated into those
programs. Now that these calls are present in the kernels (mock and
genuine), the kernel logic is automatically constructed via
ivc_recursion_constraints via the normal `create_circuit()` pathway. If
in the future there is need for a backend which automatically appends
recursive verification logic, it should be implemented in an entirely
separate class.
Note: This change means we can no longer generate an IVC proof from the
noir `fold_*` programs since they do not contain explicit recursive
verifiers. All such tests/flows have been removed.
Closes#1116 (remove
manual setting of is_kernel)
Closes#1101 (remove
auto-verify)
The original version of ClientIvc automatically appended recursive verifiers to each circuit. This was simple but did not allow the proof/vkey witnesses used in noir to be properly connected to those involved in the kernel completion logic in the backend. The new paradigm splits kernel completion (recursive verification, databus consistency checks) and 'accumulation' (folding, merge proving) into two separate components. The kernel completion logic will only be triggered in practice by the presence of
verify_proof()
calls in the noir kernel circuits.Since these calls are not currently present in the noir kernel programs, the IVC scheme has been temporarily equipped with an
auto_verify_mode
which automatically executes the kernel completion logic on every second circuit (i.e. those assumed to be kernels). This allows for thorough testing of the IVC logic until theverify_proof()
calls can be added back to the kernels.Completing the integration of the new IVC scheme involves (at minimum):
verify_proof()
calls to noir kernel circuitsverify_proof()
callsIt's likely that the typescript
ivc_integration_tests
are the best place to begin testing the complete integration.The text was updated successfully, but these errors were encountered: