Auditor's Guide
Independent Verification Protocol
Audience: External Auditors / Internal Audit / Compliance Officers
This guide provides step-by-step instructions for independently verifying Horizon proof bundles without access to Horizon systems.
What You Receive
A proof bundle is a self-contained JSON file containing all facts in a timeline, their cryptographic hashes, chain linkage, and Horizon's Ed25519 signature.
Verification Steps
Obtain Public Key
Obtain Horizon's public key from an independent source (not the entity being audited).
Verify Signature
Verify the bundle signature using Ed25519. If invalid, stop: the bundle has been tampered with.
Verify Hash Chain
For each fact, recompute its hash from the canonical JSON representation. Verify prev_hash matches the previous fact's hash.
Verify Timestamps
Confirm sealed_at_ms values are monotonically increasing within the stream.
Review Content
Examine custom_payload for each fact. Remember: Horizon attests to when and by whom, not to truth of declarations.
What Verification Proves
Proves:
- ✓The bundle has not been modified since signing
- ✓The hash chain is intact (no facts inserted, removed, or altered)
- ✓The timestamps were assigned by Horizon at seal time
- ✓The sequence of facts is authentic
Does Not Prove:
- ×The declarations in facts are true
- ×The actor actually performed the action
- ×The decision was correct or appropriate
- ×External events actually occurred
Independence Guarantee
Verification requires only the bundle and Horizon's public key. No network access, no credentials, no access to the audited entity's systems. This independence is by design.