Posted by & filed under Legal, Professional.

Dan Mcardle

Yesterday evening, Ryan Selkis moderated a discussion with Michael Casey and Paul Vigna, about their new book, The Age of Cryptocurrency, at the Bitcoin Center in New York. I attended the event and, while it was taking place, embedded the existence of the book onto the Bitcoin blockchain. Many people came up to me afterwards wanting to know more about the technical aspects of the process, so I figured it’d be a good idea to elaborate here.

First off, the Bitcoin blockchain is a secure, irrefutable record of transactions. No one controls the Bitcoin blockchain, and immense computational power keeps it secure. That combination means that the data stored in the Bitcoin blockchain can’t be rationally contested. If the blockchain contains a transaction, that transaction did indeed happen at the time it was recorded.

Bitcoin is widely used to transfer value – ie, it’s used as money – but it can also be used for other purposes. Specifically, small amounts of arbitrary data can be attached to Bitcoin transactions and broadcast out to the Bitcoin network. These transactions then get mined as usual by bitcoin miners and therefore added to the overall blockchain – including the bit of extra data. This extra data can be used for a number of different purposes, and there are many startups exploring the possibilities.

In our case, we embedded the SHA256 digest (or “hash”) of the digital version of The Age of Cryptocurrency. SHA256 is what’s known as a “hash function”, which generates a unique* sequence of letters and numbers for any data you give it. In this case, we gave it the digital version of The Age of Cryptocurrency, and it returned:




Hash functions are basic cryptographic tools, and some of their key properties are:

  1. Anyone who has the digital version of The Age of Cryptocurrency can run it through a standard SHA256 hash function, and it’ll generate the same digest as above.
  2. The output of the hash function – the above “digest” – is unique to the book. If even one letter were changed, a completely different digest would result.
  3. The digest cannot be created without the book. Since even slightly different input data results in a completely different digest, there’s no way to create the above digest without having the book file.

After generating the digest, we then needed to create a bitcoin transaction containing the digest. We used the API to create a special bitcoin transaction; ie, an OP_RETURN transaction that includes our digest as extra data. This transaction was then broadcast out to the Bitcoin network and mined into a block.

Specifically, the transaction was mined into block 341705. Anyone can take a look at the transaction on the public Bitcoin blockchain. By looking at what’s known as the “output scripts” in that transaction, anyone can verify that the above digest is included in the transaction. Here’s how it looks on

Output Scripts


Note that since a digest value is unique to a specific input, the input must have existed at the time of the bitcoin transaction. In this case, the above Bitcoin transaction proves that The Age of Cryptocurrency book must have existed at 6:58pm EST on February 2nd 2015.

Finally, one of the most useful properties of the blockchain is its transparency. Anyone who has The Age of Cryptocurrency in digital form can verify that its SHA256 digest is as shown above, and that the digest appears in the blockchain. Thus, anyone can irrefutably verify that the book existed on February 2nd 2015 using the open Bitcoin blockchain.

Many expect this to have implications for copyright, notary, and many other domains in the years to come, and we were happy to provide this service for the release of The Age of Cryptocurrency.  We at the Digital Currency Council aim to provide our members this same benefit upon request, as part of a new “toolbox” we are developing to facilitate utilization of the Blockchain.


*This is a slight simplification, as hash-functions offer ‘collision resistance’, meaning it’s phenomenally unlikely, but not strictly impossible, for two different inputs to generate the same output. See Core-1 of the DCC Certification Course for more discussion of hash-functions.

Leave a Reply