Technical Guide
How SHA-256 Hashing and Bitcoin Anchoring Work
A technical deep-dive into the cryptography and blockchain technology behind tamper-proof document timestamps.
What Is a Cryptographic Hash?
A cryptographic hash function takes any input — a document, an image, a video, a line of text — and produces a fixed-length output called a hash or digest. Think of it as a unique fingerprint for digital data.
EverCert uses SHA-256 (Secure Hash Algorithm 256-bit), the same hashing algorithm that secures the Bitcoin network. SHA-256 always produces a 64-character hexadecimal string, regardless of whether the input is a 1 KB text file or a 10 GB video.
For example, the SHA-256 hash of "hello" is:2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
Why SHA-256 Is Ideal for Document Proof
- •Deterministic — The same input always produces the same hash. If you hash the same file twice, you get the identical fingerprint.
- •Avalanche effect — Changing even one bit of the input produces a completely different hash. There is no way to make a "small" change that results in a "similar" hash.
- •One-way — You cannot reconstruct the original file from its hash. The hash reveals nothing about the content of your document.
- •Collision-resistant — It is computationally infeasible to find two different inputs that produce the same hash. Each file has a practically unique fingerprint.
These properties mean that a SHA-256 hash serves as a commitment to a specific file. If you can prove that a particular hash existed at a particular time, you have proven that the corresponding file existed at that time — without revealing its contents.
What Is Bitcoin Anchoring?
Bitcoin anchoring means embedding data in the Bitcoin blockchain — the most secure, decentralized, and long-running public ledger in existence. Once data is included in a Bitcoin block that is confirmed by the network, it becomes practically immutable.
Bitcoin blocks are produced approximately every 10 minutes. Each block references the previous block's hash, creating a chain that extends back to the genesis block in January 2009. To alter any historical data, an attacker would need to re-compute every subsequent block — a task that requires more computational power than all the world's supercomputers combined.
This is what makes Bitcoin timestamps permanent. They are not stored on a company's server or in a private database. They are embedded in a public, decentralized ledger that is replicated across tens of thousands of nodes worldwide.
The OpenTimestamps Protocol
OpenTimestamps is an open-source protocol that makes Bitcoin timestamping efficient and scalable. Instead of writing each document hash directly to the blockchain (which would be expensive), OpenTimestamps aggregates thousands of hashes into a single Bitcoin transaction using Merkle trees.
The protocol was created by Peter Todd, a well-known Bitcoin developer and cryptographer. It is free to use, fully open-source, and does not depend on any single company or server.
EverCert uses OpenTimestamps as its anchoring layer. This means your proofs are not locked into EverCert's ecosystem — they can be verified by anyone using the OpenTimestamps tools, Bitcoin Core, or any compatible verifier.
Merkle Trees — Efficient Aggregation
A Merkle tree is a data structure that allows many hashes to be combined into a single root hash. Pairs of hashes are combined and hashed together, and this process repeats until a single "Merkle root" remains. This root is what gets anchored to Bitcoin.
The key property of a Merkle tree is that you can prove any individual hash is part of the tree without revealing the other hashes. This is done by providing a "Merkle path" — a small set of intermediate hashes that, when combined with your document hash, reproduce the root.
This is why your .ots proof file is small (typically a few kilobytes) even though it proves your document is anchored to a Bitcoin transaction that may aggregate thousands of other timestamps. The proof file contains your hash, the Merkle path, and the Bitcoin transaction reference — everything needed for independent verification.
Proof Lifecycle
- 1
Client-side hashing (instant)
Your file is hashed in your browser using SHA-256. The file never leaves your device — only the 64-character hash is transmitted to EverCert.
- 2
Calendar submission (instant)
The hash is submitted to OpenTimestamps calendar servers. You receive a pending proof immediately — this is your receipt.
- 3
Bitcoin anchoring (~1-2 hours)
The calendar server aggregates hashes into a Merkle tree and includes the Merkle root in a Bitcoin transaction. This typically happens within 1-2 hours.
- 4
Proof upgrade (automatic)
Once the Bitcoin transaction is confirmed, your proof is upgraded from "pending" to "complete." EverCert checks for upgrades automatically every 10 minutes. You can also trigger an upgrade manually.
- 5
Permanent verification (forever)
Your proof can now be independently verified by anyone, anywhere, at any time — using open-source tools and the Bitcoin blockchain. No reliance on EverCert.
Why It's Permanent
A Bitcoin-anchored timestamp is permanent because it relies on the security of the Bitcoin network — the most battle-tested distributed system in history. Bitcoin has operated continuously since January 2009 without a single successful attack on confirmed transactions.
Your proof does not depend on EverCert existing. It does not depend on any company, server, or service. The proof file contains everything needed for verification: your document hash, the Merkle path, and the Bitcoin block reference. Anyone with a copy of the Bitcoin blockchain can verify it.
This is the fundamental difference between a blockchain timestamp and a certificate from a private service. Private services can shut down, lose data, or change their records. The Bitcoin blockchain cannot be altered, deleted, or shut down by any single party.
Free. Private. No account required.