A standard for reasoning artifacts that recipients can falsify without you.
Canon specifies the structure of a reasoning artifact — the file format, the field semantics, and the falsification protocol — such that any recipient, using only the artifact and ordinary network access, can verify or falsify it without any cooperation from the issuer.
The four-stage chain.
What Canon specifies. What it does not.
Canon defines the artifact. Everything else is out of scope — deliberately.
Falsification protocol.
A recipient possessing an Attestation and ordinary network access performs seven steps to reach a definitive verdict:
- 01Fetch the public key. Verify its fingerprint matches seal.public_key_fingerprint.
- 02Verify the Ed25519 signature against the UTF-8 bytes of chain_hash.
- 03Recompute chain_hash by re-serializing without seal per RFC 8785, then SHA-256.
- 04For every witness entry, retrieve the content, re-hash, compare.
- 05Confirm every claim's supports[] resolves. No circular references.
- 06Confirm every challenge's targets[] resolves.
- 07Review coverage.declined[]. Apply the recipient's own judgement to the stated scope of un-challenged material.
If any of steps 1–6 fail, the Attestation is invalid — structurally, cryptographically, or referentially — regardless of appearance. Step 7 is the recipient's substantive judgement. Canon requires that the honest inventory be present, not that the recipient find it acceptable.
Versioning discipline.
Canon follows semantic versioning. MAJOR bumps break wire-compat; MINOR adds optional fields; PATCH fixes wording without changing semantics. Every bump ships with a signed amendment record.
- +Stabilize the four-function chain (W·F·R·S)
- +Require coverage.declined[] inventory in §3.4
- +Add seven-step falsification protocol (§4)
- -Drop optional 'sketch' inference type
- +Codify RFC 8785 canonicalization for chain_hash
- +Initial public draft of Refutation block
- +Ed25519 selected over P-256 for seal signatures
Implementers · verifier registry.
Independent verifiers that conform to §4 and pass the conformance test vectors are listed in the public registry below. The registry is maintained by NORA Foundation but its entries are open to any implementation, in any language, under any licence.
First implementation lands soon.
The reference verifier ships with Meridian. We are funding two independent third-party implementations (Python and Rust) and will list them here on registration.
Become an implementer →Help bring Canon to v1.0.
Draft-rfc is open for amendment. We welcome specification review, verifier implementations in new languages, and adversarial analysis of the protocol.