Claimant Model: Logs
This doc presents a model for transparent ecosystems built around logs. This doc requires understanding the core Claimant Model.
Log Transparency as described here should be applied to situations where the Claimant Model has already been established for the domain claims. It does not cover situations where you “just want to write to a log”.
Purpose of Log Transparency
The main purpose of transparency built around logs is discoverability of Claims.
A Claim is discoverable if it can be found by the Verifier without information being passed to them by the Believer. This property is essential when Believers are employing Trust But Verify and the identity of all Verifiers does not form part of the Believer’s TCB.
More formally: Any claim believed by any honest Believer must be eventually verified by an honest Verifier.
Another way to conceptualize this is that Logs provide a verifiable transport mechanism to ensure that any Claim that a Believer relies on will be eventually discovered by the Verifier.
Model
Log Transparency is another application of the Claimant Model to solve a transport problem in what we will refer to as SystemDOMAIN; it provides a mechanism for all StatementDOMAIN relied upon by BelieverDOMAIN to be discovered by VerifierDOMAIN.
SystemLOG
A log operator maintains an append-only list of StatementDOMAIN, and presents all clients with the same list. The log produces and signs checkpoints to commit to the state of the list as it grows, and committments to data to by a checkpoint should be cryptographically verifiable. A StatementDOMAIN should only be believed once its inclusion in the log has been verified. Clients of the log should verify that any new checkpoints they receive are consistent with any previous checkpoint that they have relied on, and checkpoints can be shared amongst clients to detect any inconsistencies in the list of data being presented.
ClaimLOG "I make available a globally consistent, append-only list of StatementDOMAIN" StatementLOG Log Checkpoint ClaimantLOG Claim Log BelieverLOG BelieverDOMAIN and VerifierDOMAIN VerifierLOG Log Verifier ArbiterLOG Log ArbiterArtifacts
Log Checkpoint (aka STH) a signed statement by the Claim Log which declares the number of Claims in the log, and represents a verifiable commitment to the contents of the log. The signature on a Checkpoint states nothing about the veracity of any ClaimDOMAIN, but asserts that:- This Checkpoint is consistent with all earlier Checkpoints; and
- All StatementDOMAIN committed to by this Checkpoint are immutable and discoverable
Roles
Claim Log (ClaimantLog) maintains the log, appends well-formed Statements, and periodically produces Checkpoints. All Statements must be made available to VerifierDOMAIN, and commitments made available to all roles. Log Verifier (VerifierLog) watches a Claim Log, verifying that all Checkpoints seen by this verifier are consistent (i.e. represent a single lineage of the Log). Effectively verifies inclusion for all leaves that Checkpoints commit to. Note that this role is only concerned with the commitments to the Claims, not the Claims themselves. Log Arbiter (ArbiterLog) acts upon evidence of Claim Log misbehaviour (e.g. distrusts it, publishes the evidence so others can make their own decisions). Any actor can appeal to this entity if logs misbehave. Example situations where a report will be investigated:- Log Verifier appeals with proof of inconsistent Checkpoints
- Claim Writer appeals if the Log won’t accept valid Claims
- Believer appeals if the log is not available with sufficient uptime
Relationship Graph
This shows which roles must know about the actors playing the other roles before any of the machinery starts moving. For example, the Believer must know about the Claimant ahead of time because they need to have some basis on which to trust a Claim and verify its authenticity.
Believer, Claimant, Claim Verifier, and Claimant Arbiter are all for SystemDOMAIN.

Interesting Edge Cases
Transitive Signing
The signature on each individual StatementDOMAIN can be omitted if both of the following hold:
- ClaimantDOMAIN and ClaimantLOG are the same actor; and
- Every actor that is BelieverDOMAIN is also BelieverLOG
The signature on the Checkpoint effectively transitively signs each of the Claims within the log. This is what the Go SumDB does. The Claim here is “I, ${SumDB}, commit to $hash as the checksum for $module at $version”. This is falsifiable; correct behaviour can be verified by confirming that no two entries committed to by the log have the same module & version, but different checksums.