The Commit-Reveal Scheme
How It Works
CommitProof uses a commit-reveal scheme to prove you had an idea at a specific point in time - without revealing what the idea is.
- Commit - You enter your text. A SHA-256 hash is computed entirely in your browser, combined with a random salt. Only the hash is stored on the Cardano blockchain.
- Reveal - Later, you share your original text and salt. Anyone can recompute the hash and verify it matches what's on-chain, along with the block timestamp.
Your original text never leaves your browser. Not to any server, not to the blockchain, not anywhere. Only the cryptographic hash goes on-chain.
The salt is a 16-character random string generated using crypto.getRandomValues. It prevents brute-force guessing - without the salt, the original text cannot be derived from the hash.
On-Chain Proof
Each proof is a Cardano transaction with metadata attached under label 8413:
{
"hash": "a1b2c3…",
"algo": "sha256",
"version": "1",
"app": "commitproof.com",
"ts": 1708000000000
} Every proof transaction sends 3 ada to the CommitProof service address. This address acts as a public index - querying it returns all CommitProof transactions, which is how the Proof Explorer works.
All proofs are permanently stored on the Cardano blockchain and can be independently verified by anyone. New to Cardano? Learn how to get started.
Verification
Anyone with three pieces of information can verify a proof:
- The transaction hash (identifies the on-chain proof)
- The original text
- The salt used during commitment
The verification process recomputes SHA-256(text + ":" + salt) entirely in the browser and compares it to the hash stored on-chain. If they match, the proof is valid - and the block timestamp proves when it was created.