Skip to main content

WAI Extension: Transparency Emission

Mirrored from the canonical text at commit 117bad22 ().

Status: Draft. Adds an external encoding for WAI receipts so a party with no WAI tooling can check them, and a registration profile so a receipt’s existence is independently witnessed. Strictly additive: the JWP receipt chain is unchanged, and nothing here replaces it. Keywords MUST, MUST NOT, SHOULD, MAY are RFC 2119/8174.

1. What is actually missing

Not verifiability. An Ed25519 signature over a group Merkle root is checkable by anyone holding the publisher key, and jwp-receipts §3 specifies exactly how. Three properties are missing, and none of them is a signature property:

These are log properties, not envelope properties, and they are why this extension exists.

2. The move, and its shape

The family already owns both halves: a transparency log with consistency proofs exists, and JCR-1 (deterministic CBOR + COSE_Sign1, RFC 9052) is already the canonical receipt envelope across sibling standards. What nothing in the family has is a standardised external encoding that an outside auditor’s off-the-shelf tooling can verify with no bespoke verifier.

So the sequence is: bring WAI’s receipts onto JCR-1 as its siblings already are, then emit in the standardised encodings on top.

3. What is registered, and what is not

SCITT registers per-artifact Signed Statements over an HTTP API. WAI emits per-object receipts at media-group cadence. These cadences do not match, and forcing them together would put a registration round-trip in the per-object path.

The checking party is the Relying Party in the terminology of the SCITT architecture; this extension uses that term rather than coining another.

4. The hash-algorithm constraint

RFC 9995’s payload_hash_alg takes an identifier from the COSE Algorithms registry. BLAKE3 — which jwp-receipts §2.1 uses throughout — does not appear in that registry.

This is a real constraint, not a detail to be waved through:

Registering BLAKE3 in the COSE Algorithms registry is a separate action with its own process, and this extension does not assume its outcome.

5. Stage discipline

The referenced work is at mixed maturity, and an implementation MUST NOT present any of it as more settled than it is:

documentstatus
SCITT architecture (RFC 9943)Standards Track, published
COSE Receipts (RFC 9942)Standards Track, published
COSE Hash Envelope (RFC 9995)published
SCRAPI (registration/resolution API)approved, in the RFC Editor queue
a concrete log profileWorking Group Last Call — not ratified

An implementation MUST NOT describe the log profile as ratified, and SHOULD state which profile it registered against, since a Relying Party cannot check a proof without knowing the log’s rules.

6. What this does not do