Skip to content

Add optional event provenance and tamper-evidence guidance (#315) - #320

Open
MarkovianProtocol wants to merge 1 commit into
cdevents:mainfrom
MarkovianProtocol:event-provenance-guidance
Open

Add optional event provenance and tamper-evidence guidance (#315)#320
MarkovianProtocol wants to merge 1 commit into
cdevents:mainfrom
MarkovianProtocol:event-provenance-guidance

Conversation

@MarkovianProtocol

Copy link
Copy Markdown

Adds an optional, informational companion document on event provenance, as invited in #315.

Two properties, kept distinct:

  • Part 1 — authenticity and integrity, via DSSE. Who emitted the event, and whether its payload was altered. Reuses the DSSE work already adopted in CloudEvents.
  • Part 2 — existence over time, via an optional hash commitment. A signature proves who, not when: a key holder can re-sign a back-dated or quietly reissued event at any time. Committing the event's RFC 8785 (JCS) SHA-256 digest to a timeline outside the emitter's control closes that gap, and survives key rotation, key loss, and emitter compromise after the anchor time.

Per the discussion in #315, this is deliberately mechanism-agnostic. The document names the class of anchors — RFC 3161 timestamp authorities, append-only transparency logs, public blockchain inclusion — without endorsing one, and states explicitly that the choice of anchor is out of scope. The only thing CDEvents tooling needs to agree on is the commitment itself: RFC 8785 canonicalization plus SHA-256.

Scope of this PR

  • New file event-provenance.md (root level, matching existing document convention).
  • One entry in README.md under the key assets list.
  • Spellcheck wordlist additions for the acronyms used (DSSE, JCS, PAE, SLSA, RFC, SHA, Merkle, and related).
  • No schema changes, no changes to spec.md or any event definition. Nothing here is required of an implementer.

Worked example. A runnable end-to-end example lives outside this repository at MarkovianProtocol/cdevents-provenance so CDEvents takes no dependency on it: a real dev.cdevents.artifact.published.0.3.0 event validated against the published v0.5.1 schema, its JCS canonical bytes, a DSSE envelope, the commitment, and a verifier demonstrating genuine artifacts passing both checks and tampered ones failing both. Happy to vendor it under tools/ or conformance/ instead if the group prefers it in-tree.

Venue, wording, and which anchor mechanisms to list are all open to the group's preference — happy to walk through it at the SIG.

Closes #315

@MarkovianProtocol
MarkovianProtocol requested a review from a team as a code owner July 28, 2026 20:16
Adds an informational companion document describing two distinct properties:
authenticity and integrity via DSSE, and existence-over-time via an optional
commitment to the event canonical hash on an external timeline.

Mechanism-agnostic per the discussion in cdevents#315: the document names the class of
anchors without endorsing one. No schema changes; nothing is required of an
implementer.

Signed-off-by: Colin H Winter <hello@markovianprotocol.com>
@MarkovianProtocol
MarkovianProtocol force-pushed the event-provenance-guidance branch from c92881c to 0f085aa Compare July 28, 2026 20:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Optional event-level provenance / tamper-evidence for CDEvents (worked example)

1 participant