Paul's Internet Landfill/ 2019/ Version Control on the Blockchain

Version Control on the Blockchain

Here is a joke I find hilarious: "Wouldn't it be great if somebody put version control on the blockchain? They would make a fortune!"

Let's bleed out the humour from this statement by unpacking it. "The blockchain" is a trendy concept in tech right now. A "block" is a place where you put information. The problem with blocks is that they are digital, and could be forged. So you take blocks of information and "chain" them together by using information from the last verified block in the chain to verify the next one. (Everybody assumes the first block in the chain is verified.) Then if anybody tries to modify the contents of any block once it has been verified, the chain of verifications will fail, and we will know that the chain has been tampered with.

The blockchain got super-trendy because of an alternative currency called "Bitcoin", which was supposed to be a decentralized digital currency. The blocks in the blockchain stored transactions that were made in Bitcoin. No central authority would be creating these blocks or regulating them. Instead, people competed to submit the next block in the chain. The winner of the contest wins a Bitcoin. Thus there is a financial incentive for submitting (called "mining") verified blocks, and since blocks get rarer as time goes on, mining a block got more and more valuable. Bitcoins became super-valuable, so that a Bitcoin you might have mined (or purchased) a few years ago dollars became worth tens of thousands of dollars.

The "blockchain" in this case served as a distributed ledger of transactions that anybody could verify. People saw how rich miners were getting, and so they did two things: (a) they made a bunch of coins of their own, in the hopes of cashing out, and (b) they found other applications for putting information into blockchains. Supposedly, blockchains are as revolutionary as the Internet, and anybody who dares to argue otherwise (or worse, commits the thoughtcrime of thinking that this is a speculative bubble) is obviously some bitter plebe who did not get Bitcoins when they were cheap.

So now there are all kinds of ridiculous Blockchain applications. One popular one is Etherium, which is an attempt to encode "smart contracts" written in computer code on the Blockchain. But people are trying to use blockchains to fund journalism, revolutionize healthcare, etc. etc. etc. It is a thoughtcrime to suggest that some of these applications are ridiculous.

As a result, it has become a running joke to propose putting application X "on the blockchain" and make a pile of money off of it. That is the first part of the joke.

The second part of the joke is the idea of putting "version control" on the blockchain. "Version control" is a term used in computer programming, but it has broad application whenever somebody is creating digital assets (for example: blueprints, essays, or multimedia files). When I put something (say this blog post) under version control, the version control system "remembers" the changes that were made to the document. This is nice because it creates a historical record of what changes I made when, and allows me to annotate those changes so that I have some idea of why I made them. The other important aspect of version control is merging: if both you and I were working on different aspects of this blog post, we could work on those aspects independently of each other, and then the version control system would provide a way for us to merge those changes together sensibly. If our changes are sufficiently unrelated then merging is easy. If there are overlaps then merging gets harder, but modern version control systems provide ways to alert us of these conflicts and allow us to resolve them.

The idea of version control is pretty useful, and it is found in many places. Even backups are a limited version of version control, and there are more fully-featured versions in things like Microsoft Word. So maybe it is not surprising that somebody would propose putting version control on the blockchain. (A quick search on the Internet reveals that people seriously propose this).

The punchline of the joke is that for most people (at least most people in the programming world) version control is already on the blockchain. The most popular version control system these days is called "git", and it rose to prominence years before anybody had heard of Bitcoin or "the blockchain". git works by having records of changed files (called "commits" in git terminology) and chaining them together to form a history. Every commit is verified by looking at the contents of the changes and the verification code from the previous commit.

The point of the joke is that git might be the most useful and widespread blockchain application around, but that nobody associates it with "the blockchain" because nobody is making a fortune off of it. Isn't that hilarious?

Now that I have explained the joke it clearly is not funny any more (as if it was funny in the first place), but it is still interesting to me. In my opinion git really is very similar in structure to "the blockchain", but unlike other products in the Blockchain Bubble it is actually useful and widely adopted. Nobody actually uses Bitcoin as a currency, because its value fluctuates too much. Some people are trying to put smart contracts on blockchains, but it does not seem to me as if the use cases are that compelling. What explains the difference?

To summarize: git works well in a way that blockchains don't. But even though they use very similar technologies, git approaches problems in a way that is completely different than Bitcoin does. Most importantly, a lot of people who are enthusiastic about the blockchain see it as a way to make money, whereas people who were enthusiastic about git saw it as a way to solve the problem of having many people develop software projects together. It probably should not be surprising that these worldviews are different, because they are trying to solve different problems. But it is still striking how much better git works than Bitcoin.

I still think the joke is funny. Unfortunately I am like one of those people mocking the Internet in the 1990s. Blockchain probably is going to revolutionize the world, and I will be left in the dust.

Further Reading

I am not the only one to commit the thoughtcrime of questioning The Blockchain. Here are a few articles I have found informative. They also explain what is going on much better than I did.