All writings

The Timestamp Problem

A Boxing Day craft that solved a problem that had been nagging at me.

You make a discovery. Write it down. Months later, someone publishes the same finding. Who was first?

You create something — a design, a melody, an algorithm, an invention. You share it with a potential collaborator. Later, they claim it was their idea all along.

You exchange messages with a business partner about terms. No formal contract yet, just a conversation. The relationship sours. Now it’s your word against theirs.

Digital files carry no inherent proof of when they were created. Metadata is editable. Timestamps are suggestions. In any dispute about priority or provenance, you have nothing but your word.

This is the timestamp problem. Researchers, inventors, artists, writers, and anyone who creates original work knows it intuitively. Most don’t think about the solution until they need proof they don’t have.

The Old Solution

The traditional approach: trust someone. A notary, a cloud service, a timestamping authority. Submit your document or its hash, accept their attestation, hope they’re still around when you need them.

This works. It costs money — qualified timestamping services charge per document, enterprise contracts run into thousands annually, traditional notaries cost more and scale worse. It requires trust in the authority and its verification infrastructure, but not necessarily disclosure of the document: RFC 3161 timestamping sends a hash, not the original file. The distinction is the trust model, not whether private timestamping is possible.

A Different Approach

OTRUST timestamps your documents against the Bitcoin blockchain. Here’s what that means in practice:

You drop a file. The browser computes a cryptographic fingerprint — a hash — locally. The file never leaves your device.

The fingerprint gets anchored. It’s submitted to the OpenTimestamps protocol, which embeds it in Bitcoin’s blockchain.

You get mathematical proof. A file that proves your document existed at that moment, verifiable by anyone, forever.

The proof doesn’t depend on OTRUST existing. It doesn’t depend on any company’s database. It depends on Bitcoin continuing to operate and on mathematics continuing to work.

It’s free. Not freemium. Not “free tier with limits.” Free. No account required. No usage caps. Timestamp one document or ten thousand — same price: zero. The competitors charge €2–5 per timestamp, or thousands annually for enterprise access. OTRUST charges nothing because the underlying infrastructure — OpenTimestamps and Bitcoin — is already public and decentralized. Why add a toll booth to a public road?

Why It Can’t Be Faked

A hash is a one-way fingerprint. The same document always produces the same hash. But change a single character — one comma, one pixel, one bit — and the hash changes completely. Not slightly. Completely.

This means you can’t timestamp a document today and modify it tomorrow. The modified version would have a different hash, and your proof would no longer match. The timestamp is locked to the exact document that existed at that moment.

To fake a timestamp, you would need to either break SHA-256 (no one has) or rewrite Bitcoin’s history (not possible without controlling the majority of the network’s computing power). The proof is as strong as Bitcoin itself.

For Those Who Want to Understand

The Protocol

Your file is hashed using SHA-256. That hash is submitted to OpenTimestamps calendar servers, which aggregate thousands of hashes into a Merkle tree — a binary tree structure where each parent node is the hash of its children. Only the tree’s root gets embedded in a Bitcoin transaction. When that transaction is confirmed in a block, every hash in the tree inherits a timestamp backed by Bitcoin’s proof-of-work.

The proof you receive is a .ots file containing the chain of operations from your original hash to the block header: concatenations, hash operations, and finally the block reference. Anyone with a Bitcoin node can replay these operations and verify the proof independently. No API calls. No trust required.

The elegance: millions of timestamps can share a single Bitcoin transaction. The cost per timestamp approaches zero. The security remains absolute.

Privacy Architecture

The system cannot leak what it does not possess.

Only hashes are transmitted to the server — one-way functions from which the original content cannot be recovered. Your document stays in your browser. The server sees a3f2b8c9d4e5..., not your research notes or contract drafts.

No accounts. No IP logging. No cookies. No analytics. Email addresses, used only for optional confirmation notifications, are stored with TTL expiration and deleted after use. The database, if compromised, would yield hexadecimal strings with no connection to content or identity.

This isn’t a privacy policy. Privacy policies are promises. This is a privacy architecture — constraints enforced by the structure of the system, not by good intentions.

Authorship Layer

A timestamp proves when. But not who.

OTRUST adds an optional second layer: Ed25519 digital signatures. You can generate a keypair directly in your browser — the private key is stored locally, never transmitted. When you sign a timestamp claim, the hash, your signature, and your public key are recorded together.

This creates cryptographic continuity. Sign ten documents over ten years with the same key, and you’ve established a verifiable chain: the same entity claimed all ten. Publish your public key on your website or social profile, and you’ve linked that chain to your public identity.

Not legal identity. Not KYC. The legal value lies in the timestamp itself — mathematical proof anchored to Bitcoin. The signature is an additional layer: pseudonymous by default, but linkable to your public identity at your discretion.

Precision and Limitations

Bitcoin blocks are mined approximately every ten minutes, but the protocol allows timestamp variance within that window. In practice, timestamps cluster around actual time with variance measured in minutes. For establishing priority in research disputes, documenting agreements, creating audit trails — more than sufficient. For millisecond precision — wrong tool.

What this proves: specific data existed at or before a specific block.

What this does not prove: that the data is true, that you created it, or that it wasn’t copied from someone else. A signature links a claim to a signing key; it does not by itself establish authorship. A false document timestamped early is still false. A stolen idea timestamped by the thief is still stolen.

This is infrastructure for creating verifiable records. It is not a truth machine.

Implementation

The cryptography uses Noble libraries — audited, dependency-free JavaScript implementations rather than wrappers around native code. Spam prevention uses proof-of-work challenges with adaptive difficulty based on server load, eliminating the need for accounts or CAPTCHAs. Error responses are timing-safe to prevent information leakage. The codebase is MIT-licensed and designed to be self-hostable — if you don’t trust the hosted service, run your own.

Multiple interfaces exist: web app, browser extension, CLI for automation, Telegram bot, email endpoint, API. The same primitive — hash, optionally sign, anchor — accessible wherever you already are.

The Deeper Point

We’re entering an era where synthetic media is indistinguishable from authentic media. Documents can be fabricated at scale. The question “did this exist, and when” becomes harder to answer through traditional means.

Cryptographic timestamping isn’t a solution to misinformation. But for those who want to establish verifiable records — of their work, ideas, agreements — without accounts, without revealing content, without trusting any single party to remain operational and honest: this is infrastructure for that purpose.

Trust asks you to believe. Verification allows you to confirm.

The timestamps will outlast the service that created them. That is the point.

OTRUST is open source and operates without collecting personal data. The code is at github.com/otrust-eu/core. The service is at otrust.eu.

Read original on Medium ↗

: RFC 3161 timestamping does not require the original document. The distinction between a signature and proof of authorship has also been clarified.

Carry forward

The Timestamp Problem