BengarTrust infrastructure

Docs · Guides

Proofs

Verifying an audit event against an anchored Merkle root, with four outcomes that stay four.

The chain of custody for a record

  1. An authorization decision writes an audit event.
  2. Events are batched into a Merkle tree.
  3. The batch root is anchored in a transaction on the Bengar chain.
  4. A proof shows one event is a leaf under that root.
  5. An independent witness — a chain node — is asked whether it holds the same root.

The four outcomes

OutcomeWhat happened
VERIFIEDThe proof holds and a witness confirmed the root.
INVALIDThe proof was checked and does not hold. A statement about the cryptography.
NOT_WITNESSEDThe witness was reached and does not have this root.
UNAVAILABLEThe witness could not be reached. Nothing was concluded.

Never collapse these into a boolean. NOT_WITNESSED and UNAVAILABLE both mean “not green”, and one says we looked and found nothing while the other says we could not look. Reporting either as INVALID is a false accusation.

Where to verify

GET /v1/projects/:id/audit/:auditId/proof returns the proof; POST /v1/console/projects/:id/proofs/verify performs the check and asks the witness.

AVAILABLE Verify an audit event against its anchor/projects/:id/proofs

Where: Proofs

First: An anchored audit event.

Requires: ADMIN, AUDITOR