Evidence

Audit Ledger

Decision records are sealed into a hash-chained ledger signed with Ed25519 and ML-DSA-65. Any change to an anchored entry is detectable without trusting QUORUM.

Seal and Sign

simplified flow
every few seconds, per organization:
    root  = merkle(new decision records)
    entry = { root, prevHash, time }
    entry.sigs = [ed25519(entry), mlDsa65(entry)]
    append(entry)
every 100 entries (if a TSA is configured):
    rfc3161(ledger merkle root)
every 15 minutes:
    verify chain and signatures -> alert, never repair

Proofs

Decision proofs, Merkle inclusion proofs and public signing keys are available through the API for offline verification.

Post-quantum

ML-DSA-65 (FIPS 204) from the Rust fips204 crate compiled to hash-pinned WebAssembly.

Keys

In production, signing keys are held in an AWS Nitro Enclave. Implemented; not yet exercised on Nitro hardware.

Limits

The ledger is stored in PostgreSQL and is tamper-evident, not immutable. Institutions should restrict write access and archive anchored roots and timestamp tokens outside the database.

KB Analytical Solutions Inc. // Audit Ledger // Describes QUORUM at code baseline e9c2cf7