It's for proving that some digital content is older than a certain date.
Because generative AI is now good enough to create plausible fakes, and it's only going to get better.
Hashdate gives us a (very limited) defence. If we hash enough important stuff now, then later on we'll be able to demonstrate that it dates back to before AI was good enough to fake it.
Better late than never :/
Let's put it this way: For now, generating an impeccable fake image of a particular scene is still a skilled act, and generating an impeccable fake video of a particular scene is usually impossible without the work of a world-class special effects studio. This may not remain the case for long.
Archive your file! Without it, the hash is useless.
Otherwise, for now, nothing. If you check your hash in the Verify tab, you'll see this message: "Hash found, not yet bundled to chain."
That means your hash is sitting in a queue, waiting for us to generate the proof. (It's a little expensive, so we can't afford to do it instantly.)
Within a week, though, the message will change to "Hash found — provably existed at...". You'll then be able to follow a link which will show you how to prove your file's age.
Certainly. Here's a funny picture I took of a seagull:
If you download that image and drop it into the Verify tab, it'll generate this link. Follow the instructions there to prove that the photo dates from 2024-04-26 or earlier.
See Technical Details below.
I'm not a lawyer, but I guess probably? At least with a good enough expert witness, who knows.
Nothing :(
Unless you can rediscover/recreate the exact original file, your proof is lost.
No. Two files with different names but identical contents will hash to the same value. Changing a file's name makes no difference.
If for some reason you need to prove the existence of a particular file with a particular name, store your file in a zip file then hash & archive the zip file.
Writing to Ethereum is expensive, so we don't do it immediately when someone adds a hash.
Instead we bundle up a bunch of hashes, currently around a week's worth, and add them together. If you verify again in a week or so, your proof should be available.
You can't yet, sorry. Hopefully we'll add support for this later, either with a cheaper blockchain, or else a way for people to fund an extra Ethereum transaction.
It's just hashing and blockchain logging. All newly-submitted hashes get stored in a conventional database. Then, every week or so:
With the power of cryptographic hashes.
Thanks to the avalanche effect, it's totally infeasible to invent a file whose SHA3-256 hash is a particular target value. This means that, if you have such a hash and also a file which matches it, it's safe to conclude that the file existed first.
(See this video for a proper introduction to cryptographic hashing. If anyone knows a good prose introduction, please let me know.)
Hashdate relies on this trick three times: first with a data file hash, second with a bundle hash, and third by relying on the integrity of the Ethereum blockchain itself.
To put it another way:
SHA3-256. We use it on the server to hash the bundle files, and we use it in the browser to hash files.
We use SHA3-256 because it's the standardised version of the algorithm used by Ethereum. (Ethereum uses Keccak-256, the original version of SHA3-256 — they're cryptographically identical.)
N.B. If you supply hashes directly, then Hashdate doesn't know or care what algorithm produced them. All that matters is that the output is 256 bits.
On macOS, and on most Linuxes, you can just run:
openssl dgst -sha3-256 {YOUR-FILE}
On Windows, there's nothing pre-installed, but you can download OpenSSL here.
I hope so! At least, it's hard to see a non-apocalyptic scenario in which the problem goes away.
In principle you won't need this website to stick around — it's just a convenient frontend. There are only two things that really need to survive:
For practical usage, there are more points of failure. We also need:
I think it's a decent bet that these things will all stick around for a while.
It's the best way we have to publish data immutably, and with a credible timestamp.
Because I didn't want to use Bitcoin, and it's the next-best established blockchain.
That means it's likely to be around for some time to come, and, more subtly, it's likely to be well-indexed and easy to reference for some time to come.
Bitcoin relies on proof-of-work, so it's fundamentally wasteful. Ethereum uses proof-of-stake, so it gives us almost the same guarantee of longevity at a minuscule fraction of the energy cost. Plus, expensive.
Hashdate is built to scale: it could conceivably store the hash of every video clip on the internet. Uploading even a few hundred thousand hashes directly to Ethereum would be prohibitively expensive for me.
Think of this as the world's simplest layer 2 blockchain if you like.
Haven't looked into it yet.
As above.
Yup, here.
For now, me, out of pocket. It's pretty cheap. If it really takes off and the costs become too much for a hobby project, I'll look at charity status and some kind of institutional sponsorship.
A random computer guy with no important skills or connections.
Happily you don't need to trust me for the proofs to work, but you do need to trust that I'll keep the bundles around. Hopefully this will catch on and I can hand it over to an institution. If you're the Internet Archive, do get in touch.
hullo@hashdate.org, or via Discord.