Palimpsests / PALA-1
Tamper-evident audit log · PALA-1 v1.0PALA-1: a frozen, independently verified audit record format
PALA-1 — Portable Append-only Log for Audit — is a compact binary format for tamper-evident audit trails, frozen at v1.0 on 9 August 2026 and specified byte for byte. Five independent implementations — three by people outside the project at the time of their runs — reproduce it from the specification and test vectors alone.
What a record is
Each record is a 156-byte fixed header, optional TLV extensions, and an optional body. Every header names the hash of the record before it, so records form an append-only chain. The chain hash covers the header only; the body is bound to its header by a SHA-256 digest, so a verifier can check every record without reading — or decrypting — a single body.
Bodies may be encrypted with AES-256-GCM, and an encrypted body can later be erased by destroying its key without breaking the chain around it. Every timestamp carries a trust level, and ordering is carried by sequence numbers, not by the clock.
What is frozen
The wire layout, the published test vectors, and the verification rules. Since the freeze, clarifications explain the text without changing any verifier's answer; they are numbered and kept in one file, so an implementer can tell a decision from an oversight.
Verification runs on record
Each run below reproduced the published values from the specification and test vectors alone, without reading this project's code. The run records — including method disclosures — are in the repository.
| Run | Date | Implementer | Result |
|---|---|---|---|
| #1–#2 | 3–4 Aug 2026 | co-maintainer | chain, completeness and Merkle values reproduced |
| #3 | 5 Aug 2026 | external, unaffiliated | 8 of 9 values blind; all after a published vector fix |
| #4 | 8 Aug 2026 | external, unaffiliated (AI-assisted, disclosed) | all 11 values blind, on the first run — the freeze candidate |
| #5 | 18 Aug 2026 | external at the time of the run | Perl 5, with AES-256-GCM implemented from the NIST specifications and self-tested against NIST vectors |
How the implementations are counted, and when each count held, is kept in the clarifications.
Internet-Draft
PALA-1 is described in an Internet-Draft, draft-sparysh-pala-audit-00 — “PALA-1: A Tamper-Evident Audit Record Format for Constrained and Disconnected Deployments” — posted on 3 September 2026. It is an individual submission with Informational status: not an IETF standard and not a working-group document. It presents the frozen v1.0 format as it is and does not revise it; the specification and test vectors in the repository remain normative.
Verify it yourself
The verification kit gives you the inputs, the task and a run-record template — everything needed to repeat a run from the specification alone. Every installed copy of Palimpsests also checks itself against the same published vectors:
pip install palimpsests
palimpsests pala selftest
Profiles
Profiles add record kinds and tags additively, without touching the core or its vectors. The inference profile, which covers tool calls, incidents and human oversight, is at revision r5.
Licence
The specification, the test vectors and the reference implementation are dedicated to the public domain (CC0). The Palimpsests runtime is Apache-2.0.
About the name
PALA stands for Portable Append-only Log for Audit. Portable, because a log verifies on any machine, offline, with no key. Append-only, because records are only ever added to a hash chain. For audit, because that is what it is for. The format is not tied to any one implementation: Palimpsests is the reference runtime, not the owner.