Tamper-evident hash chain
Every commit is SHA-256 hashed and linked to its parent. The SDKs compute the hash on your machine before transmission; a direct API call is hashed by the server. Modifying any record breaks every downstream hash, detectable by anyone, offline, with no DarkMatter dependency.
Timestamp anchor
Checkpoints sign the Merkle root of the log and are delivered to registered witnesses for co-signature. Every witness running today is operated by DarkMatter, so the co-signature does not yet let you check the attestation without trusting us.
Non-repudiation
Commits are signed with a key only you hold before they reach our servers. DarkMatter cannot forge a record on your behalf. Non-repudiation by construction, not by policy.
Assurance levels (L1 through L3) describe the strength of the cryptographic guarantee. Each level is additive.
dm.commit() call. No extra steps.dm.generate_customer_keypair() in Python. See L3 setup.Payload wasn’t altered after commit
The SHA-256 hash is computed on your machine before transmission when you use an SDK, and by the server when you post to the API directly. Any modification breaks the hash. Verifiable offline in both cases.
Records are sealed when they happen
Each record commits to the hash of the one before it, so a record cannot be altered, reordered or inserted after the fact without breaking every record that follows. This is what the offline verifier checks. It establishes ordering and integrity. For a time reference, a checkpoint signs the log root on a ten-minute cycle and is delivered to registered witnesses for co-signature, with the result published as witness_count and witness_status at /api/log/checkpoint. Every witness running today is operated by DarkMatter, so that co-signature is not yet attestation by a party other than us. If your organisation wants to change that, the reference witness server is a single Python file with no dependencies beyond the standard library: darkmatter_witness_server.py. It verifies our signature, co-signs the same canonical envelope with a key only you hold, and keeps its own log. Email [email protected] with your public key to be registered.
DarkMatter cannot forge a record
Customer-held Ed25519 keys sign the envelope before it reaches our servers. We never see the private key. We cannot produce a valid signature.
Payload confidentiality
Payloads are stored in plaintext by default. DarkMatter personnel with database access can read them. To keep payloads private, encrypt client-side before calling dm.commit(). This works on any plan. DarkMatter stores whatever you send.
Verify it yourself.
Download a proof bundle and run the offline verifier. No DarkMatter account required.