Verify run receipts offline
For: cluster operators and plugin authors.
Checking them offline
oz0 evidence export puts every block the period's entries name in the bundle (envelopes/blocks.jsonl), with their parents back to block 0. oz0 evidence verify then checks, without the cluster:
- each block's hash and its link to the block before it;
- that each hop only narrows its parent: a widening is a finding, and the bundle fails;
- that each audited model call, tool call, child job and harness session of a version 3 entry names an envelope the bundle holds, with a complete chain to the subject it ran for, and that the envelope is the entry's job's or one of its job tree's (
envelope_mismatchotherwise); - that each model call, tool call and harness session names a call binding of the right form.
It reports the share of audited actions with a complete chain (the target is 100 %), how many of those chains end at a person or a team, and how many bound actions name a binding. A job that started before envelopes, and a call without a binding (an operator's, or a node's older runtime under when-present), count in the report and are no finding.
The verifier cannot check the blocks' MACs (only edges hold their key, and they check them every time they read a block), and it does not recompute the bindings' digests; the entries' hashes cover them, and the bundle's signed manifest covers the blocks it carries.
What a complete chain proves about who is accountable for an action is a question for your counsel, not something the platform decides.
Further reading
- Delegation and identity: how this maps to the requirements of a delegation framework, and what is still planned.
- The envelope's fields, their encoding and the decisions behind them.
- Reservations, settlement, retirement and the overshoot bound.