Blockchains and Distributed Ledgers
This final section of this lengthy series of articles isn’t about Bitcoin at all. It’s about the hype that’s come to surround it: the ‘blockchain’ and ‘distributed ledger technology’ as it’s been called, abbreviated to ‘DLT’.
If you’ve read this series of articles I’m hoping you have some understanding of what a ‘blockchain’ is and what a ‘distributed ledger’ is in Bitcoin. You may be wondering how this rather wonderful but deeply flawed technology can possibly do all the amazing things promised of it.
Terminology: Blockchain, Distributed Ledger
‘Blockchain’ has at least two meanings:
- A simple data structure that chains blocks of data together using hashes.
- The use of such a data structure in something like Bitcoin to create a distributed ledger with no central administration or authority, that uses mining, and is hence secure but has all the problems of Bitcoin.
Obviously the second of these is far more interesting than the first.
Similarly ‘distributed ledger’ has several meanings: it can simply mean a ledger that runs on several different computers, or the same but with Bitcoin-style mining layered on top.
There are several articles on the internet arguing that these terms have become meaningless because of these multiple meanings.
I actually think that people have got upset about this because they thought ‘blockchain’ and ‘distributed ledger’ meant the whole thing with mining, but then some other people used the simpler meaning. The next section discusses this.
Public Blockchain vs Private Blockchain
This brings us to the ‘private blockchain’. This doesn’t have a lot to do with what has to now be called a ‘public blockchain’. A public blockchain is the blockchain with mining as used in Bitcoin that I’ve already described.
There isn’t really a clear definition of a ‘private blockchain’. However as I understand it, a private blockchain will typically have a database that is replicated between multiple computers, like the distributed ledger in Bitcoin. These computers may or may not be part of the same organization.
This database may even be a traditional one with records in tables. However, it will probably use something like the blockchain as a data structure described above for audit purposes at least, or even as its primary record.
The key thing about a private blockchain is that it is private, and not trustless. Only trusted users who identify themselves are allowed to interact with the system.
This almost always means there’s no mining, as mining has serious drawbacks and one of its main advantages is that it allows our system to be trustless.
The privacy and lack of mining in a private blockchain has some consequences versus Bitcoin:
- We need some way of dealing with the problem of conflicting records entered on different computers. The craziness of multiple versions of the database and longest chains won’t work, because that needs mining.
- We need some way of identifying people on the network and giving them rights to perform certain actions.
- These systems won’t destroy the planet, bring down governments or replace the US dollar. They can’t be used by people selling drugs. They can be reasonably fast and use fewer resources than ‘public blockchains’ like Bitcoin.
For problem 1 above, conflicting updates, I described some of the simpler ways of handling this in a distributed system in an earlier article. They all required either special computers to handle writes or some form of locking across the network. Locking can only really work if there are only a few computers close together that won’t go down though. So we’re probably going to have specific write servers.
Problem 2, identifying users, has a very obvious old-fashioned solution. User IDs and passwords are a perfectly valid way of making sure that only people who are trusted can do things on your system. Of course securing data in this way has little to do with blockchain technology.
An Old Solution
The issue that people have with what I’ve described being a ‘private blockchain’ is that it sounds like something new and cool and related to Bitcoin, but actually systems like this have been around for years. I already mentioned that I worked on one in 1997, although we didn’t call it a ‘private blockchain’. Of course systems like this need someone to run them, specialized computers for certain tasks, aren’t publicly available, and don’t have any anonymity at all, so they are very unlike Bitcoin.
Having said that there are some interesting ideas in ‘private blockchains’ that go a little beyond traditional replicated database systems.
- ‘Private blockchains’ may replicate between organizations. That means multiple organizations have direct access to the same data in the same format in realtime, and can run applications from their copy of it.
- It looks like some of these projects are replicating only the parts of a database that another organization are interested in to them.
- If they do this they may try to use more sophisticated means of deciding which conflicting update is valid than the ‘first one entered’. They already are likely to have a central server that can detect conflicts, so if a conflict happens they may be able to set up consensus rules. These may even involve participants voting on the correct update.
My personal view is that replicated systems, or ‘private blockchains’, are quite a good way of building certain classes of scalable global applications and that some of these ideas are interesting. There is a class of problems that they can be used to solve.
Other Forms of Electronic Money
There’s hype about Bitcoin, which may not be entirely justified. There’s hype about ‘private blockchains’ which aren’t really anything to do with Bitcoin or what many people think of as ‘blockchains’. That hype may not be justified either.
There’s also hype about various other forms of electronic money which are similar to Bitcoin. These are also ‘public blockchains’. Some of these other forms of money have some interesting features. As I’ve already mentioned almost all of them use some form of mining, and hence have most of the advantages and disadvantages that we’ve already discussed with respect to Bitcoin. In particular if they have mining they usually need some form of money to pay their miners.
However, once you have the basic money set up you can add other features to your cryptocurrency. If you have mining you can be reasonably certain that the history in the system can’t be changed: it’s ‘immutable’. Note that, as discussed, private blockchains are not immutable.
If you use your favorite search engine you’ll find plenty of these ‘cryptocurrencies’.
Many of these go beyond simple payment systems, and some try to use other approaches than mining.
One of the more interesting is Ethereum. This allows you to store computer code that can contain state actually in the blockchain and then execute it when someone submits a transaction. This is the ‘smart contract’. This is very cool, but actually, a bit like Bitcoin, has some drawbacks that aren’t immediately obvious, and some of the promised benefits are hype.
All of this is fascinating, but is a bit beyond the scope of what I’m writing here. It’s really the basis for another series of articles.