barretenberg
barretenberg copied to clipboard
Only create witnesses for VK and pub inputs in ivc recursion constraint
Currently an ACIR ivc recursion constraint requires witnesses corresponding to the VK, the public inputs, and the proof (without public inputs). The VK and public inputs are genuinely known in the noir program at runtime but the proof is not (since computing the proof requires running the full IVC up to that point). Currently we create dummy witnesses for the proof anyway then link them to the genuine witnesses in the backend. This isn't necessary, requires knowledge of the proof size, and could be misleading. Instead, only create (genuine) witnesses for the VK and public inputs and not the proof.