Tamper-evident, not tamper-proof
The two words are different promises, and the distinction matters. Tamper-evident means any change is detectable. Tamper-proof means change is structurally impossible. For audit purposes, detectability is the property that matters: an auditor does not need the log to be unchangeable, they need to know whether it was changed.
A log that is tamper-evident in name only, editable with no trace, is just a log. Most agent logs live there today: written by the agent's own runtime, inside the agent's trust domain, with nothing binding the entries to the events they claim to record.
Tamper-proof is the stronger claim
Tamper-proof records add a structural guarantee: the record is minted outside the agent's reach, so the agent never holds the pen. Read the tamper-proof activity log guide.
How tamper evidence actually works
- Append-only entries. New entries are added; old entries are never rewritten in place.
- Each entry commits to the previous one. A hash chain links every entry to its predecessor, so inserting or reordering entries breaks the chain.
- A commitment per entry. SHA-256 over canonical bytes: tool, caller, timestamp, inputs, observed outputs. Change one byte and verification fails at exactly that entry.
- Sequence numbers. Deletion shows up as a visible gap in the sequence, not a clean log.
- Independent verification. Anyone holding the log recomputes the commitments. No account, no API key, no trust in the operator.
Tampering is not prevented. It is made visible. That is the whole idea, and for an auditor it is the only idea that matters.
What counts as evidence, and what does not
A log entry counts as evidence when anyone can recompute its commitment. A JSONL file on the vendor's server that only the vendor can read is a claim, not evidence. Audit any tamper-evident AI agent log with three questions. Who minted this entry? If the answer is the agent or its runtime, it is not tamper-evident. Can I recompute the commitment? If there is no commitment, or checking requires the vendor's private infrastructure, it is trust, not evidence. Would a deleted entry show up? If deletion is silent, the log is a highlight reel.
How AER-1 makes agent logs tamper-evident
AER-1, published as the IETF Internet-Draft draft-zambo-aer1, defines a verifiable execution receipt per tool call:
- Which tool ran and which agent called it
- Execution-time timestamp
- Canonical input and output bytes
- SHA-256 commitment over those bytes
- Sequence position, so a missing record is a visible gap
Chain the receipts and the log is the receipts. Every entry is checkable, every gap is visible, and the agent never held the pen.
Cross-vendor verification is verified, not claimed: the independent AER-1 x Tanilo interop run checked an AER-1 receipt chain against real Tanilo values end to end on an independent implementation. Independent implementations are tracked in the public registry.
Hold a tamper-evident record yourself
The live demo mints a real AER-1 receipt for a real tool call, free, no signup. Try changing one byte and watch verification fail. That is what tamper evidence feels like.