The Blockchain is Forever

April 21st, 2015

Marc Andreessen has compared the current state of Bitcoin to the state of the internet in 1993. The comparison makes sense if you consider that Bitcoin, a protocol that is slowly taking over the world, and for which the blockchain was built, is just one of many possible protocols that it’s underlying blockchain technology can support. Email was one of the first very useful protocols built on the internet in the early days. And, we had no idea what large TCP/IP networks were really capable of. Who could have known we could build things like microblogging, crowdfunding, YouTube, or Uber?

The blockchain is a globally distributed database that anyone can add to, but whose history no-one can modify. That’s an important property if we’re going to use it as the source of truth for all our peer-to-peer financial transactions.

The immutability property is maintained by a combination of cryptographic hash functions and raw computing power—which should not be underestimated. The computing power of the whole Bitcoin network is greater than 2 million Peta-flops, which is about 10,000 times all the top 500 supercomputers combined. In order to re-write the history of the blockchain, you would need to build a computer at least as powerful as that. An easier way would be to take control of the majority of machines already on the network. This so-called “51% problem” is considered one of Bitcoin’s biggest weakness.

Bitcoin needed the blockchain to exist, but now that it does, we can build other things on top of it. Consider the problem of “Proof of Existence.” If I write a song that someone steals and makes a lot of money with, I could prove beyond a shadow of a doubt that I am the true author… IF I recorded that fact in the blockchain. The process is pretty straightforward: generate a fingerprint of an MP3 using a hash function and then save it in a Bitcoin transaction. There, it will live forever. Every one of the millions of computers on the network would be a witness to the fact that on that date, I stored an indelible hash key on the blockchain that matches the hash of my song.

Developers interested in trying this out for themselves should visit http://bitcoinjs.org. Bitcoin-js is a clean and robust Bitcoin library which can execute the proof of existence example above in about a dozen lines of JavaScript. If you don’t own Bitcoin (paying the transaction fee will guarantee the data gets written), you can still do a simulated transaction on the test blockchain, where everything is exactly the same as real Bitcoin except no-one places any value on bitcoin transactions recorded there.

Cryptographic hash function

The illustration above, by Jorge Stolfi for Wikipedia, shows a typical cryptographic hash function (SHA-1) at work. Note that small differences in the input result in very different digests.

Proof of existence services are already popping up, such as http://proofofexistence.com. If you own any intellectual property you want to prove the existence of right now, I recommend you go there and log that fact in the blockchain. Since you’re only saving the cryptographic hash of a file, the original contents are still hidden from the world. (Of course, when it comes time to prove you created a certain file on that date, you’ll need to produce the original copy of it to demonstrate that the hashes match.) And, even if this service disappears, your indelible proof still lives on in the blockchain.

The same idea can be applied to wills and other legal contracts if you add support multiple digital signatures. Now we can prove that such documents, digitally signed by multiple parties, came into existence on a certain date and have not been tampered with. http://blocksign.com offers a service for this. I expect that, in a few years, “block-signing” documents will be relatively common because that process is far cheaper than hiring a lawyer to do the same.

The Bitcoin protocol only allows for a small amount of extra data to be included in a transaction, unless the majority of the community agrees on running a new protocol. So, we’re limited to around 40 bytes: enough for a cryptographic hash, but not much else. As a way of expanding Bitcoin’s capabilities, “side-chains” have been proposed. These would allow new blockchains to be developed that are tied to Bitcoin’s super-computed blockchain. One possible side-chain might allow storing a large amount of data, for example. This would allow us to build a “un-censorable” document store.

Wikipedia, our new trusted source of all information, has a special function called RevDelete, which allows admins to remove edit history on posts. This allows people to re-write history without a trace. Jimmy Wales himself has been embroiled in some controversy regarding Wikipedia censorship. I’m not claiming this function is abused, but that there is always risk in trusting a small number of individuals as a central authority, and it would be ideal if we didn’t have to place our trust in anyone. The blockchain plus new types of side-chains would allow us to effectively eliminate censorship.

There are many more ideas currently being developed around the blockchain and side-chains (with fingers crossed that they will soon be supported), and there is a tech bubble of innovation forming in Silicon Valley. The Blockchain University in Mountain View, CA for example, is bringing together entrepreneurs to explore this space right now. Who knows what unimaginable technology will exist in the next 20 years based on blockchains?

It’s time to innovate like it’s 1993.

 

Header image by BTC Keychain. Used under CC BY 2.0.