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
{{ message }}
Repository navigation
Support for compile-time folding: deprecate? #1164
The original design for the Noir folding interface (iirc by @kevaundray) was that functions could be tagged by the developer and then this signal would be sent to the backend. I call this "compile-time folding". At present, Aztec's architecture does not support using this, rather, Aztec uses "run-time folding". The reason for this is that Aztec's prover must detect which kernels are to be constructed, and then interleave those kernels with the "app functions". The code that does this is written in Typescript code which is downstream of Noir. To handle this, Barretenberg got functions to process a "stack of circuits" assembled in typescript, rather than a single ACIR/witness pair that represents the stack.
Moreover, Aztec's Client IVC scheme requires that additional work be done outside of proving the kernel logic written in Noir. More specifically, the ClientIVC class must: detect which circuits are kernels; append folding verifiers to these; append databus (memory) consistency checks; handle recursive merge verification for correct execution of the Goblin subprotocol. To continue to test the old compile-time folding, it was necessary to either maintain a separate class just to test that functionality which currently has no use case; or continue to support compile-time folding via some hacks. We chose the latter.
We need to assess the future of compile-time folding, and either make a plan for supporting and properly testing it or deprecate it.
Activity
[-]Support for compile-time folding[/-][+]Support for compile-time folding: deprecate?[/+]feat: Client IVC API (#10217)
feat: Client IVC API (#10217)
codygunton commentedon Mar 6, 2025
@vezenovm for visibility
ledwards2225 commentedon May 27, 2025
this has been effectively deprecated