03 — Auditing · Failure mode

Unsound recursion and aggregation boundaries

Each layer is individually correct but their composition is not: a value committed in the inner proof is left unconstrained on an early-halt path, or the outer layer fails to check that the inner execution actually terminated. Publicly disclosed zkVM forgeries have come from exactly this pattern — two individually minor gaps at a recursion boundary combining into universal proof forgery.

Mitigation

Treat every recursion and aggregation boundary as its own review target with its own written contract: what the inner proof guarantees, what the outer layer must independently re-check, and what happens on abnormal termination. Do not assume a boundary is covered because both sides were reviewed.

Cite this page
MarketComp (2026). Unsound recursion and aggregation boundaries. The ZK Field Manual (Version 1.3). MarketComp. https://zkpick.com/audit/failure-modes/unsound-recursion-and-aggregation-boundaries/
@misc{zkfieldmanual-unsound-recursion-and-aggregation-bounda,
  title        = {Unsound recursion and aggregation boundaries — The ZK Field Manual},
  author       = {MarketComp},
  year         = {2026},
  version      = {1.3},
  howpublished = {\url{https://zkpick.com/audit/failure-modes/unsound-recursion-and-aggregation-boundaries/}},
  note         = {Accessed: YYYY-MM-DD}
}