Using the Blockchain as a trusted timestamping service
30 November 11
Explanation
The problem I'm trying to solve here is how do I prove a digital item existed at a certain date. We can use the blockchain as a hard to forge mechanism for timestamping a document, MP3 file, photograph etc.
I'm going to show how to do this with Brand but you can do this with some command line tools (or perhaps a web service) and the official Bitcoin client.
How to do it.
-
First you need to create a SHA-256 hash of your document. Remember any 32 byte hex number is a private key. You can use this online SHA2 service to create the hash as a hexadecimal number. For my document I got the following hash.
214F9D73203880EB2EC422FE8C7EACA9FF78C6E6C8F9D7F2C0D9F8E9433E1E28
-
Import your hash as a hex encoded private key into Brand . The key import button is on the new account page. Give the account a label i.e. Prediction Time Stamp and after submitting the form you will get a Bitcoin public address. In my case I got 1Kxk2hkZdmesE2TazewdPzwWpcBbaJ2Ut
Key Import Dialog
-
Make a payment to this address, in Brand you can do an account transfer for which we just add the miners fee. The transaction that is created to make the payment is your timestamp.
So the results of my payment to the public address is shown in the screenshot below.
Once the transaction is in the blockchain you have proof the document exists at a certain date and time (The time is +/- 2 hours). You can see the results of my timestamping in BlockExplorer
http://blockexplorer.com/tx/db4c9b5567533ad4df2279a9817bad60e69083bfe14099fa0034bf8d3013325a
You can archive the account in Brand so it's not mixed up with your actual day to day accounts. we backup your encrypted private keys so if you ever need to prove you are the person that made the timestamp you'll have the key.
Thanks.
Thanks to this discussion for getting me thinking about this.