Blocks in the blockchain serve as a distributed timestamp consensus: a block is a definitive record of time. punkman from the #bitcoin-assets irc channel launched a system today which allows users to prove through the blockchain the date of publication of a document.

Bitcoin blocks, because they occur sequentially may be taken as a unit of measure for the passage of time. It was once conjectured Bitcoin is backed by time, but for this purpose as transactions are anchored in time by their block their existence is historically irrefutable.

The new service will write a document's hash data into the blockchain, allowing a user to certify its existence in the future without the need of a third party. The service operates through an IRC bot on #bitcoin-assets, named punkbot1. Users of the service must be in nanotube's web of trust, and have at least a level 2 favorable trust relationship with assbot2. These users can submit a document, which must be signed by their web of trust GPG key, to punkbot.

The bot first hashes each document using sha256 and encodes the result in base58. After encoding the hashes, they are each appended into a string separated with commas. This comma delimited list of hashes is again hashed with sha256 into a bundle hash. The bundle hash is used as the secret exponent for generating a bitcoin private and public key. This private key is unique and can only be derived from the original document's bundle.3 Once the public key is derived, punkbot sends, from the small bitcoin wallet it controls, 0.0001 BTC to that address.4 Eventually the transaction is included in a new block, certifying the "linked" document has irrefutably existed since that time. Due to the service requiring that users GPG sign the document before submission, the document itself is tied to a Web of Trust identity.

The service allows for users to sweep unspent outputs of resulting transactions of certifying document bundles. A similar service called Proof of Existence embeds a document's hash into the blockchain using the OP_RETURN opcode with the document hash as a parameter in the transaction script making the outputs provably unspendable. That process destroys the coins used for the certification transaction.

The source code powering the deed service is available on punkman's github repository which includes a tool to verify documents that have been certified on the blockchain using his service.

The registry of deeds can be viewed here.