The engine builds and signs each receipt.
One exact byte form of the receipt is hashed and signed with both a classical and a post-quantum signature. Placeholder identities and malformed payloads are refused before anything is signed.
Verification recomputes, never trusts.
The verifier rebuilds the bytes and checks both signatures. A missing or invalid signature fails. Whether a key was later revoked is reported separately, so history stays readable.
The sequence is checked too.
Receipts link to the one before. A gap in a complete stream fails; a partial set is flagged, not failed.
Proof of content, without the content.
Products hand over payloads and get back commitments. Only those go into the receipt, so a receipt can prove a payment response or a firmware image without containing it.
The attacks ship with the engine.
The engine defines the inputs every verifier must refuse: stripped, swapped or reordered signatures, and other known tricks.