Disclaimer this a more technical post that requires some prior knowledge of how Halo2 operates, and in particular in how its API is constructed. For background reading we highly recommend the Halo2 book and Halo2 Club.
A common design pattern in a zero knowledge (zk) application is thus:
A prover has some data which is used within a circuit.
This data, as it may be high-dimensional or somewhat private, is pre-committed to using some hash function.
The zk-circuit which forms the core of the application then proves (para-phrasing) a statement of the form:
"I know some data D which when hashed corresponds to the pre-commited to value H + whatever else the circuit is proving over D".