Only the fingerprint travels
Your file, its name and your password never leave your device.
Fingerprint, timestamp, proof package: the technology behind PublicEvidence – explained clearly, with data flow, limits and ways to verify independently.
Every digital file can be converted into a short code – its fingerprint. Change just one character and a completely different code appears.
We have public systems record this fingerprint in time. Later, that proves this exact file existed at a certain point at the latest. The file itself stays with you.
The proof is saved as a proof package and belongs to you. It can be verified with open tools, even without PublicEvidence.
Your file, its name and your password never leave your device.
The proof package can be verified independently and is not tied to an account.
OpenTimestamps, SHA-256 and open formats remain usable without us.
You select a document on your device. It is not uploaded.
Your browser calculates a SHA-256 fingerprint locally.
Only the fingerprint goes to public timestamping services. They anchor it in the Bitcoin blockchain.
You download the package, keep it with your file and can verify it at any time.
| Stage | What happens |
|---|---|
| Created | Fingerprint calculated and proof file generated. |
| Submitted | One or more calendar servers have accepted the fingerprint. |
| Anchored | The fingerprint is part of a Bitcoin transaction included in a block. |
| Verified | The entire chain has been checked independently. |
It usually takes a few hours between “Submitted” and “Anchored”, because many fingerprints are written to Bitcoin together.
Browser PublicEvidence backend Calendar server Bitcoin
| 1. read file locally | | |
| 2. SHA-256(file) = h | | |
| 3. request proof (h) ----------->| 4. forward h --------------->| |
| |<-- 5. pending proof ---------| |
|<-- 6. proof (.ots, pending) -----| | 7. collect, Merkle-|
| 7. download proof package | | tree, tx ------>| block
| ... hours ... | |
| 8. request upgrade ------------->| 9. fetch upgrade ----------->| |
|<-- 10. complete proof -----------|<-----------------------------| |
| 11. verify against block header (locally or via node/explorer)Every building block has a clear job. Anything not implemented yet is marked explicitly.
A SHA-256 hash identifies the file uniquely. The file cannot be reconstructed from it.
Calendar servers combine many fingerprints in a Merkle tree and anchor the root in a Bitcoin transaction.
An approved European trust service provider confirms the time with a qualified timestamp.
A folder with manifest, timestamp, verification instructions and – if booked – the qualified token. Your file is not included.
You can record something without revealing its content and publish it later. A secret random value prevents short content from being guessed.
Documents are encrypted on your device before they are stored. Only you know the key.
Proofs and encrypted documents can be stored redundantly. If one location fails, the others remain.
In the MVP, only the fingerprint leaves your device. Not the file, not its name, not your password.
| Data | Stays local | To PublicEvidence | To timestamp services |
|---|---|---|---|
| Your file | ✓ | – | – |
| File name, size, date | ✓ | – | – |
| Fingerprint / commitment | ✓ | ✓ | ✓ |
| Proof package | ✓ | – | – |
| Salt, password, key | ✓ | – | – |
| IP address and request time | – | ✓ | ✓ |
In the MVP, PublicEvidence only accepts fixed-length hex strings and does not store files. Calendar servers and operators see the request IP address for technical reasons.
The goal is to need as little trust in us as possible. Where trust is still required, it is listed here.
| You trust … | … for | How it is limited |
|---|---|---|
| Mathematics (SHA-256, AES-256-GCM) | Fingerprint, encryption | Standardised, extensively reviewed methods |
| Bitcoin network | Time boundary and immutability of the entry | Decentralised; block headers can be verified independently |
| Calendar servers | Commitment until anchoring | Several independent servers; complete only after anchoring |
| Qualified provider (planned) | Official time statement | Approval in the EU Trusted List; token and certificates in the package |
| Your browser and device | Correct local calculation | Your own responsibility; verification with independent tools possible |
| PublicEvidence (web frontend) | Delivery of the program code | CSP, SRI, reproducible builds, offline client later |
With a website, the server delivers the code that hashes or encrypts your file. A compromised server could deliver malicious code. This can be reduced, but not completely ruled out.
You trust the code currently being delivered.
Code and build are publicly verifiable; published checksums allow comparison.
Independent of web-delivered code, recommended for especially confidential documents.
You need neither us nor an account. Anyone can verify a proof with freely available software.
sha256sum contract.pdf
# macOS: shasum -a 256 contract.pdf
# Windows PowerShell:
Get-FileHash -Algorithm SHA256 contract.pdfots upgrade blockchain/proof.otsots info blockchain/proof.ots
ots verify blockchain/proof.ots| Result | Meaning |
|---|---|
| Passed | Fingerprint matches, proof is valid, time is stated. |
| Pending | Not yet anchored in a Bitcoin block – upgrade later. |
| File differs | The file is no longer the timestamped version. |
| Not verifiable | Data is missing or infrastructure is unreachable. |
| Invalid | Proof is damaged or does not match the package. |
The concrete commands will be tested before launch with real sample proofs on Linux, macOS and Windows. Instructions are included in the proof package.
We build on proven standards, store as little as possible and openly state what we cannot do.
CSP, Subresource Integrity, reproducible builds, signed releases and a planned offline client reduce the risk.
File contents are not processed on the server. Only hashing happens in the browser.
Strict validation, size limits and parameterised database queries.
Rate limits, limited concurrency and optional protection measures when anomalies occur.
Several independent servers, retries and a visible status indicator.
Few, pinned dependencies and automated checks before every release.
A proof is strong, but not omnipotent. These limits are part of being honest.
| Topic | What applies |
|---|---|
| What is proven | A specific file existed at a certain point at the latest and has been unchanged since. |
| What is not proven | Truth of the content, authorship, ownership, identity, location or recording date. |
| Time accuracy | Blockchain: upper time boundary, no precise clock time. Qualified timestamp: signed time statement by the issuer. |
| Waiting time | The complete blockchain proof is usually available after a few hours. |
| Legal effect | Technical proof. A special legal presumption applies only to qualified timestamps. |
| No certification | No replacement for a notary, authority, electronic signature or legal advice. |
| Scans | A proof shows the existence of the scan, not the authenticity of the document. |
| Long term | Proofs can be verified with open tools. Active long-term evidence preservation is not part of the MVP. |
| Cryptographic ageing | Algorithms can become weaker. Proofs name their method; guaranteed renewal is not provided. |
| Irreversible | Anchored proofs and distributed copies cannot be recalled. |
| Role of PublicEvidence | Software platform for proofs – not a qualified trust service provider and not an archive service in the legal sense. |
Whether and how a proof can be used in proceedings is decided by the competent court in each individual case.
PublicEvidence relies on documented, independently verifiable methods.
| Topic | Standard / project |
|---|---|
| Hash function | SHA-256, FIPS 180-4 (NIST) |
| Canonical JSON | RFC 8785 (JSON Canonicalization Scheme) |
| Timestamp (blockchain) | OpenTimestamps (open protocol and open-source client) |
| Qualified timestamp | RFC 3161, eIDAS (EU) No 910/2014, EU Trusted Lists |
| Encryption | AES-GCM (NIST SP 800-38D), Web Crypto API, Argon2 (RFC 9106) |
| Randomness | crypto.getRandomValues() (Web Crypto) |
| Website security | OWASP ASVS, Content Security Policy, Subresource Integrity |
| Long-term proofs | ETSI standards for evidence records and archive timestamps, RFC 4998 |
The goal is to publish the client and verification tool. Licence and release date are still open.
The order follows risk and benefit: the verifiable base proof first, then convenience and additional protection layers.
Local fingerprint, OpenTimestamps proof, proof package download, upgrade and verification without an account.
Browser verification page, offline instructions and test cases with manipulated files.
Commit & Reveal with salt.
RFC 3161 connection to an external QTSP, token and validation data in the package.
Client-side encryption, open format and offline decryption.
Distributed storage of proofs, later of encrypted documents.
Signed desktop and CLI application.
Own calendar infrastructure at high volume.
The roadmap describes the planned order, not committed dates.
Our own chain would only be as trustworthy as its operator. Bitcoin is public, decentralised and widely observed. PublicEvidence deliberately does not operate its own blockchain.
In the MVP we only receive the fingerprint. With planned encrypted storage, we should not be able to read plaintext either. Because web code is delivered by a server, this promise is subject to the limitations described in the Trust section.
The proof is requested from several servers. Already anchored proofs can be verified independently of calendar servers. Only upgrading a pending proof needs a server.
A signature proves who signed something, not when it existed at the latest. Timestamps prove existence at a point in time. Both can be combined.
Proofs name their algorithm. For older proofs, renewal through additional timestamps with stronger methods is planned while the old proof is still considered valid. There is no guarantee.
The goal is an open client and an open verification tool with a public format specification. Licence and timing are still open.
The qualified timestamp costs money and ties you to a provider. The blockchain variant is free and independent. Both complement each other; the qualified timestamp is intended for cases where legal evidentiary value matters.
Start for free, no account required. Your file stays on your device.