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 StrongCoin, but you can also use 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 StrongCoin. The key import button is on the new account page. Give the account a label, such as 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 StrongCoin, you can make an account transfer, and we add the miner's fee. The transaction created by 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 StrongCoin so it's not mixed up with your day-to-day accounts. We back up your encrypted private keys, so if you ever need to prove you are the person who made the timestamp, you'll have the key.
Thanks.
Thanks to this discussion for getting me thinking about this.