Capture
Sensor streams are captured and deterministically segmented into fixed windows (“Segments”).
Inference trace
When analytics are used, inference artifacts include model identity and execution context identity and are bound to the exact input Segments consumed. A verifier traces outputs back to segment digests and timestamps and flags context mismatches.
Commitment
For each Segment, a cryptographic digest is computed during capture and chained to the prior Segment. A signed Manifest records boundaries, digests, continuity links, time source metadata, and key identifiers.
Packaging
Segments, the signed Manifest, provenance objects, and verification material are assembled into a .loko package suitable for transfer and case attachment.
Offline verify
On an air-gapped machine, a verifier recomputes digests, validates chain continuity, validates Manifest signatures, detects missing content, and produces a pass/fail report with specific error reasons.
Deterministic replay
A replay client reconstructs review timelines deterministically from Manifest boundaries. Independent machines reproduce identical segment boundaries and discontinuity markers. Replay and export events are recorded in an integrity-protected audit and handling ledger.
# .loko package example
<session_id>.loko/
manifest/
manifest.json # signed boundaries, digests, continuity links, time source, key IDs
manifest.sig
segments/
seg_00000.mkv # fixed window media segment
seg_00001.mkv
...
provenance/
capture_context.json # device, config, time source declarations
inference_context.json # model + runtime identity when analytics are used
verification/
public_keys/ # verification material for signature validation
verifier_report.json # pass/fail + explicit reasons
ledger/
handling_ledger.json # replay/export/policy outcomes, integrity protected
{
"package_id": "…",
"verified_at": "…",
"verifier_identity": "…",
"result": "PASS",
"checks": {
"manifest_signature": "PASS",
"segment_digests": "PASS",
"chain_continuity": "PASS",
"missing_content": "PASS",
"time_source": "DECLARED",
"key_policy": "OK"
},
"replay": {
"boundary_hash": "…",
"discontinuities": []
},
"errors": []
}