5.0 KiB
How to Verify a VaultMesh ProofBundle
Version 1.0 – Regulator Playbook
This Playbook explains how to verify a VaultMesh ProofBundle using only a JSON file and an open-source Python script. No network access to VaultMesh is required.
1. What a ProofBundle Proves
A VaultMesh ProofBundle is an offline evidence package that demonstrates:
-
Authenticity of receipts Each event (e.g. document download) is represented as a receipt with a BLAKE3 hash.
-
Continuity of the hash-chain Each receipt's
previous_hashlinks to theroot_hashof the prior receipt, forming a tamper-evident chain. -
Attribution to cryptographic identities and sealed state Actor and system identities are expressed as DIDs (e.g.
did:vm:human:…,did:vm:portal:…), and the chain is linked to a sealed ledger state via Guardian anchor information.
2. What You Need
Environment
- Python 3.10+
- Internet access not required
Python dependency
pip install blake3
Files you receive
From the audited party you should receive:
-
proofbundle-*.jsonA JSON file containing the ProofBundle (e.g.proofbundle-dl-20251206T174556.json) -
vm_verify_proofbundle.pyThe open-source verifier script (or a link to its public source)
3. Verification in 3 Steps
Step 1 – Place files in a working directory
mkdir vaultmesh-proof
cd vaultmesh-proof
# Copy the bundle and verifier here, for example:
# proofbundle-dl-20251206T174556.json
# vm_verify_proofbundle.py
Step 2 – Install the BLAKE3 dependency
pip install blake3
This provides the BLAKE3 hash function used by VaultMesh receipts.
Step 3 – Run the verifier
python3 vm_verify_proofbundle.py proofbundle-dl-20251206T174556.json
The script will:
- Load the bundle JSON.
- Recompute BLAKE3 over each receipt.
- Compare computed hashes against
root_hash. - Walk the
previous_hashchain to ensure the chain is contiguous. - Compare its own verification result with the bundle's declared
chain.okflag.
4. Example Outputs
4.1 Valid bundle
Typical output for a valid bundle:
ProofBundle: pb-20251206174603-dl-20251206T174556-b5bb3d
Document : 001 AI Governance Policy
File : VM-AI-GOV-001_AI_Governance_Policy.docx
Actor : did:vm:human:karol (Karol S)
Portal : did:vm:portal:shield (shield)
Receipts : 7
Hash check : OK
Chain linkage : OK
Bundle chain.ok: True (matches computed: True)
Result: OK – chain of 7 receipts is contiguous and valid.
Interpretation:
- All receipt hashes are correct.
- The hash-chain is unbroken from the first event to the document download.
- The bundle's own
chain.okvalue is honest. - The ProofBundle can be relied on as an integrity-preserving trace of events.
4.2 Tampered bundle
If any receipt is modified (for example, a timestamp, actor DID, or type), the verifier will detect it:
ProofBundle: pb-20251206174603-dl-20251206T174556-b5bb3d
Document : 001 AI Governance Policy
File : VM-AI-GOV-001_AI_Governance_Policy.docx
Actor : did:vm:human:karol (Karol S)
Portal : did:vm:portal:shield (shield)
Receipts : 7
Hash check : FAIL
Chain linkage : OK
Bundle chain.ok: True (matches computed: False)
Result: FAIL – ProofBundle verification failed.
Details:
- receipt[2] root_hash mismatch: expected blake3:4e7cf7...4209f, computed blake3:9a2b1c...77e3d
- bundle chain.ok (True) does not match computed result (False)
The verifier does not attempt to repair or reinterpret the chain. Any mismatch means the bundle has been altered or is inconsistent with the original VaultMesh ledger.
5. Interpreting Outcomes
| Exit Code | Meaning |
|---|---|
| 0 | Valid – The ProofBundle's chain is intact, hashes match, and the declared chain.ok flag is truthful. |
| 1 | Invalid – At least one of: a receipt's root_hash does not match its contents, the previous_hash chain is broken, or the bundle's chain.ok flag disagrees with the verifier's result. |
| 2 | Error – The verifier could not process the bundle (e.g. malformed JSON, missing fields, unsupported schema version). Treat as verification failed. |
6. Security Notes
- Verification is fully offline: no VaultMesh node, API, or network connectivity is required.
- The ProofBundle contains cryptographic DIDs for actors and systems; these can be cross-checked against identity documentation provided separately (e.g. key attestations).
- The Guardian anchor and scroll roots in the bundle allow a deeper, optional verification against a running VaultMesh node, but this is not required for basic bundle integrity checks.
Short Version
If the verifier script returns Result: OK with exit code 0, you have a tamper-evident, DID-attributed trace from initial checks to the specific document download event.
No VaultMesh access required — verification is fully offline.
VaultMesh ProofBundle Verification Playbook v1.0 Sovereign Infrastructure for the Digital Age