miden-core-lib 0.33.0

Miden VM core library
Documentation
1
2
3
4
5
6
7

## miden::core::sys::pvm
| Procedure | Description |
| ----------- | ------------- |
| load_air_context | Loads the fixed PVM relation context.<br /><br />Stores the ten AIR heights in `ChipletAir::all()` order, their maximum, the proof-order tag,<br />relation commitments, and fixed OOD/query-row addresses.<br /><br />Advice order: [h0, ..., h9].<br />Inputs:  [...]<br />Outputs: [...]<br /> |
| request_proof | Requests and stages a PVM proof package for the deferred root.<br /><br />This procedure does not authenticate the root or enforce call order. The caller must first<br />obtain `D` from a successful verifier or another trusted part of its own computation.<br /><br />The event exposes the PVM verifier root followed by `D` to the host. Async hosts may suspend<br />execution while they obtain the proof and return advice-map and Merkle-store mutations. Once the<br />host returns, this procedure fetches the proof stream by<br />`sys::build_proof_request_key(verifier_root, D)` and<br />stages it on the advice stack. The response remains untrusted until the caller invokes<br />`pvm::verify_proof` against the unchanged root.<br /><br />The core library deliberately provides no default handler because the host must supply the<br />deferred state or another witness source for `D`.<br /><br />Fails if the host has not populated the advice map under<br />`build_proof_request_key(verifier_root, D)` by the time its event handler returns.<br /><br />Inputs:  [D]<br />Outputs: [D]<br /><br />Invocation: exec<br /> |
| verify_proof | Verifies a lifted-STARK proof for the ten-chiplet PVM relation and returns the common security<br />descriptor.<br /><br />The deferred root is the relation's four public base-field values, supplied by the caller as the<br />obligation being settled. The advice stream provides the proof data, four security parameters,<br />and AIR heights. Successful verification authenticates the root. The returned descriptor<br />combines those transcript-bound parameters and the maximum AIR height with relation-shape<br />constants compiled into this verifier. The caller passes all twelve elements unchanged to<br />`stark::security::compute_conjectured_security_level`, then applies its own acceptance policy.<br />Changing only the formula therefore changes the estimator root without changing this verifier's<br />root. A change to the proof format or to any value supplied by the verifier still changes this<br />procedure.<br /><br />This verifier accepts 7..=150 queries, 0..=31 query/DEEP/folding grinding bits, fixed zero<br />lookup grinding, and AIR log trace heights from each relation-specific minimum through 29; the<br />fixed BytePairLut height makes the returned maximum log height 16..=29.<br /><br />Fails if the advice does not encode a supported PVM proof, or if any transcript, opening,<br />commitment, constraint, or public-root check fails.<br /><br />`security_descriptor(12)` denotes the twelve output fields listed below, with `lookup_pow_bits`<br />at the top of the stack.<br /><br />Verification runs in an isolated execution context, preserving caller memory and stack elements<br />below D.<br /><br />Inputs:  [D, ...]<br />Outputs: [lookup_pow_bits, num_composed_constraints, max_constraint_degree, num_deep_terms,<br />max_message_width, num_lookup_boundary_terms, lookup_fractions_per_row,<br />log_max_height, num_queries, query_pow_bits, deep_pow_bits, folding_pow_bits, ...]<br /><br />Invocation: exec<br /> |