Use case: Compliance & audit
The problem
Section titled “The problem”Regulators increasingly ask not just “do you keep audit logs?” but “can you prove they weren’t altered?” When logs are rows in a database the operator controls, the honest answer is “you have to trust us.” That is a weak position in an audit, a dispute, or after a breach.
How AeternisLog helps
Section titled “How AeternisLog helps”AeternisLog gives every audit record an independent integrity proof:
- Capture. Your systems POST compliance events (access, approvals,
transactions) to a domain such as
audit— the existing payloads, unchanged. - Anchor. Records are batched and their Merkle root is anchored write-once on a permissioned blockchain the auditor can inspect.
- Prove. At audit time, recompute the root from the stored records and show it matches the on-chain anchor. If even one record was altered, the proof fails — visibly.
Why it satisfies auditors
Section titled “Why it satisfies auditors”- Off-vendor anchor. The proof lives on an independent ledger, not in the same database that holds the data.
- Point-in-time. Each anchor is timestamped, so it also evidences when the records existed in that form.
- Independent verification. An auditor can verify with the Python CLI from a CSV export — fully offline, trusting only the on-chain root.
- Tenant isolation. In a multi-tenant platform, one customer’s audit trail is cryptographically isolated from another’s.
A concrete flow
Section titled “A concrete flow”# 1. Your app records a compliance eventPOST /api/v1/audit/records {"source":"access","payload":{"user":"u-91","action":"export","resource":"ledger"}}
# 2. Anchor (or let auto-batching do it)POST /api/v1/audit/records/batch
# 3. Auditor receives a CSV + the on-chain root, and verifies offlineaeternislog verify --file audit-export.csv --expected-root <root> # exit 0 = VALIDPair this with audit reports (JSON/PDF) for a complete, hand-off-ready package.