Why Would I Want An Append-Only Ledger?
Why Would I Want an Append Only Ledger?
Author’s Note: The point of this post is to highlight the actual use cases for an append-only ledger and how these ledgers, especially blockchain, are not useful in most cases. I’m collecting my thoughts here in a longer form so that I can later distill them into something much shorter. I wanted to do this through exploring the actual use cases instead of focusing on the rampant scams.
At this point in our collective history, it is a well trod trope that if an issue exists, someone with a vested interest in the world’s most well known speculative commodity will ask, “have you considered putting x on the blockchain?” To which 99.9999 percent of people should respond with, “won’t work, do you have anything else?”.
Maybe I should be more generous. Perhaps there is something the blockchain has to offer. For my purposes, I am going to ignore Bitcoin and its offspring, despite blockchains and cryptocurrencies being deeply entwined with one another. So, what is a blockchain?
At its simplest definition, a blockchain is an append-only database. In other words, a log of information that you can write to, but you cannot modify or delete. There are more properties that enthusiasts will point out, such as that it is decentralized and cryptographically secured. I will address those properties later, but first when would we want a record that we could create but not modify?
Append Only Ledgers in the Wild
Perhaps, the largest and most successful use case involving an append-only ledger is the version control software known as git. This software has enabled projects around the world to collaboratively work together. Git allows project maintainers to keep track of the approved version of the project, while simultaneously allowing people to make separate versions and then submit their versions to be added to the main branch of the project.
Another use case for an append-only ledger is tamper-evident logging. The programming language Go uses this to manage packages within projects and allows developers to verify which packages the project includes and when they were changed. This would be useful in the case of a compromised package, where attackers inserted malicious code. The version of the code that was not compromised will have a different signature than the compromised code.
We do see that append-only ledgers have some use cases, but these cases are narrow and there is little reason to glom them onto every problem in need of solving. Most people in search of a technologist are not seeking write-only databases.
What about blockchain?
Blockchain enthusiasts will mention that it is more than an append-only ledger. Its other features include being decentralized and cryptographically secure.
These phrases have been uttered so often as inherently good that they are more the incantations of salesmen than words that convey information.
Decentralization is heralded as a good because the blockchain community has a monomaniacal focus on trust. The Politics of Bitcoin (summarized here) travels through the ideology of the community, but this feature is worth examining.
The invocation of decentralization by the community tends to mean two things. The first is that it is distributed, and the second is that the technology is free from the oversight and control of a centralized authority.
A distributed system is one where some or all (all in the case of blockchains) of the data that exists on one machine also exists on another. This provides the guarantee that if one part of the system experiences a catastrophic failure, the information is secured because it has been replicated across multiple nodes. Distribution is a positive feature, but it can be had with less energy and computational resources than a blockchain requires.
While enthusiasts spend copious amounts of time discussing trust, the use case this belies that is bound up in decentralization is censorship resistance. Blockchain enthusiasts point out that if users trust a centralized authority, that authority could decide to unilaterally act and prevent users from partaking in an action that the authority disagrees with. The bulk of human activity is not censorship resistant, and this feature goes unneeded by the masses.
This is not to suggest people who do genuinely need censorship resistance don’t exist. Journalists working in countries where there are hostile government and non-governmental entities, sex workers accepting payments that won’t be seized or upheld by banks, and people sending remittances to their families in countries that are currently under sanctions are all valid use cases.
There are those who may point to getting removed from platforms such as Facebook, Twitter, and Instagram as a form of censorship and that applications built on the blockchain can intervene here. Again, there are numerous means to continue publishing online without relying on blockchains. The sheer market concentration and reach that a handful of platforms possesses is a problem better solved by antitrust, not blockchains.
The ledger is broken into blocks that contain batches of valid transactions, and what is genuinely interesting is that each block possesses a cryptographic hash of the prior block, linking that and all preceding blocks back together. In cryptography and computer science, this is called a Merkle Tree.
This in and of itself does not add security, but it does make it so that the blocks can be audited by verifying that hashes for transactions match. If the blockchain is public and not at risk of suffering a 51 percent attack, then those viewing the transactions can be reasonably certain that the ledger is accurate.
The security aspect comes through public-key cryptography. The data stored on the blockchain can be associated with a public key (think of this like a Post Office box). Anyone viewing the ledger can see that information was sent to your address; however, to view the contents, you must open this with a private key (consider this to be a key to a post office box).
When a perfect solution does not exist, public key cryptography is a great line of defense.
Noting these benefits, it is possible to use public key cryptography without relying on the blockchain. Creating an auditable database is something that has been done many times over, and most people administering systems will want something that requires less computational resources.
Append-only databases are not a new technology, the present moment just has them co-opted in service of a digital tulip mania. There are a few valid use cases for append-only ledgers; however, most people working on a project will find simpler methods for distributing their system, ensuring its security, and trusting those that they work with rather.