MARKOVIAN LOG · WHAT A STAMP PROVES

What a stamp proves, and what it doesn’t

Plain words, one layer at a time. Every claim here is one you can check on verify.html, which runs the checks in your browser.

The record

A stamp is a short note, usually a SHA-256 of a file and a time, appended to a log that only grows. The log is a Merkle tree hashed the way RFC 6962 describes, so a short proof ties any one note to a root hash that stands for the whole log at a given size. The operator signs each root with its key. On its own that signature says one thing: the operator claims this is the log’s state. An operator can claim two different states to two different people.

What the witnesses add

Seven outside operators each hold the last root they signed for this log. Before signing a new one, each checks that the new log contains the old one unchanged. If the log ever showed a witness a history that contradicts what that witness signed before, the witness refuses to sign, and the log cannot produce a cosigned root for that history. The policy needs four of the seven, and two of the seven belong to one operator, so no single party can make the quorum. A root carrying those signatures proves the log has shown one history to those witnesses. Not that the log is honest in general; that it could not have shown them a fork without being caught.

What Bitcoin adds

Every hour the newest root is committed to a Bitcoin block through an OpenTimestamps proof. That proves the root existed by that block’s time, with no key and no party left to trust, and it outlives the log, the witnesses and this site. The leaves themselves are frozen as a dataset on Zenodo (10.5281/zenodo.23304783), a copy we cannot withdraw, so the record can be rebuilt from the chain plus that archive if everything of ours goes dark. It does not by itself prevent a fork: two contradictory roots can both be stamped into Bitcoin. That is the witnesses’ job, and it is why both are here.

What none of it proves

Nothing about what the bytes say. A hash in the log is evidence that a file existed in that exact form by that time, and only if you hold the file and can recompute the hash. It is not evidence the file is true, that the submitter wrote it, or that no other version exists. Our measurement papers stamp their own pages so a reader can tell which version said what and when; the stamp does not make the numbers right. The review gate does that, or fails to.

Against Certificate Transparency

Same family of mechanism, different scope. CT logs hold X.509 certificates, browsers refuse certificates that are not in them, and monitors watch the logs for certificates that should not exist. This log holds any SHA-256 note, and nobody is forced to use it. The newer tiled CT logs publish checkpoints in the same format as this one and are beginning to collect the same kind of witness signatures, which is why our SM-015 could measure them with one script. CT’s strength is enforcement by browsers; this log’s is that anyone can put anything in it and anyone can check.

Against plain timestamping

An RFC 3161 timestamp or a bare OpenTimestamps proof answers one question: did this hash exist by this time. It does not give the hashes a shared order, so the same party can timestamp two contradictory documents and show each to a different audience. A witnessed log puts every note in one sequence that the witnesses have signed, so a second, contradicting history cannot be produced later without a fork the witnesses would refuse. A timestamp authority also has to be trusted for its clock and its key; Bitcoin asks for neither.

Against an ordinary database

An audit table in a database proves what its owner lets it prove. The owner can edit a row, delete one, or restore last week’s backup, and the table looks the same afterwards. Here, anyone who kept a cosigned checkpoint from last week can ask for a consistency proof today; if the log was rewritten, the proof cannot be produced. The monitor does exactly that every hour from a machine that is not the log.

How to check any of this

verify.html takes one leaf through every step in your browser. /proof/N gives the same proof as a file for offline tools. The monitor and the witness gauntlet are the code we run against ourselves.