VasperaMesh Ledger Specification — vaspera-mesh-ledger-v2
An append-only, hash-chained record of AI decisions, externally anchored to Bitcoin and verifiable offline by anyone, with zero trust in the vendor. This page is the versioned, public reference. The standalone verifier implements it from scratch, importing nothing from our code.
1. The hashed preimage (14 fields)
Each row commits exactly these fields, RFC 8785 (JCS) canonicalized, domain-prefixed:
preimage = "vaspera-mesh-ledger-v2\n" + JCS({
seq, prevHash, chainId, agent, action, model,
inputs, sources, outputs, confidence,
decision, decisionReason, policyVersion, createdAt
})
rowHash = sha256_hex(preimage)chainId is inside the preimage (anti-substitution: a chain served under the wrong identity fails even if internally consistent). Any column outside this set — reasoning-chain links, encrypted-content pointers, operational telemetry — is not hashed and cannot change a rowHash.
2. Chain rules
- Dense ordering:
seqstarts at 1 and increments by 1 with no gaps. - Linkage:
prevHashequals the previous row'srowHash. - Integrity:
sha256(preimage) == rowHashand the preimage re-derives from the exported fields. - Immutability: the store rejects UPDATE/DELETE on chained rows (WORM).
- No row, no action: a gated action that cannot write its row does not proceed.
3. External anchoring
Chain heads are timestamped via OpenTimestamps; the receipt upgrades to a Bitcoin block attestation. Only the 32-byte head hash leaves the boundary. A verifier cross-checks that every witnessed head still matches the chain — divergence means history was rewritten after being witnessed.
4. Verify it yourself
# fully independent — the script imports nothing from VasperaMesh curl -O https://vasperamesh.com/api/verifier # verify-mesh-ledger.mjs npm i canonicalize node verify-mesh-ledger.mjs --base https://vasperamesh.com --chain <chain-id>
Exit code 0 only if the chain is fully intact and consistent with every anchor.
5. Regulatory mapping
| Framework | Obligation | Discharged by |
|---|---|---|
| EU AI Act Art. 12 / 19 | Automatic, retained logs of events | WORM hash-chained rows, retained indefinitely; anchors fix them in time |
| EU AI Act Art. 14 | Human oversight & intervention | Enforcing-mode blocks + ledger-stamped approve/deny |
| ISO 42001 A.6.2.8 / A.9.2 | Operation logged; policy documented | Every row carries the policy version in force |
| NIST AI RMF MEASURE 2.7 / MANAGE 2.3 | Trustworthiness & override auditable | Bitcoin anchor + recorded overrides |
Generate an auditor-ready, chain-backed evidence pack from the Compliance page.