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

1

Obtain Public Key

Obtain Horizon's public key from an independent source (not the entity being audited).

2

Verify Signature

Verify the bundle signature using Ed25519. If invalid, stop: the bundle has been tampered with.

3

Verify Hash Chain

For each fact, recompute its hash from the canonical JSON representation. Verify prev_hash matches the previous fact's hash.

4

Verify Timestamps

Confirm sealed_at_ms values are monotonically increasing within the stream.

5

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.